-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
135 lines (130 loc) · 4.28 KB
/
pyproject.toml
File metadata and controls
135 lines (130 loc) · 4.28 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
[project]
name = "problemologist-ai"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = "~=3.12.0"
dependencies = [
"build123d",
"fastapi[standard]>=0.129.0",
"gitpython>=3.1.46",
"httpx>=0.28.1",
"numpy>=1.24,<2.2",
"pydantic>=2.12.5",
"pydantic-settings>=2.12.0",
"pyarrow>=17.0.0",
"python-dotenv>=1.2.1",
"pyyaml>=6.0.3",
"structlog>=25.5.0",
"beartype>=0.22.9",
"python-multipart>=0.0.22",
"spec-kitty-cli==0.16.1",
"watchdog>=6.0.0",
"vtk==9.4.2",
"pandas>=3.0.2",
"deprecated>=1.3.1",
]
[dependency-groups]
rendering = [
"matplotlib>=3.10.8",
"opencv-python-headless>=4.13.0.92",
"pillow<12.0",
"trimesh[easy]>=4.11.2",
]
filesystem = [
"sqlalchemy>=2.0.46",
]
cad = [
"bd_warehouse",
]
temporal = [
"temporalio>=1.22.0",
]
simulation = [
"ffmpeg-python>=0.2.0",
"genesis-world>=0.3.14",
"gmsh>=4.15.0",
"mujoco>=3.5.0",
"numba>=0.61.0",
"pyopengl-accelerate>=3.1.10",
"pyspice>=1.5",
"scipy>=1.17.0",
"torch>=2.10.0",
]
controller = [
"alembic>=1.18.4",
"asyncpg>=0.31.0",
"boto3>=1.42.49",
"dspy-ai>=2.5.43",
"langchain>=1.2.10",
"langchain-core>=1.2.12",
"langfuse>=3.14.1",
"langgraph>=1.0.8",
"langgraph-checkpoint-postgres>=3.0.4",
"langgraph-checkpoint-sqlite>=3.0.3",
"litellm>=1.82.1",
"openinference-instrumentation-dspy>=0.1.13",
"psycopg[binary]>=3.3.2",
"s3fs>=2026.2.0",
]
dev = [
"datamodel-code-generator>=0.54.0",
"playwright>=1.58.0",
"pytest-playwright>=0.7.2",
"pyrefly>=0.52.0",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"pytest-xdist>=3.8.0",
"ruff>=0.15.1",
"schemathesis>=4.10.1",
"spec-kitty-cli>=0.15.3",
"moto[s3]>=5.1.21",
"pytest-reverse>=1.9.0",
"mdformat>=1.0.0",
"mdformat-gfm>=1.0.0",
"mdformat-frontmatter>=2.0.10",
"pytest-randomly>=4.0.1",
]
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "UP", "B", "A", "C4", "SIM", "RET", "ARG", "PTH", "RUF"]
ignore = []
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
# keep it paralel. no point in disabling globally.
# set to -n0 in integration tests though!
addopts = "-n2 -m 'not (integration or integration_p0 or integration_p1 or integration_p2 or integration_frontend)'"
filterwarnings = [
"ignore::DeprecationWarning:ezdxf.queryparser",
"ignore::DeprecationWarning:build123d.objects_curve",
"ignore::DeprecationWarning:multiprocessing.popen_fork",
"ignore::DeprecationWarning:gstaichi.*",
"ignore:Support for class-based `config` is deprecated:DeprecationWarning",
"ignore:.*torch.jit.script.*:DeprecationWarning:torch.jit.*",
"ignore:The truth value of an empty array is ambiguous:DeprecationWarning:worker.simulation.genesis_backend",
]
markers = [
"integration: marks tests as integration tests (may use real LLM)",
"integration_p0: PR gate integration tests",
"integration_p1: Nightly integration tests",
"integration_p2: Weekly/manual integration tests",
"integration_agent: agent orchestration and behavior integration tests",
"integration_frontend: end-to-end frontend tests",
"int_id(value): canonical INT-xxx mapping for integration regression tests",
"allow_browser_errors: allow console.error/pageerror for tests that intentionally exercise error paths",
"allow_backend_errors: allow backend log errors/exceptions; no-arg marker allows all, marker args/regexes/patterns kwargs allow only matching lines",
"disable_manifest_update: disable automatic seed manifest repair for tests that intentionally exercise stale-manifest behavior",
"unit: marks tests as unit tests", # FIXME: remove
"benchmark: marks tests related to the benchmark generator",
"debug_fuzz: manual debugging for schemathesis tests",
"worker_heavy_fuzz: marks heavy-worker fuzzing tests",
"dev_automations: marks tests for internal automation scripts (orchestrators)",
]
[tool.uv.sources]
build123d = { git = "https://github.com/gumyr/build123d.git", branch = "dev" }
pyspice = { git = "https://github.com/FabriceSalvaire/PySpice" }
spec-kitty-cli = { git = "https://github.com/Priivacy-ai/spec-kitty.git", rev = "v2.0.3" }