Skip to content

Commit 269b4c1

Browse files
committed
build: configure uv/ty/ruff and lock deps
1 parent 5bde97a commit 269b4c1

2 files changed

Lines changed: 948 additions & 0 deletions

File tree

pyproject.toml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
[project]
2+
name = "fastapi-cloudflow"
3+
version = "0.0.1"
4+
description = "Typed Python-to-Google Cloud Workflows framework with FastAPI codegen"
5+
readme = "README.md"
6+
requires-python = ">=3.13"
7+
authors = [
8+
{ name = "Joao Daher", email = "joao@daher.dev" }
9+
]
10+
dependencies = [
11+
"fastapi>=0.111",
12+
"pydantic>=2.6",
13+
"PyYAML>=6.0.1",
14+
"typer>=0.16.0",
15+
]
16+
17+
[project.scripts]
18+
fastapi-cloudflow = "fastapi_cloudflow.cli:app"
19+
20+
[dependency-groups]
21+
cli = [
22+
"typer>=0.12",
23+
]
24+
dev = [
25+
"pytest>=8.4.1",
26+
"pytest-cov>=6.0.0",
27+
"pytest-rerunfailures>=15.0",
28+
"ruff>=0.12.9",
29+
"ty>=0.0.1a18",
30+
"email-validator>=2.2.0",
31+
"httpx>=0.27.0",
32+
]
33+
docs = [
34+
"mkdocs>=1.6.1",
35+
"mkdocs-material>=9.6.14",
36+
]
37+
38+
[tool.ruff]
39+
target-version = "py313"
40+
line-length = 120
41+
exclude = [
42+
".git",
43+
".ruff_cache",
44+
".venv",
45+
"__pycache__",
46+
"build",
47+
"dist",
48+
]
49+
50+
[tool.ruff.lint]
51+
select = [
52+
"E", # pycodestyle errors
53+
"W", # pycodestyle warnings
54+
"F", # pyflakes
55+
"I", # isort
56+
"B", # flake8-bugbear
57+
"C4", # flake8-comprehensions
58+
"UP", # pyupgrade
59+
"SIM", # flake8-simplify
60+
"ICN", # flake8-import-conventions
61+
]
62+
63+
[tool.ruff.lint.per-file-ignores]
64+
"tests/*" = ["S101"]
65+
66+
[tool.ruff.lint.isort]
67+
known-first-party = ["fastapi_cloudflow", "app", "tests"]
68+
69+
70+
[tool.ty.environment]
71+
root = ["./src", "./examples/app"]
72+
73+
[tool.pytest.ini_options]
74+
addopts = [
75+
"--reruns=3",
76+
"--strict-markers",
77+
"--strict-config",
78+
"--cov=fastapi_cloudflow",
79+
"--cov-report=term-missing",
80+
"--cov-report=html",
81+
"--cov-report=xml",
82+
]
83+
testpaths = ["tests"]
84+
pythonpath = ["src", "examples/app"]
85+
86+
[tool.coverage.run]
87+
source = ["src"]
88+
branch = true
89+
omit = [
90+
"src/fastapi_cloudflow/cli.py"
91+
]
92+
93+
[tool.coverage.report]
94+
exclude_lines = [
95+
"pragma: no cover",
96+
]
97+
98+
[build-system]
99+
requires = ["uv_build>=0.7.19"]
100+
build-backend = "uv_build"
101+
102+
[tool.uv]
103+
package = true

0 commit comments

Comments
 (0)