Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
100 lines (88 loc) · 2.55 KB
/
Copy pathpyproject.toml
File metadata and controls
100 lines (88 loc) · 2.55 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
[project]
name = "obehy"
version = "0.1.0"
description = "Czech public-transport static feed builds and publication"
readme = "README.md"
requires-python = ">=3.13,<3.14"
dependencies = [
"gtfs-realtime-bindings>=3.0.0",
"psycopg[binary]>=3.3,<4",
"pyarrow>=25,<26",
"pyproj>=3.7,<4",
"rich>=14,<15",
"shapely>=2.1,<3",
"zstandard>=0.23,<1",
]
[project.scripts]
obehy = "obehy.cli:main"
obehy-national-jdf = "obehy.national_jdf:main"
obehy-national-czptt = "obehy.national_czptt:main"
obehy-osm = "obehy.osm_snapshot:main"
[dependency-groups]
dev = [
"import-linter>=2.15",
"pyarrow-stubs>=20,<21",
"pyright>=1.1.403,<2",
"pytest>=8.4,<9",
"pytest-cov>=6.2,<7",
"ruff>=0.12,<1",
]
[build-system]
requires = ["hatchling>=1.27"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/obehy"]
[tool.hatch.build.targets.wheel.force-include]
"src/obehy/data/post-inference" = "obehy/data/post-inference"
"src/obehy/data/regional-gtfs-overlay" = "obehy/data/regional-gtfs-overlay"
"src/obehy/data/realtime" = "obehy/data/realtime"
"src/obehy/data/serving" = "obehy/data/serving"
[tool.pytest.ini_options]
addopts = "-ra --strict-config --strict-markers"
testpaths = ["tests"]
markers = ["postgres: needs OBEHY_TEST_DATABASE_URL (skipped without it)"]
[tool.ruff]
target-version = "py313"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM", "RUF", "DTZ"]
[tool.pyright]
pythonVersion = "3.13"
typeCheckingMode = "strict"
include = ["src", "tests"]
exclude = ["converters"]
[tool.importlinter]
root_package = "obehy"
include_external_packages = true
[[tool.importlinter.contracts]]
name = "The realtime core is pure: no database, network, filesystem services or connectors"
type = "forbidden"
source_modules = [
"obehy.realtime.model",
"obehy.realtime.facts",
"obehy.realtime.index",
"obehy.realtime.geo",
"obehy.realtime.times",
"obehy.realtime.core",
"obehy.realtime.infer",
"obehy.realtime.timeline",
"obehy.realtime.policy",
"obehy.realtime.model_json",
"obehy.realtime.runs",
"obehy.realtime.evaluate",
"obehy.realtime.platforms",
]
forbidden_modules = [
"psycopg",
"urllib",
"asyncio",
"obehy.release",
"obehy.pipeline",
"obehy.realtime.archive",
"obehy.realtime.record",
]
[[tool.importlinter.contracts]]
name = "Connectors only declare and decode: no inference, timeline or core"
type = "forbidden"
source_modules = ["obehy.realtime.sources"]
forbidden_modules = ["obehy.realtime.core", "obehy.realtime.infer", "obehy.realtime.timeline"]