Spaces:
Paused
Paused
| [tool.poetry] | |
| name = "aistudioproxyapi" | |
| version = "0.1.0" | |
| description = "" | |
| authors = ["Your Name <you@example.com>"] | |
| readme = "README.md" | |
| package-mode = false | |
| [tool.poetry.dependencies] | |
| python = ">=3.9,<4.0" | |
| fastapi = "==0.115.12" | |
| pydantic = ">=2.7.1,<3.0.0" | |
| uvicorn = "==0.29.0" | |
| python-dotenv = "==1.0.1" | |
| websockets = "==12.0" | |
| uvloop = {version = "*", markers = "sys_platform != 'win32'"} | |
| playwright = "*" | |
| camoufox = {version = "0.4.11", extras = ["geoip"]} | |
| cryptography = "==42.0.5" | |
| aiohttp = "~=3.9.5" | |
| requests = "==2.31.0" | |
| pyjwt = "==2.8.0" | |
| Flask = "==3.0.3" | |
| aiosocks = "~=0.2.6" | |
| python-socks = "~=2.7.1" | |
| tzdata = "^2025.2" | |
| colorama = "^0.4.6" | |
| customtkinter = "^5.2.0" | |
| pillow = "^10.0.0" | |
| [tool.poetry.group.dev.dependencies] | |
| pytest = "^7.0.0" | |
| pytest-cov = "^7.0.0" | |
| pytest-mock = "^3.15.1" | |
| httpx = "^0.28.1" | |
| pytest-asyncio = "0.23.7" | |
| pytest-env = "0.8.2" | |
| pytest-timeout = "^2.4.0" | |
| pyright = "^1.1.407" | |
| ruff = "^0.14.6" | |
| pytest-testmon = "^2.1.4" | |
| monkeytype = "^23.3.0" | |
| pytest-xdist = "^3.8.0" | |
| [build-system] | |
| requires = ["poetry-core"] | |
| build-backend = "poetry.core.masonry.api" | |
| [tool.pytest.ini_options] | |
| asyncio_mode = "auto" | |
| testpaths = ["tests"] | |
| python_files = "test_*.py" | |
| addopts = "-v --cov=api_utils --cov=browser_utils --cov=stream --cov=config --cov=models --cov=launcher --cov=logging_utils --cov=server.py --cov-report=term-missing --ignore=tests/browser_utils/test_operations_old.py --tb=short" | |
| timeout = 120 | |
| timeout_method = "thread" | |
| markers = [ | |
| "integration: Integration tests that use real components (locks, queues, state) instead of mocks" | |
| ] | |
| env = [ | |
| "LAUNCH_MODE=test", | |
| "STREAM_PORT=0", | |
| ] | |
| [tool.coverage.run] | |
| omit = [ | |
| "tests/*", | |
| "**/__init__.py", | |
| "launch_camoufox.py", | |
| "monkeytype_config.py", | |
| "deprecated/*", | |
| ] | |
| [tool.coverage.report] | |
| exclude_lines = [ | |
| "if __name__ == .__main__.:", | |
| "pragma: no cover", | |
| ] | |
| [tool.ruff] | |
| line-length = 88 | |
| target-version = "py311" | |
| [tool.ruff.lint] | |
| select = ["E", "F", "I", "W"] | |
| ignore = [ | |
| "E501", # line-too-long (686 instances, too risky to fix) | |
| "E402", # module-import-not-at-top (intentional - load_dotenv first) | |
| "F405", # undefined-local-with-import-star-usage (config imports) | |
| "F403", # undefined-local-with-import-star (config imports) | |
| ] | |