nextmv 1.0.0.dev5__py3-none-any.whl → 1.0.0.dev6__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/manifest.py CHANGED
@@ -829,9 +829,7 @@ class ManifestContentMultiFileOutput(BaseModel):
829
829
  Parameters
830
830
  ----------
831
831
  statistics : Optional[str], default=""
832
- Deprecated: Use `metrics` instead. The path to the statistics file.
833
- metrics : Optional[str], default=""
834
- The path to the metrics file.
832
+ The path to the statistics file.
835
833
  assets : Optional[str], default=""
836
834
  The path to the assets file.
837
835
  solutions : Optional[str], default=""
@@ -841,18 +839,16 @@ class ManifestContentMultiFileOutput(BaseModel):
841
839
  --------
842
840
  >>> from nextmv import ManifestContentMultiFileOutput
843
841
  >>> output_config = ManifestContentMultiFileOutput(
844
- ... metrics="my-outputs/metrics.json",
842
+ ... statistics="my-outputs/statistics.json",
845
843
  ... assets="my-outputs/assets.json",
846
844
  ... solutions="my-outputs/solutions/"
847
845
  ... )
848
- >>> output_config.metrics
849
- 'my-outputs/metrics.json'
846
+ >>> output_config.statistics
847
+ 'my-outputs/statistics.json'
850
848
  """
851
849
 
852
850
  statistics: str | None = ""
853
- """Deprecated: Use `metrics` instead. The path to the statistics file."""
854
- metrics: str | None = ""
855
- """The path to the metrics file."""
851
+ """The path to the statistics file."""
856
852
  assets: str | None = ""
857
853
  """The path to the assets file."""
858
854
  solutions: str | None = ""
@@ -882,7 +878,7 @@ class ManifestContentMultiFile(BaseModel):
882
878
  >>> multi_file_config = ManifestContentMultiFile(
883
879
  ... input=ManifestContentMultiFileInput(path="data/input/"),
884
880
  ... output=ManifestContentMultiFileOutput(
885
- ... metrics="my-outputs/metrics.json",
881
+ ... statistics="my-outputs/statistics.json",
886
882
  ... assets="my-outputs/assets.json",
887
883
  ... solutions="my-outputs/solutions/"
888
884
  ... )
@@ -923,7 +919,7 @@ class ManifestContent(BaseModel):
923
919
  ... multi_file=ManifestContentMultiFile(
924
920
  ... input=ManifestContentMultiFileInput(path="data/input/"),
925
921
  ... output=ManifestContentMultiFileOutput(
926
- ... metrics="my-outputs/metrics.json",
922
+ ... statistics="my-outputs/statistics.json",
927
923
  ... assets="my-outputs/assets.json",
928
924
  ... solutions="my-outputs/solutions/"
929
925
  ... )
nextmv/model.py CHANGED
@@ -195,7 +195,7 @@ class Model:
195
195
  ... return nextmv.Output(
196
196
  ... options=input.options,
197
197
  ... solution=nextroute_output.solutions[0].to_dict(),
198
- ... metrics=nextroute_output.metrics.to_dict(),
198
+ ... statistics=nextroute_output.statistics.to_dict(),
199
199
  ... )
200
200
  """
201
201
 
@@ -234,7 +234,7 @@ class Model:
234
234
  ... return Output(
235
235
  ... options=input.options,
236
236
  ... solution=result,
237
- ... metrics={"processing_time": 0.5}
237
+ ... statistics={"processing_time": 0.5}
238
238
  ... )
239
239
  """
240
240
 
nextmv/options.py CHANGED
@@ -695,7 +695,7 @@ class Options:
695
695
  help=argparse.SUPPRESS,
696
696
  default="1",
697
697
  )
698
- args = parser.parse_args()
698
+ args, _ = parser.parse_known_args()
699
699
 
700
700
  for arg in vars(args):
701
701
  if arg == "fff" or arg == "f":
nextmv/output.py CHANGED
@@ -8,9 +8,9 @@ destinations.
8
8
  Classes
9
9
  -------
10
10
  RunStatistics
11
- Deprecated: Statistics about a general run.
11
+ Statistics about a general run.
12
12
  ResultStatistics
13
- Deprecated: Statistics about a specific result.
13
+ Statistics about a specific result.
14
14
  DataPoint
15
15
  A data point representing a 2D coordinate.
16
16
  Series
@@ -18,10 +18,7 @@ Series
18
18
  SeriesData
19
19
  Data container for multiple series of data points.
20
20
  Statistics
21
- Deprecated: Use metrics instead. Complete statistics container for a
22
- solution, including run metrics and result data.
23
- Metrics
24
- Metrics container for a solution.
21
+ Complete statistics container for a solution, including run metrics and result data.
25
22
  OutputFormat
26
23
  Enumeration of supported output formats.
27
24
  SolutionFile
@@ -49,9 +46,7 @@ Attributes
49
46
  ASSETS_KEY : str
50
47
  Assets key constant used for identifying assets in the run output.
51
48
  STATISTICS_KEY : str
52
- Deprecated: Use METRICS_KEY instead. Statistics key constant used for identifying statistics in the run output.
53
- METRICS_KEY : str
54
- Metrics key constant used for identifying metrics in the run output.
49
+ Statistics key constant used for identifying statistics in the run output.
55
50
  SOLUTIONS_KEY : str
56
51
  Solutions key constant used for identifying solutions in the run output.
57
52
  OUTPUTS_KEY : str
@@ -80,11 +75,7 @@ Assets key constant used for identifying assets in the run output.
80
75
  """
