nextmv 0.39.0.dev1__py3-none-any.whl → 1.0.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.
- nextmv/__about__.py +1 -1
- nextmv/__entrypoint__.py +1 -2
- nextmv/__init__.py +2 -4
- nextmv/cli/CONTRIBUTING.md +583 -0
- nextmv/cli/cloud/__init__.py +49 -0
- nextmv/cli/cloud/acceptance/__init__.py +27 -0
- nextmv/cli/cloud/acceptance/create.py +391 -0
- nextmv/cli/cloud/acceptance/delete.py +64 -0
- nextmv/cli/cloud/acceptance/get.py +103 -0
- nextmv/cli/cloud/acceptance/list.py +62 -0
- nextmv/cli/cloud/acceptance/update.py +95 -0
- nextmv/cli/cloud/account/__init__.py +28 -0
- nextmv/cli/cloud/account/create.py +83 -0
- nextmv/cli/cloud/account/delete.py +59 -0
- nextmv/cli/cloud/account/get.py +66 -0
- nextmv/cli/cloud/account/update.py +70 -0
- nextmv/cli/cloud/app/__init__.py +35 -0
- nextmv/cli/cloud/app/create.py +140 -0
- nextmv/cli/cloud/app/delete.py +57 -0
- nextmv/cli/cloud/app/exists.py +44 -0
- nextmv/cli/cloud/app/get.py +66 -0
- nextmv/cli/cloud/app/list.py +61 -0
- nextmv/cli/cloud/app/push.py +432 -0
- nextmv/cli/cloud/app/update.py +124 -0
- nextmv/cli/cloud/batch/__init__.py +29 -0
- nextmv/cli/cloud/batch/create.py +452 -0
- nextmv/cli/cloud/batch/delete.py +64 -0
- nextmv/cli/cloud/batch/get.py +104 -0
- nextmv/cli/cloud/batch/list.py +63 -0
- nextmv/cli/cloud/batch/metadata.py +66 -0
- nextmv/cli/cloud/batch/update.py +95 -0
- nextmv/cli/cloud/data/__init__.py +26 -0
- nextmv/cli/cloud/data/upload.py +162 -0
- nextmv/cli/cloud/ensemble/__init__.py +33 -0
- nextmv/cli/cloud/ensemble/create.py +413 -0
- nextmv/cli/cloud/ensemble/delete.py +63 -0
- nextmv/cli/cloud/ensemble/get.py +65 -0
- nextmv/cli/cloud/ensemble/list.py +63 -0
- nextmv/cli/cloud/ensemble/update.py +103 -0
- nextmv/cli/cloud/input_set/__init__.py +32 -0
- nextmv/cli/cloud/input_set/create.py +168 -0
- nextmv/cli/cloud/input_set/delete.py +64 -0
- nextmv/cli/cloud/input_set/get.py +63 -0
- nextmv/cli/cloud/input_set/list.py +63 -0
- nextmv/cli/cloud/input_set/update.py +123 -0
- nextmv/cli/cloud/instance/__init__.py +35 -0
- nextmv/cli/cloud/instance/create.py +289 -0
- nextmv/cli/cloud/instance/delete.py +61 -0
- nextmv/cli/cloud/instance/exists.py +39 -0
- nextmv/cli/cloud/instance/get.py +62 -0
- nextmv/cli/cloud/instance/list.py +60 -0
- nextmv/cli/cloud/instance/update.py +216 -0
- nextmv/cli/cloud/managed_input/__init__.py +31 -0
- nextmv/cli/cloud/managed_input/create.py +144 -0
- nextmv/cli/cloud/managed_input/delete.py +64 -0
- nextmv/cli/cloud/managed_input/get.py +63 -0
- nextmv/cli/cloud/managed_input/list.py +60 -0
- nextmv/cli/cloud/managed_input/update.py +97 -0
- nextmv/cli/cloud/run/__init__.py +37 -0
- nextmv/cli/cloud/run/cancel.py +37 -0
- nextmv/cli/cloud/run/create.py +524 -0
- nextmv/cli/cloud/run/get.py +199 -0
- nextmv/cli/cloud/run/input.py +86 -0
- nextmv/cli/cloud/run/list.py +80 -0
- nextmv/cli/cloud/run/logs.py +166 -0
- nextmv/cli/cloud/run/metadata.py +67 -0
- nextmv/cli/cloud/run/track.py +500 -0
- nextmv/cli/cloud/scenario/__init__.py +29 -0
- nextmv/cli/cloud/scenario/create.py +451 -0
- nextmv/cli/cloud/scenario/delete.py +61 -0
- nextmv/cli/cloud/scenario/get.py +102 -0
- nextmv/cli/cloud/scenario/list.py +63 -0
- nextmv/cli/cloud/scenario/metadata.py +67 -0
- nextmv/cli/cloud/scenario/update.py +93 -0
- nextmv/cli/cloud/secrets/__init__.py +33 -0
- nextmv/cli/cloud/secrets/create.py +206 -0
- nextmv/cli/cloud/secrets/delete.py +63 -0
- nextmv/cli/cloud/secrets/get.py +66 -0
- nextmv/cli/cloud/secrets/list.py +60 -0
- nextmv/cli/cloud/secrets/update.py +144 -0
- nextmv/cli/cloud/shadow/__init__.py +33 -0
- nextmv/cli/cloud/shadow/create.py +184 -0
- nextmv/cli/cloud/shadow/delete.py +64 -0
- nextmv/cli/cloud/shadow/get.py +61 -0
- nextmv/cli/cloud/shadow/list.py +63 -0
- nextmv/cli/cloud/shadow/metadata.py +66 -0
- nextmv/cli/cloud/shadow/start.py +43 -0
- nextmv/cli/cloud/shadow/stop.py +53 -0
- nextmv/cli/cloud/shadow/update.py +96 -0
- nextmv/cli/cloud/switchback/__init__.py +33 -0
- nextmv/cli/cloud/switchback/create.py +151 -0
- nextmv/cli/cloud/switchback/delete.py +64 -0
- nextmv/cli/cloud/switchback/get.py +62 -0
- nextmv/cli/cloud/switchback/list.py +63 -0
- nextmv/cli/cloud/switchback/metadata.py +68 -0
- nextmv/cli/cloud/switchback/start.py +43 -0
- nextmv/cli/cloud/switchback/stop.py +53 -0
- nextmv/cli/cloud/switchback/update.py +96 -0
- nextmv/cli/cloud/upload/__init__.py +22 -0
- nextmv/cli/cloud/upload/create.py +39 -0
- nextmv/cli/cloud/version/__init__.py +33 -0
- nextmv/cli/cloud/version/create.py +96 -0
- nextmv/cli/cloud/version/delete.py +61 -0
- nextmv/cli/cloud/version/exists.py +39 -0
- nextmv/cli/cloud/version/get.py +62 -0
- nextmv/cli/cloud/version/list.py +60 -0
- nextmv/cli/cloud/version/update.py +92 -0
- nextmv/cli/community/__init__.py +24 -0
- nextmv/cli/community/clone.py +86 -0
- nextmv/cli/community/list.py +200 -0
- nextmv/cli/configuration/__init__.py +23 -0
- nextmv/cli/configuration/config.py +228 -0
- nextmv/cli/configuration/create.py +94 -0
- nextmv/cli/configuration/delete.py +67 -0
- nextmv/cli/configuration/list.py +77 -0
- nextmv/cli/confirm.py +34 -0
- nextmv/cli/main.py +161 -3
- nextmv/cli/message.py +170 -0
- nextmv/cli/options.py +220 -0
- nextmv/cli/version.py +22 -2
- nextmv/cloud/__init__.py +17 -38
- nextmv/cloud/acceptance_test.py +20 -83
- nextmv/cloud/account.py +269 -30
- nextmv/cloud/application/__init__.py +898 -0
- nextmv/cloud/application/_acceptance.py +424 -0
- nextmv/cloud/application/_batch_scenario.py +845 -0
- nextmv/cloud/application/_ensemble.py +251 -0
- nextmv/cloud/application/_input_set.py +263 -0
- nextmv/cloud/application/_instance.py +289 -0
- nextmv/cloud/application/_managed_input.py +227 -0
- nextmv/cloud/application/_run.py +1393 -0
- nextmv/cloud/application/_secrets.py +294 -0
- nextmv/cloud/application/_shadow.py +320 -0
- nextmv/cloud/application/_switchback.py +332 -0
- nextmv/cloud/application/_utils.py +54 -0
- nextmv/cloud/application/_version.py +304 -0
- nextmv/cloud/batch_experiment.py +6 -2
- nextmv/cloud/community.py +446 -0
- nextmv/cloud/instance.py +11 -1
- nextmv/cloud/integration.py +8 -5
- nextmv/cloud/package.py +50 -9
- nextmv/cloud/shadow.py +254 -0
- nextmv/cloud/switchback.py +228 -0
- nextmv/deprecated.py +5 -3
- nextmv/input.py +20 -88
- nextmv/local/application.py +3 -15
- nextmv/local/runner.py +1 -1
- nextmv/model.py +50 -11
- nextmv/options.py +11 -256
- nextmv/output.py +0 -62
- nextmv/polling.py +54 -16
- nextmv/run.py +84 -37
- nextmv/status.py +1 -51
- {nextmv-0.39.0.dev1.dist-info → nextmv-1.0.0.dist-info}/METADATA +37 -11
- nextmv-1.0.0.dist-info/RECORD +185 -0
- nextmv-1.0.0.dist-info/entry_points.txt +2 -0
- nextmv/cloud/application.py +0 -4204
- nextmv-0.39.0.dev1.dist-info/RECORD +0 -55
- nextmv-0.39.0.dev1.dist-info/entry_points.txt +0 -2
- {nextmv-0.39.0.dev1.dist-info → nextmv-1.0.0.dist-info}/WHEEL +0 -0
- {nextmv-0.39.0.dev1.dist-info → nextmv-1.0.0.dist-info}/licenses/LICENSE +0 -0
nextmv/run.py
CHANGED
|
@@ -53,7 +53,7 @@ from nextmv._serialization import serialize_json
|
|
|
53
53
|
from nextmv.base_model import BaseModel
|
|
54
54
|
from nextmv.input import Input, InputFormat
|
|
55
55
|
from nextmv.output import Asset, Output, OutputFormat, Statistics
|
|
56
|
-
from nextmv.status import
|
|
56
|
+
from nextmv.status import StatusV2
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
def run_duration(start: datetime | float, end: datetime | float) -> int:
|
|
@@ -520,8 +520,6 @@ class Run(BaseModel):
|
|
|
520
520
|
Class name for the execution of a job.
|
|
521
521
|
runtime : str
|
|
522
522
|
Runtime environment for the run.
|
|
523
|
-
status : Status
|
|
524
|
-
Deprecated, use status_v2 instead.
|
|
525
523
|
status_v2 : StatusV2
|
|
526
524
|
Status of the run.
|
|
527
525
|
queuing_priority : int, optional
|
|
@@ -598,8 +596,6 @@ class Run(BaseModel):
|
|
|
598
596
|
status_v2: StatusV2
|
|
599
597
|
"""Status of the run."""
|
|
600
598
|
|
|
601
|
-
status: Status | None = None
|
|
602
|
-
"""Deprecated, use status_v2 instead."""
|
|
603
599
|
queuing_priority: int | None = None
|
|
604
600
|
"""Priority of the run in the queue."""
|
|
605
601
|
queuing_disabled: bool | None = None
|
|
@@ -656,8 +652,6 @@ class Metadata(BaseModel):
|
|
|
656
652
|
Size of the output in bytes.
|
|
657
653
|
format : Format
|
|
658
654
|
Format of the input and output of the run.
|
|
659
|
-
status : Status
|
|
660
|
-
Deprecated: use status_v2.
|
|
661
655
|
status_v2 : StatusV2
|
|
662
656
|
Status of the run.
|
|
663
657
|
"""
|
|
@@ -682,11 +676,26 @@ class Metadata(BaseModel):
|
|
|
682
676
|
"""Format of the input and output of the run."""
|
|
683
677
|
status_v2: StatusV2
|
|
684
678
|
"""Status of the run."""
|
|
685
|
-
status: Status | None = None
|
|
686
|
-
"""Deprecated: use status_v2."""
|
|
687
679
|
statistics: dict[str, Any] | None = None
|
|
688
680
|
"""User defined statistics of the run."""
|
|
689
681
|
|
|
682
|
+
def run_is_finalized(self) -> bool:
|
|
683
|
+
"""
|
|
684
|
+
Checks if the run has reached a finalized state.
|
|
685
|
+
|
|
686
|
+
Returns
|
|
687
|
+
-------
|
|
688
|
+
bool
|
|
689
|
+
True if the run status is one of `succeeded`, `failed`, or
|
|
690
|
+
`canceled`. False otherwise.
|
|
691
|
+
"""
|
|
692
|
+
|
|
693
|
+
return self.status_v2 in {
|
|
694
|
+
StatusV2.succeeded,
|
|
695
|
+
StatusV2.failed,
|
|
696
|
+
StatusV2.canceled,
|
|
697
|
+
}
|
|
698
|
+
|
|
690
699
|
|
|
691
700
|
class SyncedRun(BaseModel):
|
|
692
701
|
"""
|
|
@@ -850,7 +859,6 @@ class RunInformation(BaseModel):
|
|
|
850
859
|
run_type=RunTypeConfiguration(), # Default empty configuration
|
|
851
860
|
execution_class="", # Not available in RunInformation
|
|
852
861
|
runtime="", # Not available in RunInformation
|
|
853
|
-
status=self.metadata.status,
|
|
854
862
|
status_v2=self.metadata.status_v2,
|
|
855
863
|
# Optional fields that are not available in RunInformation
|
|
856
864
|
queuing_priority=None,
|
|
@@ -1031,6 +1039,43 @@ class RunLog(BaseModel):
|
|
|
1031
1039
|
"""Log of the run."""
|
|
1032
1040
|
|
|
1033
1041
|
|
|
1042
|
+
class TimestampedRunLog(BaseModel):
|
|
1043
|
+
"""
|
|
1044
|
+
Timestamped log entry of a run.
|
|
1045
|
+
|
|
1046
|
+
You can import the `TimestampedRunLog` class directly from `nextmv`:
|
|
1047
|
+
|
|
1048
|
+
```python
|
|
1049
|
+
from nextmv import TimestampedRunLog
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+
Parameters
|
|
1053
|
+
----------
|
|
1054
|
+
timestamp : datetime
|
|
1055
|
+
Timestamp of the log entry.
|
|
1056
|
+
log : str
|
|
1057
|
+
Log message.
|
|
1058
|
+
|
|
1059
|
+
Examples
|
|
1060
|
+
--------
|
|
1061
|
+
>>> from nextmv import TimestampedRunLog
|
|
1062
|
+
>>> from datetime import datetime
|
|
1063
|
+
>>> log_entry = TimestampedRunLog(
|
|
1064
|
+
... timestamp=datetime(2023, 1, 1, 12, 0, 0),
|
|
1065
|
+
... log="Optimization started"
|
|
1066
|
+
... )
|
|
1067
|
+
>>> log_entry.timestamp
|
|
1068
|
+
datetime.datetime(2023, 1, 1, 12, 0)
|
|
1069
|
+
>>> log_entry.log
|
|
1070
|
+
'Optimization started'
|
|
1071
|
+
"""
|
|
1072
|
+
|
|
1073
|
+
timestamp: datetime
|
|
1074
|
+
"""Timestamp of the log entry."""
|
|
1075
|
+
log: str
|
|
1076
|
+
"""Log message."""
|
|
1077
|
+
|
|
1078
|
+
|
|
1034
1079
|
class RunQueuing(BaseModel):
|
|
1035
1080
|
"""
|
|
1036
1081
|
RunQueuing configuration for a run.
|
|
@@ -1395,8 +1440,8 @@ class TrackedRun:
|
|
|
1395
1440
|
output : Output or dict[str, Any] or str, optional
|
|
1396
1441
|
The output of the run being tracked. Please note that if the output
|
|
1397
1442
|
format is JSON, then the output data must be JSON serializable. If both
|
|
1398
|
-
`output` and `output_dir_path` are specified, the `output` is ignored,
|
|
1399
|
-
the files in the directory are used instead. Defaults to None.
|
|
1443
|
+
`output` and `output_dir_path` are specified, the `output` is ignored,
|
|
1444
|
+
and the files in the directory are used instead. Defaults to None.
|
|
1400
1445
|
duration : int, optional
|
|
1401
1446
|
The duration of the run being tracked, in milliseconds. This field is
|
|
1402
1447
|
optional. Defaults to None.
|
|
@@ -1404,39 +1449,41 @@ class TrackedRun:
|
|
|
1404
1449
|
An error message if the run failed. You should only specify this if the
|
|
1405
1450
|
run failed (the `status` is `TrackedRunStatus.FAILED`), otherwise an
|
|
1406
1451
|
exception will be raised. This field is optional. Defaults to None.
|
|
1407
|
-
logs : list[str], optional
|
|
1408
|
-
The logs of the run being tracked.
|
|
1409
|
-
the log. This field is optional.
|
|
1452
|
+
logs : str or list[str], optional
|
|
1453
|
+
The logs of the run being tracked. If the logs are provided as a list,
|
|
1454
|
+
each element of the list is a line in the log. This field is optional.
|
|
1455
|
+
Defaults to None.
|
|
1410
1456
|
name : str, optional
|
|
1411
1457
|
Optional name for the run being tracked. Defaults to None.
|
|
1412
1458
|
description : str, optional
|
|
1413
1459
|
Optional description for the run being tracked. Defaults to None.
|
|
1414
1460
|
input_dir_path : str, optional
|
|
1415
1461
|
Path to a directory containing input files. If specified, the calling
|
|
1416
|
-
function will package the files in the directory into a tar file and
|
|
1417
|
-
it as a large input. This is useful for non-JSON input formats,
|
|
1418
|
-
when working with `CSV_ARCHIVE` or `MULTI_FILE`. If both
|
|
1419
|
-
`input_dir_path` are specified, the `input` is ignored, and
|
|
1420
|
-
the directory are used instead. Defaults to None.
|
|
1462
|
+
function will package the files in the directory into a tar file and
|
|
1463
|
+
upload it as a large input. This is useful for non-JSON input formats,
|
|
1464
|
+
such as when working with `CSV_ARCHIVE` or `MULTI_FILE`. If both
|
|
1465
|
+
`input` and `input_dir_path` are specified, the `input` is ignored, and
|
|
1466
|
+
the files in the directory are used instead. Defaults to None.
|
|
1421
1467
|
output_dir_path : str, optional
|
|
1422
1468
|
Path to a directory containing output files. If specified, the calling
|
|
1423
|
-
function will package the files in the directory into a tar file and
|
|
1424
|
-
it as a large output. This is useful for non-JSON output
|
|
1425
|
-
when working with `CSV_ARCHIVE` or `MULTI_FILE`. If
|
|
1426
|
-
`output_dir_path` are specified, the `output` is
|
|
1427
|
-
are saved in the directory instead. Defaults to
|
|
1469
|
+
function will package the files in the directory into a tar file and
|
|
1470
|
+
upload it as a large output. This is useful for non-JSON output
|
|
1471
|
+
formats, such as when working with `CSV_ARCHIVE` or `MULTI_FILE`. If
|
|
1472
|
+
both `output` and `output_dir_path` are specified, the `output` is
|
|
1473
|
+
ignored, and the files are saved in the directory instead. Defaults to
|
|
1474
|
+
None.
|
|
1428
1475
|
statistics : Statistics or dict[str, Any], optional
|
|
1429
1476
|
Statistics of the run being tracked. Only use this field if you want to
|
|
1430
|
-
track statistics for `CSV_ARCHIVE` or `MULTI_FILE` output formats. If
|
|
1431
|
-
are working with `JSON` or `TEXT` output formats, this field will
|
|
1432
|
-
ignored, as the statistics are extracted directly from the `output`.
|
|
1477
|
+
track statistics for `CSV_ARCHIVE` or `MULTI_FILE` output formats. If
|
|
1478
|
+
you are working with `JSON` or `TEXT` output formats, this field will
|
|
1479
|
+
be ignored, as the statistics are extracted directly from the `output`.
|
|
1433
1480
|
This field is optional. Defaults to None.
|
|
1434
1481
|
assets : list[Asset or dict[str, Any]], optional
|
|
1435
|
-
Assets associated with the run being tracked. Only use this field if
|
|
1436
|
-
want to track assets for `CSV_ARCHIVE` or `MULTI_FILE` output
|
|
1437
|
-
If you are working with `JSON` or `TEXT` output formats, this
|
|
1438
|
-
be ignored, as the assets are extracted directly from the
|
|
1439
|
-
This field is optional. Defaults to None.
|
|
1482
|
+
Assets associated with the run being tracked. Only use this field if
|
|
1483
|
+
you want to track assets for `CSV_ARCHIVE` or `MULTI_FILE` output
|
|
1484
|
+
formats. If you are working with `JSON` or `TEXT` output formats, this
|
|
1485
|
+
field will be ignored, as the assets are extracted directly from the
|
|
1486
|
+
`output`. This field is optional. Defaults to None.
|
|
1440
1487
|
|
|
1441
1488
|
Examples
|
|
1442
1489
|
--------
|
|
@@ -1482,8 +1529,8 @@ class TrackedRun:
|
|
|
1482
1529
|
------
|
|
1483
1530
|
ValueError
|
|
1484
1531
|
If the status value is invalid, if an error message is provided for a
|
|
1485
|
-
successful run, or if input/output formats are not JSON or
|
|
1486
|
-
|
|
1532
|
+
successful run, or if input/output formats are not JSON or input/output
|
|
1533
|
+
dicts are not JSON serializable.
|
|
1487
1534
|
"""
|
|
1488
1535
|
|
|
1489
1536
|
status: TrackedRunStatus
|
|
@@ -1508,8 +1555,8 @@ class TrackedRun:
|
|
|
1508
1555
|
error: str | None = None
|
|
1509
1556
|
"""An error message if the run failed. You should only specify this if the
|
|
1510
1557
|
run failed, otherwise an exception will be raised."""
|
|
1511
|
-
logs: list[str] | None = None
|
|
1512
|
-
"""The logs of the run being tracked.
|
|
1558
|
+
logs: str | list[str] | None = None
|
|
1559
|
+
"""The logs of the run being tracked. If a list, each element is a line in
|
|
1513
1560
|
the log."""
|
|
1514
1561
|
name: str | None = None
|
|
1515
1562
|
"""
|
nextmv/status.py
CHANGED
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
Provides status enums for Nextmv application runs.
|
|
3
3
|
|
|
4
4
|
This module defines enumerations for representing the status of a run in a
|
|
5
|
-
Nextmv application.
|
|
6
|
-
`StatusV2` enum.
|
|
5
|
+
Nextmv application.
|
|
7
6
|
|
|
8
7
|
Classes
|
|
9
8
|
-------
|
|
10
|
-
Status
|
|
11
|
-
Deprecated status of a run.
|
|
12
9
|
StatusV2
|
|
13
10
|
Represents the status of a run.
|
|
14
11
|
"""
|
|
@@ -16,53 +13,6 @@ StatusV2
|
|
|
16
13
|
from enum import Enum
|
|
17
14
|
|
|
18
15
|
|
|
19
|
-
class Status(str, Enum):
|
|
20
|
-
"""
|
|
21
|
-
!!! warning
|
|
22
|
-
`Status` is deprecated, use `StatusV2` instead.
|
|
23
|
-
|
|
24
|
-
Status of a run.
|
|
25
|
-
|
|
26
|
-
You can import the `Status` class directly from `nextmv`:
|
|
27
|
-
|
|
28
|
-
```python
|
|
29
|
-
from nextmv import Status
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
This enum represents the possible states of a run. It is deprecated and
|
|
33
|
-
`StatusV2` should be used for new implementations.
|
|
34
|
-
|
|
35
|
-
Attributes
|
|
36
|
-
----------
|
|
37
|
-
failed : str
|
|
38
|
-
Run failed.
|
|
39
|
-
running : str
|
|
40
|
-
Run is running.
|
|
41
|
-
succeeded : str
|
|
42
|
-
Run succeeded.
|
|
43
|
-
|
|
44
|
-
Examples
|
|
45
|
-
--------
|
|
46
|
-
>>> from nextmv.cloud import Status
|
|
47
|
-
>>> current_status = Status.running
|
|
48
|
-
>>> if current_status == Status.succeeded:
|
|
49
|
-
... print("Run completed successfully.")
|
|
50
|
-
... elif current_status == Status.failed:
|
|
51
|
-
... print("Run failed.")
|
|
52
|
-
... else:
|
|
53
|
-
... print(f"Run is currently {current_status.value}.")
|
|
54
|
-
Run is currently running.
|
|
55
|
-
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
failed = "failed"
|
|
59
|
-
"""Run failed."""
|
|
60
|
-
running = "running"
|
|
61
|
-
"""Run is running."""
|
|
62
|
-
succeeded = "succeeded"
|
|
63
|
-
"""Run succeeded."""
|
|
64
|
-
|
|
65
|
-
|
|
66
16
|
class StatusV2(str, Enum):
|
|
67
17
|
"""
|
|
68
18
|
Status of a run.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextmv
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: The all-purpose Python SDK for Nextmv
|
|
5
5
|
Project-URL: Homepage, https://www.nextmv.io
|
|
6
6
|
Project-URL: Documentation, https://nextmv-py.docs.nextmv.io/en/latest/nextmv/
|
|
@@ -229,19 +229,20 @@ Requires-Dist: plotly>=6.0.1; extra == 'all'
|
|
|
229
229
|
Provides-Extra: dev
|
|
230
230
|
Requires-Dist: build>=1.0.3; extra == 'dev'
|
|
231
231
|
Requires-Dist: folium>=0.20.0; extra == 'dev'
|
|
232
|
-
Requires-Dist: mlflow>=
|
|
233
|
-
Requires-Dist:
|
|
232
|
+
Requires-Dist: mlflow>=3.9.0; extra == 'dev'
|
|
233
|
+
Requires-Dist: nextpipe>=0.6.0; extra == 'dev'
|
|
234
234
|
Requires-Dist: openpyxl>=3.1.5; extra == 'dev'
|
|
235
235
|
Requires-Dist: pandas>=2.2.3; extra == 'dev'
|
|
236
236
|
Requires-Dist: plotly>=6.0.1; extra == 'dev'
|
|
237
237
|
Requires-Dist: pydantic>=2.5.2; extra == 'dev'
|
|
238
|
+
Requires-Dist: pytest>=9.0.2; extra == 'dev'
|
|
238
239
|
Requires-Dist: pyyaml>=6.0.1; extra == 'dev'
|
|
239
240
|
Requires-Dist: requests>=2.31.0; extra == 'dev'
|
|
240
241
|
Requires-Dist: ruff>=0.1.7; extra == 'dev'
|
|
241
242
|
Requires-Dist: twine>=4.0.2; extra == 'dev'
|
|
242
243
|
Requires-Dist: urllib3>=2.1.0; extra == 'dev'
|
|
243
244
|
Provides-Extra: notebook
|
|
244
|
-
Requires-Dist: mlflow>=
|
|
245
|
+
Requires-Dist: mlflow>=3.9.0; extra == 'notebook'
|
|
245
246
|
Description-Content-Type: text/markdown
|
|
246
247
|
|
|
247
248
|
# Nextmv Python SDK
|
|
@@ -267,20 +268,45 @@ Description-Content-Type: text/markdown
|
|
|
267
268
|
|
|
268
269
|
Welcome to `nextmv`, the general Python SDK for the Nextmv Platform.
|
|
269
270
|
|
|
270
|
-
📖 To learn more about
|
|
271
|
+
📖 To learn more about `nextmv`, visit the [docs][docs].
|
|
271
272
|
|
|
272
273
|
## Installation
|
|
273
274
|
|
|
274
|
-
Requires Python `>=3.10`. Install using
|
|
275
|
+
Requires Python `>=3.10`. Install using the Python package manager of your
|
|
276
|
+
choice:
|
|
275
277
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
```
|
|
278
|
+
- `pip`
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
pip install nextmv
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
- `pipx`
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
pipx install nextmv
|
|
288
|
+
```
|
|
279
289
|
|
|
280
|
-
|
|
290
|
+
- `uv`
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
uv tool install nextmv
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Install all optional dependencies (recommended) by specifying `"nextmv[all]"`
|
|
297
|
+
instead of just `"nextmv"`.
|
|
298
|
+
|
|
299
|
+
## CLI
|
|
300
|
+
|
|
301
|
+
The Nextmv CLI is installed automatically with the SDK. To verify installation,
|
|
302
|
+
run:
|
|
281
303
|
|
|
282
304
|
```bash
|
|
283
|
-
|
|
305
|
+
nextmv --help
|
|
284
306
|
```
|
|
285
307
|
|
|
308
|
+
If you are contributing to the CLI, please make sure you read the [CLI
|
|
309
|
+
Contributing Guide][cli-contributing].
|
|
310
|
+
|
|
286
311
|
[docs]: https://nextmv-py.docs.nextmv.io/en/latest/nextmv/
|
|
312
|
+
[cli-contributing]: nextmv/cli/CONTRIBUTING.md
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
nextmv/__about__.py,sha256=_5oYwFoY_vHiqADkmV3De2rfMp6jWWyt-4BuWGBBPqA,23
|
|
2
|
+
nextmv/__entrypoint__.py,sha256=XMT-ds1f2Yc6KoI2C0YEH-rJj5gVLfJMqUdRfcA3_KQ,1070
|
|
3
|
+
nextmv/__init__.py,sha256=LwpGBSiV0UG13zKHO2N3Ikb7bCMV08Gfbl6Cp80b_2g,3813
|
|
4
|
+
nextmv/_serialization.py,sha256=jYitMS1MU8ldsmObT-K_8V8P2Wx69tnDiEHCCgPGun4,2834
|
|
5
|
+
nextmv/base_model.py,sha256=kPFqE-c_3LcEy8fY0qDrJk_gbPYgSKtetRMby71oxE8,2298
|
|
6
|
+
nextmv/deprecated.py,sha256=U1YD-vie0dEVWFJgIwOuinxACHsyiEIQpfrt95ykhlg,1651
|
|
7
|
+
nextmv/input.py,sha256=iONLkXhcIXRCJVPNVkJdivh47A399VMepsSxNZByX2I,37649
|
|
8
|
+
nextmv/logger.py,sha256=kNIbu46MisrzYe4T0hNMpWfRTKKacDVvbtQcNys_c_E,2513
|
|
9
|
+
nextmv/manifest.py,sha256=v9En9zMZVKZn6G_HThoKUZowMtZr5hxzwWiK9wkVHPU,49023
|
|
10
|
+
nextmv/model.py,sha256=LxmWU8bPNlAap_9etPRydsgmgfH7Tgh0OXBLhIve7HY,16212
|
|
11
|
+
nextmv/options.py,sha256=PZtw2SIK48gkjzbJwMN6nfXm_3Utaa_ZUd23Y1XxS2Q,29657
|
|
12
|
+
nextmv/output.py,sha256=MbmI7t8p2LhKD1T--IZnsHvIuFY_TM8wTNCdLQVWs2A,54356
|
|
13
|
+
nextmv/polling.py,sha256=fwnAxmfpuBg4d6pi53TRTyyefdpf-cHLoTG6trAu-QA,11048
|
|
14
|
+
nextmv/run.py,sha256=8tkRQexJC8JN7IkLlhpwEW5pEudxwDq2sC_PImfwReI,54126
|
|
15
|
+
nextmv/safe.py,sha256=VAK4fGEurbLNji4Pg5Okga5XQSbI4aI9JJf95_68Z20,3867
|
|
16
|
+
nextmv/status.py,sha256=VqmOgxiEK89Y88ZUxZPfUXmY0HqvN28Lc1PDt0-9PLw,1600
|
|
17
|
+
nextmv/cli/CONTRIBUTING.md,sha256=5o6QgwqWXbE8pNigf0859oPYum8cy2lgCYFppoP8whc,22705
|
|
18
|
+
nextmv/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
nextmv/cli/confirm.py,sha256=1CBzH_StMerGmeJYPjm5AizhkKDDtrA-2_S4x0MmBE4,809
|
|
20
|
+
nextmv/cli/main.py,sha256=AwkIavXOAY-WmLA7F9eY2o6RWTOYHhgZiLs6WeqcB2E,5518
|
|
21
|
+
nextmv/cli/message.py,sha256=NWeCmpkA_IEDay3Fu3YjNN9eSi3p8e-Tw9wp1qAjfXI,3809
|
|
22
|
+
nextmv/cli/options.py,sha256=ymd6Y7_ZQkln35nHw3pLnFpqivgmJfuYAnyizmEuonc,6887
|
|
23
|
+
nextmv/cli/version.py,sha256=VRbfNpUvCFYPcphr-F3Ph4Z4UwtVis4keyVFHj1JISw,681
|
|
24
|
+
nextmv/cli/cloud/__init__.py,sha256=pywNNBy_poHaKn3_oIZRR9DDE8w3u65KvLpnX6S0BQI,1886
|
|
25
|
+
nextmv/cli/cloud/acceptance/__init__.py,sha256=v4U1m6z5zI8mQpmIE4kFeEYOsaDxnGRnRj2j5I6WueI,711
|
|
26
|
+
nextmv/cli/cloud/acceptance/create.py,sha256=Mtiy7fMBU5Ay_hxb2DXxdaM2XvR_QDbldtyjQIAaelQ,14582
|
|
27
|
+
nextmv/cli/cloud/acceptance/delete.py,sha256=htN7XqGudKhSrDpUwWhcb5VUp-sf4PTRZpqf5ObzAg8,2193
|
|
28
|
+
nextmv/cli/cloud/acceptance/get.py,sha256=pb3hRdIiynTi4K7xDNCMJE7bW46FE-X3EoAQU8kQJjE,3438
|
|
29
|
+
nextmv/cli/cloud/acceptance/list.py,sha256=9tTV4B2lgDqNxDnaNXkHxeh7jUQuAu9GQJsEKJ_NqIo,1881
|
|
30
|
+
nextmv/cli/cloud/acceptance/update.py,sha256=ZyhYlkA7Sp0WWMewV774elwvjFKhyg-7jIE9L1yeipU,2912
|
|
31
|
+
nextmv/cli/cloud/account/__init__.py,sha256=N3WqUHe48tBFWQ_I83EAgL_ng-y0tN6qHKROIMMxQhE,768
|
|
32
|
+
nextmv/cli/cloud/account/create.py,sha256=V8f2zlGryBHKR3TBI3A7t9MSSaS8GHMClYquGQXqRrQ,2876
|
|
33
|
+
nextmv/cli/cloud/account/delete.py,sha256=G6vblaHK21goNPIGRnTQyLDpZuPvRdMa5QEsZ566hF8,1828
|
|
34
|
+
nextmv/cli/cloud/account/get.py,sha256=KT0Cs2ZQtZV4D0efAjMIj47RSKSSsU3-1ZApH8oYzLU,1860
|
|
35
|
+
nextmv/cli/cloud/account/update.py,sha256=z_g_uEAgBJDcb0Kh80NbKTA7gycrJb6hHjJPVG9wEVw,2124
|
|
36
|
+
nextmv/cli/cloud/app/__init__.py,sha256=-ex_7C34XY1K3bU8hQ9vdnjJEzNamuuHNuK_cJSkHac,1037
|
|
37
|
+
nextmv/cli/cloud/app/create.py,sha256=JPVRFsnuN1ffvsAb1A6AbbRbkF6bLXjN6AqSoy7JY3c,4680
|
|
38
|
+
nextmv/cli/cloud/app/delete.py,sha256=5OaLFOnmwhaMOG2507ZsoyAMz_fvZi6BGFfzDFDvfE4,1682
|
|
39
|
+
nextmv/cli/cloud/app/exists.py,sha256=gd9pmR1Oq_cCjaTNB82PmJtDYowrb17vBfQYjoh6E9Q,1258
|
|
40
|
+
nextmv/cli/cloud/app/get.py,sha256=_v_7PrUniaaRvHclBA02V-UVcbVe1eFixGU6CeXA4m4,1765
|
|
41
|
+
nextmv/cli/cloud/app/list.py,sha256=AI1VNNueYfzwuSAFlf-vXbZEY-th5BrzXZgn-3uusFo,1653
|
|
42
|
+
nextmv/cli/cloud/app/push.py,sha256=GbyiVcf5U-lCGL_hy5Ya6ihnNFleYD8_rrg5PJ3oSOg,15369
|
|
43
|
+
nextmv/cli/cloud/app/update.py,sha256=4Mp8Zf40K1hdHO3KT9Md3piBWqzracfpWtujJfbPocM,4070
|
|
44
|
+
nextmv/cli/cloud/batch/__init__.py,sha256=-_UjmvrQItACUY_BQ_cOffNJixNHAb4vH_pew25sJ3o,774
|
|
45
|
+
nextmv/cli/cloud/batch/create.py,sha256=T70sjvvTxXxRpC4COFZFU5ei6ylS5MWLg6VLP3SjIso,15465
|
|
46
|
+
nextmv/cli/cloud/batch/delete.py,sha256=S_qmQi5l57maJ2sAJtS-ie5FFZh_KykdWbGHBeKil8E,2178
|
|
47
|
+
nextmv/cli/cloud/batch/get.py,sha256=t0yMITCeagJPDJee_b83a0JINiL3yLeWouLzBeWJCnE,3485
|
|
48
|
+
nextmv/cli/cloud/batch/list.py,sha256=ustDRT0-YNFcri80m32JaXynid0L5tDEN6cXzKqYTYo,1880
|
|
49
|
+
nextmv/cli/cloud/batch/metadata.py,sha256=GnQT5e_KiAH8yYnDk4njb7ejt5q4LYv3MJl1b6uXY1U,2216
|
|
50
|
+
nextmv/cli/cloud/batch/update.py,sha256=adFTpelbhJtEtqbY4ssU89g6R4g0jbC9qeN5mMfxgGY,2994
|
|
51
|
+
nextmv/cli/cloud/data/__init__.py,sha256=CZ_htB1sa25nJDugrAi-HbQsfNu-8of0yFAqgbmLG3o,761
|
|
52
|
+
nextmv/cli/cloud/data/upload.py,sha256=dVa5Xf0al8cTs1wRJlDXDQ210rpG9Jy0WA21H85iVis,5668
|
|
53
|
+
nextmv/cli/cloud/ensemble/__init__.py,sha256=CVcuxGpPyLeU1eDMBCk1eT0mYy-FWKiyboh1VWwZxfc,1056
|
|
54
|
+
nextmv/cli/cloud/ensemble/create.py,sha256=wO8vzEUqoEg_QHF_S3ljmbo_XulOKhvbeJg_atznDpw,14873
|
|
55
|
+
nextmv/cli/cloud/ensemble/delete.py,sha256=k44YxkyvppDFhMEFPEkMSc0nlNN7GXXIhy4ltIbdM9w,2168
|
|
56
|
+
nextmv/cli/cloud/ensemble/get.py,sha256=-4crRjI8MF8meq5uUhUR3q39lK4EIsvpzaODfGvwx3k,2135
|
|
57
|
+
nextmv/cli/cloud/ensemble/list.py,sha256=zm7TfBM5HH_8I-r4U219AbmQadET96kw1MrsjwARSAM,1887
|
|
58
|
+
nextmv/cli/cloud/ensemble/update.py,sha256=5AeuhY-CytzON1FFoEijBlo1T9oHvkq3mxV9I3qCeLA,3383
|
|
59
|
+
nextmv/cli/cloud/input_set/__init__.py,sha256=qDyIc0JJm1oU9tyt9MgjkJL6VKXSFCySPTKKHqfLHCM,957
|
|
60
|
+
nextmv/cli/cloud/input_set/create.py,sha256=nJWsaj-fPXS8rwIbh13_wXc9SitDA4ByIHhlBS51GHo,5661
|
|
61
|
+
nextmv/cli/cloud/input_set/delete.py,sha256=jPm_xcw5d4vPSrykgHRPqBONokyF9a8deDBN6cowxT8,2058
|
|
62
|
+
nextmv/cli/cloud/input_set/get.py,sha256=MvMD6tmMA_ui4MVCwRkOnmU0WySJmSJX7x2Q-x_xXwA,1916
|
|
63
|
+
nextmv/cli/cloud/input_set/list.py,sha256=7I0F1rs19bY9d_V2TjEFxHCbHq3bNV_mO0Fd9qJ58IY,1896
|
|
64
|
+
nextmv/cli/cloud/input_set/update.py,sha256=P5b94m08hGMAGr455fH-Cd1yryeMC15r1YfmJEt2NSw,4144
|
|
65
|
+
nextmv/cli/cloud/instance/__init__.py,sha256=UH46OH_xNpGGzIbUTMHBXZ7SLStikOhz1iC8lO2Nfjs,1111
|
|
66
|
+
nextmv/cli/cloud/instance/create.py,sha256=4gVp8K3yyJDUQ0NqHRl-quswH8XuF8kBMezC9feweJc,9640
|
|
67
|
+
nextmv/cli/cloud/instance/delete.py,sha256=k5HH5K3LAK645i4_so2EUxDNyGX5C97WG2UAp1yXVCI,1950
|
|
68
|
+
nextmv/cli/cloud/instance/exists.py,sha256=c3I8MU9efvc3YLwo-PUV7U4HiHgku-RZL_CQGWG2UTw,1320
|
|
69
|
+
nextmv/cli/cloud/instance/get.py,sha256=To5WFwLi8XmcT3yMA0ZTqwHFM1JBclTMtpuAMNiEXo0,1872
|
|
70
|
+
nextmv/cli/cloud/instance/list.py,sha256=df_gxIUz3COGwekbqg-hBDKLGVz8fV_FY3rRRb5iPZg,1791
|
|
71
|
+
nextmv/cli/cloud/instance/update.py,sha256=skrxC7oCOqND_U8EnyQT27YAuWEaqgUEpFzlx4Yn5g8,7327
|
|
72
|
+
nextmv/cli/cloud/managed_input/__init__.py,sha256=aS1YQ_nN92Z7-GG-geEiEABx_fq5nVS23Nii6W8uGbQ,940
|
|
73
|
+
nextmv/cli/cloud/managed_input/create.py,sha256=wHqGBiMSyxbpdu02KxF5srUcZA6t3MZqa3EmMWC_0eY,4868
|
|
74
|
+
nextmv/cli/cloud/managed_input/delete.py,sha256=guOqv0IkJZStyHwqfjiWdm-b1Dbs4NUBZikKv_7-NQs,2107
|
|
75
|
+
nextmv/cli/cloud/managed_input/get.py,sha256=Rl2RmSOmMUXy2XAiaKhgLwE8RvqF8crfmfY3PfxjlfE,2045
|
|
76
|
+
nextmv/cli/cloud/managed_input/list.py,sha256=6l4zJPVErmooobteBn05RmoXHgvI0RBt_Lnb-Z_rDYU,1896
|
|
77
|
+
nextmv/cli/cloud/managed_input/update.py,sha256=E1ddfQ9VJ7SgG8V6kkRYbgKhS4vDyv06WePNbLEXUsE,3191
|
|
78
|
+
nextmv/cli/cloud/run/__init__.py,sha256=KyonwVd5lfweaq-cIpPuRAzHFrK0slfqJsIjsT_p4PU,1102
|
|
79
|
+
nextmv/cli/cloud/run/cancel.py,sha256=d7aQQQmek_i3P2cDmpOohLiwSjWxfKEiVAvBnNYAmuE,1259
|
|
80
|
+
nextmv/cli/cloud/run/create.py,sha256=39D4VdcfYRioziIy-qjLDSs-_dhSavrkmzcltUfgz3M,19526
|
|
81
|
+
nextmv/cli/cloud/run/get.py,sha256=bUczN6a1SV3wkW0uUPfQdO3i13BF51udixmuyiicdi8,7826
|
|
82
|
+
nextmv/cli/cloud/run/input.py,sha256=QEdDnKxEmucUwPPRAqh1VuErw5rKaAwXOHrmJESP-k0,3171
|
|
83
|
+
nextmv/cli/cloud/run/list.py,sha256=z3286Q0Aznz-qAvanCB03rXjCfGPk84A32t8AqTC2Cs,2563
|
|
84
|
+
nextmv/cli/cloud/run/logs.py,sha256=GAaECn6Jw5iDv1408CjAWxLVOjaO_d6vL6OBe3OsjiQ,6076
|
|
85
|
+
nextmv/cli/cloud/run/metadata.py,sha256=R2vOndXVQ9U2fooZdL0rmKR3j5uimS-Z8ElS8zH8CIs,2284
|
|
86
|
+
nextmv/cli/cloud/run/track.py,sha256=xOGvv93popCf6HpaoGTXPSgm3s4kh5NNgGmQEWVI7gs,17867
|
|
87
|
+
nextmv/cli/cloud/scenario/__init__.py,sha256=lHblPFBIlCGjRzEw9VLEG8dPKoWRKyi88a2VYfXwqsM,792
|
|
88
|
+
nextmv/cli/cloud/scenario/create.py,sha256=JFaVucmznc_fo5o6PVTaDhWjtxtMBU1hCthJgpI8UoA,15524
|
|
89
|
+
nextmv/cli/cloud/scenario/delete.py,sha256=eHP3NnrGLqEPcwFrVY6aTPSHMIqVkE9MdE7XMILlvCE,2047
|
|
90
|
+
nextmv/cli/cloud/scenario/get.py,sha256=KVoY2fumrHIYl8vHYhHEdKQNkUukPMw4vKhMBMOTNBE,3414
|
|
91
|
+
nextmv/cli/cloud/scenario/list.py,sha256=uOfmwPDhwatqKxq0FxlmCcvObptGXd1_tQPnUwUtD2Q,1853
|
|
92
|
+
nextmv/cli/cloud/scenario/metadata.py,sha256=FKs-0s1AWqQ9EaYLifYx_uYr045jAWIfAm1V1eGjhz0,2210
|
|
93
|
+
nextmv/cli/cloud/scenario/update.py,sha256=41Z2T8T6dfm3iFVShFQL24F2bH72pyYtPMPDB5w8v-w,2924
|
|
94
|
+
nextmv/cli/cloud/secrets/__init__.py,sha256=-96-F6eccRH804CePGJDsDCnjD5LRdwvSRqmAbTdVjY,1056
|
|
95
|
+
nextmv/cli/cloud/secrets/create.py,sha256=iBaGmwAHrSjnGqFtqg_yarYglDNfsNBWVJvhhjwLWCQ,8146
|
|
96
|
+
nextmv/cli/cloud/secrets/delete.py,sha256=unpJFviXBwrvIzvvszPpJJca24c2KN7CKWB7nnJFhBk,2133
|
|
97
|
+
nextmv/cli/cloud/secrets/get.py,sha256=nacOWX_MUcHRImjMptQSTu8krtrrE38CZKYfYG5epEw,2150
|
|
98
|
+
nextmv/cli/cloud/secrets/list.py,sha256=3TxuHNnQqnNw8c8YigvXldpRMYwZts-ESmh07AqiXDk,1879
|
|
99
|
+
nextmv/cli/cloud/secrets/update.py,sha256=LuKDhnQ202NS2Gby8n46VsW7R8-82-zHJ7NU2R3hrXQ,5300
|
|
100
|
+
nextmv/cli/cloud/shadow/__init__.py,sha256=O9dqXZHOCRDzz7dI7ZWzUPxRGXfQXrQWQup2YLT6LTs,941
|
|
101
|
+
nextmv/cli/cloud/shadow/create.py,sha256=SnG42mZFhslfkuJdiw75cyXkKJbkzTDvnNGMTnvINpo,6598
|
|
102
|
+
nextmv/cli/cloud/shadow/delete.py,sha256=LgNtQG062XCt__KyuFFcN-1VejWqxSiyynzPZOAuPsE,2102
|
|
103
|
+
nextmv/cli/cloud/shadow/get.py,sha256=8NmXl2romVPGfS9KP4G2Sv4SuSZKgRx85GZ4ClwTqWc,1764
|
|
104
|
+
nextmv/cli/cloud/shadow/list.py,sha256=aVFa3FAzfcUsMlD0hYgZwhoF75GQkaNDHrrq82qqylQ,1810
|
|
105
|
+
nextmv/cli/cloud/shadow/metadata.py,sha256=vHJYVDXXHwiqQrG0J0D_aRP--b47UfEgJwJOXqfskSo,2161
|
|
106
|
+
nextmv/cli/cloud/shadow/start.py,sha256=SkDYSfyQLdfHJKCOzc4CW6MVO7YBWCZCOAoGBzqSFhI,1464
|
|
107
|
+
nextmv/cli/cloud/shadow/stop.py,sha256=WNg73nHkQ6Mo7hdg3qfSXQBkd77iKPfRIdSSJxTHhTY,1706
|
|
108
|
+
nextmv/cli/cloud/shadow/update.py,sha256=l7_gODO9fXYGOLzFMJmIVpT5Jku9XQAo2PI5x3AP4xU,2880
|
|
109
|
+
nextmv/cli/cloud/switchback/__init__.py,sha256=jYeujjbqvqRGIgvC0wr3I6zavw1az7IS8jiJsAlH-z4,981
|
|
110
|
+
nextmv/cli/cloud/switchback/create.py,sha256=lEboNjN1ZFbuOCFmK2ADIRH-pIENc80NcR809rDOY3I,5085
|
|
111
|
+
nextmv/cli/cloud/switchback/delete.py,sha256=W0TWsYw0MI23MbN8Oj6lQn7K7jEafY1dWW4HVMooyeY,2186
|
|
112
|
+
nextmv/cli/cloud/switchback/get.py,sha256=GQKzaW4jCfV21DyZ5vDNrkFH2Tw1pR8Zv_71jiMZ8UA,1863
|
|
113
|
+
nextmv/cli/cloud/switchback/list.py,sha256=wrXXA9aMLLcq_6WFk-dy9RopE57dFZb7TxlWdRx9G94,1882
|
|
114
|
+
nextmv/cli/cloud/switchback/metadata.py,sha256=WDhK-AVKEJQ38WhPZqPOgemHt-PI__r6sIEBFQtKxVw,2287
|
|
115
|
+
nextmv/cli/cloud/switchback/start.py,sha256=N9Bci8DmCQW8XUm93Rhj30TCf_YvK6N5qxZXMpW2X1I,1535
|
|
116
|
+
nextmv/cli/cloud/switchback/stop.py,sha256=pOasfThNCB3GXDNz4TPyJ5DNnMf3vLin6lAh1XoAk-Y,1774
|
|
117
|
+
nextmv/cli/cloud/switchback/update.py,sha256=pILZUbqlIM6l1mrbVPtks6CGcgre5829sSnD2yMZd-0,3000
|
|
118
|
+
nextmv/cli/cloud/upload/__init__.py,sha256=khOl6NxkPd4KEqN0xMdxzmST-Ct3Vr_xk8zbMvbrLl8,511
|
|
119
|
+
nextmv/cli/cloud/upload/create.py,sha256=vRTHCeh7cbB9JSAMUCpcdQrzQ1od5FiFiNdPPh7sFqw,1216
|
|
120
|
+
nextmv/cli/cloud/version/__init__.py,sha256=ATPKdKvQM-IambdwIcqB1GZzqLVpjn1ZQkz2E_RghzY,1016
|
|
121
|
+
nextmv/cli/cloud/version/create.py,sha256=ionmDnCtf0-6ql4QRlfU98q82rV70llAQ5nrqP-php4,3017
|
|
122
|
+
nextmv/cli/cloud/version/delete.py,sha256=F-USKuET_qxxZerO7aPGLBrvs31heVCCz1BvCLnPtn8,1924
|
|
123
|
+
nextmv/cli/cloud/version/exists.py,sha256=DAWP-3n_yaqqxtQAWBwhSziMYJifFEdydfOmsvCP92U,1298
|
|
124
|
+
nextmv/cli/cloud/version/get.py,sha256=eGbka3TG8UJE150h22rn0BUqTi1xRE7roVDj6yJvnRY,1839
|
|
125
|
+
nextmv/cli/cloud/version/list.py,sha256=sKdHgyowLG1jyUEtu87yCPC5_2-0i3VDEgfmvb-bBn0,1770
|
|
126
|
+
nextmv/cli/cloud/version/update.py,sha256=mEUYXGHLGkiEGH31KK6jDDfviHEhVCdLjLQL_5u0vLk,2869
|
|
127
|
+
nextmv/cli/community/__init__.py,sha256=FJRlBlIC4y-npgh9HNz2wezecq8vfsYWo2MAQdUj1UM,612
|
|
128
|
+
nextmv/cli/community/clone.py,sha256=_I1C58pKmfAHdl-8eaZDeaxZm2Rnp2en8PCPdflAse4,2912
|
|
129
|
+
nextmv/cli/community/list.py,sha256=Gf9E-wD-0GQcaTPGBNp8p_zX44UAL5bYG6LKroTKLCU,5807
|
|
130
|
+
nextmv/cli/configuration/__init__.py,sha256=7oryF4PKkORh8bcdgbN2k36rZrFpJsM7Xfq_J4-MkFs,516
|
|
131
|
+
nextmv/cli/configuration/config.py,sha256=t43ubCcbfbpfq9HvkVb2WQY9V47lrLEP0KvsWfjOJ8Y,6667
|
|
132
|
+
nextmv/cli/configuration/create.py,sha256=lTOxE-38BO7qed1I-wlJ8Ey1WHGMTPbGMozncW8xizM,2737
|
|
133
|
+
nextmv/cli/configuration/delete.py,sha256=-3IL0nh367D0NhIdPXOCCCAWhejABS8QIfOcoH_cW-M,1915
|
|
134
|
+
nextmv/cli/configuration/list.py,sha256=HIZvDJQW5B0-o_ZqQHuxRw7N_VmxqYM46fucKCvo1zw,2208
|
|
135
|
+
nextmv/cloud/__init__.py,sha256=IW9fdg3QgusJGAU4VVEu5qkCidzalyYf4wjC1T14rnQ,4183
|
|
136
|
+
nextmv/cloud/acceptance_test.py,sha256=H34lvccJzN1URpnhrHstcVxgvq1s2iCymiKIPBHcToY,25828
|
|
137
|
+
nextmv/cloud/account.py,sha256=X2xQjzhgEdKR0eypH8lWKUOwDISjJSd5SwOwEnpfTVk,13573
|
|
138
|
+
nextmv/cloud/assets.py,sha256=alw634ub-DR0CHQXZy_ObeGvQthPXFLdgzgbvbH1SGY,1376
|
|
139
|
+
nextmv/cloud/batch_experiment.py,sha256=flwP5pbBio-ilAbopj8DdSWOlxGbct1IOElsgcyVN8U,10545
|
|
140
|
+
nextmv/cloud/client.py,sha256=Yj4FE4GKsLHkYijAYXcotlyNfhAWANMuWetHXsYPg1M,18101
|
|
141
|
+
nextmv/cloud/community.py,sha256=mWZqQR4DqwZQ6BYQRQxPZyH39EW4CLNm6QG_L6HEyQ8,13123
|
|
142
|
+
nextmv/cloud/ensemble.py,sha256=_hKPjSLtuGH1xGG70ZBsmY_IL5XinZqVHHwBxtX9Omw,8570
|
|
143
|
+
nextmv/cloud/input_set.py,sha256=wsLmMI1C7BslWDN5j1RnVUA8z54-Hq1eLG9bkzyqafo,4187
|
|
144
|
+
nextmv/cloud/instance.py,sha256=rLrgNNvNyC6hZtjxIfTR2Luylmbh2emJIZVCy_hTJZ4,5495
|
|
145
|
+
nextmv/cloud/integration.py,sha256=ce8TWOw_xIXxf8tzqHNriPmJ2dRA9v2EZSXnWZEvWVk,18314
|
|
146
|
+
nextmv/cloud/package.py,sha256=88XSJ15QGcHboNJAw2hGowiLKBu2O2nV5ZieZFx7XDI,17133
|
|
147
|
+
nextmv/cloud/scenario.py,sha256=1_4PI9ehYaSonEe_l59cFhZNmqQ_brXXP6-mVq9i8a8,14183
|
|
148
|
+
nextmv/cloud/secrets.py,sha256=fA5cX0jfTsPVZWV7433wzETGlXpWRLHGswuObx9e6FQ,6820
|
|
149
|
+
nextmv/cloud/shadow.py,sha256=U-s9alkDS3wmYCEVDKEvuceveWOZOiF7rkH4_8eKdNk,7711
|
|
150
|
+
nextmv/cloud/switchback.py,sha256=6e4J5zCewgGaitB5iJiO3u6BPHcAlzdAB5WU8j2b4K8,7427
|
|
151
|
+
nextmv/cloud/url.py,sha256=Fz70ywkWdCLmP21ZBmJwZi5kDbjpmsX_VlwVF_xQeHg,1836
|
|
152
|
+
nextmv/cloud/version.py,sha256=5_S7_pWUVBFbvAArku20eK7S645GJcHtgE2OpXLdSzQ,5300
|
|
153
|
+
nextmv/cloud/application/__init__.py,sha256=x9khEFlWUdupBxzMuSyrCftopNtrK64LTTEaCRSRwyM,32712
|
|
154
|
+
nextmv/cloud/application/_acceptance.py,sha256=PEkf9cDunK40UNw96QBhpJpH5SOFLZMtmnyX84uAo9k,13974
|
|
155
|
+
nextmv/cloud/application/_batch_scenario.py,sha256=cSsX5vPOkm91UqRBPIcqlOvQ0iojwt4sQKYGZEE7x6k,28479
|
|
156
|
+
nextmv/cloud/application/_ensemble.py,sha256=05l9uR0hTnW8nQjhRzjd2TPfvCoaAqNddWP-aVRL5rg,7666
|
|
157
|
+
nextmv/cloud/application/_input_set.py,sha256=BXleeHOClCkwOh53vG6F_561XzAo_XgrHfGmNbJxIds,8131
|
|
158
|
+
nextmv/cloud/application/_instance.py,sha256=Jjig8NI1jXNyBQoYj7JOfS0JFmw5jJdKLfi82fqBYgo,8386
|
|
159
|
+
nextmv/cloud/application/_managed_input.py,sha256=zaWqGpe8Y5XWheroAqZSo-xNHfn2MKblNwRUbQVXBRM,6694
|
|
160
|
+
nextmv/cloud/application/_run.py,sha256=4lrxyQCUGJszdiYNGynYg6RXBPqjQ4tFcDmxH9dfSXY,53869
|
|
161
|
+
nextmv/cloud/application/_secrets.py,sha256=hWhPAyY8aDF8zlEz9opPNLrFOYtp-COFqG_jgOZ6VxI,9476
|
|
162
|
+
nextmv/cloud/application/_shadow.py,sha256=ck1v0yBuayGnlLlq5pEIwNQOE3wU29m9jsx8II7MxqQ,9327
|
|
163
|
+
nextmv/cloud/application/_switchback.py,sha256=MbB9MVlBUeQkm_xekRC56bgEdcIFKmFnLPtfMXGLItI,9994
|
|
164
|
+
nextmv/cloud/application/_utils.py,sha256=GqksGBHCV2sc-itL6hlWnncUJjIxhw6LH3pOjs4M-us,1643
|
|
165
|
+
nextmv/cloud/application/_version.py,sha256=o1jVLfoKJNCs-32P7hkL1IGba8Eb1hnT6vnaZpyc0dk,8543
|
|
166
|
+
nextmv/default_app/.gitignore,sha256=gsfnfXMYNt-YTroh5hAzauwBZoPDJ6D_fB17rMSnIko,8
|
|
167
|
+
nextmv/default_app/README.md,sha256=hW3zWcYzxhYfof-pThaN1Fkx93GT8tTUVRhx15edBis,662
|
|
168
|
+
nextmv/default_app/app.yaml,sha256=TKjKnuoK0SDpouB_AS7TQmE_8HZbQYjmwFvhzFL1xpc,382
|
|
169
|
+
nextmv/default_app/input.json,sha256=zgvbKL3boB0WIU6-9mEU3ZWBddQ5cQ0vhgmDwDyz4hE,63
|
|
170
|
+
nextmv/default_app/main.py,sha256=gG-1JIvKXPCkm4JV46PcXxsQTAefwPXQbdPxkSubhf0,888
|
|
171
|
+
nextmv/default_app/requirements.txt,sha256=wRE_HkYYWzCGnYZ2NuatHXul4gCHvU3iUAdsxtzpYiA,29
|
|
172
|
+
nextmv/default_app/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
173
|
+
nextmv/default_app/src/visuals.py,sha256=WYK_YBnLmYo3TpVev1CpoNCuW5R7hk9QIkeCmvMn1Fs,1014
|
|
174
|
+
nextmv/local/__init__.py,sha256=6BsoqlK4dw6X11_uKzz9gBPfxKpdiol2FYO8R3X73SE,116
|
|
175
|
+
nextmv/local/application.py,sha256=SBOARPnffAH6q-S0GGPEjt0gYIXmeR-38-VcZMfhqKk,47745
|
|
176
|
+
nextmv/local/executor.py,sha256=1qoynUCB9UDgXhjXKds0OGc8McAtAsQHJ0-QVWTJrQs,36562
|
|
177
|
+
nextmv/local/geojson_handler.py,sha256=7FavJdkUonop-yskjis0x3qFGB8A5wZyoBUblw-bVhw,12540
|
|
178
|
+
nextmv/local/local.py,sha256=cp56UpI8h19Ob6Jvb_Ni0ceXH5Vv3ET_iPTDe6ftq3Y,2617
|
|
179
|
+
nextmv/local/plotly_handler.py,sha256=bLb50e3AkVr_W-F6S7lXfeRdN60mG2jk3UElNmhoMWU,1930
|
|
180
|
+
nextmv/local/runner.py,sha256=bM1dFIAG4f9pEtbyevzkRa9nSppqTeD8naomNzJVBRU,8560
|
|
181
|
+
nextmv-1.0.0.dist-info/METADATA,sha256=rx3dIU5Ck2xzUi2mQ0FjmQgK8ZihJnEIlTRBbwVJKXE,16520
|
|
182
|
+
nextmv-1.0.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
183
|
+
nextmv-1.0.0.dist-info/entry_points.txt,sha256=bH7kXUt_IOLpeW_O7Z-J2gALs2YYJ4CmWuzS8MdK6uY,48
|
|
184
|
+
nextmv-1.0.0.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
|
|
185
|
+
nextmv-1.0.0.dist-info/RECORD,,
|