Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
137 lines (119 loc) · 3.65 KB
/
Copy pathpyproject.toml
File metadata and controls
137 lines (119 loc) · 3.65 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
[project]
name = "nteract-workspace"
version = "0.0.0"
description = "Development workspace for nteract Python packages"
requires-python = ">=3.10,<3.14"
dependencies = [
"nteract",
"gremlin ; sys_platform == 'darwin'",
"dx",
"nteract-kernel-launcher",
"pr-reviewer ; sys_platform == 'darwin'",
"safari-timeline",
"pandas",
"polars",
"pyarrow>=14",
"numpy>=2.2.6",
"narwhals>=1.0",
"anywidget>=0.9.21",
]
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = []
[tool.uv.workspace]
members = ["python/runtimed", "python/nteract", "python/gremlin", "python/prewarm", "python/dx", "python/nteract-kernel-launcher", "python/pr-reviewer", "python/safari-timeline"]
[tool.uv]
environments = [
"sys_platform == 'darwin'",
"sys_platform == 'linux'",
]
[tool.uv.sources]
runtimed = { workspace = true }
nteract = { workspace = true }
gremlin = { workspace = true }
dx = { workspace = true }
nteract-kernel-launcher = { workspace = true }
pr-reviewer = { workspace = true }
safari-timeline = { workspace = true }
[tool.ruff]
line-length = 100
target-version = "py310"
include = ["python/**/*.py", "python/**/*.pyi", "scripts/**/*.py"]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"UP", # pyupgrade
"B", # flake8-bugbear
"SIM", # flake8-simplify
]
[tool.ruff.lint.isort]
known-first-party = ["runtimed", "nteract", "prewarm", "pr_reviewer", "safari_timeline"]
[tool.ruff.lint.per-file-ignores]
"**/tests/**" = ["SIM105", "SIM117"]
[dependency-groups]
dev = [
"ruff==0.15.10",
"ty>=0.0.22",
"pytest>=8.0",
"pyzmq>=26.0",
"numpy>=1.26",
"matplotlib>=3.8",
"anywidget>=0.9.21",
"quak>=0.3.4",
"polars>=1.39.3",
"plotly>=6.0",
"nbformat>=5.0",
"datasets>=2.0",
# yarl 1.24.x has been published without cp312 wheels or an sdist.
"yarl<1.24.0",
]
agents = [
"claude-agent-sdk>=0.1.0",
]
[tool.ty.environment]
# Workspace members use src-layout; .pth files from editable installs
# aren't visible to static analysis, so we add the source roots explicitly.
extra-paths = [
"python/runtimed/src",
"python/nteract/src",
"python/gremlin/src",
"python/prewarm/src",
"python/dx/src",
"python/pr-reviewer/src",
"python/safari-timeline/src",
# nteract-kernel-launcher is a single top-level .py file, no src/ layout
"python/nteract-kernel-launcher",
# Integration tests sit side-by-side under tests/ and share fixtures
# via direct import (sys.path injection at runtime). Add the dir so
# ty can resolve the cross-file fixture imports.
"python/runtimed/tests",
]
[tool.ty.rules]
# .pyi stubs exist for the native PyO3 module (runtimed.pyi) — keep this strict
unresolved-import = "error"
# Tests patch builtins.get_ipython which ty can't model
[[tool.ty.overrides]]
include = ["**/tests/**"]
[tool.ty.overrides.rules]
unresolved-attribute = "ignore"
invalid-assignment = "ignore"
# Gremlin depends on claude-agent-sdk which is macOS-only (not in CI)
[[tool.ty.overrides]]
include = ["python/gremlin/**"]
[tool.ty.overrides.rules]
unresolved-import = "ignore"
# nteract_kernel_launcher uses function-attribute idempotency tags
# (`hook._nteract_installed = True`). ruff's B010 refactors away the
# alternative `setattr(...)` form, so we can't mask this on the call
# site. Scope the override narrowly to the launcher package.
[[tool.ty.overrides]]
include = ["python/nteract-kernel-launcher/**"]
[tool.ty.overrides.rules]
unresolved-attribute = "ignore"
[tool.ruff.format]
quote-style = "double"