81
76
  STATISTICS_KEY = "statistics"
82
77
  """
83
- Deprecated: Use METRICS_KEY instead. Statistics key constant used for identifying statistics in the run output.
84
- """
85
- METRICS_KEY = "metrics"
86
- """
87
- Metrics key constant used for identifying metrics in the run output.
78
+ Statistics key constant used for identifying statistics in the run output.
88
79
  """
89
80
  SOLUTIONS_KEY = "solutions"
90
81
  """
@@ -98,7 +89,7 @@ Outputs key constant used for identifying outputs in the run output.
98
89
 
99
90
  class RunStatistics(BaseModel):
100
91
  """
101
- Deprecated: Statistics about a general run.
92
+ Statistics about a general run.
102
93
 
103
94
  You can import the `RunStatistics` class directly from `nextmv`:
104
95
 
@@ -138,7 +129,7 @@ class RunStatistics(BaseModel):
138
129
 
139
130
  class ResultStatistics(BaseModel):
140
131
  """
141
- Deprecated: Statistics about a specific result.
132
+ Statistics about a specific result.
142
133
 
143
134
  You can import the `ResultStatistics` class directly from `nextmv`:
144
135
 
@@ -178,7 +169,7 @@ class ResultStatistics(BaseModel):
178
169
 
179
170
  class DataPoint(BaseModel):
180
171
  """
181
- Deprecated: A data point representing a 2D coordinate.
172
+ A data point representing a 2D coordinate.
182
173
 
183
174
  You can import the `DataPoint` class directly from `nextmv`:
184
175
 
@@ -211,7 +202,7 @@ class DataPoint(BaseModel):
211
202
 
212
203
  class Series(BaseModel):
213
204
  """
214
- Deprecated: A series of data points for visualization or analysis.
205
+ A series of data points for visualization or analysis.
215
206
 
216
207
  You can import the `Series` class directly from `nextmv`:
217
208
 
@@ -245,7 +236,7 @@ class Series(BaseModel):
245
236
 
246
237
  class SeriesData(BaseModel):
247
238
  """
248
- Deprecated: Data container for multiple series of data points.
239
+ Data container for multiple series of data points.
249
240
 
250
241
  You can import the `SeriesData` class directly from `nextmv`:
251
242
 
@@ -280,9 +271,6 @@ class SeriesData(BaseModel):
280
271
 
281
272
  class Statistics(BaseModel):
282
273
  """
283
- !!! warning
284
- `Statistics` is deprecated, use `Metrics` instead.
285
-
286
274
  Complete statistics container for a solution, including run metrics and
287
275
  result data.
288
276
 
@@ -889,9 +877,7 @@ class Output:
889
877
  The solution to the decision problem. The type must match the
890
878
  `output_format`. Default is None.
891
879
  statistics : Optional[Union[Statistics, dict[str, Any]]], optional
892
- Deprecated: Use Metrics instead. Statistics of the solution. Default is None.
893
- metrics : Optional[dict[str, Any]], optional
894
- Metrics of the solution. Default is None.
880
+ Statistics of the solution. Default is None.
895
881
  csv_configurations : Optional[dict[str, Any]], optional
896
882
  Configuration for writing CSV files. Default is None.
897
883
  json_configurations : Optional[dict[str, Any]], optional
@@ -930,16 +916,17 @@ class Output:
930
916
  Examples
931
917
  --------
932
918
  >>> from nextmv.output import Output, OutputFormat, Statistics, RunStatistics
933
- >>> metrics = {"duration": 30.0, "iterations": 100}
919
+ >>> run_stats = RunStatistics(duration=30.0, iterations=100)
920
+ >>> stats = Statistics(run=run_stats)
934
921
  >>> solution = {"routes": [{"vehicle": 1, "stops": [1, 2, 3]}, {"vehicle": 2, "stops": [4, 5]}]}
935
922
  >>> output = Output(
936
923
  ... output_format=OutputFormat.JSON,
937
924
  ... solution=solution,
938
- ... metrics=metrics,
925
+ ... statistics=stats,
939
926
  ... json_configurations={"indent": 4}
940
927
  ... )
941
928
  >>> output_dict = output.to_dict()
942
- >>> "solution" in output_dict and "metrics" in output_dict
929
+ >>> "solution" in output_dict and "statistics" in output_dict
943
930
  True
944
931
  """
945
932
 
@@ -982,16 +969,11 @@ class Output:
982
969
  """
983
970
  statistics: Statistics | dict[str, Any] | None = None
984
971
  """
985
- Deprecated: Use Metrics instead.
986
972
  Statistics of the solution. These statistics can be of type `Statistics` or a
987
973
  simple dictionary. If the statistics are of type `Statistics`, they will be
988
974
  serialized to a dictionary using the `to_dict` method. If they are a
989
- dictionary, they will be used as is.
990
- """
991
- metrics: dict[str, Any] | None = None
992
- """
993
- Metrics of the solution. These metrics should be provided as a simple or
994
- nested dictionary.
975
+ dictionary, they will be used as is. If the statistics are not provided, an
976
+ empty dictionary will be used.
995
977
  """
996
978
  csv_configurations: dict[str, Any] | None = None
997
979
  """
@@ -1106,7 +1088,7 @@ class Output:
1106
1088
  # Statistics need to end up as a dict, so we achieve that based on the
1107
1089
  # type of statistics that were used to create the class.
1108
1090
  if self.statistics is None:
