1+ [project ]
2+ name = " openapi-burrito"
3+ version = " 0.1.0"
4+ description = " A lightweight CLI tool to generate a type-safe Python client from an OpenAPI specification."
5+ readme = " README.md"
6+ requires-python = " >=3.12"
7+ license = {text = " MIT" }
8+ authors = [
9+ {name = " Simon Lund" , email = " simon.lund@lmu.de" }
10+ ]
11+ keywords = [
12+ " openapi" ,
13+ " openapi-fetch" ,
14+ " swagger" ,
15+ " type-safe" ,
16+ " code-generation" ,
17+ " sdk-generator" ,
18+ " httpx" ,
19+ ]
20+ classifiers = [
21+ " Programming Language :: Python :: 3.12" ,
22+ " Programming Language :: Python :: 3.13" ,
23+ " Programming Language :: Python :: 3.14" ,
24+ " License :: OSI Approved :: MIT License" ,
25+ " Operating System :: OS Independent" ,
26+ " Intended Audience :: Developers" ,
27+ ]
28+
29+ dependencies = [
30+ " httpx>=0.28.1" ,
31+ " jinja2>=3.1.6" ,
32+ " openapi-spec-validator>=0.7.2" ,
33+ " prance>=25.4.8.0" ,
34+ " pyyaml>=6.0.3" ,
35+ " typer>=0.12.0" ,
36+ ]
37+
38+ [project .urls ]
39+ Homepage = " https://github.com/simon-lund/openapi-burrito"
40+ Documentation = " https://github.com/simon-lund/openapi-burrito#readme"
41+ Repository = " https://github.com/simon-lund/openapi-burrito.git"
42+ Issues = " https://github.com/simon-lund/openapi-burrito/issues"
43+
44+ [project .scripts ]
45+ # Run all quality checks
46+ check = { composite = [" lint" , " typecheck" , " test" ] }
47+ # Linting and auto-fixing
48+ lint = " ruff check --fix ."
49+ # Type checking
50+ typecheck = " mypy ."
51+ # Testing with coverage
52+ test = " pytest --cov=openapi_burrito"
53+ # CLI entry point
54+ openapi-burrito = " openapi_burrito.cli:app"
55+
56+ [build-system ]
57+ requires = [" hatchling" ]
58+ build-backend = " hatchling.build"
59+
60+ # --- Build Configuration ---
61+
62+ [tool .hatch .build .targets .sdist ]
63+ include = [" /openapi_burrito" , " /README.md" , " /LICENSE" ]
64+ exclude = [" examples/" , " tests/" ]
65+
66+ [tool .hatch .build .targets .wheel ]
67+ packages = [" openapi_burrito" ]
68+
69+ # --- Tooling Configuration ---
70+
71+ [tool .ruff ]
72+ line-length = 88
73+ target-version = " py312"
74+
75+ [tool .ruff .lint ]
76+ select = [" E" , " F" , " I" , " UP" , " N" ] # Error, Flake, Import sort, Upgrade, Naming
77+ fixable = [" ALL" ]
78+
79+ [tool .mypy ]
80+ python_version = " 3.12"
81+ strict = true
82+
83+ # --- Dependency Groups ---
84+
85+ [dependency-groups ]
86+ dev = [
87+ " mypy>=1.14.0" ,
88+ " ruff>=0.9.0" ,
89+ ]
90+ test = [
91+ " pytest>=8.0.0" ,
92+ " pytest-cov>=4.1.0" ,
93+ " cattrs>=25.3.0" ,
94+ " respx>=0.21.0" , # Great for mocking httpx calls in tests
95+ ]
0 commit comments