-
Notifications
You must be signed in to change notification settings - Fork 67
Expand file tree
/
Copy pathpyproject.toml
More file actions
86 lines (78 loc) · 2.1 KB
/
Copy pathpyproject.toml
File metadata and controls
86 lines (78 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
[project]
name = "goat-monorepo"
description = "GOAT, an intelligent software for modern web mapping and integrated planning"
version = "2.0.0"
requires-python = ">3.10,<3.12"
dependencies = [
"boto3>=1.38.23",
"dotenv>=0.9.9",
"goatlib",
"python-jose>=3.4.0",
]
authors = [{ name = "Plan4Better GmbH", email = "[email protected]" }]
[dependency-groups]
dev = [
"pre-commit==4.0.1",
"pyright==1.1.384",
"pytest-asyncio==0.24.0",
"pytest-cov==5.0.0",
"pytest-mock==3.14.0",
"pytest-postgresql==6.1.1",
"pytest-testmon==2.1.1",
"pytest-sugar==1.0.0",
"pytest==8.3.5",
"mypy==1.13.0",
"ruff==0.7.3",
"pytest-memray>=1.8.0",
]
[tool.uv]
package = false
[tool.uv.sources]
core = { workspace = true }
geoapi = { workspace = true }
goatlib = { workspace = true }
goatobs = { workspace = true }
processes = { workspace = true }
[tool.uv.workspace]
members = [
"apps/geoapi",
"apps/core",
"apps/processes",
"packages/python/goatlib",
"packages/python/goatobs",
]
[tool.mypy]
strict = true
ignore_missing_imports = true
exclude = ["venv", ".venv", "alembic", "data"]
# mypy is the Python type gate. Pyright/Pylance type checking is disabled so it
# does not flood SQLModel/SQLAlchemy code with false positives; it still reports
# unresolved imports and syntax errors and powers autocomplete/navigation.
[tool.pyright]
typeCheckingMode = "off"
[tool.ruff.lint]
select = ["F", "E", "W", "N", "I", "ANN"]
ignore = ["E501", "ANN401", "ANN101", "ANN102"]
per-file-ignores = { "*/__init__.py" = [
"F401",
], "*/alembic/*" = [
"ANN",
"F401",
"I001",
"W291",
], "**/tests/**" = [
"ANN",
] }
[tool.pytest.ini_options]
asyncio_mode = "auto"
addopts = ["--import-mode=importlib", "--log-cli-level=INFO"]
pythonpath = ["apps/core", "apps/geoapi"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*", "*Tests"]
python_functions = ["test_*"]
markers = [
"unit: Unit tests",
"integration: Integration tests",
"network: Tests that access external network services (WFS, HTTP, etc.)",
]
asyncio_default_fixture_loop_scope = "function"