-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
81 lines (72 loc) · 3.4 KB
/
Copy pathpyproject.toml
File metadata and controls
81 lines (72 loc) · 3.4 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
[project]
name = "foretop-telltale"
version = "0.2.0"
description = "Compares an OpenAPI contract with the telemetry a service actually emits, and produces a route-by-route gap list before an incident finds it for you."
readme = "README.md"
requires-python = ">=3.12"
license = "Apache-2.0"
license-files = ["LICENSE"]
dependencies = [
"typer>=0.15",
"rich>=13.9",
"pathspec>=0.12",
"pyyaml>=6.0",
# keel.finding's own dependency — vendored into src/keel/finding.py by
# scripts/sync-mirror.sh since Session 26, when telltale started emitting the
# suite-wide Finding schema for --format json. Not needed by the monorepo's own
# apps/telltale/pyproject.toml, which gets it transitively via foretop-keel.
"pydantic>=2.9",
# keel.report's/keel.gate's own dependency (--report, --gate) — a real gap found
# consolidating the four sync scripts into scripts/sync-mirror.sh: neither module had ever
# been vendored before, despite apps/telltale/src/telltale/cli.py importing both since
# H1/H6/H8.
"httpx>=0.28",
]
[project.scripts]
telltale = "telltale.__main__:app"
# uv's `uvx <name>` runs the entry point matching the distribution name by default (no `--from`
# needed) — apps/telltale/action.yml (Session 14) and the mirror's own README both promise
# exactly `uvx foretop-telltale check .`, so that name needs its own script pointing at the
# same app, not just `telltale`. Same fix apps/ebb/pyproject.toml already has for the identical
# situation — found here by actually building the wheel and inspecting entry_points.txt, not
# just assumed to already be right because ebb's copy of this comment existed.
foretop-telltale = "telltale.__main__:app"
[dependency-groups]
dev = [
"pytest>=8.3",
"types-pyyaml>=6.0",
"mypy>=2.3.0",
"ruff>=0.16.2",
]
# No [tool.uv.sources]/foretop-keel here, unlike the monorepo's own copy of this file — this is
# the mirror-specific pyproject.toml (scripts/sync-mirror.sh copies this file instead
# of apps/telltale/pyproject.toml). keel.git_ref/keel.collect.{line_tracking,walk} are vendored
# as a real sibling package at src/keel/ instead (see the sync script's own comment for why:
# no published foretop-keel PyPI package exists yet). module-name as a list is real, supported
# uv_build syntax for a project whose wheel contains more than one top-level package — verified
# live against uv's own build-backend docs this session, not guessed.
[tool.uv.build-backend]
module-name = ["telltale", "keel"]
[build-system]
requires = ["uv_build>=0.11.32,<0.12.0"]
build-backend = "uv_build"
[tool.ruff]
line-length = 100
target-version = "py312"
extend-exclude = ["tests/fixtures", "tests/golden"]
[tool.ruff.lint]
select = ["E", "F", "I", "N", "UP", "B", "A", "C4", "SIM", "TCH", "RUF"]
[tool.ruff.lint.isort]
# keel is vendored as a sibling package under src/ (same root as telltale itself), which ruff's
# own isort would otherwise auto-detect as first-party regardless of known-first-party — an
# explicit known-third-party pin keeps it grouped as third-party, matching the import order the
# vendored files already have as copied verbatim from the monorepo (where keel genuinely is a
# third-party workspace dependency). Without this, ruff would demand a reorder the sync script
# doesn't perform.
known-third-party = ["keel"]
known-first-party = ["telltale"]
[tool.mypy]
strict = true
python_version = "3.12"
[tool.pytest.ini_options]
addopts = "-ra"