-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
139 lines (119 loc) · 3.83 KB
/
Copy pathpyproject.toml
File metadata and controls
139 lines (119 loc) · 3.83 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
[build-system]
requires = ["setuptools>=61", "wheel", "build", "setuptools_scm[toml]>=8"]
build-backend = "setuptools.build_meta"
[project]
name = "weightslab"
dynamic = ["version"]
description = "Paving the way between black-box and white-box modeling."
readme = "README.md"
authors = [
{ name = "Alexandru-Andrei Rotaru", email = "alexandru@graybx.com" },
{ name = "Guillaue Pelluet", email = "guillaue@graybx.com" }
]
license = { text = "BSD 2-clause" }
requires-python = ">=3.10"
classifiers = [
"Development Status :: 1 - Planning",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.10",
]
# Runtime dependencies for the base package.
#
# Packaging note:
# - Avoid strict `==` pins in published libraries to reduce resolver conflicts for users.
# - Prefer compatible ranges, then pin exact versions only in CI/lockfiles.
dependencies = [
# Core data / persistence
"numpy>=1.25.2,<2.0; python_version < '3.13'",
"numpy>=2.1,<3; python_version >= '3.13'",
"pandas>=2.2.3,<3",
"duckdb>=1.1,<2", # signal/sample/instance history store
"PyYAML>=6.0.3,<7",
"dill>=0.3.8,<0.5",
"zstandard>=0.22,<1",
"h5py>=3.10,<4",
"xxhash>=3.4,<4.1",
"tables>=3.9,<4", # h5 deps
# PyTorch stack
"torch>=2.1,<2.9; python_version < '3.13'",
"torch==2.9; python_version >= '3.13'",
"torchvision>=0.16,<0.24; python_version < '3.13'",
"torchvision>=0.24,<1; python_version >= '3.13'",
"torchmetrics>=1.9",
# Serving / schema
"grpcio>=1.80,<2",
"protobuf>=4.25,<7",
"pydantic>=2.7,<3",
# Imaging
"Pillow>=10,<12",
"graphviz>=0.20,<1",
# Modeling
"onnx>=1.15,<=1.20",
# Utility used in examples and progress reporting
"tqdm>=4.66,<5",
# Environment variable loading (used by agent service)
"python-dotenv>=1,<2",
# Agent service runtime deps (imported by default module graph)
"langchain-core>=0.3,<2",
"langchain-ollama>=0.2,<2",
"langchain-openai>=0.2,<2",
]
[project.optional-dependencies]
# Optional: ultralytics onboarding
ultralytics = [
"ultralytics>=8.4.16",
]
# Optional: runtime backend for ONNX model execution
onnx = [
"onnxruntime>=1.17,<2",
"onnxscript>=0.6.2,<0.7",
]
# Optional: developer tooling used for local development / codegen
dev = [
"grpcio-tools>=1.62,<2",
"torchinfo>=1.8,<2",
"httpx>=0.27,<1",
]
utest = [
"torchaudio>=2.1,<2.9; python_version < '3.13'",
"torchaudio>=2.9,<3; python_version >= '3.13'",
"torchmetrics>=1.3,<2",
"pytorch-lightning>=2.2,<3",
"tensorboard>=2.14,<3",
"pytest>=9.0.2",
]
[project.scripts]
weightslab = "weightslab.ui_docker_bridge:main"
[project.urls]
Homepage = "https://github.com/GrayboxTech/weightslab"
[tool.setuptools]
# Ship non-.py assets that live inside the package (docker stack + bundled
# examples). Combined with the explicit globs below so the CLI subcommands
# (`ui launch`, `start example`) find their files in a pip-installed package.
include-package-data = true
[tool.setuptools.packages.find]
where = ["."]
include = ["weightslab", "weightslab.*"]
[tool.setuptools.package-data]
# Bundle the docker stack (compose files, envoy/nginx configs, shell scripts)
# and the example projects (main.py, config.yaml, sample data) that the
# `weightslab` CLI resolves relative to the installed package.
weightslab = [
"docker/**/*",
"examples/**/*",
]
[tool.setuptools.exclude-package-data]
# Never ship generated/local artifacts even if present on disk at build time.
weightslab = [
"docker/docker/.env",
"**/__pycache__/**",
"**/*.pyc",
]
[tool.setuptools_scm]
# Write the generated version into a small module so your package can import it at runtime
write_to = "weightslab/_version.py"
# Optional: choose version/local schemes — defaults are usually fine
version_scheme = "guess-next-dev"
local_scheme = "no-local-version"