peijun1's picture
Deploy AI Studio Proxy API to Hugging Face Spaces
a5784e9
Raw
History Blame Contribute Delete
3.47 kB
import logging
import os
import sys
from typing import Dict, List, Optional
from launcher.config import ACTIVE_AUTH_DIR, SAVED_AUTH_DIR
logger = logging.getLogger("CamoufoxLauncher")
def ensure_auth_dirs_exist() -> None:
try:
os.makedirs(ACTIVE_AUTH_DIR, exist_ok=True)
logger.debug(f"Active auth directory ready: {ACTIVE_AUTH_DIR}")
os.makedirs(SAVED_AUTH_DIR, exist_ok=True)
logger.debug(f"Saved auth directory ready: {SAVED_AUTH_DIR}")
except Exception as e:
logger.error(f"Failed to create auth directories: {e}", exc_info=True)
sys.exit(1)
def check_dependencies(
launch_server: Optional[bool], DefaultAddons: Optional[bool]
) -> None:
logger.debug("[Init] Step 1: Checking dependencies...")
required_modules: Dict[str, str] = {}
if launch_server is not None and DefaultAddons is not None:
required_modules["camoufox"] = "camoufox (for server and addons)"
elif launch_server is not None:
required_modules["camoufox_server"] = "camoufox.server"
logger.warning(
" 'camoufox.server' imported, but 'camoufox.DefaultAddons' not imported. Addon exclusion functionality may be limited."
)
missing_py_modules: List[str] = []
dependencies_ok = True
if required_modules:
for module_name, install_package_name in required_modules.items():
try:
__import__(module_name)
logger.debug(f"Module '{module_name}' found.")
except ImportError:
logger.error(
f" Module '{module_name}' (package: '{install_package_name}') not found."
)
missing_py_modules.append(install_package_name)
dependencies_ok = False
else:
# Check if internal launch mode, if so camoufox must be importable
is_any_internal_arg = any(arg.startswith("--internal-") for arg in sys.argv)
if is_any_internal_arg and (launch_server is None or DefaultAddons is None):
logger.error(
" Internal launch mode (--internal-*) requires 'camoufox' package, but failed to import."
)
dependencies_ok = False
elif not is_any_internal_arg:
logger.debug(
"Internal launch mode not requested and camoufox.server not imported, skipping 'camoufox' Python package check."
)
try:
from server import app as server_app_check
if server_app_check:
logger.debug("[Init] Successfully imported app object from server.py")
except ImportError as e_import_server:
logger.error(
f" Cannot import 'app' object from 'server.py': {e_import_server}",
exc_info=True,
)
logger.error("Please ensure 'server.py' file exists and has no import errors.")
dependencies_ok = False
if not dependencies_ok:
logger.error("-------------------------------------------------")
logger.error("Dependency check failed!")
if missing_py_modules:
logger.error(f"Missing Python libraries: {', '.join(missing_py_modules)}")
logger.error(
f" Please try installing with pip: pip install {' '.join(missing_py_modules)}"
)
logger.error("-------------------------------------------------")
sys.exit(1)
else:
logger.debug("[Init] All dependency checks passed")