| [project] | |
| name = "gcli2api" | |
| version = "0.1.0" | |
| description = "Convert GeminiCLI to OpenAI and Gemini API interfaces" | |
| readme = "README.md" | |
| requires-python = ">=3.12" | |
| license = {text = "CNC-1.0"} | |
| authors = [ | |
| {name = "su-kaka"} | |
| ] | |
| keywords = ["gemini", "openai", "api", "converter", "cli"] | |
| classifiers = [ | |
| "Development Status :: 4 - Beta", | |
| "Intended Audience :: Developers", | |
| "License :: Other/Proprietary License", | |
| "Programming Language :: Python :: 3", | |
| "Programming Language :: Python :: 3.12", | |
| "Programming Language :: Python :: 3.13", | |
| ] | |
| dependencies = [ | |
| "aiofiles>=24.1.0", | |
| "fastapi>=0.116.1", | |
| "httpx[socks]>=0.28.1", | |
| "hypercorn>=0.17.3", | |
| "motor>=3.7.1", | |
| "oauthlib>=3.3.1", | |
| "pydantic>=2.11.7", | |
| "pyjwt>=2.10.1", | |
| "python-dotenv>=1.1.1", | |
| "python-multipart>=0.0.20", | |
| "pypinyin>=0.51.0", | |
| "aiosqlite>=0.20.0", | |
| ] | |
| [project.optional-dependencies] | |
| dev = [ | |
| "pytest>=8.0.0", | |
| "pytest-asyncio>=0.23.0", | |
| "pytest-cov>=4.1.0", | |
| "black>=24.0.0", | |
| "flake8>=7.0.0", | |
| "mypy>=1.8.0", | |
| "pre-commit>=3.6.0", | |
| ] | |
| [tool.pytest.ini_options] | |
| minversion = "8.0" | |
| testpaths = ["."] | |
| python_files = ["test_*.py"] | |
| python_classes = ["Test*"] | |
| python_functions = ["test_*"] | |
| asyncio_mode = "auto" | |
| addopts = [ | |
| "-v", | |
| "--strict-markers", | |
| ] | |
| [tool.black] | |
| line-length = 100 | |
| target-version = ["py312"] | |
| include = '\.pyi?$' | |
| extend-exclude = ''' | |
| /( | |
| # directories | |
| \.eggs | |
| | \.git | |
| | \.hg | |
| | \.mypy_cache | |
| | \.tox | |
| | \.venv | |
| | build | |
| | dist | |
| )/ | |
| ''' | |
| [tool.mypy] | |
| python_version = "3.12" | |
| warn_return_any = true | |
| warn_unused_configs = true | |
| disallow_untyped_defs = false | |
| ignore_missing_imports = true | |
| exclude = [ | |
| "build", | |
| "dist", | |
| ] | |
| [tool.coverage.run] | |
| source = ["src"] | |
| omit = [ | |
| "*/tests/*", | |
| "*/test_*.py", | |
| ] | |
| [tool.coverage.report] | |
| exclude_lines = [ | |
| "pragma: no cover", | |
| "def __repr__", | |
| "raise AssertionError", | |
| "raise NotImplementedError", | |
| "if __name__ == .__main__.:", | |
| "if TYPE_CHECKING:", | |
| ] | |