nextmv 0.36.0__py3-none-any.whl → 0.36.1.dev0__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "v0.36.0"
1
+ __version__ = "v0.36.1-dev.0"
@@ -257,7 +257,7 @@ class BatchExperimentRun(BaseModel):
257
257
  repetition: int | None = None
258
258
  """Repetition number of the experiment."""
259
259
 
260
- def __post_init_post_parse__(self):
260
+ def model_post_init(self, __context) -> None:
261
261
  """
262
262
  Logic to run after the class is initialized.
263
263
 
nextmv/cloud/instance.py CHANGED
@@ -15,6 +15,7 @@ Instance
15
15
  from datetime import datetime
16
16
 
17
17
  from nextmv.base_model import BaseModel
18
+ from nextmv.run import RunQueuing
18
19
 
19
20
 
20
21
  class InstanceConfiguration(BaseModel):
@@ -37,6 +38,10 @@ class InstanceConfiguration(BaseModel):
37
38
  Runtime options/parameters for the application.
38
39
  secrets_collection_id : str, optional
39
40
  ID of the secrets collection to use with this instance.
41
+ queuing : RunQueuing, optional
42
+ Queuing configuration for the instance.
43
+ integration_id : str, optional
44
+ ID of the integration to use for the instance.
40
45
 
41
46
  Examples
42
47
  --------
@@ -53,6 +58,29 @@ class InstanceConfiguration(BaseModel):
53
58
  """Options of the app that the instance uses."""
54
59
  secrets_collection_id: str | None = None
55
60
  """ID of the secrets collection that the instance uses."""
61
+ queuing: RunQueuing | None = None
62
+ """Queuing configuration for the instance."""
63
+ integration_id: str | None = None
64
+ """ID of the integration to use for the instance."""
65
+
66
+ def model_post_init(self, __context) -> None:
67
+ """
68
+ Validations done after parsing the model.
69
+
70
+ Raises
71
+ ------
72
+ ValueError
73
+ If execution_class is an empty string.
74
+ """
75
+
76
+ if self.integration_id is None or self.integration_id == "":
77
+ return
78
+
79
+ integration_val = "integration"
80
+ if self.execution_class is not None and self.execution_class != "" and self.execution_class != integration_val:
81
+ raise ValueError(f"When integration_id is set, execution_class must be `{integration_val}` or None.")
82
+
83
+ self.execution_class = integration_val
56
84
 
57
85
 
58
86
  class Instance(BaseModel):
nextmv/cloud/package.py CHANGED
@@ -16,6 +16,7 @@ from nextmv.model import Model, ModelConfiguration, _cleanup_python_model
16
16
  _MANDATORY_FILES_PER_TYPE = {
17
17
  ManifestType.PYTHON: ["main.py"],
18
18
  ManifestType.GO: ["main"],
19
+ ManifestType.BINARY: ["main"],
19
20
  ManifestType.JAVA: ["main.jar"],
20
21
  }
21
22
 
@@ -277,7 +278,9 @@ def __install_dependencies( # noqa: C901 # complexity
277
278
  "--platform=manylinux2014_aarch64",
278
279
  "--platform=manylinux_2_17_aarch64",
279
280
  "--platform=manylinux_2_24_aarch64",
281
+ "--platform=manylinux_2_26_aarch64",
280
282
  "--platform=manylinux_2_28_aarch64",
283
+ "--platform=manylinux_2_34_aarch64",
281
284
  "--platform=linux_aarch64",
282
285
  ]
283
286
  )
@@ -287,7 +290,9 @@ def __install_dependencies( # noqa: C901 # complexity
287
290
  "--platform=manylinux2014_x86_64",
288
291
  "--platform=manylinux_2_17_x86_64",
289
292
  "--platform=manylinux_2_24_x86_64",
293
+ "--platform=manylinux_2_26_x86_64",
290
294
  "--platform=manylinux_2_28_x86_64",
295
+ "--platform=manylinux_2_34_x86_64",
291
296
  "--platform=linux_x86_64",
292
297
  ]
293
298
  )
nextmv/local/executor.py CHANGED
@@ -1017,6 +1017,8 @@ def __determine_entrypoint(manifest: Manifest) -> str:
1017
1017
  return "./main.py"
1018
1018
  elif manifest.type == ManifestType.GO:
1019
1019
  return "./main"
1020
+ elif manifest.type == ManifestType.BINARY:
1021
+ return "./main"
1020
1022
  elif manifest.type == ManifestType.JAVA:
1021
1023
  return "./main.jar"
1022
1024
  else:
nextmv/manifest.py CHANGED
@@ -118,6 +118,8 @@ class ManifestType(str, Enum):
118
118
  """Go format"""
119
119
  JAVA = "java"
120
120
  """Java format"""
121
+ BINARY = "binary"
122
+ """Binary format"""
121
123
 
122
124
 
123
125
  class ManifestRuntime(str, Enum):
nextmv/run.py CHANGED
@@ -1081,7 +1081,7 @@ class RunQueuing(BaseModel):
1081
1081
  queued. If False, the run will be queued.
1082
1082
  """
1083
1083
 
