Files
Dorod-Sky/skyvern/forge/__init__.py
2025-11-20 00:25:33 +00:00

40 lines
1.1 KiB
Python

from __future__ import annotations
import typing
from typing import Any
if typing.TYPE_CHECKING:
from skyvern.forge.forge_app import ForgeApp
class AppHolder:
def __init__(self) -> None:
object.__setattr__(self, "_inst", None)
def set_app(self, inst: ForgeApp) -> None:
object.__setattr__(self, "_inst", inst)
def __getattr__(self, name: str) -> Any:
inst = object.__getattribute__(self, "_inst")
if inst is None:
raise RuntimeError("ForgeApp is not initialized. Call start_forge_app() before accessing app properties.")
return getattr(inst, name)
def __setattr__(self, name: str, value: Any) -> None:
inst = object.__getattribute__(self, "_inst")
if inst is None:
raise RuntimeError("ForgeApp is not initialized. Call start_forge_app() before accessing app properties.")
setattr(inst, name, value)
if typing.TYPE_CHECKING:
app: ForgeApp
else:
app = AppHolder() # type: ignore
def set_force_app_instance(inst: ForgeApp) -> None:
app.set_app(inst) # type: ignore