1109
- statistics = None
1091
+ statistics = {}
1110
1092
  elif isinstance(self.statistics, Statistics):
1111
1093
  statistics = self.statistics.to_dict()
1112
1094
  elif isinstance(self.statistics, dict):
@@ -1116,18 +1098,6 @@ class Output:
1116
1098
  f"unsupported statistics type: {type(self.statistics)}, supported types are `Statistics` or `dict`"
1117
1099
  )
1118
1100
 
1119
- if self.metrics is None:
1120
- metrics = None
1121
- elif isinstance(self.metrics, dict):
1122
- metrics = self.metrics
1123
- else:
1124
- raise TypeError(f"unsupported metrics type: {type(self.metrics)}, supported type is `dict`")
1125
-
1126
- # if both metrics and statistics are None, set statistics to an
1127
- # empty dict for backward compatibility
1128
- if statistics is None and metrics is None:
1129
- statistics = {}
1130
-
1131
1101
  # Assets need to end up as a list of dicts, so we achieve that based on
1132
1102
  # the type of each asset in the list.
1133
1103
  assets = []
@@ -1147,16 +1117,10 @@ class Output:
1147
1117
  output_dict = {
1148
1118
  "options": options,
1149
1119
  "solution": self.solution if self.solution is not None else {},
1120
+ STATISTICS_KEY: statistics,
1150
1121
  ASSETS_KEY: assets,
1151
1122
  }
1152
1123
 
1153
- # Only include statistics in output if it's not None
1154
- if statistics is not None:
1155
- output_dict[STATISTICS_KEY] = statistics
1156
-
1157
- if metrics is not None:
1158
- output_dict[METRICS_KEY] = metrics
1159
-
1160
1124
  # Add the auxiliary configurations to the output dictionary if they are
1161
1125
  # defined and not empty.
