Jack1808/Claude_Code
0
1[build-system]2requires = ["hatchling"]3build-backend = "hatchling.build"4 5[project]6name = "free-claude-code"7version = "2.0.0"8description = "Middleware between Claude Code CLI (Anthropic API) and NVIDIA NIM"9readme = "README.md"10requires-python = ">=3.12"11dependencies = [12 "fastapi[standard]>=0.115.11",13 "uvicorn>=0.34.0",14 "httpx>=0.25.0",15 "markdown-it-py>=3.0.0",16 "pydantic>=2.0.0",17 "python-dotenv>=1.0.0",18 "tiktoken>=0.7.0",19 "python-telegram-bot>=21.0",20 "discord.py>=2.0.0",21 "pydantic-settings>=2.12.0",22 "openai>=2.16.0",23 "loguru>=0.7.0",24]25 26[project.scripts]27free-claude-code = "cli.entrypoints:serve"28fcc-init = "cli.entrypoints:init"29 30[project.optional-dependencies]31voice = [32 "grpcio>=1.78.0",33 "grpcio-tools>=1.78.0",34 "nvidia-riva-client>=2.15.0",35]36voice_local = [37 "torch>=2.0.0",38 "transformers>=4.45.0",39 "accelerate>=0.30.0",40 "librosa>=0.10.0",41]42 43[tool.hatch.build.targets.wheel]44packages = ["api", "cli", "config", "messaging", "providers"]45 46[tool.uv.sources]47torch = { index = "pytorch-cu130" }48 49[[tool.uv.index]]50name = "pytorch-cu130"51url = "https://download.pytorch.org/whl/cu130"52explicit = true53 54[dependency-groups]55dev = [56 "pytest>=9.0.2",57 "pytest-asyncio>=1.3.0",58 "pytest-cov>=7.0.0",59 "ty>=0.0.1",60 "ruff>=0.9.0",61 "pytest-xdist>=3.8.0",62]63 64[tool.ruff]65target-version = "py314"66line-length = 8867 68[tool.ruff.lint]69select = [70 "E", # pycodestyle errors71 "W", # pycodestyle warnings72 "F", # Pyflakes (undefined names, unused imports)73 "I", # isort (import ordering)74 "UP", # pyupgrade (modernise syntax for target Python version)75 "B", # flake8-bugbear (common bugs and anti-patterns)76 "C4", # flake8-comprehensions (idiomatic comprehensions)77 "SIM", # flake8-simplify (simplifiable code patterns)78 "PERF", # Perflint (performance anti-patterns)79 "RUF", # Ruff-specific rules80]81ignore = [82 "E501", # line too long — enforced by the formatter instead83 "B008", # FastAPI Depends() in argument defaults is intentional84 "RUF006", # fire-and-forget tasks intentionally not awaited85]86 87[tool.ruff.lint.isort]88known-first-party = ["api", "cli", "config", "messaging", "providers", "utils"]89 90[tool.ruff.format]91quote-style = "double"92indent-style = "space"93line-ending = "auto"94skip-magic-trailing-comma = false95 96[tool.pytest.ini_options]97pythonpath = ["."]98addopts = "-n auto"99 100[tool.ty.environment]101python-version = "3.14"102 103[tool.ty.analysis]104# Optional voice_local extra: torch, transformers, librosa for local whisper transcription105# Optional voice extra: nvidia-riva-client for nvidia_nim transcription provider106allowed-unresolved-imports = ["torch", "transformers", "librosa", "riva.client"]107 