dh-cli 0.1.9__tar.gz
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.
- dh_cli-0.1.9/.gitignore +228 -0
- dh_cli-0.1.9/LICENSE +119 -0
- dh_cli-0.1.9/PKG-INFO +175 -0
- dh_cli-0.1.9/README.md +39 -0
- dh_cli-0.1.9/pyproject.toml +30 -0
- dh_cli-0.1.9/src/dh_cli/__init__.py +1 -0
- dh_cli-0.1.9/src/dh_cli/batch/__init__.py +94 -0
- dh_cli-0.1.9/src/dh_cli/batch/aws_batch.py +459 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/__init__.py +25 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/boltz.py +421 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/cancel.py +164 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/clean.py +189 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/embed_t5.py +401 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/finalize.py +393 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/list_jobs.py +128 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/local.py +112 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/logs.py +146 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/retry.py +288 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/status.py +400 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/submit.py +220 -0
- dh_cli-0.1.9/src/dh_cli/batch/commands/train.py +734 -0
- dh_cli-0.1.9/src/dh_cli/batch/job_id.py +151 -0
- dh_cli-0.1.9/src/dh_cli/batch/manifest.py +301 -0
- dh_cli-0.1.9/src/dh_cli/cloud_commands.py +1137 -0
- dh_cli-0.1.9/src/dh_cli/codeartifact.py +292 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/__init__.py +6 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/api_client.py +350 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/auth.py +144 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/engine_commands.py +1102 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/progress.py +260 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/ssh_config.py +105 -0
- dh_cli-0.1.9/src/dh_cli/engines_studios/studio_commands.py +849 -0
- dh_cli-0.1.9/src/dh_cli/github_commands.py +289 -0
- dh_cli-0.1.9/src/dh_cli/main.py +156 -0
- dh_cli-0.1.9/src/dh_cli/utility_commands.py +254 -0
- dh_cli-0.1.9/src/dh_cli/warehouse.py +189 -0
dh_cli-0.1.9/.gitignore
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
##### Specific to Dayhoff #####
|
|
2
|
+
|
|
3
|
+
# Pixi (managed by pixi.toml)
|
|
4
|
+
.pixi/
|
|
5
|
+
pixi.lock
|
|
6
|
+
|
|
7
|
+
# Folders for heavy things
|
|
8
|
+
/data/**
|
|
9
|
+
!/data/**/
|
|
10
|
+
!/data/**/.gitkeep
|
|
11
|
+
|
|
12
|
+
/models/**
|
|
13
|
+
!/models/**/
|
|
14
|
+
!/models/**/.gitkeep
|
|
15
|
+
|
|
16
|
+
/scratch/**
|
|
17
|
+
!/scratch/**/
|
|
18
|
+
!/scratch/**/.gitkeep
|
|
19
|
+
|
|
20
|
+
**/wandb/**
|
|
21
|
+
!**/wandb/**/.gitkeep
|
|
22
|
+
|
|
23
|
+
**/artifacts/**
|
|
24
|
+
!**/artifacts/**/.gitkeep
|
|
25
|
+
|
|
26
|
+
**/lightning_logs/**
|
|
27
|
+
!**/lightning_logs/**/.gitkeep
|
|
28
|
+
|
|
29
|
+
# nohup output
|
|
30
|
+
**/nohup.out
|
|
31
|
+
|
|
32
|
+
# Files with sensitive information
|
|
33
|
+
key.json
|
|
34
|
+
.env.secret
|
|
35
|
+
workerbee.json
|
|
36
|
+
key_github_actions.json
|
|
37
|
+
|
|
38
|
+
# Always track DVC files, even in ignored folders
|
|
39
|
+
!*.dvc
|
|
40
|
+
|
|
41
|
+
# Except in the folder scratch/
|
|
42
|
+
scratch/**/*.dvc
|
|
43
|
+
|
|
44
|
+
# Dagster records
|
|
45
|
+
pipelines/.dagster/**
|
|
46
|
+
|
|
47
|
+
.vscode/settings.json
|
|
48
|
+
.venv_studio/
|
|
49
|
+
.venv_workstation/
|
|
50
|
+
.mac_uv_project/
|
|
51
|
+
.aws_uv_project/
|
|
52
|
+
.workstation_uv_project/
|
|
53
|
+
constraints.txt
|
|
54
|
+
.deps_installed_workstation
|
|
55
|
+
pyproject.aws.toml.bak
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
##### Boilerplate not specific to Dayhoff #####
|
|
61
|
+
|
|
62
|
+
# Garbage Mac files
|
|
63
|
+
.DS_Store
|
|
64
|
+
|
|
65
|
+
# Byte-compiled / optimized / DLL files
|
|
66
|
+
__pycache__/
|
|
67
|
+
*.py[cod]
|
|
68
|
+
*$py.class
|
|
69
|
+
*.pyc
|
|
70
|
+
|
|
71
|
+
# C extensions
|
|
72
|
+
*.so
|
|
73
|
+
|
|
74
|
+
# Distribution / packaging
|
|
75
|
+
.Python
|
|
76
|
+
build/
|
|
77
|
+
develop-eggs/
|
|
78
|
+
dist/
|
|
79
|
+
downloads/
|
|
80
|
+
eggs/
|
|
81
|
+
.eggs/
|
|
82
|
+
lib/
|
|
83
|
+
lib64/
|
|
84
|
+
parts/
|
|
85
|
+
sdist/
|
|
86
|
+
var/
|
|
87
|
+
wheels/
|
|
88
|
+
share/python-wheels/
|
|
89
|
+
*.egg-info/
|
|
90
|
+
.installed.cfg
|
|
91
|
+
*.egg
|
|
92
|
+
MANIFEST
|
|
93
|
+
|
|
94
|
+
# PyInstaller
|
|
95
|
+
# Usually these files are written by a python script from a template
|
|
96
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
97
|
+
*.manifest
|
|
98
|
+
*.spec
|
|
99
|
+
|
|
100
|
+
# Installer logs
|
|
101
|
+
pip-log.txt
|
|
102
|
+
pip-delete-this-directory.txt
|
|
103
|
+
|
|
104
|
+
# Unit test / coverage reports
|
|
105
|
+
htmlcov/
|
|
106
|
+
.tox/
|
|
107
|
+
.nox/
|
|
108
|
+
.coverage
|
|
109
|
+
.coverage.*
|
|
110
|
+
.cache
|
|
111
|
+
nosetests.xml
|
|
112
|
+
coverage.xml
|
|
113
|
+
*.cover
|
|
114
|
+
*.py,cover
|
|
115
|
+
.hypothesis/
|
|
116
|
+
.pytest_cache/
|
|
117
|
+
cover/
|
|
118
|
+
|
|
119
|
+
# Translations
|
|
120
|
+
*.mo
|
|
121
|
+
*.pot
|
|
122
|
+
|
|
123
|
+
# Django stuff:
|
|
124
|
+
*.log
|
|
125
|
+
local_settings.py
|
|
126
|
+
db.sqlite3
|
|
127
|
+
db.sqlite3-journal
|
|
128
|
+
|
|
129
|
+
# Flask stuff:
|
|
130
|
+
instance/
|
|
131
|
+
.webassets-cache
|
|
132
|
+
|
|
133
|
+
# Scrapy stuff:
|
|
134
|
+
.scrapy
|
|
135
|
+
|
|
136
|
+
# Sphinx documentation
|
|
137
|
+
docs/_build/
|
|
138
|
+
|
|
139
|
+
# PyBuilder
|
|
140
|
+
.pybuilder/
|
|
141
|
+
target/
|
|
142
|
+
|
|
143
|
+
# Jupyter Notebook
|
|
144
|
+
.ipynb_checkpoints
|
|
145
|
+
|
|
146
|
+
# IPython
|
|
147
|
+
profile_default/
|
|
148
|
+
ipython_config.py
|
|
149
|
+
|
|
150
|
+
# pyenv
|
|
151
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
152
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
153
|
+
# .python-version
|
|
154
|
+
|
|
155
|
+
# pipenv
|
|
156
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
157
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
158
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
159
|
+
# install all needed dependencies.
|
|
160
|
+
Pipfile
|
|
161
|
+
Pipfile.lock
|
|
162
|
+
|
|
163
|
+
# poetry
|
|
164
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
165
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
166
|
+
# commonly ignored for libraries.
|
|
167
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
168
|
+
# poetry.lock
|
|
169
|
+
# pyproject.toml
|
|
170
|
+
|
|
171
|
+
# pdm
|
|
172
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
173
|
+
#pdm.lock
|
|
174
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
175
|
+
# in version control.
|
|
176
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
177
|
+
.pdm.toml
|
|
178
|
+
|
|
179
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
180
|
+
__pypackages__/
|
|
181
|
+
|
|
182
|
+
# Celery stuff
|
|
183
|
+
celerybeat-schedule
|
|
184
|
+
celerybeat.pid
|
|
185
|
+
|
|
186
|
+
# SageMath parsed files
|
|
187
|
+
*.sage.py
|
|
188
|
+
|
|
189
|
+
# Environments
|
|
190
|
+
.env
|
|
191
|
+
.venv
|
|
192
|
+
env/
|
|
193
|
+
venv/
|
|
194
|
+
ENV/
|
|
195
|
+
env.bak/
|
|
196
|
+
venv.bak/
|
|
197
|
+
|
|
198
|
+
# Spyder project settings
|
|
199
|
+
.spyderproject
|
|
200
|
+
.spyproject
|
|
201
|
+
|
|
202
|
+
# Rope project settings
|
|
203
|
+
.ropeproject
|
|
204
|
+
|
|
205
|
+
# mkdocs documentation
|
|
206
|
+
/site
|
|
207
|
+
|
|
208
|
+
# mypy
|
|
209
|
+
.mypy_cache/
|
|
210
|
+
.dmypy.json
|
|
211
|
+
dmypy.json
|
|
212
|
+
|
|
213
|
+
# Pyre type checker
|
|
214
|
+
.pyre/
|
|
215
|
+
|
|
216
|
+
# pytype static type analyzer
|
|
217
|
+
.pytype/
|
|
218
|
+
|
|
219
|
+
# Cython debug symbols
|
|
220
|
+
cython_debug/
|
|
221
|
+
|
|
222
|
+
# PyCharm
|
|
223
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
224
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
225
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
226
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
227
|
+
#.idea/
|
|
228
|
+
|
dh_cli-0.1.9/LICENSE
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# PolyForm Noncommercial License 1.0.0
|
|
2
|
+
|
|
3
|
+
<https://polyformproject.org/licenses/noncommercial/1.0.0>
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
In order to get any license under these terms, you must agree to them as
|
|
8
|
+
both strict obligations and conditions to all your licenses.
|
|
9
|
+
|
|
10
|
+
## Copyright License
|
|
11
|
+
|
|
12
|
+
The licensor grants you a copyright license for the software to do
|
|
13
|
+
everything you might do with the software that would otherwise infringe
|
|
14
|
+
the licensor's copyright in it for any permitted purpose. However, you
|
|
15
|
+
may only distribute the software according to Distribution License and
|
|
16
|
+
make changes or new works based on the software according to Changes and
|
|
17
|
+
New Works License.
|
|
18
|
+
|
|
19
|
+
## Distribution License
|
|
20
|
+
|
|
21
|
+
The licensor grants you an additional copyright license to distribute
|
|
22
|
+
copies of the software. Your license to distribute covers distributing
|
|
23
|
+
the software with changes and new works permitted by Changes and New
|
|
24
|
+
Works License.
|
|
25
|
+
|
|
26
|
+
## Notices
|
|
27
|
+
|
|
28
|
+
You must ensure that anyone who gets a copy of any part of the software
|
|
29
|
+
from you also gets a copy of these terms or the URL for them above, as
|
|
30
|
+
well as copies of any plain-text lines beginning with `Required Notice:`
|
|
31
|
+
that the licensor provided with the software. For example:
|
|
32
|
+
|
|
33
|
+
> Required Notice: Copyright Dayhoff Labs (https://dayhofflabs.com)
|
|
34
|
+
|
|
35
|
+
## Changes and New Works License
|
|
36
|
+
|
|
37
|
+
The licensor grants you an additional copyright license to make changes
|
|
38
|
+
and new works based on the software for any permitted purpose.
|
|
39
|
+
|
|
40
|
+
## Patent License
|
|
41
|
+
|
|
42
|
+
The licensor grants you a patent license for the software that covers
|
|
43
|
+
patent claims the licensor can license, or becomes able to license, that
|
|
44
|
+
you would infringe by using the software.
|
|
45
|
+
|
|
46
|
+
## Noncommercial Purposes
|
|
47
|
+
|
|
48
|
+
Any noncommercial purpose is a permitted purpose.
|
|
49
|
+
|
|
50
|
+
## Personal Uses
|
|
51
|
+
|
|
52
|
+
Personal use for research, experiment, and testing for the benefit of
|
|
53
|
+
public knowledge, personal study, private entertainment, hobby projects,
|
|
54
|
+
amateur pursuits, or religious observance, without any anticipated
|
|
55
|
+
commercial application, is use for a permitted purpose.
|
|
56
|
+
|
|
57
|
+
## Noncommercial Organizations
|
|
58
|
+
|
|
59
|
+
Use by any charitable organization, educational institution, public
|
|
60
|
+
research organization, public safety or health organization,
|
|
61
|
+
environmental protection organization, or government institution is use
|
|
62
|
+
for a permitted purpose regardless of the source of funding or
|
|
63
|
+
obligations resulting from the funding.
|
|
64
|
+
|
|
65
|
+
## Fair Use
|
|
66
|
+
|
|
67
|
+
You may have "fair use" rights for the software under the law. These
|
|
68
|
+
terms do not limit them.
|
|
69
|
+
|
|
70
|
+
## No Other Rights
|
|
71
|
+
|
|
72
|
+
These terms do not allow you to sublicense or transfer any of your
|
|
73
|
+
licenses to anyone else, or prevent the licensor from granting licenses
|
|
74
|
+
to anyone else. These terms do not imply any other licenses.
|
|
75
|
+
|
|
76
|
+
## Patent Defense
|
|
77
|
+
|
|
78
|
+
If you make any written claim that the software infringes or contributes
|
|
79
|
+
to infringement of any patent, your patent license for the software
|
|
80
|
+
granted under these terms ends immediately. If your company makes such a
|
|
81
|
+
claim, your patent license ends immediately for work on behalf of your
|
|
82
|
+
company.
|
|
83
|
+
|
|
84
|
+
## Violations
|
|
85
|
+
|
|
86
|
+
The first time you are notified in writing that you have violated any of
|
|
87
|
+
these terms, or done anything with the software not covered by your
|
|
88
|
+
licenses, your licenses can nonetheless continue if you come into full
|
|
89
|
+
compliance with these terms, and take practical steps to correct past
|
|
90
|
+
violations, within 32 days of receiving notice. Otherwise, all your
|
|
91
|
+
licenses end immediately.
|
|
92
|
+
|
|
93
|
+
## No Liability
|
|
94
|
+
|
|
95
|
+
As far as the law allows, the software comes as is, without any warranty
|
|
96
|
+
or condition, and the licensor will not be liable to you for any damages
|
|
97
|
+
arising out of these terms or the use or nature of the software, under
|
|
98
|
+
any kind of legal claim.
|
|
99
|
+
|
|
100
|
+
## Definitions
|
|
101
|
+
|
|
102
|
+
The **licensor** is the individual or entity offering these terms, and
|
|
103
|
+
the **software** is the software the licensor makes available under
|
|
104
|
+
these terms.
|
|
105
|
+
|
|
106
|
+
**You** refers to the individual or entity agreeing to these terms.
|
|
107
|
+
|
|
108
|
+
**Your company** is any legal entity, sole proprietorship, or other kind
|
|
109
|
+
of organization that you work for, plus all organizations that have
|
|
110
|
+
control over, are under the control of, or are under common control with
|
|
111
|
+
that organization. **Control** means ownership of substantially all the
|
|
112
|
+
assets of an entity, or the power to direct its management and policies
|
|
113
|
+
by vote, contract, or otherwise. Control can be direct or indirect.
|
|
114
|
+
|
|
115
|
+
**Your licenses** are all the licenses granted to you for the software
|
|
116
|
+
under these terms.
|
|
117
|
+
|
|
118
|
+
**Use** means anything you do with the software requiring one of your
|
|
119
|
+
licenses.
|
dh_cli-0.1.9/PKG-INFO
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dh-cli
|
|
3
|
+
Version: 0.1.9
|
|
4
|
+
Summary: Dayhoff Labs developer CLI
|
|
5
|
+
Author-email: Dayhoff Labs <dev@dayhofflabs.com>
|
|
6
|
+
License: # PolyForm Noncommercial License 1.0.0
|
|
7
|
+
|
|
8
|
+
<https://polyformproject.org/licenses/noncommercial/1.0.0>
|
|
9
|
+
|
|
10
|
+
## Acceptance
|
|
11
|
+
|
|
12
|
+
In order to get any license under these terms, you must agree to them as
|
|
13
|
+
both strict obligations and conditions to all your licenses.
|
|
14
|
+
|
|
15
|
+
## Copyright License
|
|
16
|
+
|
|
17
|
+
The licensor grants you a copyright license for the software to do
|
|
18
|
+
everything you might do with the software that would otherwise infringe
|
|
19
|
+
the licensor's copyright in it for any permitted purpose. However, you
|
|
20
|
+
may only distribute the software according to Distribution License and
|
|
21
|
+
make changes or new works based on the software according to Changes and
|
|
22
|
+
New Works License.
|
|
23
|
+
|
|
24
|
+
## Distribution License
|
|
25
|
+
|
|
26
|
+
The licensor grants you an additional copyright license to distribute
|
|
27
|
+
copies of the software. Your license to distribute covers distributing
|
|
28
|
+
the software with changes and new works permitted by Changes and New
|
|
29
|
+
Works License.
|
|
30
|
+
|
|
31
|
+
## Notices
|
|
32
|
+
|
|
33
|
+
You must ensure that anyone who gets a copy of any part of the software
|
|
34
|
+
from you also gets a copy of these terms or the URL for them above, as
|
|
35
|
+
well as copies of any plain-text lines beginning with `Required Notice:`
|
|
36
|
+
that the licensor provided with the software. For example:
|
|
37
|
+
|
|
38
|
+
> Required Notice: Copyright Dayhoff Labs (https://dayhofflabs.com)
|
|
39
|
+
|
|
40
|
+
## Changes and New Works License
|
|
41
|
+
|
|
42
|
+
The licensor grants you an additional copyright license to make changes
|
|
43
|
+
and new works based on the software for any permitted purpose.
|
|
44
|
+
|
|
45
|
+
## Patent License
|
|
46
|
+
|
|
47
|
+
The licensor grants you a patent license for the software that covers
|
|
48
|
+
patent claims the licensor can license, or becomes able to license, that
|
|
49
|
+
you would infringe by using the software.
|
|
50
|
+
|
|
51
|
+
## Noncommercial Purposes
|
|
52
|
+
|
|
53
|
+
Any noncommercial purpose is a permitted purpose.
|
|
54
|
+
|
|
55
|
+
## Personal Uses
|
|
56
|
+
|
|
57
|
+
Personal use for research, experiment, and testing for the benefit of
|
|
58
|
+
public knowledge, personal study, private entertainment, hobby projects,
|
|
59
|
+
amateur pursuits, or religious observance, without any anticipated
|
|
60
|
+
commercial application, is use for a permitted purpose.
|
|
61
|
+
|
|
62
|
+
## Noncommercial Organizations
|
|
63
|
+
|
|
64
|
+
Use by any charitable organization, educational institution, public
|
|
65
|
+
research organization, public safety or health organization,
|
|
66
|
+
environmental protection organization, or government institution is use
|
|
67
|
+
for a permitted purpose regardless of the source of funding or
|
|
68
|
+
obligations resulting from the funding.
|
|
69
|
+
|
|
70
|
+
## Fair Use
|
|
71
|
+
|
|
72
|
+
You may have "fair use" rights for the software under the law. These
|
|
73
|
+
terms do not limit them.
|
|
74
|
+
|
|
75
|
+
## No Other Rights
|
|
76
|
+
|
|
77
|
+
These terms do not allow you to sublicense or transfer any of your
|
|
78
|
+
licenses to anyone else, or prevent the licensor from granting licenses
|
|
79
|
+
to anyone else. These terms do not imply any other licenses.
|
|
80
|
+
|
|
81
|
+
## Patent Defense
|
|
82
|
+
|
|
83
|
+
If you make any written claim that the software infringes or contributes
|
|
84
|
+
to infringement of any patent, your patent license for the software
|
|
85
|
+
granted under these terms ends immediately. If your company makes such a
|
|
86
|
+
claim, your patent license ends immediately for work on behalf of your
|
|
87
|
+
company.
|
|
88
|
+
|
|
89
|
+
## Violations
|
|
90
|
+
|
|
91
|
+
The first time you are notified in writing that you have violated any of
|
|
92
|
+
these terms, or done anything with the software not covered by your
|
|
93
|
+
licenses, your licenses can nonetheless continue if you come into full
|
|
94
|
+
compliance with these terms, and take practical steps to correct past
|
|
95
|
+
violations, within 32 days of receiving notice. Otherwise, all your
|
|
96
|
+
licenses end immediately.
|
|
97
|
+
|
|
98
|
+
## No Liability
|
|
99
|
+
|
|
100
|
+
As far as the law allows, the software comes as is, without any warranty
|
|
101
|
+
or condition, and the licensor will not be liable to you for any damages
|
|
102
|
+
arising out of these terms or the use or nature of the software, under
|
|
103
|
+
any kind of legal claim.
|
|
104
|
+
|
|
105
|
+
## Definitions
|
|
106
|
+
|
|
107
|
+
The **licensor** is the individual or entity offering these terms, and
|
|
108
|
+
the **software** is the software the licensor makes available under
|
|
109
|
+
these terms.
|
|
110
|
+
|
|
111
|
+
**You** refers to the individual or entity agreeing to these terms.
|
|
112
|
+
|
|
113
|
+
**Your company** is any legal entity, sole proprietorship, or other kind
|
|
114
|
+
of organization that you work for, plus all organizations that have
|
|
115
|
+
control over, are under the control of, or are under common control with
|
|
116
|
+
that organization. **Control** means ownership of substantially all the
|
|
117
|
+
assets of an entity, or the power to direct its management and policies
|
|
118
|
+
by vote, contract, or otherwise. Control can be direct or indirect.
|
|
119
|
+
|
|
120
|
+
**Your licenses** are all the licenses granted to you for the software
|
|
121
|
+
under these terms.
|
|
122
|
+
|
|
123
|
+
**Use** means anything you do with the software requiring one of your
|
|
124
|
+
licenses.
|
|
125
|
+
License-File: LICENSE
|
|
126
|
+
Requires-Python: >=3.11
|
|
127
|
+
Requires-Dist: boto3>=1.36.0
|
|
128
|
+
Requires-Dist: click>=8.0.0
|
|
129
|
+
Requires-Dist: pydantic>=2.0.0
|
|
130
|
+
Requires-Dist: pyyaml>=6.0
|
|
131
|
+
Requires-Dist: questionary>=2.0.1
|
|
132
|
+
Requires-Dist: requests>=2.31.0
|
|
133
|
+
Requires-Dist: toml>=0.10
|
|
134
|
+
Requires-Dist: typer>=0.9.0
|
|
135
|
+
Description-Content-Type: text/markdown
|
|
136
|
+
|
|
137
|
+
# dh-cli
|
|
138
|
+
|
|
139
|
+
Developer CLI for [Dayhoff Labs](https://dayhofflabs.com).
|
|
140
|
+
|
|
141
|
+
## Installation
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pip install dh-cli
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Usage
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
dh --help
|
|
151
|
+
dh --version
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Commands
|
|
155
|
+
|
|
156
|
+
| Command | Description |
|
|
157
|
+
|---------|-------------|
|
|
158
|
+
| `dh engine` | Manage compute engines |
|
|
159
|
+
| `dh studio` | Manage development studios |
|
|
160
|
+
| `dh batch` | Submit and monitor batch jobs |
|
|
161
|
+
| `dh aws` | AWS SSO authentication |
|
|
162
|
+
| `dh gcp` | GCP authentication |
|
|
163
|
+
| `dh gh` | GitHub authentication |
|
|
164
|
+
| `dh wget` | Download from data warehouse |
|
|
165
|
+
| `dh wheel` | Build and publish packages |
|
|
166
|
+
| `dh clean` | Delete local git branches |
|
|
167
|
+
|
|
168
|
+
## Requirements
|
|
169
|
+
|
|
170
|
+
- Python >= 3.11
|
|
171
|
+
- AWS credentials (for most commands)
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
[PolyForm Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0)
|
dh_cli-0.1.9/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# dh-cli
|
|
2
|
+
|
|
3
|
+
Developer CLI for [Dayhoff Labs](https://dayhofflabs.com).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install dh-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
dh --help
|
|
15
|
+
dh --version
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Commands
|
|
19
|
+
|
|
20
|
+
| Command | Description |
|
|
21
|
+
|---------|-------------|
|
|
22
|
+
| `dh engine` | Manage compute engines |
|
|
23
|
+
| `dh studio` | Manage development studios |
|
|
24
|
+
| `dh batch` | Submit and monitor batch jobs |
|
|
25
|
+
| `dh aws` | AWS SSO authentication |
|
|
26
|
+
| `dh gcp` | GCP authentication |
|
|
27
|
+
| `dh gh` | GitHub authentication |
|
|
28
|
+
| `dh wget` | Download from data warehouse |
|
|
29
|
+
| `dh wheel` | Build and publish packages |
|
|
30
|
+
| `dh clean` | Delete local git branches |
|
|
31
|
+
|
|
32
|
+
## Requirements
|
|
33
|
+
|
|
34
|
+
- Python >= 3.11
|
|
35
|
+
- AWS credentials (for most commands)
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
[PolyForm Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "dh-cli"
|
|
7
|
+
version = "0.1.9"
|
|
8
|
+
description = "Dayhoff Labs developer CLI"
|
|
9
|
+
requires-python = ">=3.11"
|
|
10
|
+
readme = "README.md"
|
|
11
|
+
license = {file = "LICENSE"}
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Dayhoff Labs", email = "dev@dayhofflabs.com"},
|
|
14
|
+
]
|
|
15
|
+
dependencies = [
|
|
16
|
+
"boto3>=1.36.0",
|
|
17
|
+
"click>=8.0.0",
|
|
18
|
+
"pydantic>=2.0.0",
|
|
19
|
+
"pyyaml>=6.0",
|
|
20
|
+
"questionary>=2.0.1",
|
|
21
|
+
"requests>=2.31.0",
|
|
22
|
+
"toml>=0.10",
|
|
23
|
+
"typer>=0.9.0",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
[project.scripts]
|
|
27
|
+
dh = "dh_cli.main:app"
|
|
28
|
+
|
|
29
|
+
[tool.hatch.build.targets.wheel]
|
|
30
|
+
packages = ["src/dh_cli"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Dayhoff Labs developer CLI (dh command)."""
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""Batch job management CLI for AWS Batch.
|
|
2
|
+
|
|
3
|
+
This module provides a Click-based CLI for submitting and managing batch jobs
|
|
4
|
+
on AWS Batch, with support for:
|
|
5
|
+
- High-level pipelines (embed-t5, boltz)
|
|
6
|
+
- Generic job submission
|
|
7
|
+
- Job lifecycle management (status, logs, cancel, retry, finalize)
|
|
8
|
+
- Local debugging and shell access
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import click
|
|
12
|
+
|
|
13
|
+
from .commands.boltz import boltz
|
|
14
|
+
from .commands.cancel import cancel
|
|
15
|
+
from .commands.clean import clean
|
|
16
|
+
from .commands.embed_t5 import embed_t5
|
|
17
|
+
from .commands.finalize import finalize
|
|
18
|
+
from .commands.list_jobs import list_jobs
|
|
19
|
+
from .commands.local import local
|
|
20
|
+
from .commands.logs import logs
|
|
21
|
+
from .commands.retry import retry
|
|
22
|
+
from .commands.status import status
|
|
23
|
+
from .commands.submit import submit
|
|
24
|
+
from .commands.train import train
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@click.group()
|
|
28
|
+
def batch_cli():
|
|
29
|
+
"""Manage batch jobs on AWS Batch.
|
|
30
|
+
|
|
31
|
+
\b
|
|
32
|
+
Job Management:
|
|
33
|
+
submit Submit a custom job from config file
|
|
34
|
+
status Show job status
|
|
35
|
+
cancel Cancel a running job
|
|
36
|
+
logs View job logs
|
|
37
|
+
retry Retry failed chunks
|
|
38
|
+
finalize Combine results and clean up
|
|
39
|
+
local Run a chunk locally for debugging
|
|
40
|
+
list List recent jobs
|
|
41
|
+
clean Remove old completed job directories
|
|
42
|
+
|
|
43
|
+
\b
|
|
44
|
+
Embedding Pipelines:
|
|
45
|
+
embed-t5 Generate T5 protein embeddings
|
|
46
|
+
|
|
47
|
+
\b
|
|
48
|
+
Structure Prediction:
|
|
49
|
+
boltz Predict protein structures with Boltz
|
|
50
|
+
|
|
51
|
+
\b
|
|
52
|
+
ML Training:
|
|
53
|
+
train Submit hatchery ML training jobs
|
|
54
|
+
|
|
55
|
+
\b
|
|
56
|
+
Examples:
|
|
57
|
+
# Submit an embedding job
|
|
58
|
+
dh batch embed-t5 /primordial/proteins.fasta --workers 50
|
|
59
|
+
|
|
60
|
+
# Submit a structure prediction job
|
|
61
|
+
dh batch boltz /primordial/complexes/ --workers 100
|
|
62
|
+
|
|
63
|
+
# Check job status
|
|
64
|
+
dh batch status dma-embed-20260109-a3f2
|
|
65
|
+
|
|
66
|
+
# View logs for a failed chunk
|
|
67
|
+
dh batch logs dma-embed-20260109-a3f2 --index 27
|
|
68
|
+
|
|
69
|
+
# Retry failed chunks
|
|
70
|
+
dh batch retry dma-embed-20260109-a3f2
|
|
71
|
+
|
|
72
|
+
# Finalize and combine results
|
|
73
|
+
dh batch finalize dma-embed-20260109-a3f2 --output /primordial/embeddings.h5
|
|
74
|
+
"""
|
|
75
|
+
pass
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Register job management commands
|
|
79
|
+
batch_cli.add_command(submit)
|
|
80
|
+
batch_cli.add_command(status)
|
|
81
|
+
batch_cli.add_command(cancel)
|
|
82
|
+
batch_cli.add_command(logs)
|
|
83
|
+
batch_cli.add_command(retry)
|
|
84
|
+
batch_cli.add_command(finalize)
|
|
85
|
+
batch_cli.add_command(local)
|
|
86
|
+
batch_cli.add_command(list_jobs, name="list")
|
|
87
|
+
batch_cli.add_command(clean)
|
|
88
|
+
|
|
89
|
+
# Register pipeline commands
|
|
90
|
+
batch_cli.add_command(embed_t5, name="embed-t5")
|
|
91
|
+
batch_cli.add_command(boltz)
|
|
92
|
+
batch_cli.add_command(train)
|
|
93
|
+
|
|
94
|
+
__all__ = ["batch_cli"]
|