1162
1126
  if (
@@ -1229,9 +1193,9 @@ class LocalOutputWriter(OutputWriter):
1229
1193
 
1230
1194
  Examples
1231
1195
  --------
1232
- >>> from nextmv.output import LocalOutputWriter, Output, Metrics
1196
+ >>> from nextmv.output import LocalOutputWriter, Output, Statistics
1233
1197
  >>> writer = LocalOutputWriter()
1234
- >>> output = Output(solution={"result": 42}, metrics={"time": 1.23})
1198
+ >>> output = Output(solution={"result": 42}, statistics=Statistics())
1235
1199
  >>> # Write to stdout
1236
1200
  >>> writer.write(output, path=None)
1237
1201
  >>> # Write to a file
nextmv/run.py CHANGED
@@ -434,9 +434,6 @@ class RunInfoStatistics(BaseModel):
434
434
  """List of statistics indicators."""
435
435
 
436
436
 
437
- RunInfoMetrics = RunInfoStatistics
438
-
439
-
440
437
  class OptionsSummaryItem(BaseModel):
441
438
  """
442
439
  Summary item for options used in a run.
@@ -532,9 +529,7 @@ class Run(BaseModel):
532
529
  experiment_id : str, optional
533
530
  ID of the experiment associated with the run. Defaults to None.
534
531
  statistics : RunInfoStatistics, optional
535
- Deprecated: Statistics of the run. Defaults to None.
536
- metrics: RunInfoMetrics, optional
537
- Metrics of the run. Defaults to None.
532
+ Statistics of the run. Defaults to None.
538
533
  input_id : str, optional
539
534
  ID of the input associated with the run. Defaults to None.
540
535
  option_set : str, optional
@@ -608,9 +603,7 @@ class Run(BaseModel):
608
603
  experiment_id: str | None = None
609
604
  """ID of the experiment associated with the run."""
610
605
  statistics: RunInfoStatistics | None = None
611
- """Deprecated: Statistics of the run."""
612
- metrics: RunInfoMetrics | None = None
613
- """Metrics of the run."""
606
+ """Statistics of the run."""
614
607
  input_id: str | None = None
615
608
  """ID of the input associated with the run."""
616
609
  option_set: str | None = None
@@ -684,9 +677,7 @@ class Metadata(BaseModel):
684
677
  status_v2: StatusV2
685
678
  """Status of the run."""
686
679
  statistics: dict[str, Any] | None = None
687
- """Deprecated: User defined statistics of the run."""
688
- metrics: dict[str, Any] | None = None
689
- """User defined metrics of the run."""
680
+ """User defined statistics of the run."""
690
681
 
691
682
  def run_is_finalized(self) -> bool:
692
683
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 1.0.0.dev5
3
+ Version: 1.0.0.dev6
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/
@@ -230,11 +230,13 @@ Provides-Extra: dev
230
230
  Requires-Dist: build>=1.0.3; extra == 'dev'
231
231
  Requires-Dist: folium>=0.20.0; extra == 'dev'
232
232
  Requires-Dist: mlflow>=2.19.0; extra == 'dev'
233
+ Requires-Dist: nextpipe>=0.6.0.dev0; extra == 'dev'
233
234
  Requires-Dist: nextroute>=1.11.1; extra == 'dev'
234
235
  Requires-Dist: openpyxl>=3.1.5; extra == 'dev'
235
236
  Requires-Dist: pandas>=2.2.3; extra == 'dev'
236
237
  Requires-Dist: plotly>=6.0.1; extra == 'dev'
237
238
  Requires-Dist: pydantic>=2.5.2; extra == 'dev'
239
+ Requires-Dist: pytest>=9.0.2; extra == 'dev'
238
240
  Requires-Dist: pyyaml>=6.0.1; extra == 'dev'
239
241
  Requires-Dist: requests>=2.31.0; extra == 'dev'
240
242
  Requires-Dist: ruff>=0.1.7; extra == 'dev'
@@ -1,17 +1,17 @@
1
- nextmv/__about__.py,sha256=0903U0SCzlrwBhBb3wq1hYJDq9gsu7JqYLWmE4tV4YE,28
1
+ nextmv/__about__.py,sha256=guKp6r4S1rrHqbewcdYicE2J11aLul9T0IzxX78PTHg,28
2
2
  nextmv/__entrypoint__.py,sha256=XMT-ds1f2Yc6KoI2C0YEH-rJj5gVLfJMqUdRfcA3_KQ,1070
3
3
  nextmv/__init__.py,sha256=LwpGBSiV0UG13zKHO2N3Ikb7bCMV08Gfbl6Cp80b_2g,3813
4
- nextmv/_serialization.py,sha256=fT-GXiy9cNo7D2KL1blZcsAaQHHgkEVTI_JvXIFlWZc,2833
4
+ nextmv/_serialization.py,sha256=jYitMS1MU8ldsmObT-K_8V8P2Wx69tnDiEHCCgPGun4,2834
5
5
  nextmv/base_model.py,sha256=kPFqE-c_3LcEy8fY0qDrJk_gbPYgSKtetRMby71oxE8,2298
6
6
  nextmv/deprecated.py,sha256=U1YD-vie0dEVWFJgIwOuinxACHsyiEIQpfrt95ykhlg,1651
7
7
  nextmv/input.py,sha256=iONLkXhcIXRCJVPNVkJdivh47A399VMepsSxNZByX2I,37649
8
8
  nextmv/logger.py,sha256=kNIbu46MisrzYe4T0hNMpWfRTKKacDVvbtQcNys_c_E,2513
9
- nextmv/manifest.py,sha256=VoZo7cGKGCdmcxDu5ECTZPY67J4LAUxBu6gmhgXVWRY,49216
10
- nextmv/model.py,sha256=uthHjRCrC1b9OCoyQ_n-2_nfP1bFu-nMiUxYhmLf0SI,14989
11
- nextmv/options.py,sha256=3BnnuAoiFD6qr0EMYv1VgAXarDjLb-t7OpC1IpsnS1M,29648
12
- nextmv/output.py,sha256=hdpBqdGkglUbxVeJPldiiKaZ13YkPCHhSlOJHVB5CVI,55720
9
+ nextmv/manifest.py,sha256=v9En9zMZVKZn6G_HThoKUZowMtZr5hxzwWiK9wkVHPU,49023
10
+ nextmv/model.py,sha256=9g-pAUg8E--CyUFU39J7e4MZcj0WrWtgIqfwGmoF7UA,14998
11
+ nextmv/options.py,sha256=PZtw2SIK48gkjzbJwMN6nfXm_3Utaa_ZUd23Y1XxS2Q,29657
12
+ nextmv/output.py,sha256=MbmI7t8p2LhKD1T--IZnsHvIuFY_TM8wTNCdLQVWs2A,54356
13
13
  nextmv/polling.py,sha256=fwnAxmfpuBg4d6pi53TRTyyefdpf-cHLoTG6trAu-QA,11048
14
- nextmv/run.py,sha256=o6_nSPOYwGCsCaqmYYAwrtCLE_aJuqy5NHFRfXYE7TI,54440
14
+ nextmv/run.py,sha256=8tkRQexJC8JN7IkLlhpwEW5pEudxwDq2sC_PImfwReI,54126
15
15
  nextmv/safe.py,sha256=VAK4fGEurbLNji4Pg5Okga5XQSbI4aI9JJf95_68Z20,3867
16
16
  nextmv/status.py,sha256=VqmOgxiEK89Y88ZUxZPfUXmY0HqvN28Lc1PDt0-9PLw,1600
17
17
  nextmv/cli/CONTRIBUTING.md,sha256=xM_skfI1WPh2UtZ1axbB8AfOLJ3LZk8YhQpZY4qtSqw,21911
@@ -23,7 +23,7 @@ nextmv/cli/options.py,sha256=ymd6Y7_ZQkln35nHw3pLnFpqivgmJfuYAnyizmEuonc,6887
23
23
  nextmv/cli/version.py,sha256=VRbfNpUvCFYPcphr-F3Ph4Z4UwtVis4keyVFHj1JISw,681
24
24
  nextmv/cli/cloud/__init__.py,sha256=pywNNBy_poHaKn3_oIZRR9DDE8w3u65KvLpnX6S0BQI,1886
25
25
  nextmv/cli/cloud/acceptance/__init__.py,sha256=v4U1m6z5zI8mQpmIE4kFeEYOsaDxnGRnRj2j5I6WueI,711
26
- nextmv/cli/cloud/acceptance/create.py,sha256=lc1EYydsIuxr2qiQ_0W7po8DnPIfXSYR-5cm_6ddYGA,14604
26
+ nextmv/cli/cloud/acceptance/create.py,sha256=Mtiy7fMBU5Ay_hxb2DXxdaM2XvR_QDbldtyjQIAaelQ,14582
27
27
  nextmv/cli/cloud/acceptance/delete.py,sha256=julZ6Bs6YcsmyuE00yPjPScIRz4QteNt-GUR4J2Hp_I,2260
28
28
  nextmv/cli/cloud/acceptance/get.py,sha256=pb3hRdIiynTi4K7xDNCMJE7bW46FE-X3EoAQU8kQJjE,3438
29
29
  nextmv/cli/cloud/acceptance/list.py,sha256=9tTV4B2lgDqNxDnaNXkHxeh7jUQuAu9GQJsEKJ_NqIo,1881
@@ -39,7 +39,7 @@ nextmv/cli/cloud/app/delete.py,sha256=HLgDx4eMf_LYyGC8aQxuvNrhOfnWmDuutPjk4ywILa
39
39
  nextmv/cli/cloud/app/exists.py,sha256=gd9pmR1Oq_cCjaTNB82PmJtDYowrb17vBfQYjoh6E9Q,1258
40
40
  nextmv/cli/cloud/app/get.py,sha256=_v_7PrUniaaRvHclBA02V-UVcbVe1eFixGU6CeXA4m4,1765
41
41
  nextmv/cli/cloud/app/list.py,sha256=AI1VNNueYfzwuSAFlf-vXbZEY-th5BrzXZgn-3uusFo,1653
42
- nextmv/cli/cloud/app/push.py,sha256=mbGThAgmfxO2JqfXq8HXAdRT81b55MBfCGaDtSJQsUM,15624
42
+ nextmv/cli/cloud/app/push.py,sha256=OsI9cTM1EuSqxKZFTgGZ9V15lTNQkdQDpN_lCSpEPpw,15756
43
43
  nextmv/cli/cloud/app/update.py,sha256=4Mp8Zf40K1hdHO3KT9Md3piBWqzracfpWtujJfbPocM,4070
44
44
  nextmv/cli/cloud/batch/__init__.py,sha256=-_UjmvrQItACUY_BQ_cOffNJixNHAb4vH_pew25sJ3o,774
45
45
  nextmv/cli/cloud/batch/create.py,sha256=T70sjvvTxXxRpC4COFZFU5ei6ylS5MWLg6VLP3SjIso,15465
@@ -56,8 +56,9 @@ nextmv/cli/cloud/ensemble/delete.py,sha256=C1xmISSaUhtsV94w2z2rzhenp2mm9E0GXHy4d
56
56
  nextmv/cli/cloud/ensemble/get.py,sha256=-4crRjI8MF8meq5uUhUR3q39lK4EIsvpzaODfGvwx3k,2135
57
57
  nextmv/cli/cloud/ensemble/list.py,sha256=zm7TfBM5HH_8I-r4U219AbmQadET96kw1MrsjwARSAM,1887
58
58
  nextmv/cli/cloud/ensemble/update.py,sha256=5AeuhY-CytzON1FFoEijBlo1T9oHvkq3mxV9I3qCeLA,3383
59
- nextmv/cli/cloud/input_set/__init__.py,sha256=wyt0LX9xqcGDrb-rPx-MN0WQA7o9jZnK2CpShfrki3o,867
59
+ nextmv/cli/cloud/input_set/__init__.py,sha256=qDyIc0JJm1oU9tyt9MgjkJL6VKXSFCySPTKKHqfLHCM,957
60
60
  nextmv/cli/cloud/input_set/create.py,sha256=nJWsaj-fPXS8rwIbh13_wXc9SitDA4ByIHhlBS51GHo,5661
61
+ nextmv/cli/cloud/input_set/delete.py,sha256=8-cJtgcgh_kK0K7AtHZmYSCvTmxwtyQIhWcmt6aYAZI,2125
61
62
  nextmv/cli/cloud/input_set/get.py,sha256=MvMD6tmMA_ui4MVCwRkOnmU0WySJmSJX7x2Q-x_xXwA,1916
62
63
  nextmv/cli/cloud/input_set/list.py,sha256=7I0F1rs19bY9d_V2TjEFxHCbHq3bNV_mO0Fd9qJ58IY,1896
63
64
  nextmv/cli/cloud/input_set/update.py,sha256=P5b94m08hGMAGr455fH-Cd1yryeMC15r1YfmJEt2NSw,4144
@@ -76,7 +77,7 @@ nextmv/cli/cloud/managed_input/list.py,sha256=6l4zJPVErmooobteBn05RmoXHgvI0RBt_L
76
77
  nextmv/cli/cloud/managed_input/update.py,sha256=E1ddfQ9VJ7SgG8V6kkRYbgKhS4vDyv06WePNbLEXUsE,3191
77
78
  nextmv/cli/cloud/run/__init__.py,sha256=KyonwVd5lfweaq-cIpPuRAzHFrK0slfqJsIjsT_p4PU,1102
78
79
  nextmv/cli/cloud/run/cancel.py,sha256=d7aQQQmek_i3P2cDmpOohLiwSjWxfKEiVAvBnNYAmuE,1259
79
- nextmv/cli/cloud/run/create.py,sha256=eGjlYCWGf_57Qlqbaok-iLzcLmHAaCZor6TskhMabPk,19706
80
+ nextmv/cli/cloud/run/create.py,sha256=39D4VdcfYRioziIy-qjLDSs-_dhSavrkmzcltUfgz3M,19526
80
81
  nextmv/cli/cloud/run/get.py,sha256=bUczN6a1SV3wkW0uUPfQdO3i13BF51udixmuyiicdi8,7826
81
82
  nextmv/cli/cloud/run/input.py,sha256=QEdDnKxEmucUwPPRAqh1VuErw5rKaAwXOHrmJESP-k0,3171
82
83
  nextmv/cli/cloud/run/list.py,sha256=z3286Q0Aznz-qAvanCB03rXjCfGPk84A32t8AqTC2Cs,2563
@@ -103,7 +104,7 @@ nextmv/cli/cloud/shadow/get.py,sha256=8NmXl2romVPGfS9KP4G2Sv4SuSZKgRx85GZ4ClwTqW
103
104
  nextmv/cli/cloud/shadow/list.py,sha256=aVFa3FAzfcUsMlD0hYgZwhoF75GQkaNDHrrq82qqylQ,1810
104
105
  nextmv/cli/cloud/shadow/metadata.py,sha256=vHJYVDXXHwiqQrG0J0D_aRP--b47UfEgJwJOXqfskSo,2161
105
106
  nextmv/cli/cloud/shadow/start.py,sha256=SkDYSfyQLdfHJKCOzc4CW6MVO7YBWCZCOAoGBzqSFhI,1464
106
- nextmv/cli/cloud/shadow/stop.py,sha256=gb6UuNf-HNCaACKzdAix1pr8oMn-A1SQJEFUXrOr228,1333
107
+ nextmv/cli/cloud/shadow/stop.py,sha256=WNg73nHkQ6Mo7hdg3qfSXQBkd77iKPfRIdSSJxTHhTY,1706
107
108
  nextmv/cli/cloud/shadow/update.py,sha256=l7_gODO9fXYGOLzFMJmIVpT5Jku9XQAo2PI5x3AP4xU,2880
108
109
  nextmv/cli/cloud/switchback/__init__.py,sha256=jYeujjbqvqRGIgvC0wr3I6zavw1az7IS8jiJsAlH-z4,981
109
110
  nextmv/cli/cloud/switchback/create.py,sha256=lEboNjN1ZFbuOCFmK2ADIRH-pIENc80NcR809rDOY3I,5085
@@ -112,7 +113,7 @@ nextmv/cli/cloud/switchback/get.py,sha256=GQKzaW4jCfV21DyZ5vDNrkFH2Tw1pR8Zv_71ji
112
113
  nextmv/cli/cloud/switchback/list.py,sha256=wrXXA9aMLLcq_6WFk-dy9RopE57dFZb7TxlWdRx9G94,1882
113
114
  nextmv/cli/cloud/switchback/metadata.py,sha256=WDhK-AVKEJQ38WhPZqPOgemHt-PI__r6sIEBFQtKxVw,2287
114
115
  nextmv/cli/cloud/switchback/start.py,sha256=N9Bci8DmCQW8XUm93Rhj30TCf_YvK6N5qxZXMpW2X1I,1535
115
- nextmv/cli/cloud/switchback/stop.py,sha256=xEF2JqDhOhxzli79qqwIGVJiNW14BnfEbfc70sXF7dE,1397
116
+ nextmv/cli/cloud/switchback/stop.py,sha256=pOasfThNCB3GXDNz4TPyJ5DNnMf3vLin6lAh1XoAk-Y,1774
116
117
  nextmv/cli/cloud/switchback/update.py,sha256=pILZUbqlIM6l1mrbVPtks6CGcgre5829sSnD2yMZd-0,3000
117
118
  nextmv/cli/cloud/upload/__init__.py,sha256=khOl6NxkPd4KEqN0xMdxzmST-Ct3Vr_xk8zbMvbrLl8,511
118
119
  nextmv/cli/cloud/upload/create.py,sha256=vRTHCeh7cbB9JSAMUCpcdQrzQ1od5FiFiNdPPh7sFqw,1216
@@ -124,19 +125,20 @@ nextmv/cli/cloud/version/get.py,sha256=eGbka3TG8UJE150h22rn0BUqTi1xRE7roVDj6yJvn
124
125
  nextmv/cli/cloud/version/list.py,sha256=sKdHgyowLG1jyUEtu87yCPC5_2-0i3VDEgfmvb-bBn0,1770
125
126
  nextmv/cli/cloud/version/update.py,sha256=mEUYXGHLGkiEGH31KK6jDDfviHEhVCdLjLQL_5u0vLk,2869
126
127
  nextmv/cli/community/__init__.py,sha256=t2l6adm9Km6hSvSFzeKHTQzacVSnwjx4wpj2kqee5nM,612
127
- nextmv/cli/community/clone.py,sha256=qXDgsMfAnAcZvP9kOp-O4rqj0qw0zueg9BgWl71DqpA,9202
128
- nextmv/cli/community/list.py,sha256=ad7qPPaNh29tj_ggR4lJnRkMTgWstHQFV90sqdiWcdA,7440
128
+ nextmv/cli/community/clone.py,sha256=_I1C58pKmfAHdl-8eaZDeaxZm2Rnp2en8PCPdflAse4,2912
129
+ nextmv/cli/community/list.py,sha256=1ZdkwbWluJqZWVEAI0XVpB-mEQNnulsL2oPjavdMl-c,5754
129
130
  nextmv/cli/configuration/__init__.py,sha256=7oryF4PKkORh8bcdgbN2k36rZrFpJsM7Xfq_J4-MkFs,516
130
131
  nextmv/cli/configuration/config.py,sha256=t43ubCcbfbpfq9HvkVb2WQY9V47lrLEP0KvsWfjOJ8Y,6667
131
132
  nextmv/cli/configuration/create.py,sha256=aDj6wFl6_RRMmvCLTNIeCcFotNOGoupso785M46nh2Y,2668
132
133
  nextmv/cli/configuration/delete.py,sha256=3l1Mx8ATCwoiggbYBjG0ArmYSbS_GlJ5cCCymG2CEhU,1935
133
134
  nextmv/cli/configuration/list.py,sha256=HIZvDJQW5B0-o_ZqQHuxRw7N_VmxqYM46fucKCvo1zw,2208
134
- nextmv/cloud/__init__.py,sha256=watvsgucVgOCIlwrmnvIxW8lyUfEerhDzOn-Zp-dl1I,3954
135
+ nextmv/cloud/__init__.py,sha256=IW9fdg3QgusJGAU4VVEu5qkCidzalyYf4wjC1T14rnQ,4183
135
136
  nextmv/cloud/acceptance_test.py,sha256=H34lvccJzN1URpnhrHstcVxgvq1s2iCymiKIPBHcToY,25828
136
137
  nextmv/cloud/account.py,sha256=X2xQjzhgEdKR0eypH8lWKUOwDISjJSd5SwOwEnpfTVk,13573
137
138
  nextmv/cloud/assets.py,sha256=alw634ub-DR0CHQXZy_ObeGvQthPXFLdgzgbvbH1SGY,1376
138
- nextmv/cloud/batch_experiment.py,sha256=thS94-ZdMR7Em5TeGN5UtnIDHmhzqld_U49SODyhrPU,10537
139
- nextmv/cloud/client.py,sha256=FGyzpwPBXMiiT4Jr2DLvWzzhjQ64AdadPDACaCuIDGM,18100
139
+ nextmv/cloud/batch_experiment.py,sha256=flwP5pbBio-ilAbopj8DdSWOlxGbct1IOElsgcyVN8U,10545
140
+ nextmv/cloud/client.py,sha256=Yj4FE4GKsLHkYijAYXcotlyNfhAWANMuWetHXsYPg1M,18101
141
+ nextmv/cloud/community.py,sha256=LSiKF5agLTHFbW5fBAv-m3MsWm3XuROpw4_KkPpwtZM,13060
140
142
  nextmv/cloud/ensemble.py,sha256=_hKPjSLtuGH1xGG70ZBsmY_IL5XinZqVHHwBxtX9Omw,8570
141
143
  nextmv/cloud/input_set.py,sha256=wsLmMI1C7BslWDN5j1RnVUA8z54-Hq1eLG9bkzyqafo,4187
142
144
  nextmv/cloud/instance.py,sha256=rLrgNNvNyC6hZtjxIfTR2Luylmbh2emJIZVCy_hTJZ4,5495
@@ -144,40 +146,40 @@ nextmv/cloud/integration.py,sha256=S4BNX3GFGNA1SXDWaRAUeS0hW6XkYXWSdWXX-s-x_nA,1
144
146
  nextmv/cloud/package.py,sha256=88XSJ15QGcHboNJAw2hGowiLKBu2O2nV5ZieZFx7XDI,17133
145
147
  nextmv/cloud/scenario.py,sha256=1_4PI9ehYaSonEe_l59cFhZNmqQ_brXXP6-mVq9i8a8,14183
146
148
  nextmv/cloud/secrets.py,sha256=fA5cX0jfTsPVZWV7433wzETGlXpWRLHGswuObx9e6FQ,6820
147
- nextmv/cloud/shadow.py,sha256=DWJfFkwlbULdl988A1HkOsyQGq0l9xtLT8Q-ZzsepH0,7214
149
+ nextmv/cloud/shadow.py,sha256=U-s9alkDS3wmYCEVDKEvuceveWOZOiF7rkH4_8eKdNk,7711
148
150
  nextmv/cloud/switchback.py,sha256=AGA0LDMu7sHndczy2TrcZghn_ZRnTGlBDmGRZG34dZY,7344
149
151
  nextmv/cloud/url.py,sha256=Fz70ywkWdCLmP21ZBmJwZi5kDbjpmsX_VlwVF_xQeHg,1836
150
152
  nextmv/cloud/version.py,sha256=5_S7_pWUVBFbvAArku20eK7S645GJcHtgE2OpXLdSzQ,5300
151
- nextmv/cloud/application/__init__.py,sha256=E1Q-WIly_PiNg1ynMynA81SwX88Q6uH_lqWKtQQX0tg,40369
153
+ nextmv/cloud/application/__init__.py,sha256=x9khEFlWUdupBxzMuSyrCftopNtrK64LTTEaCRSRwyM,32712
152
154
  nextmv/cloud/application/_acceptance.py,sha256=ZwbVkur3-1fwM_L4F8ZUqrNaIdHgYGxKd3utoOCWjSc,13679
153
155
  nextmv/cloud/application/_batch_scenario.py,sha256=cSsX5vPOkm91UqRBPIcqlOvQ0iojwt4sQKYGZEE7x6k,28479
154
156
  nextmv/cloud/application/_ensemble.py,sha256=05l9uR0hTnW8nQjhRzjd2TPfvCoaAqNddWP-aVRL5rg,7666
155
- nextmv/cloud/application/_input_set.py,sha256=m7PKqhR3evdE_a_RER1L6iKwftlaxTiRd1JQvgCepUU,7069
157
+ nextmv/cloud/application/_input_set.py,sha256=BXleeHOClCkwOh53vG6F_561XzAo_XgrHfGmNbJxIds,8131
156
158
  nextmv/cloud/application/_instance.py,sha256=Jjig8NI1jXNyBQoYj7JOfS0JFmw5jJdKLfi82fqBYgo,8386
157
159
  nextmv/cloud/application/_managed_input.py,sha256=zaWqGpe8Y5XWheroAqZSo-xNHfn2MKblNwRUbQVXBRM,6694
158
- nextmv/cloud/application/_run.py,sha256=LgSKm537F0ej-LTsMVmabkyOBtFnaHjvAdInnPzL6UI,53898
160
+ nextmv/cloud/application/_run.py,sha256=4lrxyQCUGJszdiYNGynYg6RXBPqjQ4tFcDmxH9dfSXY,53869
159
161
  nextmv/cloud/application/_secrets.py,sha256=hWhPAyY8aDF8zlEz9opPNLrFOYtp-COFqG_jgOZ6VxI,9476
160
- nextmv/cloud/application/_shadow.py,sha256=8uH0Zr-9czef2BhshYLzc0yBQhIcIdBYTCIiUS1ru44,9123
161
- nextmv/cloud/application/_switchback.py,sha256=MapHkquya7SeyNnEVIy7E7Um_9VuMH7XiB7FFxZx6Po,9743
162
+ nextmv/cloud/application/_shadow.py,sha256=ck1v0yBuayGnlLlq5pEIwNQOE3wU29m9jsx8II7MxqQ,9327
163
+ nextmv/cloud/application/_switchback.py,sha256=QLL1PVtVY_hjVJA4p-9fATDXptjhJzR0xhyQpwKoORg,9984
162
164
  nextmv/cloud/application/_utils.py,sha256=GqksGBHCV2sc-itL6hlWnncUJjIxhw6LH3pOjs4M-us,1643
163
165
  nextmv/cloud/application/_version.py,sha256=o1jVLfoKJNCs-32P7hkL1IGba8Eb1hnT6vnaZpyc0dk,8543
164
166
  nextmv/default_app/.gitignore,sha256=gsfnfXMYNt-YTroh5hAzauwBZoPDJ6D_fB17rMSnIko,8
165
167
  nextmv/default_app/README.md,sha256=hW3zWcYzxhYfof-pThaN1Fkx93GT8tTUVRhx15edBis,662
166
168
  nextmv/default_app/app.yaml,sha256=TKjKnuoK0SDpouB_AS7TQmE_8HZbQYjmwFvhzFL1xpc,382
167
169
  nextmv/default_app/input.json,sha256=zgvbKL3boB0WIU6-9mEU3ZWBddQ5cQ0vhgmDwDyz4hE,63
168
- nextmv/default_app/main.py,sha256=j5L0itCyXKl3ezgkaS0cToLHzSl26Ah-PYr0gvxizxU,815
170
+ nextmv/default_app/main.py,sha256=gG-1JIvKXPCkm4JV46PcXxsQTAefwPXQbdPxkSubhf0,888
169
171
  nextmv/default_app/requirements.txt,sha256=wRE_HkYYWzCGnYZ2NuatHXul4gCHvU3iUAdsxtzpYiA,29
170
172
  nextmv/default_app/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
173
  nextmv/default_app/src/visuals.py,sha256=WYK_YBnLmYo3TpVev1CpoNCuW5R7hk9QIkeCmvMn1Fs,1014
172
174
  nextmv/local/__init__.py,sha256=6BsoqlK4dw6X11_uKzz9gBPfxKpdiol2FYO8R3X73SE,116
173
175
  nextmv/local/application.py,sha256=SBOARPnffAH6q-S0GGPEjt0gYIXmeR-38-VcZMfhqKk,47745
174
- nextmv/local/executor.py,sha256=BxR7QWb4RekeFphJ4rOvJs8fYZGIQfgWlc75b8I7GRU,39310
175
- nextmv/local/geojson_handler.py,sha256=CVlW5iof-8AODudEQ-a_o6WHqAeULfQS7-oJHf1-sAQ,12538
176
+ nextmv/local/executor.py,sha256=1qoynUCB9UDgXhjXKds0OGc8McAtAsQHJ0-QVWTJrQs,36562
177
+ nextmv/local/geojson_handler.py,sha256=7FavJdkUonop-yskjis0x3qFGB8A5wZyoBUblw-bVhw,12540
176
178
  nextmv/local/local.py,sha256=cp56UpI8h19Ob6Jvb_Ni0ceXH5Vv3ET_iPTDe6ftq3Y,2617
177
179
  nextmv/local/plotly_handler.py,sha256=bLb50e3AkVr_W-F6S7lXfeRdN60mG2jk3UElNmhoMWU,1930
178
180
  nextmv/local/runner.py,sha256=bM1dFIAG4f9pEtbyevzkRa9nSppqTeD8naomNzJVBRU,8560
179
- nextmv-1.0.0.dev5.dist-info/METADATA,sha256=_4aG0NdlL-vTSHTVH5-p3k80-SyLKOTz8k5j-B8AxKw,16484
180
- nextmv-1.0.0.dev5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
181
- nextmv-1.0.0.dev5.dist-info/entry_points.txt,sha256=bH7kXUt_IOLpeW_O7Z-J2gALs2YYJ4CmWuzS8MdK6uY,48
182
- nextmv-1.0.0.dev5.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
183
- nextmv-1.0.0.dev5.dist-info/RECORD,,
181
+ nextmv-1.0.0.dev6.dist-info/METADATA,sha256=-HLolADVOi3qsf9EFtOWpT7tqweuqBiWb4WDZzplmjU,16581
182
+ nextmv-1.0.0.dev6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
183
+ nextmv-1.0.0.dev6.dist-info/entry_points.txt,sha256=bH7kXUt_IOLpeW_O7Z-J2gALs2YYJ4CmWuzS8MdK6uY,48
184
+ nextmv-1.0.0.dev6.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
185
+ nextmv-1.0.0.dev6.dist-info/RECORD,,