etude-sdk 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- etude/__init__.py +0 -0
- etude/__main__.py +5 -0
- etude/_package/pyproject.toml +62 -0
- etude/_package/uv.lock +1213 -0
- etude/cli.py +85 -0
- etude/launch/__init__.py +0 -0
- etude/launch/cli.py +591 -0
- etude/launch/client.py +178 -0
- etude/launch/commands.py +25 -0
- etude/launch/controller.py +488 -0
- etude/launch/database.py +777 -0
- etude/launch/environment.py +50 -0
- etude/launch/errors.py +2 -0
- etude/launch/executor.py +168 -0
- etude/launch/job_file.py +107 -0
- etude/launch/listing.py +92 -0
- etude/launch/machines.py +83 -0
- etude/launch/measurement.py +49 -0
- etude/launch/providers/__init__.py +0 -0
- etude/launch/providers/cleanup.py +10 -0
- etude/launch/providers/package.py +49 -0
- etude/launch/providers/runpod/__init__.py +0 -0
- etude/launch/providers/runpod/api.py +189 -0
- etude/launch/providers/runpod/http.py +78 -0
- etude/launch/providers/runpod/machines.py +160 -0
- etude/launch/providers/runpod/pod.py +179 -0
- etude/launch/records.py +378 -0
- etude/launch/scheduler.py +1455 -0
- etude/launch/schemas.py +143 -0
- etude/launch/source.py +321 -0
- etude/launch/ssh.py +283 -0
- etude/launch/startup.py +47 -0
- etude/launch/storage/__init__.py +0 -0
- etude/launch/storage/bucket.py +234 -0
- etude/launch/storage/disk.py +186 -0
- etude/launch/storage/files.py +32 -0
- etude/launch/storage/s3.py +433 -0
- etude/launch/worker/__init__.py +0 -0
- etude/launch/worker/attempts.py +248 -0
- etude/launch/worker/courier.py +319 -0
- etude/launch/worker/main.py +26 -0
- etude/launch/worker/remote.py +112 -0
- etude/py.typed +0 -0
- etude/track/__init__.py +0 -0
- etude/track/block.py +462 -0
- etude/track/block_file.py +59 -0
- etude/track/cli.py +135 -0
- etude/track/errors.py +10 -0
- etude/track/manifest.py +185 -0
- etude/track/read.py +658 -0
- etude/track/records.py +297 -0
- etude/track/report.html +363 -0
- etude/track/report.py +224 -0
- etude/track/run.py +1101 -0
- etude/track/serve.py +73 -0
- etude/track/storage.py +191 -0
- etude/track/vendor/UPLOT_LICENSE +21 -0
- etude/track/vendor/uPlot.iife.min.js +2 -0
- etude/track/vendor/uPlot.min.css +1 -0
- etude_sdk-0.1.0.dist-info/METADATA +83 -0
- etude_sdk-0.1.0.dist-info/RECORD +64 -0
- etude_sdk-0.1.0.dist-info/WHEEL +4 -0
- etude_sdk-0.1.0.dist-info/entry_points.txt +2 -0
- etude_sdk-0.1.0.dist-info/licenses/LICENSE +21 -0
etude/__init__.py
ADDED
|
File without changes
|
etude/__main__.py
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "etude-sdk"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Launch training runs on your own or rented machines and track what they record"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.12"
|
|
12
|
+
dependencies = [
|
|
13
|
+
"numpy>=1.26,<3",
|
|
14
|
+
"pydantic>=2.12,<3",
|
|
15
|
+
"typer>=0.27,<1",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[project.urls]
|
|
19
|
+
Repository = "https://github.com/loopflowstudio/etude"
|
|
20
|
+
|
|
21
|
+
[project.optional-dependencies]
|
|
22
|
+
s3 = ["boto3>=1.35,<2"]
|
|
23
|
+
|
|
24
|
+
[project.scripts]
|
|
25
|
+
etude = "etude.cli:main"
|
|
26
|
+
|
|
27
|
+
[tool.hatch.build.targets.wheel]
|
|
28
|
+
packages = ["src/etude"]
|
|
29
|
+
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = ["pytest>=8,<10", "mypy>=1.15,<2", "ruff>=0.11,<1", "moto[s3]>=5,<6"]
|
|
32
|
+
|
|
33
|
+
[tool.mypy]
|
|
34
|
+
python_version = "3.12"
|
|
35
|
+
strict = true
|
|
36
|
+
files = ["src", "tests"]
|
|
37
|
+
|
|
38
|
+
[tool.pytest.ini_options]
|
|
39
|
+
testpaths = ["tests"]
|
|
40
|
+
addopts = '-m "not scale"'
|
|
41
|
+
markers = ["scale: opt-in counting workloads at 10, 100 and 1000 workers"]
|
|
42
|
+
|
|
43
|
+
[tool.ruff]
|
|
44
|
+
target-version = "py312"
|
|
45
|
+
line-length = 100
|
|
46
|
+
|
|
47
|
+
[tool.ruff.lint]
|
|
48
|
+
select = ["E4", "E7", "E9", "F", "I", "UP", "TID252", "PLC0415"]
|
|
49
|
+
|
|
50
|
+
[tool.ruff.lint.flake8-tidy-imports]
|
|
51
|
+
# Every import names its module in full, so a reader never has to work out where it is.
|
|
52
|
+
ban-relative-imports = "all"
|
|
53
|
+
|
|
54
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
55
|
+
"pyproject.toml" = "etude/_package/pyproject.toml"
|
|
56
|
+
"uv.lock" = "etude/_package/uv.lock"
|
|
57
|
+
|
|
58
|
+
[tool.ruff.lint.per-file-ignores]
|
|
59
|
+
# AGENTS.md: entry points load only the command being invoked.
|
|
60
|
+
"src/etude/cli.py" = ["PLC0415"]
|
|
61
|
+
"src/etude/launch/cli.py" = ["PLC0415"]
|
|
62
|
+
"src/etude/track/cli.py" = ["PLC0415"]
|