1084
- def __post_init_post_parse__(self):
1084
+ def model_post_init(self, __context) -> None:
1085
1085
  """
1086
1086
  Validations done after parsing the model.
1087
1087
 
@@ -1121,6 +1121,8 @@ class RunConfiguration(BaseModel):
1121
1121
  ID of the secrets collection to use for the run. Defaults to None.
1122
1122
  queuing : RunQueuing, optional
1123
1123
  Queuing configuration for the run. Defaults to None.
1124
+ integration_id : str, optional
1125
+ ID of the integration to use for the run. Defaults to None.
1124
1126
 
1125
1127
  Examples
1126
1128
  --------
@@ -1150,6 +1152,27 @@ class RunConfiguration(BaseModel):
1150
1152
  """ID of the secrets collection to use for the run."""
1151
1153
  queuing: RunQueuing | None = None
1152
1154
  """Queuing configuration for the run."""
1155
+ integration_id: str | None = None
1156
+ """ID of the integration to use for the run."""
1157
+
1158
+ def model_post_init(self, __context) -> None:
1159
+ """
1160
+ Validations done after parsing the model.
1161
+
1162
+ Raises
1163
+ ------
1164
+ ValueError
1165
+ If execution_class is an empty string.
1166
+ """
1167
+
1168
+ if self.integration_id is None or self.integration_id == "":
1169
+ return
1170
+
1171
+ integration_val = "integration"
1172
+ if self.execution_class is not None and self.execution_class != "" and self.execution_class != integration_val:
1173
+ raise ValueError(f"When integration_id is set, execution_class must be `{integration_val}` or None.")
1174
+
1175
+ self.execution_class = integration_val
1153
1176
 
1154
1177
  def resolve(
1155
1178
  self,
@@ -1292,7 +1315,7 @@ class ExternalRunResult(BaseModel):
1292
1315
  or `MULTI_FILE` output formats.
1293
1316
  """
1294
1317
 
