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