-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
175 lines (159 loc) · 5.97 KB
/
Copy pathpyproject.toml
File metadata and controls
175 lines (159 loc) · 5.97 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
[build-system]
requires = ["setuptools>=75.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "marimo-flow"
version = "0.4.0"
description = "Agentic scientific-computing platform: a reactive multi-agent team orchestrating PINA physics-informed neural-network workflows via pydantic-graph, with MLflow tracing/provenance and a marimo chat UI."
readme = "README.md"
requires-python = ">=3.11"
license = "MIT"
license-files = ["LICENSE"]
authors = [
{name = "Björn Bethge", email = "helloworld@synapticore.io"},
]
keywords = [
"agentic-ai",
"multi-agent",
"scientific-computing",
"marimo",
"mlflow",
"pina",
"physics-informed-neural-networks",
"pde-solver",
"reactive-notebooks",
"machine-learning",
"pydantic-ai",
"pydantic-graph",
"ollama",
"mcp",
"model-context-protocol",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"marimo[lsp,recommended,sql,mcp]>=0.23.1",
"mlflow[genai,mcp]>=3.11.1",
"optuna>=4.8.0",
"pina-mathlab>=0.2.6",
"transformers[accelerate,tiktoken]>=5.5.4",
# security: explicit minimums for vulnerable transitive deps
"authlib>=1.6.9",
"pillow>=12.2.0",
"cryptography>=46.0.7",
"langgraph>=1.1.8",
"werkzeug>=3.1.8",
"sqlparse>=0.5.5",
"diskcache>=5.6.3",
"protobuf>=6.33.6",
"python-multipart>=0.0.22",
"ujson>=5.12.0",
"pyasn1>=0.6.3",
"pyjwt>=2.12.1",
"flask>=3.1.3",
"optuna-integration[pytorch-lightning]>=4.8.0",
"plotly[express,kaleido]>=6.7.0",
# pydantic-ai 2.x dropped the bundled `a2a` extra; A2A now comes via the
# standalone `fasta2a` dep below (still the same agent_to_a2a API).
"pydantic-ai-slim[ag-ui]>=2.10.0",
"pyyaml>=6.0.3",
"python-dotenv>=1.2.2",
"typer>=0.24.1",
"sympy>=1.14.0",
"meshio>=5.3.5",
"fasta2a>=0.6.1",
]
[project.optional-dependencies]
all = [
"torch>=2.11.0",
"torch-geometric>=2.7.0",
]
[dependency-groups]
dev = [
"mypy>=1.20.1",
"pre-commit>=4.5.1",
"pytest>=9.0.3",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"ruff>=0.15.11",
]
docs = [
"sphinx>=9.0.4",
"sphinx-rtd-theme>=3.1.0",
]
[project.urls]
Homepage = "https://github.com/synapticore-io/marimo-flow"
Repository = "https://github.com/synapticore-io/marimo-flow"
[project.scripts]
marimo-flow = "marimo_flow.cli:main"
[tool.setuptools]
include-package-data = true
zip-safe = false
[tool.setuptools.packages.find]
where = ["src"]
include = ["marimo_flow*"]
exclude = ["tests*", "docs*", "examples*", "raw*", "models*", "mlruns*"]
[tool.setuptools.package-data]
marimo_flow = ["py.typed", "*.yaml", "*.yml", "*.json", "*.css", "*.mp4"]
[tool.uv]
link-mode = "copy"
# Override mlflow's `fastmcp<3` pin to pick up security fixes (CVE-2026-32871,
# CVE-2026-27124, CVE-2025-64340). Revisit once mlflow supports fastmcp 3.
override-dependencies = ["fastmcp>=3.2.0"]
[tool.ruff]
line-length = 88
target-version = "py311"
extend-exclude = [".claude/Skills/*/examples"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
ignore = ["E501"]
[tool.ruff.lint.flake8-bugbear]
# typer's API is built on function-call defaults (Option/Argument); this is
# the intended pattern, not the B008 mutable-default footgun.
extend-immutable-calls = ["typer.Option", "typer.Argument"]
[tool.ruff.lint.per-file-ignores]
# marimo cells render the last bare expression as cell output
"examples/*" = ["B018"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
[tool.pytest.ini_options]
asyncio_mode = "auto"
filterwarnings = [
# ─── Upstream-only warnings (cannot be fixed in this repo) ───
# PINA hard-disables torch.compile on Windows / Python ≥ 3.14 and warns
# unconditionally. The else-branch never runs on Windows, so the only
# way to suppress this is upstream — see pina.trainer:114.
"ignore:Compilation is disabled for Python 3.14\\+ and for Windows:UserWarning:pina.trainer",
# Same shape: PINA disables compilation for torch ≥ 2.8 and warns
# unconditionally. Tracked at https://github.com/mathLab/PINA/issues/621.
"ignore:Compilation is disabled for torch >= 2.8:UserWarning:pina.solver.physics_informed_solver.pinn_interface",
# Lightning emits PossibleUserWarning whenever a model defines
# validation_step without an attached val_dataloader. PINA's PINN
# solver always defines validation_step (for residual computation),
# but our composer-built problems don't ship a val dataloader. Setting
# limit_val_batches=0 / num_sanity_val_steps=0 doesn't suppress it
# because the warning fires before the limits are read.
"ignore:You defined a `validation_step` but have no `val_dataloader`:lightning.pytorch.utilities.warnings.PossibleUserWarning",
# torch_geometric.distributed self-deprecation — fires once at import
# time. The warn() uses stacklevel=2 so the recorded module is the
# caller (torch_geometric.llm.utils.backend_utils).
"ignore:`torch_geometric.distributed` has been deprecated:DeprecationWarning:torch_geometric.llm.utils.backend_utils",
# torch.jit.script deprecation fired by torch itself at import; will be
# gone once torch.compile / torch.export migration completes upstream.
"ignore:`torch.jit.script` is deprecated:DeprecationWarning:torch.jit._script",
# Lightning ↔ torch._pytree version skew — Lightning still uses the
# legacy LeafSpec API that torch ≥ 2.7 deprecates.
"ignore:`isinstance\\(treespec, LeafSpec\\)` is deprecated:FutureWarning:lightning.pytorch.utilities._pytree",
]
[tool.uv.sources]