1295
- def __post_init_post_parse__(self):
1318
+ def model_post_init(self, __context) -> None:
1296
1319
  """
1297
1320
  Validations done after parsing the model.
1298
1321
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 0.36.0
3
+ Version: 0.36.1.dev0
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/
@@ -1,4 +1,4 @@
1
- nextmv/__about__.py,sha256=o3IirKmKJOfIKjU3kNCjuYncYuqpOvFeLf5YUU5y8Eo,24
1
+ nextmv/__about__.py,sha256=Nh_X8wPrV5KEw8PjC4o_QnZGRKpoVUE2ulupH9yXOqM,30
2
2
  nextmv/__entrypoint__.py,sha256=dA0iwwHtrq6Z9w9FxmxKLoBGLyhe7jWtUAU-Y3PEgHg,1094
3
3
  nextmv/__init__.py,sha256=mC-gAzCdoZJ0BOVe2fDzKNdBtbXzx8XOxHP_7DdPMdQ,3857
4
4
  nextmv/_serialization.py,sha256=jYitMS1MU8ldsmObT-K_8V8P2Wx69tnDiEHCCgPGun4,2834
@@ -6,24 +6,24 @@ nextmv/base_model.py,sha256=kPFqE-c_3LcEy8fY0qDrJk_gbPYgSKtetRMby71oxE8,2298
6
6
  nextmv/deprecated.py,sha256=kEVfyQ-nT0v2ePXTNldjQG9uH5IlfQVy3L4tztIxwmU,1638
7
7
  nextmv/input.py,sha256=XRjINb438rnjvQwjCXVOJ0UPa-xTnZc9xBYt0NLhjGw,39970
8
8
  nextmv/logger.py,sha256=kNIbu46MisrzYe4T0hNMpWfRTKKacDVvbtQcNys_c_E,2513
9
- nextmv/manifest.py,sha256=Pw7U2l598nKcmq9izfC3T1N11qWEVG5tAM8USUSowSo,48977
9
+ nextmv/manifest.py,sha256=v9En9zMZVKZn6G_HThoKUZowMtZr5hxzwWiK9wkVHPU,49023
10
10
  nextmv/model.py,sha256=b323uAjr-eeChrIPLg4a8bnqOaoc12DQrQBnIPybd0k,14993
11
11
  nextmv/options.py,sha256=rfQV0F5_it-L27wjqrs902wr4Q7sgSN7dw5o0c5sdEg,37842
12
12
  nextmv/output.py,sha256=oqCnBvcYOZlvPSoX4trQ3EJR6GpE-4d0d7NDIq5hgL0,56008
13
13
  nextmv/polling.py,sha256=Mka7tChVR7Ws-Hg9W-Yzo7wthhVg-Qp-FK54E70Fzdw,9711
14
- nextmv/run.py,sha256=N5qbfEJ_p5rmIwhFkiWRtGMU_u209hJ4_b-xKrD70-k,52284
14
+ nextmv/run.py,sha256=qeT3a0eqVHKvbQiFxmX_2epaj-rz2GyfpdZJ4ROFC4U,53135
15
15
  nextmv/safe.py,sha256=VAK4fGEurbLNji4Pg5Okga5XQSbI4aI9JJf95_68Z20,3867
16
16
  nextmv/status.py,sha256=SCDLhh2om3yeO5FxO0x-_RShQsZNXEpjHNdCGdb3VUI,2787
17
17
  nextmv/cloud/__init__.py,sha256=2wI72lhWq81BYv1OpS0OOTT5-3sivpX0H4z5ANPoLMc,5051
18
18
  nextmv/cloud/acceptance_test.py,sha256=fZdp4O6pZrl7TaiUrTFPp7O4VJt-4R_W2yo4s8UAS5I,27691
19
19
  nextmv/cloud/account.py,sha256=jIdGNyI3l3dVh2PuriAwAOrEuWRM150WgzxcBMVBNRw,6058
20
20
  nextmv/cloud/application.py,sha256=29Tr7jWwa369ejkgFX3VXU_G3VK-2ATyL6Ma5tGXfAg,139592
21
- nextmv/cloud/batch_experiment.py,sha256=IwvXjapauTkrYzmJhM5DeHBpxSA49MewQA4Pjk1KWzw,10339
21
+ nextmv/cloud/batch_experiment.py,sha256=VmKgjBW6BpkH4loO0afMGNXrwJ5whhijQ99pm94vBto,10349
22
22
  nextmv/cloud/client.py,sha256=Yj4FE4GKsLHkYijAYXcotlyNfhAWANMuWetHXsYPg1M,18101
23
23
  nextmv/cloud/ensemble.py,sha256=_hKPjSLtuGH1xGG70ZBsmY_IL5XinZqVHHwBxtX9Omw,8570
24
24
  nextmv/cloud/input_set.py,sha256=wsLmMI1C7BslWDN5j1RnVUA8z54-Hq1eLG9bkzyqafo,4187
25
- nextmv/cloud/instance.py,sha256=n68CGzv0vfTyM-IP3zoiSk6x5Kusn9taYpV-dSEhh6M,3987
26
- nextmv/cloud/package.py,sha256=7qN09uJ8LyfDhPPo-eeScjuZHTp8mLY1LO1NVo1YNT4,15223
25
+ nextmv/cloud/instance.py,sha256=kGhPefvN0AZBM4ZnrR8oknbqU_y4fk2isPY8hNaYew8,5015
26
+ nextmv/cloud/package.py,sha256=f7ey70jv6gd4B6EdlhQKKM1nGtfMGgL8kmrTLPP2saY,15468
27
27
  nextmv/cloud/scenario.py,sha256=1_4PI9ehYaSonEe_l59cFhZNmqQ_brXXP6-mVq9i8a8,14183
28
28
  nextmv/cloud/secrets.py,sha256=fA5cX0jfTsPVZWV7433wzETGlXpWRLHGswuObx9e6FQ,6820
29
29
  nextmv/cloud/url.py,sha256=Fz70ywkWdCLmP21ZBmJwZi5kDbjpmsX_VlwVF_xQeHg,1836
@@ -38,12 +38,12 @@ nextmv/default_app/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
38
38
  nextmv/default_app/src/visuals.py,sha256=WYK_YBnLmYo3TpVev1CpoNCuW5R7hk9QIkeCmvMn1Fs,1014
39
39
  nextmv/local/__init__.py,sha256=6BsoqlK4dw6X11_uKzz9gBPfxKpdiol2FYO8R3X73SE,116
40
40
  nextmv/local/application.py,sha256=RtqKR3yRI2GFn_RLyaRZMWZW30BuYllLdAY2OsPL7Xc,48245
41
- nextmv/local/executor.py,sha256=g9Bjjm8EzF2wOd0NSow1r_O_L7UBmuFYUYYCOdmapAw,36491
41
+ nextmv/local/executor.py,sha256=1qoynUCB9UDgXhjXKds0OGc8McAtAsQHJ0-QVWTJrQs,36562
42
42
  nextmv/local/geojson_handler.py,sha256=7FavJdkUonop-yskjis0x3qFGB8A5wZyoBUblw-bVhw,12540
43
43
  nextmv/local/local.py,sha256=cp56UpI8h19Ob6Jvb_Ni0ceXH5Vv3ET_iPTDe6ftq3Y,2617
44
44
  nextmv/local/plotly_handler.py,sha256=bLb50e3AkVr_W-F6S7lXfeRdN60mG2jk3UElNmhoMWU,1930
45
45
  nextmv/local/runner.py,sha256=Fa-G4g5yaBgLeBfYU-ePs65Q3Ses_xYvXGhPtHpAkrU,8546
46
- nextmv-0.36.0.dist-info/METADATA,sha256=WT85_fa941nXdX5MFyufaMfa5c7M8bmK8q4uI85WHME,15960
47
- nextmv-0.36.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
48
- nextmv-0.36.0.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
49
- nextmv-0.36.0.dist-info/RECORD,,
46
+ nextmv-0.36.1.dev0.dist-info/METADATA,sha256=2iNvI67UmRYSzNIjHhoTqIA70n5vofqBaU8aHs8ODwI,15965
47
+ nextmv-0.36.1.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
48
+ nextmv-0.36.1.dev0.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
49
+ nextmv-0.36.1.dev0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any