(
cls,
binary: str = "opencode",
port: int = DEFAULT_OPENCODE_PORT,
request_timeout_seconds: int = 60,
)
| 102 | |
| 103 | @classmethod |
| 104 | async def get_instance( |
| 105 | cls, |
| 106 | binary: str = "opencode", |
| 107 | port: int = DEFAULT_OPENCODE_PORT, |
| 108 | request_timeout_seconds: int = 60, |
| 109 | ) -> "OpenCodeServerManager": |
| 110 | with cls._class_lock: |
| 111 | if cls._instance is None: |
| 112 | cls._instance = cls( |
| 113 | binary=binary, |
| 114 | port=port, |
| 115 | request_timeout_seconds=request_timeout_seconds, |
| 116 | ) |
| 117 | elif ( |
| 118 | cls._instance.binary != binary |
| 119 | or cls._instance.port != port |
| 120 | or cls._instance.request_timeout_seconds != request_timeout_seconds |
| 121 | ): |
| 122 | logger.warning( |
| 123 | "OpenCodeServerManager already initialized with " |
| 124 | f"binary={cls._instance.binary}, port={cls._instance.port}, " |
| 125 | f"request_timeout_seconds={cls._instance.request_timeout_seconds}; " |
| 126 | f"ignoring new params binary={binary}, port={port}, " |
| 127 | f"request_timeout_seconds={request_timeout_seconds}" |
| 128 | ) |
| 129 | return cls._instance |
| 130 | |
| 131 | @classmethod |
| 132 | async def get_instance_if_managed_server_exists( |
no outgoing calls
no test coverage detected