Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
100 lines (82 loc) · 2.37 KB
/
Copy pathpyproject.toml
File metadata and controls
100 lines (82 loc) · 2.37 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
[build-system]
requires = ["hatchling>=1.27,<2"]
build-backend = "hatchling.build"
[project]
name = "hypertrain"
version = "0.1.0"
description = "Cortex challenge: verifiable decentralized full pretraining (DiLoCo-style) on public datasets"
readme = "README.md"
license = "Apache-2.0"
requires-python = "==3.12.*"
dependencies = [
"fastapi>=0.133",
"uvicorn>=0.34",
"httpx>=0.28,<1",
"pydantic>=2.12,<3",
"py-sr25519-bindings>=0.2.3,<0.3",
"numpy>=2",
"safetensors>=0.5",
"py-ecc>=8,<9",
"pyarrow>=25.0.1",
"tokenizers>=0.23.2",
"zstandard==0.25.0",
]
[project.scripts]
hypertrain = "hypertrain.aggregator.cli:main"
hypertrain-miner = "hypertrain.miner.cli:main"
[project.optional-dependencies]
trainer = ["torch==2.14.0"]
od = ["opendecision @ git+https://github.com/CortexLM/opendecision@e125ff756d57b726fbce44c430e3d2207e7bbda8"]
[dependency-groups]
dev = [
"pytest>=9,<10",
"ruff>=0.16,<0.17",
"mypy>=2,<3",
"hypothesis>=6.169.0",
]
[tool.uv]
environments = ["sys_platform == 'linux' and platform_machine == 'x86_64'"]
[tool.uv.sources]
torch = [{ index = "pytorch-cpu" }]
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["src/hypertrain"]
[tool.hatch.build.targets.sdist]
exclude = ["/data"]
[tool.pytest.ini_options]
testpaths = ["tests"]
# experiments/ and scripts/ are namespace packages imported by tests (and lazily by src);
# the `pytest` console script does not put the rootdir on sys.path, `python -m pytest` does.
pythonpath = ["."]
addopts = "-ra --strict-markers"
markers = ["od: builds a real od-base OpenDecision model (excluded from PR CI)"]
[tool.ruff]
target-version = "py312"
line-length = 100
src = ["src", "tests", "scripts"]
extend-exclude = ["./data"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "ASYNC", "S"]
ignore = ["S101", "S311"]
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["S"]
[tool.mypy]
python_version = "3.12"
check_untyped_defs = true
warn_unused_ignores = true
disallow_untyped_defs = true
[[tool.mypy.overrides]]
module = ["sr25519"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = ["opendecision", "opendecision.*"]
ignore_missing_imports = true
follow_imports = "skip"
[[tool.mypy.overrides]]
module = ["pyarrow", "pyarrow.*"]
ignore_missing_imports = true