trainml 0.5.2__py3-none-any.whl → 0.5.4__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.
- tests/integration/test_jobs_integration.py +1 -1
- trainml/__init__.py +1 -1
- trainml/cli/job/create.py +23 -54
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/METADATA +1 -1
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/RECORD +9 -9
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/LICENSE +0 -0
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/WHEEL +0 -0
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/entry_points.txt +0 -0
- {trainml-0.5.2.dist-info → trainml-0.5.4.dist-info}/top_level.txt +0 -0
|
@@ -430,7 +430,7 @@ class JobIOTests:
|
|
|
430
430
|
source_uri="git@github.com:trainML/environment-tests.git",
|
|
431
431
|
)
|
|
432
432
|
await model.wait_for("ready", 300)
|
|
433
|
-
assert model.size >=
|
|
433
|
+
assert model.size >= 50000
|
|
434
434
|
|
|
435
435
|
job = await trainml.jobs.create(
|
|
436
436
|
"CLI Automated Tests - Training With trainML Model Output",
|
trainml/__init__.py
CHANGED
trainml/cli/job/create.py
CHANGED
|
@@ -268,9 +268,7 @@ def notebook(
|
|
|
268
268
|
options["environment"]["type"] = environment
|
|
269
269
|
|
|
270
270
|
try:
|
|
271
|
-
envs = [
|
|
272
|
-
{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env
|
|
273
|
-
]
|
|
271
|
+
envs = [{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env]
|
|
274
272
|
options["environment"]["env"] = envs
|
|
275
273
|
except IndexError:
|
|
276
274
|
raise click.UsageError(
|
|
@@ -284,16 +282,12 @@ def notebook(
|
|
|
284
282
|
if pip_packages:
|
|
285
283
|
options["environment"]["packages"]["pip"] = pip_packages.split(",")
|
|
286
284
|
if conda_packages:
|
|
287
|
-
options["environment"]["packages"]["conda"] = conda_packages.split(
|
|
288
|
-
","
|
|
289
|
-
)
|
|
285
|
+
options["environment"]["packages"]["conda"] = conda_packages.split(",")
|
|
290
286
|
|
|
291
287
|
if data_dir:
|
|
292
288
|
click.echo("Creating Dataset..", file=config.stdout)
|
|
293
289
|
new_dataset = config.trainml.run(
|
|
294
|
-
config.trainml.client.datasets.create(
|
|
295
|
-
f"Job - {name}", "local", data_dir
|
|
296
|
-
)
|
|
290
|
+
config.trainml.client.datasets.create(f"Job - {name}", "local", data_dir)
|
|
297
291
|
)
|
|
298
292
|
if attach:
|
|
299
293
|
config.trainml.run(new_dataset.attach(), new_dataset.connect())
|
|
@@ -302,9 +296,7 @@ def notebook(
|
|
|
302
296
|
config.trainml.run(new_dataset.connect())
|
|
303
297
|
config.trainml.run(new_dataset.wait_for("ready"))
|
|
304
298
|
config.trainml.run(new_dataset.disconnect())
|
|
305
|
-
options["data"]["datasets"].append(
|
|
306
|
-
dict(id=new_dataset.id, type="existing")
|
|
307
|
-
)
|
|
299
|
+
options["data"]["datasets"].append(dict(id=new_dataset.id, type="existing"))
|
|
308
300
|
|
|
309
301
|
if git_uri:
|
|
310
302
|
options["model"]["source_type"] = "git"
|
|
@@ -397,7 +389,8 @@ def notebook(
|
|
|
397
389
|
],
|
|
398
390
|
case_sensitive=False,
|
|
399
391
|
),
|
|
400
|
-
default="rtx3090",
|
|
392
|
+
default=["rtx3090"],
|
|
393
|
+
multiple=True,
|
|
401
394
|
show_default=True,
|
|
402
395
|
help="GPU type.",
|
|
403
396
|
)
|
|
@@ -619,21 +612,15 @@ def training(
|
|
|
619
612
|
if output_type:
|
|
620
613
|
options["data"]["output_type"] = output_type
|
|
621
614
|
options["data"]["output_uri"] = output_uri
|
|
622
|
-
options["data"]["output_options"] = dict(
|
|
623
|
-
archive=archive, save_model=save_model
|
|
624
|
-
)
|
|
615
|
+
options["data"]["output_options"] = dict(archive=archive, save_model=save_model)
|
|
625
616
|
|
|
626
617
|
if output_dir:
|
|
627
618
|
options["data"]["output_type"] = "local"
|
|
628
619
|
options["data"]["output_uri"] = output_dir
|
|
629
|
-
options["data"]["output_options"] = dict(
|
|
630
|
-
archive=archive, save_model=save_model
|
|
631
|
-
)
|
|
620
|
+
options["data"]["output_options"] = dict(archive=archive, save_model=save_model)
|
|
632
621
|
|
|
633
622
|
try:
|
|
634
|
-
envs = [
|
|
635
|
-
{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env
|
|
636
|
-
]
|
|
623
|
+
envs = [{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env]
|
|
637
624
|
options["environment"]["env"] = envs
|
|
638
625
|
except IndexError:
|
|
639
626
|
raise click.UsageError(
|
|
@@ -647,16 +634,12 @@ def training(
|
|
|
647
634
|
if pip_packages:
|
|
648
635
|
options["environment"]["packages"]["pip"] = pip_packages.split(",")
|
|
649
636
|
if conda_packages:
|
|
650
|
-
options["environment"]["packages"]["conda"] = conda_packages.split(
|
|
651
|
-
","
|
|
652
|
-
)
|
|
637
|
+
options["environment"]["packages"]["conda"] = conda_packages.split(",")
|
|
653
638
|
|
|
654
639
|
if data_dir:
|
|
655
640
|
click.echo("Creating Dataset..", file=config.stdout)
|
|
656
641
|
new_dataset = config.trainml.run(
|
|
657
|
-
config.trainml.client.datasets.create(
|
|
658
|
-
f"Job - {name}", "local", data_dir
|
|
659
|
-
)
|
|
642
|
+
config.trainml.client.datasets.create(f"Job - {name}", "local", data_dir)
|
|
660
643
|
)
|
|
661
644
|
if attach:
|
|
662
645
|
config.trainml.run(new_dataset.attach(), new_dataset.connect())
|
|
@@ -665,9 +648,7 @@ def training(
|
|
|
665
648
|
config.trainml.run(new_dataset.connect())
|
|
666
649
|
config.trainml.run(new_dataset.wait_for("ready"))
|
|
667
650
|
config.trainml.run(new_dataset.disconnect())
|
|
668
|
-
options["data"]["datasets"].append(
|
|
669
|
-
dict(id=new_dataset.id, type="existing")
|
|
670
|
-
)
|
|
651
|
+
options["data"]["datasets"].append(dict(id=new_dataset.id, type="existing"))
|
|
671
652
|
|
|
672
653
|
if git_uri:
|
|
673
654
|
options["model"]["source_type"] = "git"
|
|
@@ -751,8 +732,9 @@ def training(
|
|
|
751
732
|
],
|
|
752
733
|
case_sensitive=False,
|
|
753
734
|
),
|
|
754
|
-
default="rtx3090",
|
|
735
|
+
default=["rtx3090"],
|
|
755
736
|
show_default=True,
|
|
737
|
+
multiple=True,
|
|
756
738
|
help="GPU type.",
|
|
757
739
|
)
|
|
758
740
|
@click.option(
|
|
@@ -975,21 +957,15 @@ def inference(
|
|
|
975
957
|
if output_type:
|
|
976
958
|
options["data"]["output_type"] = output_type
|
|
977
959
|
options["data"]["output_uri"] = output_uri
|
|
978
|
-
options["data"]["output_options"] = dict(
|
|
979
|
-
archive=archive, save_model=save_model
|
|
980
|
-
)
|
|
960
|
+
options["data"]["output_options"] = dict(archive=archive, save_model=save_model)
|
|
981
961
|
|
|
982
962
|
if output_dir:
|
|
983
963
|
options["data"]["output_type"] = "local"
|
|
984
964
|
options["data"]["output_uri"] = output_dir
|
|
985
|
-
options["data"]["output_options"] = dict(
|
|
986
|
-
archive=archive, save_model=save_model
|
|
987
|
-
)
|
|
965
|
+
options["data"]["output_options"] = dict(archive=archive, save_model=save_model)
|
|
988
966
|
|
|
989
967
|
try:
|
|
990
|
-
envs = [
|
|
991
|
-
{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env
|
|
992
|
-
]
|
|
968
|
+
envs = [{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env]
|
|
993
969
|
options["environment"]["env"] = envs
|
|
994
970
|
except IndexError:
|
|
995
971
|
raise click.UsageError(
|
|
@@ -1003,9 +979,7 @@ def inference(
|
|
|
1003
979
|
if pip_packages:
|
|
1004
980
|
options["environment"]["packages"]["pip"] = pip_packages.split(",")
|
|
1005
981
|
if conda_packages:
|
|
1006
|
-
options["environment"]["packages"]["conda"] = conda_packages.split(
|
|
1007
|
-
","
|
|
1008
|
-
)
|
|
982
|
+
options["environment"]["packages"]["conda"] = conda_packages.split(",")
|
|
1009
983
|
|
|
1010
984
|
if git_uri:
|
|
1011
985
|
options["model"]["source_type"] = "git"
|
|
@@ -1125,8 +1099,9 @@ def from_json(config, attach, connect, file):
|
|
|
1125
1099
|
],
|
|
1126
1100
|
case_sensitive=False,
|
|
1127
1101
|
),
|
|
1128
|
-
default="rtx3090",
|
|
1102
|
+
default=["rtx3090"],
|
|
1129
1103
|
show_default=True,
|
|
1104
|
+
multiple=True,
|
|
1130
1105
|
help="GPU type.",
|
|
1131
1106
|
)
|
|
1132
1107
|
@click.option(
|
|
@@ -1296,9 +1271,7 @@ def endpoint(
|
|
|
1296
1271
|
options["environment"]["type"] = environment
|
|
1297
1272
|
|
|
1298
1273
|
try:
|
|
1299
|
-
envs = [
|
|
1300
|
-
{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env
|
|
1301
|
-
]
|
|
1274
|
+
envs = [{"key": e.split("=")[0], "value": e.split("=")[1]} for e in env]
|
|
1302
1275
|
options["environment"]["env"] = envs
|
|
1303
1276
|
except IndexError:
|
|
1304
1277
|
raise click.UsageError(
|
|
@@ -1312,9 +1285,7 @@ def endpoint(
|
|
|
1312
1285
|
if pip_packages:
|
|
1313
1286
|
options["environment"]["packages"]["pip"] = pip_packages.split(",")
|
|
1314
1287
|
if conda_packages:
|
|
1315
|
-
options["environment"]["packages"]["conda"] = conda_packages.split(
|
|
1316
|
-
","
|
|
1317
|
-
)
|
|
1288
|
+
options["environment"]["packages"]["conda"] = conda_packages.split(",")
|
|
1318
1289
|
|
|
1319
1290
|
if git_uri:
|
|
1320
1291
|
options["model"]["source_type"] = "git"
|
|
@@ -1356,6 +1327,4 @@ def endpoint(
|
|
|
1356
1327
|
click.echo("Waiting for job to start...", file=config.stdout)
|
|
1357
1328
|
config.trainml.run(job.wait_for("running", timeout))
|
|
1358
1329
|
config.trainml.run(job.refresh())
|
|
1359
|
-
click.echo(
|
|
1360
|
-
f"Endpoint is running at: {job.url}", file=config.stdout
|
|
1361
|
-
)
|
|
1330
|
+
click.echo(f"Endpoint is running at: {job.url}", file=config.stdout)
|
|
@@ -8,7 +8,7 @@ tests/integration/test_checkpoints_integration.py,sha256=Ev-GxXiBupOi3KduYoEMhb2
|
|
|
8
8
|
tests/integration/test_datasets_integration.py,sha256=jskX8y9moLvAkZLcQL4iSBrUXSGGuWJ95Vw1JuxxwD8,3424
|
|
9
9
|
tests/integration/test_environments_integration.py,sha256=0IckhJvQhd8j4Ouiu0hMq2b7iA1dbZpZYmknyfWjsFM,1403
|
|
10
10
|
tests/integration/test_gpu_types_integration.py,sha256=V2OncokZWWVq_l5FSmKEDM4EsWrmpB-zKiVPt-we0aY,1256
|
|
11
|
-
tests/integration/test_jobs_integration.py,sha256=
|
|
11
|
+
tests/integration/test_jobs_integration.py,sha256=A70q7QADTeETqUsjEkrHaPAbB13GIYiBecTtWhailwA,23341
|
|
12
12
|
tests/integration/test_models_integration.py,sha256=xJPq_3m0Cf1liMH8e49ON_L3MO5XcPtJIz_MD9plkyU,2848
|
|
13
13
|
tests/integration/test_projects_integration.py,sha256=_tmMRFFBe29WaWWuEy3_0j7SKyJc_60JS99hgJUHTG4,1492
|
|
14
14
|
tests/integration/test_providers_integration.py,sha256=bBVvlSDLCnofSaD36OB21KlinEKeK04gPB--bbHJiP0,1419
|
|
@@ -52,7 +52,7 @@ tests/unit/cloudbender/test_nodes_unit.py,sha256=BDpfJXCBNNpLt5rhJMk2BVXDQ_4QSmx
|
|
|
52
52
|
tests/unit/cloudbender/test_providers_unit.py,sha256=OgxifgC1IqLH8DNMKXy1Ne9_7a75ea6kHEOfRSRoQuQ,4373
|
|
53
53
|
tests/unit/cloudbender/test_regions_unit.py,sha256=BbJICLIQmlotpA1UmLD0KTW_H9g2UW0J8ZYzQk1_Xjc,6299
|
|
54
54
|
tests/unit/cloudbender/test_reservations_unit.py,sha256=nWEZ_p9EF2C49nbgL7Dt4NG2Irmyt94ZqJJQDyNfGFI,5624
|
|
55
|
-
trainml/__init__.py,sha256=
|
|
55
|
+
trainml/__init__.py,sha256=b1pGUEOpzHMAPktJyTxWgK4NQHepd3bMK3V8DomanVg,432
|
|
56
56
|
trainml/__main__.py,sha256=JgErYkiskih8Y6oRwowALtR-rwQhAAdqOYWjQraRIPI,59
|
|
57
57
|
trainml/auth.py,sha256=gruZv27nhttrCbhcVQTH9kZkF2uMm1E06SwA_2pQAHQ,26565
|
|
58
58
|
trainml/checkpoints.py,sha256=726yaeTHzIPvkQ-BhqmvJ6u0s1Oh732N6UAFbuWEv0Q,8274
|
|
@@ -84,7 +84,7 @@ trainml/cli/cloudbender/provider.py,sha256=oFjZWKfFQjNY7OtDu7nUdfv-RTmQc_Huuug96
|
|
|
84
84
|
trainml/cli/cloudbender/region.py,sha256=X6-FYOb-pGpOEazn-NbsYSwa9ergB7FGATFkTe4a8Pk,2892
|
|
85
85
|
trainml/cli/cloudbender/reservation.py,sha256=z2oMYwp-w_Keo1DepKUtuRnwiGz2VscVHDYWEFap1gs,3569
|
|
86
86
|
trainml/cli/job/__init__.py,sha256=ljY-ELeXhXQ7txASbJEKGBom7OXfNyy7sWILz3nxRAE,6545
|
|
87
|
-
trainml/cli/job/create.py,sha256=
|
|
87
|
+
trainml/cli/job/create.py,sha256=pfOCqs5Vfk4PAI5KZpXHJ1vp3DDe4ccvYzieh0oFexY,34288
|
|
88
88
|
trainml/cloudbender/__init__.py,sha256=iE29obtC0_9f0IhRvHQcG5aY58fVhVYipTakpjAhdss,64
|
|
89
89
|
trainml/cloudbender/cloudbender.py,sha256=rAc93mtMaa3tWLi-NT4tiqO664MCPkhlGG9oNYSmimQ,634
|
|
90
90
|
trainml/cloudbender/datastores.py,sha256=biVGifedc3r1DcuxsfCQh-f1Tw4HcJMMJfdgHxPfkKM,3506
|
|
@@ -94,9 +94,9 @@ trainml/cloudbender/nodes.py,sha256=7HV2VLmxiUcJ-Kc6AAXS3M8C_XO-HKmaVgJpPdVnBQk,
|
|
|
94
94
|
trainml/cloudbender/providers.py,sha256=-gkdiTu6Ah2znUuyyc3ZuRALagW8s1-OgqVjtlvc1AU,2036
|
|
95
95
|
trainml/cloudbender/regions.py,sha256=Aqc_MeLVAeEv21e-lR5u8x1eintqUhZT2DBiQG3AcEE,3570
|
|
96
96
|
trainml/cloudbender/reservations.py,sha256=rOrGXWIUHON4ad2aufEcvK4Yv_Mv3dDoScUtLJE8LWw,3586
|
|
97
|
-
trainml-0.5.
|
|
98
|
-
trainml-0.5.
|
|
99
|
-
trainml-0.5.
|
|
100
|
-
trainml-0.5.
|
|
101
|
-
trainml-0.5.
|
|
102
|
-
trainml-0.5.
|
|
97
|
+
trainml-0.5.4.dist-info/LICENSE,sha256=s0lpBxhSSUEpMavwde-Vb6K_K7xDCTTvSpNznVqVGR0,1069
|
|
98
|
+
trainml-0.5.4.dist-info/METADATA,sha256=wn_jbVRuNQilNHWaiOoAcCXAR02Z1VYBRufLF_56iSU,7345
|
|
99
|
+
trainml-0.5.4.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
100
|
+
trainml-0.5.4.dist-info/entry_points.txt,sha256=OzBDm2wXby1bSGF02jTVxzRFZLejnbFiLHXhKdW3Bds,63
|
|
101
|
+
trainml-0.5.4.dist-info/top_level.txt,sha256=Y1kLFRWKUW7RG8BX7cvejHF_yW8wBOaRYF1JQHENY4w,23
|
|
102
|
+
trainml-0.5.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|