nextmv 0.34.1.dev0__py3-none-any.whl → 0.34.1.dev1__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.34.1.dev0"
1
+ __version__ = "v0.34.1.dev1"
nextmv/local/executor.py CHANGED
@@ -988,7 +988,7 @@ def _remove_empty_directories(directory: str) -> None:
988
988
 
989
989
  def _should_copy_file(src_file: str, dst_file: str) -> bool:
990
990
  """
991
- Determine if a file should be copied based on existence, content, and modification time.
991
+ Determine if a file should be copied based on existence and content.
992
992
 
993
993
  Parameters
994
994
  ----------
@@ -1006,16 +1006,9 @@ def _should_copy_file(src_file: str, dst_file: str) -> bool:
1006
1006
  return True
1007
1007
 
1008
1008
  try:
1009
- # First check if content is different
1010
1009
  src_checksum = _calculate_file_checksum(src_file)
1011
1010
  dst_checksum = _calculate_file_checksum(dst_file)
1012
- if src_checksum != dst_checksum:
1013
- return True
1014
-
1015
- # If content is the same, check if source file is newer
1016
- src_mtime = os.path.getmtime(src_file)
1017
- dst_mtime = os.path.getmtime(dst_file)
1018
- return src_mtime > dst_mtime
1011
+ return src_checksum != dst_checksum
1019
1012
  except OSError:
1020
1013
  return True
1021
1014
 
nextmv/run.py CHANGED
@@ -682,9 +682,10 @@ class Metadata(BaseModel):
682
682
  """Format of the input and output of the run."""
683
683
  status_v2: StatusV2
684
684
  """Status of the run."""
685
-
686
685
  status: Optional[Status] = None
687
686
  """Deprecated: use status_v2."""
687
+ statistics: Optional[dict[str, Any]] = None
688
+ """User defined statistics of the run."""
688
689
 
689
690
 
690
691
  class SyncedRun(BaseModel):
@@ -1560,9 +1561,9 @@ class TrackedRun:
1560
1561
 
1561
1562
  if isinstance(self.output, Output):
1562
1563
  try:
1563
- _ = serialize_json(self.output.data)
1564
+ _ = serialize_json(self.output.solution)
1564
1565
  except (TypeError, OverflowError) as e:
1565
- raise ValueError("Output.data is not JSON serializable") from e
1566
+ raise ValueError("`Output.solution` is not JSON serializable") from e
1566
1567
  elif isinstance(self.output, dict):
1567
1568
  try:
1568
1569
  _ = serialize_json(self.output)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 0.34.1.dev0
3
+ Version: 0.34.1.dev1
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=qZQUeOL0DxE9dvXL1t-gJW2C054cwibCgKGAIHdG_zA,29
1
+ nextmv/__about__.py,sha256=ZGBbtMaJiSvvLAdMgJfmujCziIm_-DL6wE87sRVCj-I,29
2
2
  nextmv/__entrypoint__.py,sha256=dA0iwwHtrq6Z9w9FxmxKLoBGLyhe7jWtUAU-Y3PEgHg,1094
3
3
  nextmv/__init__.py,sha256=C2f8MteVvvOX1Wj-0GFjfUt-0RzCT0zpLpLI2yyZQw8,3796
4
4
  nextmv/_serialization.py,sha256=JlSl6BL0M2Esf7F89GsGIZ__Pp8RnFRNM0UxYhuuYU4,2853
@@ -11,7 +11,7 @@ nextmv/model.py,sha256=vI3pSV3iTwjRPflar7nAg-6h98XRUyi9II5O2J06-Kc,15018
11
11
  nextmv/options.py,sha256=yPJu5lYMbV6YioMwAXv7ctpZUggLXKlZc9CqIbUFvE4,37895
12
12
  nextmv/output.py,sha256=HdvWYG3gIzwoXquulaEVI4LLchXJDjkbag0BkBPM0vQ,55128
13
13
  nextmv/polling.py,sha256=nfefvWI1smm-lIzaXE-4DMlojp6KXIvVi88XLJYUmo8,9724
14
- nextmv/run.py,sha256=8B9hh-jWJpoMSJiDmgmXaqvmzTicWCn75UTJu7Nf7Cs,52401
14
+ nextmv/run.py,sha256=DcVM67ot961RDeuP-jFqNj0Xq4uxXIap_hRNIdCAT_I,52504
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
@@ -39,12 +39,12 @@ nextmv/default_app/src/main.py,sha256=WWeN_xl_mcPhICl3rSCvdEjRkFXGmAnej88FhS-fAm
39
39
  nextmv/default_app/src/visuals.py,sha256=WYK_YBnLmYo3TpVev1CpoNCuW5R7hk9QIkeCmvMn1Fs,1014
40
40
  nextmv/local/__init__.py,sha256=6BsoqlK4dw6X11_uKzz9gBPfxKpdiol2FYO8R3X73SE,116
41
41
  nextmv/local/application.py,sha256=yJDlbQB_mh29Y541Mt6a6zyT3XutdtzjqSd0mlOeteo,47002
42
- nextmv/local/executor.py,sha256=DIY74nVkXxW09BxZQlrFs-_r18Si59_nHTe2jR8MMmI,36907
42
+ nextmv/local/executor.py,sha256=7rxVkpyZ4GyTH7hjJX7rdM0hCo7_fSqX4EiA8YHZpC8,36624
43
43
  nextmv/local/geojson_handler.py,sha256=7FavJdkUonop-yskjis0x3qFGB8A5wZyoBUblw-bVhw,12540
44
44
  nextmv/local/local.py,sha256=cp56UpI8h19Ob6Jvb_Ni0ceXH5Vv3ET_iPTDe6ftq3Y,2617
45
45
  nextmv/local/plotly_handler.py,sha256=bLb50e3AkVr_W-F6S7lXfeRdN60mG2jk3UElNmhoMWU,1930
46
46
  nextmv/local/runner.py,sha256=hwkITHrQG_J9TzxufnaP1mjLWG-iSsNQD66UFZY4pp4,8602
47
- nextmv-0.34.1.dev0.dist-info/METADATA,sha256=IHE5mJ96yUsCNvLvfWtyhMNlCuxOHpNHGnEy3j3y0k8,16013
48
- nextmv-0.34.1.dev0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
49
- nextmv-0.34.1.dev0.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
50
- nextmv-0.34.1.dev0.dist-info/RECORD,,
47
+ nextmv-0.34.1.dev1.dist-info/METADATA,sha256=YvwqMKKdytHQm9fZ4XqHwUZhMeXyzrUCBHScAwGo5tI,16013
48
+ nextmv-0.34.1.dev1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
49
+ nextmv-0.34.1.dev1.dist-info/licenses/LICENSE,sha256=ZIbK-sSWA-OZprjNbmJAglYRtl5_K4l9UwAV3PGJAPc,11349
50
+ nextmv-0.34.1.dev1.dist-info/RECORD,,