| [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:", |
| ] |
|
|