wandb 0.17.4__py3-none-any.whl → 0.17.5__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.
wandb/sdk/wandb_run.py CHANGED
@@ -2100,36 +2100,56 @@ class Run:
2100
2100
  return self._finish(exit_code, quiet)
2101
2101
 
2102
2102
  def _finish(
2103
- self, exit_code: Optional[int] = None, quiet: Optional[bool] = None
2103
+ self,
2104
+ exit_code: Optional[int] = None,
2105
+ quiet: Optional[bool] = None,
2104
2106
  ) -> None:
2105
- if quiet is not None:
2106
- self._quiet = quiet
2107
+ logger.info(f"finishing run {self._get_path()}")
2107
2108
  with telemetry.context(run=self) as tel:
2108
2109
  tel.feature.finish = True
2109
- logger.info(f"finishing run {self._get_path()}")
2110
- # detach jupyter hooks / others that needs to happen before backend shutdown
2111
- for hook in self._teardown_hooks:
2112
- if hook.stage == TeardownStage.EARLY:
2113
- hook.call()
2114
2110
 
2115
- self._atexit_cleanup(exit_code=exit_code)
2111
+ if quiet is not None:
2112
+ self._quiet = quiet
2113
+
2114
+ # Pop this run (hopefully) from the run stack, to support the "reinit"
2115
+ # functionality of wandb.init().
2116
+ #
2117
+ # TODO: It's not clear how _global_run_stack could have length other
2118
+ # than 1 at this point in the code. If you're reading this, consider
2119
+ # refactoring this thing.
2116
2120
  if self._wl and len(self._wl._global_run_stack) > 0:
2117
2121
  self._wl._global_run_stack.pop()
2118
- # detach logger / others meant to be run after we've shutdown the backend
2122
+
2123
+ # Run hooks that need to happen before the last messages to the
2124
+ # internal service, like Jupyter hooks.
2119
2125
  for hook in self._teardown_hooks:
2120
- if hook.stage == TeardownStage.LATE:
2126
+ if hook.stage == TeardownStage.EARLY:
2121
2127
  hook.call()
2122
- self._teardown_hooks = []
2123
- module.unset_globals()
2124
-
2125
- # inform manager this run is finished
2126
- manager = self._wl and self._wl._get_manager()
2127
- if manager:
2128
- manager._inform_finish(run_id=self._run_id)
2129
2128
 
2129
+ # Early-stage hooks may use methods that require _is_finished
2130
+ # to be False, so we set this after running those hooks.
2130
2131
  self._is_finished = True
2131
- # end sentry session
2132
- wandb._sentry.end_session()
2132
+
2133
+ try:
2134
+ self._atexit_cleanup(exit_code=exit_code)
2135
+
2136
+ # Run hooks that should happen after the last messages to the
2137
+ # internal service, like detaching the logger.
2138
+ for hook in self._teardown_hooks:
2139
+ if hook.stage == TeardownStage.LATE:
2140
+ hook.call()
2141
+ self._teardown_hooks = []
2142
+
2143
+ # Inform the service that we're done sending messages for this run.
2144
+ #
2145
+ # TODO: Why not do this in _atexit_cleanup()?
2146
+ manager = self._wl and self._wl._get_manager()
2147
+ if manager:
2148
+ manager._inform_finish(run_id=self._run_id)
2149
+
2150
+ finally:
2151
+ module.unset_globals()
2152
+ wandb._sentry.end_session()
2133
2153
 
2134
2154
  @_run_decorator._noop
2135
2155
  @_run_decorator._attach
@@ -2345,36 +2365,49 @@ class Run:
2345
2365
  return
2346
2366
  self._atexit_cleanup_called = True
2347
2367
 
2348
- exit_code = exit_code or self._hooks.exit_code if self._hooks else 0
2368
+ exit_code = (
2369
+ exit_code #
2370
+ or (self._hooks and self._hooks.exit_code)
2371
+ or 0
2372
+ )
2373
+ self._exit_code = exit_code
2349
2374
  logger.info(f"got exitcode: {exit_code}")
2375
+
2376
+ # Delete this run's "resume" file if the run finished successfully.
2377
+ #
2378
+ # This is used by the "auto" resume mode, which resumes from the last
2379
+ # failed (or unfinished/crashed) run. If we reach this line, then this
2380
+ # run shouldn't be a candidate for "auto" resume.
2350
2381
  if exit_code == 0:
2351
- # Cleanup our resume file on a clean exit
2352
2382
  if os.path.exists(self._settings.resume_fname):
2353
2383
  os.remove(self._settings.resume_fname)
2354
2384
 
2355
- self._exit_code = exit_code
2356
- report_failure = False
2357
2385
  try:
2358
2386
  self._on_finish()
2359
- except KeyboardInterrupt as ki:
2360
- if wandb.wandb_agent._is_running():
2361
- raise ki
2362
- wandb.termerror("Control-C detected -- Run data was not synced")
2363
- if not self._settings._notebook:
2364
- os._exit(-1)
2387
+
2388
+ except KeyboardInterrupt:
2389
+ if not wandb.wandb_agent._is_running():
2390
+ wandb.termerror("Control-C detected -- Run data was not synced")
2391
+ raise
2392
+
2365
2393
  except Exception as e:
2366
- if not self._settings._notebook:
2367
- report_failure = True
2368
2394
  self._console_stop()
2369
- self._backend.cleanup()
2370
2395
  logger.error("Problem finishing run", exc_info=e)
2371
2396
  wandb.termerror("Problem finishing run")
2372
- traceback.print_exc()
2373
- else:
2374
- self._on_final()
2375
- finally:
2376
- if report_failure:
2377
- os._exit(-1)
2397
+ raise
2398
+
2399
+ Run._footer(
2400
+ sampled_history=self._sampled_history,
2401
+ final_summary=self._final_summary,
2402
+ poll_exit_response=self._poll_exit_response,
2403
+ server_info_response=self._server_info_response,
2404
+ check_version_response=self._check_version,
2405
+ internal_messages_response=self._internal_messages_response,
2406
+ reporter=self._reporter,
2407
+ quiet=self._quiet,
2408
+ settings=self._settings,
2409
+ printer=self._printer,
2410
+ )
2378
2411
 
2379
2412
  def _console_start(self) -> None:
2380
2413
  logger.info("atexit reg")
@@ -2659,20 +2692,6 @@ class Run:
2659
2692
  for module_name in import_telemetry_set:
2660
2693
  unregister_post_import_hook(module_name, run_id)
2661
2694
 
2662
- def _on_final(self) -> None:
2663
- self._footer(
2664
- sampled_history=self._sampled_history,
2665
- final_summary=self._final_summary,
2666
- poll_exit_response=self._poll_exit_response,
2667
- server_info_response=self._server_info_response,
2668
- check_version_response=self._check_version,
2669
- internal_messages_response=self._internal_messages_response,
2670
- reporter=self._reporter,
2671
- quiet=self._quiet,
2672
- settings=self._settings,
2673
- printer=self._printer,
2674
- )
2675
-
2676
2695
  @_run_decorator._noop_on_finish()
2677
2696
  @_run_decorator._attach
2678
2697
  def define_metric(
@@ -2878,7 +2897,7 @@ class Run:
2878
2897
  if artifact.is_draft() and not artifact._is_draft_save_started():
2879
2898
  artifact = self._log_artifact(artifact)
2880
2899
  if not self._settings._offline:
2881
- self._backend.interface.publish_link_artifact(
2900
+ handle = self._backend.interface.deliver_link_artifact(
2882
2901
  self,
2883
2902
  artifact,
2884
2903
  portfolio,
@@ -2890,6 +2909,13 @@ class Run:
2890
2909
  wandb.termwarn(
2891
2910
  "Artifact TTL will be disabled for source artifacts that are linked to portfolios."
2892
2911
  )
2912
+ result = handle.wait(timeout=-1)
2913
+ if result is None:
2914
+ handle.abandon()
2915
+ else:
2916
+ response = result.response.link_artifact_response
2917
+ if response.error_message:
2918
+ wandb.termerror(response.error_message)
2893
2919
  else:
2894
2920
  # TODO: implement offline mode + sync
2895
2921
  raise NotImplementedError
@@ -3836,34 +3862,33 @@ class Run:
3836
3862
  if not poll_exit_response:
3837
3863
  return
3838
3864
 
3839
- progress = poll_exit_response.pusher_stats
3840
- done = poll_exit_response.done
3865
+ stats = poll_exit_response.pusher_stats
3841
3866
 
3842
3867
  megabyte = wandb.util.POW_2_BYTES[2][1]
3843
- line = f"{progress.uploaded_bytes / megabyte :.3f} MB of {progress.total_bytes / megabyte:.3f} MB uploaded"
3844
- if progress.deduped_bytes > 0:
3845
- line += f" ({progress.deduped_bytes / megabyte:.3f} MB deduped)\r"
3846
- else:
3847
- line += "\r"
3848
-
3849
- percent_done = (
3850
- 1.0
3851
- if progress.total_bytes == 0
3852
- else progress.uploaded_bytes / progress.total_bytes
3868
+ line = (
3869
+ f"{stats.uploaded_bytes / megabyte:.3f} MB"
3870
+ f" of {stats.total_bytes / megabyte:.3f} MB uploaded"
3853
3871
  )
3872
+ if stats.deduped_bytes > 0:
3873
+ line += f" ({stats.deduped_bytes / megabyte:.3f} MB deduped)"
3874
+ line += "\r"
3854
3875
 
3855
- printer.progress_update(line, percent_done)
3856
- if done:
3876
+ if stats.total_bytes > 0:
3877
+ printer.progress_update(line, stats.uploaded_bytes / stats.total_bytes)
3878
+ else:
3879
+ printer.progress_update(line, 1.0)
3880
+
3881
+ if poll_exit_response.done:
3857
3882
  printer.progress_close()
3858
3883
 
3859
- dedupe_fraction = (
3860
- progress.deduped_bytes / float(progress.total_bytes)
3861
- if progress.total_bytes > 0
3862
- else 0
3863
- )
3864
- if dedupe_fraction > 0.01:
3884
+ if stats.total_bytes > 0:
3885
+ dedupe_fraction = stats.deduped_bytes / float(stats.total_bytes)
3886
+ else:
3887
+ dedupe_fraction = 0
3888
+
3889
+ if stats.deduped_bytes > 0.01:
3865
3890
  printer.display(
3866
- f"W&B sync reduced upload amount by {dedupe_fraction * 100:.1f}% "
3891
+ f"W&B sync reduced upload amount by {dedupe_fraction:.1%}"
3867
3892
  )
3868
3893
 
3869
3894
  @staticmethod
wandb/util.py CHANGED
@@ -1748,21 +1748,39 @@ def make_docker_image_name_safe(name: str) -> str:
1748
1748
  return trimmed if trimmed else "image"
1749
1749
 
1750
1750
 
1751
- def merge_dicts(source: Dict[str, Any], destination: Dict[str, Any]) -> Dict[str, Any]:
1752
- """Recursively merge two dictionaries."""
1751
+ def merge_dicts(
1752
+ source: Dict[str, Any],
1753
+ destination: Dict[str, Any],
1754
+ ) -> Dict[str, Any]:
1755
+ """Recursively merge two dictionaries.
1756
+
1757
+ This mutates the destination and its nested dictionaries and lists.
1758
+
1759
+ Instances of `dict` are recursively merged and instances of `list`
1760
+ are appended to the destination. If the destination type is not
1761
+ `dict` or `list`, respectively, the key is overwritten with the
1762
+ source value.
1763
+
1764
+ For all other types, the source value overwrites the destination value.
1765
+ """
1753
1766
  for key, value in source.items():
1754
1767
  if isinstance(value, dict):
1755
- # get node or create one
1756
- node = destination.setdefault(key, {})
1757
- merge_dicts(value, node)
1758
- else:
1759
- if isinstance(value, list):
1760
- if key in destination:
1761
- destination[key].extend(value)
1762
- else:
1763
- destination[key] = value
1768
+ node = destination.get(key)
1769
+ if isinstance(node, dict):
1770
+ merge_dicts(value, node)
1764
1771
  else:
1765
1772
  destination[key] = value
1773
+
1774
+ elif isinstance(value, list):
1775
+ dest_value = destination.get(key)
1776
+ if isinstance(dest_value, list):
1777
+ dest_value.extend(value)
1778
+ else:
1779
+ destination[key] = value
1780
+
1781
+ else:
1782
+ destination[key] = value
1783
+
1766
1784
  return destination
1767
1785
 
1768
1786
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: wandb
3
- Version: 0.17.4
3
+ Version: 0.17.5
4
4
  Summary: A CLI and library for interacting with the Weights & Biases API.
5
5
  Project-URL: Source, https://github.com/wandb/wandb
6
6
  Project-URL: Bug Reports, https://github.com/wandb/wandb/issues
@@ -1,5 +1,5 @@
1
1
  package_readme.md,sha256=xigFCsrzePKq72pDIEfkoVzb-NzDRsKpXXI0FMJ-6jg,4382
2
- wandb/__init__.py,sha256=G2Gtj7kdWVHyglMQ9xX7KnLIWJbPpmREFOqO2QtSt8k,7229
2
+ wandb/__init__.py,sha256=u_ZvJC4cuTAcacvtYvlvLstNOQFETHu4z9GYShCWx9M,7229
3
3
  wandb/__main__.py,sha256=gripuDgB7J8wMMeJt4CIBRjn1BMSFr5zvsrt585Pnj4,64
4
4
  wandb/_globals.py,sha256=CccwOAls5bxJArYHg12b08ZeKR8Qu9u57GtYWjBH0o0,702
5
5
  wandb/data_types.py,sha256=SyBzrPvzfmgl9te_kH9yiNnn20L3eJvfbVnG2wRyZ3k,73149
@@ -8,7 +8,7 @@ wandb/jupyter.py,sha256=tPnqX9kvAOpWpyz1f-uXrmUvj2V3hx0ANHKeXNxGF1o,16954
8
8
  wandb/magic.py,sha256=YVSQmkrtlQ56p-VqkwjiPGNBa694UvPALxc4yp6RiLk,59
9
9
  wandb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  wandb/trigger.py,sha256=PaitU3sX6ekGkd2R8iD6d_VtI72ypF7LaPBXh3rXY7Q,615
11
- wandb/util.py,sha256=JK4QbqJTyeogHLjSg_nTE3HyOe9dADCHSRXOUTtSWxY,61015
11
+ wandb/util.py,sha256=NCcgpBVkmYA1ysO0XpEwRRXjb_pXjM_L4lHqUkWtXkc,61474
12
12
  wandb/viz.py,sha256=3wrGhPKNdj4VZ-hD1wanzF01XH2IHcUBl_1ZnYKnl5Q,3455
13
13
  wandb/wandb_agent.py,sha256=haAOCpdoX8Tw5zQFpw0mZGXghDUnQYyGIIPaiXvstIs,21031
14
14
  wandb/wandb_controller.py,sha256=Mp6szfycF_F8fFhxuDTSMpN4Vvc6D0Ix2gZBSSYOOS0,24804
@@ -64,7 +64,7 @@ wandb/filesync/stats.py,sha256=bjVBoCU9I9ke_XbEqtUgmKJVSmFxxAs2JciBzGWPhDg,3050
64
64
  wandb/filesync/step_checksum.py,sha256=AIz9ALGk59OiR3NtxGj3CJKnsKSQ_1f9PmrbIzxuarE,4690
65
65
  wandb/filesync/step_prepare.py,sha256=JaRqEBxhz-xYPEu4x7KwQ17T-TfcMrPS22FV6HoueBY,5500
66
66
  wandb/filesync/step_upload.py,sha256=l8Zh43AvDn6cTxV49Q48yNUA7F2TGqyDqZbU2vrSvEs,10373
67
- wandb/filesync/upload_job.py,sha256=ke_-04z7zwLCkp6jR-TudgMu6XwMy80RUgV3qJOu7Wg,5471
67
+ wandb/filesync/upload_job.py,sha256=76f1OhIQTsK_ePk4fP1DJSvXpaRz8FdHr2FerOGHiY4,5498
68
68
  wandb/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  wandb/integration/magic.py,sha256=8b7GkkntZb-jJ7L0OF4M7mS1yJKtMI_o3jfsTufWMr4,17246
70
70
  wandb/integration/catboost/__init__.py,sha256=dxef0C9s9Xez_sF3sOqSJpKaSrAibAqMA_TpVUyIwac,127
@@ -158,18 +158,18 @@ wandb/proto/wandb_settings_pb2.py,sha256=g5NT8BLXrE1Y7zWMM768zRoW98dBLE9TNuwttXn
158
158
  wandb/proto/wandb_telemetry_pb2.py,sha256=ReY9N2qSt46o7m1ou1khvYSYYImrzo5ro90g_9m8QsM,322
159
159
  wandb/proto/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
160
  wandb/proto/v3/wandb_base_pb2.py,sha256=0Ixr7LeEOTdIU_pewdbhRZOrFqRtgsOsWcyC_Tw4Nzw,2248
161
- wandb/proto/v3/wandb_internal_pb2.py,sha256=9doecnk53ETFmeP940ihmYmzFezJ4K__FfhBJ3gC5og,105966
161
+ wandb/proto/v3/wandb_internal_pb2.py,sha256=GQV0yRIQlUMkfHQ91BHUvK8kaf1rsgUuw-xMl18VkZM,106882
162
162
  wandb/proto/v3/wandb_server_pb2.py,sha256=u7p14fy4XjKVcDnE54U1WwgC1Gpy6VWGA4MGU3aXyg4,13631
163
163
  wandb/proto/v3/wandb_settings_pb2.py,sha256=ggnJCloXvvxvecOzTf-oIL3Ym2GosSEm5WwtCLkh0sQ,19693
164
164
  wandb/proto/v3/wandb_telemetry_pb2.py,sha256=TPwVdmSS6F97iycCmoHG-vI_76LGeQEQFQrGFRiZyFM,13368
165
165
  wandb/proto/v4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
166
  wandb/proto/v4/wandb_base_pb2.py,sha256=fF312_OnXSKQTjMW0Pwdo-yZBmFURWH-n4XJ_sEaExY,1315
167
- wandb/proto/v4/wandb_internal_pb2.py,sha256=N5SiXxbw_SGtSmkGnd19TJnf999yXa3pS_1nrCuxe1E,48286
167
+ wandb/proto/v4/wandb_internal_pb2.py,sha256=QPxeC8YqwXy7ecj4ml0aeAvW-96_EuOLdeJJFDP4fEo,48783
168
168
  wandb/proto/v4/wandb_server_pb2.py,sha256=YkapN5k621amFmIYKtV5xLww3TaB-6EeGI8Qq2_UY94,5991
169
169
  wandb/proto/v4/wandb_settings_pb2.py,sha256=qHSQGJZtPcwR0zTDs1bPWTG7oIgscTMBUQqfx5M6Hgg,16424
170
170
  wandb/proto/v4/wandb_telemetry_pb2.py,sha256=JtnO50-AV1KuLTw6Cz-2J4GmqgF8So7a1HdCijKRqws,10815
171
171
  wandb/proto/v5/wandb_base_pb2.py,sha256=_RqGlyLs6WbBXyh2m6xke8OQyjQeRFKDwh8Brn9PAN4,1441
172
- wandb/proto/v5/wandb_internal_pb2.py,sha256=iO_NBC2zlquTzagM5_u-aetzFO3I3EJzmGDz_3B-xqw,52297
172
+ wandb/proto/v5/wandb_internal_pb2.py,sha256=w1TmW8RD0TkR57aTt1CBC-PH_N3mbmChPDWtjFJMJoE,52818
173
173
  wandb/proto/v5/wandb_server_pb2.py,sha256=8uKB9qS4F3QjKSlj1aL8eEXZiBIVuTGIZWvCsbs2qEQ,6477
174
174
  wandb/proto/v5/wandb_settings_pb2.py,sha256=uw5Cv8OaSHmteWIAKIfVOGbkc7bd2Z-z-vo_vTkq-vI,16732
175
175
  wandb/proto/v5/wandb_telemetry_pb2.py,sha256=ePvs13AXkxTPwW9pk4xHwkJfKqzY71WA-0tnwgH-zek,11061
@@ -179,11 +179,11 @@ wandb/sdk/wandb_config.py,sha256=ZFEJEk7YoXTIySzHRGOIyyhgvbMUqTnUFAIlu-ZzGUo,108
179
179
  wandb/sdk/wandb_helper.py,sha256=IbJ7opO8UkfwCDekSjRYIrGBblUxnTPBfp1EdesfF4U,1824
180
180
  wandb/sdk/wandb_init.py,sha256=1CCmcLGo-TMTPkpm8B2yOV9zqUjKH8UOTr0LOAle62s,49368
181
181
  wandb/sdk/wandb_login.py,sha256=i3e0I6_0f7F08U1ohC1Ud_AgsBvA0DQi6LChtq8r3rY,11163
182
- wandb/sdk/wandb_manager.py,sha256=K51uT2lRn2rmnflKkyxYdy4CvlD1wsjBsPI1A2GfTpg,6964
182
+ wandb/sdk/wandb_manager.py,sha256=U4lGjNhUgdiDtKwLUQ4JnE57MVO_RArkwYmvufOHPkg,7000
183
183
  wandb/sdk/wandb_metric.py,sha256=a3GiQXr6H18m81uobYjlJaC8CL8iANzI42qxkxfZsDs,3268
184
184
  wandb/sdk/wandb_require.py,sha256=HGSkS0IEBnPEn_33jo3an27qtdx2bCxeEwQ0iri9OJk,2858
185
185
  wandb/sdk/wandb_require_helpers.py,sha256=ZmKv5aXXHDTTU6nYHMLKW4_pt9X-PlaMtbRJl77kHX8,1331
186
- wandb/sdk/wandb_run.py,sha256=9Z0xeufPIeewC8-STqvoc2PiVEuVZ4uukt1L8dCKOaI,160874
186
+ wandb/sdk/wandb_run.py,sha256=7TBtpL11_l6SUjdxQmmPYiPPvGBQMn_U1byX7AcqG18,161749
187
187
  wandb/sdk/wandb_settings.py,sha256=BjEO5VvMSsLlJC2ygaxCwLLzJgdbBxj8nYeZ0ZoNws0,74727
188
188
  wandb/sdk/wandb_setup.py,sha256=qLVyjVQuWss6ORjBkKFAtsuziR7uwWrgLwnOydd5lLU,10909
189
189
  wandb/sdk/wandb_summary.py,sha256=yQdOVIPrZaZanhBQ7yuSfPLX0x6dxwkN_KAn4SgjSZU,4536
@@ -191,7 +191,7 @@ wandb/sdk/wandb_sweep.py,sha256=GR_Px6p2jr_HvmtmgKaaawLLNMMAA3yv2pkca82ahNo,3888
191
191
  wandb/sdk/wandb_sync.py,sha256=KhxDOHR7x8q54hAlsEx4ta1dAW1ZnzTUMr7VwJyCL5c,2273
192
192
  wandb/sdk/wandb_watch.py,sha256=2LGjshxCywHhlxHU3-APmgWsoQjMSxJdqA8J75KAmIU,3898
193
193
  wandb/sdk/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- wandb/sdk/artifacts/artifact.py,sha256=vjBvDss_gA2DzlbsmIANbnqkVBdvWJscCzjWVgdcStc,88898
194
+ wandb/sdk/artifacts/artifact.py,sha256=kaT-ENy7_C6NXPkFd-mqn5JjaKGWKg4x5fJmJDJ5YvY,88560
195
195
  wandb/sdk/artifacts/artifact_download_logger.py,sha256=XEVxmktMInrd1p2z86CKt3QyTA9vscxJL5-8_eupknI,1501
196
196
  wandb/sdk/artifacts/artifact_file_cache.py,sha256=EsXD2bQyFhFYK2NICUZ3jtXf-r0hC63-6lqyU_cHcPw,9840
197
197
  wandb/sdk/artifacts/artifact_instance_cache.py,sha256=8dnqz8ri-3zAygk-ihn9JQsRaeYUwF7Av_pUqUoJxt0,473
@@ -248,10 +248,10 @@ wandb/sdk/integration_utils/auto_logging.py,sha256=evcVXab1KoC1THdHpCb5RhL14DJKs
248
248
  wandb/sdk/integration_utils/data_logging.py,sha256=DDFtDaUu50aeTTgxCHHYd2f85guqqf2xfEOburRlwwQ,19533
249
249
  wandb/sdk/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
250
  wandb/sdk/interface/constants.py,sha256=NJNBFr7LkshLI837D3LU3JuEURLzBwza9H-kxcy4ihw,60
251
- wandb/sdk/interface/interface.py,sha256=6dPNLYUQMGjFyqATRM1Qp06YMym4V2_v833NGXintUw,33953
251
+ wandb/sdk/interface/interface.py,sha256=3cumoNsmsAAIlF0eKi-k3AKytlNWpdEmECGeE4JMiVs,34248
252
252
  wandb/sdk/interface/interface_queue.py,sha256=eCvNpvwMe1GHJv_5M8R3ZSspmEvE02mXMstBDBEZy8A,1967
253
253
  wandb/sdk/interface/interface_relay.py,sha256=vQUrk5KESKInZsXpOxWF4YcWRZFLJjNz1mdNywbWbbE,1514
254
- wandb/sdk/interface/interface_shared.py,sha256=LjEcbEHBpm5PXQ48RonTanZe87wKJB2SOMkoyxExN9c,20593
254
+ wandb/sdk/interface/interface_shared.py,sha256=DymRmUQvfStEdW1iWryBaOdyVYArYCV1fn5cevx4mUM,20635
255
255
  wandb/sdk/interface/interface_sock.py,sha256=vA5vDMDuuenKkW8zHYfECM4OoSoqAi6hiLMJzqdepd8,1984
256
256
  wandb/sdk/interface/message_future.py,sha256=5OMApIUKTXLHP98ph_jCdshuPZB_E0Uf3UGZpOQ8sik,685
257
257
  wandb/sdk/interface/message_future_poll.py,sha256=drjrcBKswYPYJJQLFlj7UDXq7_zg7KNcObFVetsbvhQ,1410
@@ -266,16 +266,16 @@ wandb/sdk/internal/datastore.py,sha256=GMO5KIZN4y8Z4t4K2_pxFuXT1kGQsAbwKtDUkQvwJ
266
266
  wandb/sdk/internal/file_pusher.py,sha256=rUPk6knhvJiNQIw62gsA_K98LYAaqoUJySfztHwMsOw,6103
267
267
  wandb/sdk/internal/file_stream.py,sha256=MNWY5xAPHonGGMTDwQxS4PEZk0ZZRp16I_OOaUonB2Y,25924
268
268
  wandb/sdk/internal/flow_control.py,sha256=LO3iDyBbI4WGoDuVLjA_iv62PyiupdYkpSjxPIMGI7E,8584
269
- wandb/sdk/internal/handler.py,sha256=Ngq613egsAbKYuVJueLguiSnT39oZeMQQyAvvMI3V0Q,33680
269
+ wandb/sdk/internal/handler.py,sha256=6ClMK8iga0bHrd17410SL0LrpH1Tk43dfGBpofMzxnQ,33688
270
270
  wandb/sdk/internal/internal.py,sha256=AUPsOXGwag2UjHg1rQz1zGGWXhywJo85Hoc62ZQ0uCc,12722
271
- wandb/sdk/internal/internal_api.py,sha256=Bud3H85aelAC9uBQu0P4yrerklQY80M956grO0mGmSA,147115
271
+ wandb/sdk/internal/internal_api.py,sha256=_dqVnH5JkCS1_X05j_bzam8kSEjInLsPHsylLSImPig,147139
272
272
  wandb/sdk/internal/internal_util.py,sha256=RMBAsnVimA9UpC-qlT862nqxIXDAPm6KfonNmpvlRfc,2654
273
273
  wandb/sdk/internal/job_builder.py,sha256=vftff8ZIrVB65nJkEZ3CW5qSrbzFHzQeVbbpHrunou8,22700
274
274
  wandb/sdk/internal/profiler.py,sha256=C8-mPrAhPS6_l-Fj_zCOwmXaEqhjI9Wd0EAPXS9GAEI,2348
275
275
  wandb/sdk/internal/progress.py,sha256=0nARkPJ4eVaElpjBl_UQAXeiPtujqcJkMz6OxuJJkps,2446
276
276
  wandb/sdk/internal/run.py,sha256=8OhVy2vfgPC8pNFq0tJ4CkQHETOBfQsFDghw50ccSXc,682
277
277
  wandb/sdk/internal/sample.py,sha256=_bB-tLsYKayL0h1rJ-Na1aI-aHDPHXb1jSMb0nCDmfo,2442
278
- wandb/sdk/internal/sender.py,sha256=w_hONddIpdZHchsfoq4mGE79kvCaxmo3qmSCHKF14-c,65993
278
+ wandb/sdk/internal/sender.py,sha256=e2EwAHRgxrKUyyN0ox07ZY_1YE1Q0uclRQaB-ezo7-E,66457
279
279
  wandb/sdk/internal/sender_config.py,sha256=qEuXwOskca3sYyDIRsswlXmj9StCCS0WKQ1qrBXbIjw,6767
280
280
  wandb/sdk/internal/settings_static.py,sha256=m97hST3YWmpkmgnXbso0gfPFZ7k7Y4SJSM7NbJIZKTc,3526
281
281
  wandb/sdk/internal/tb_watcher.py,sha256=95vhk4q0RT1V7QHQAyxy2hreJvpWYv3scTQ1oAh--Xw,18688
@@ -321,7 +321,7 @@ wandb/sdk/launch/builder/abstract.py,sha256=s8h5rMSf021YFk0bNvAnYSXfh6Yj1f3MwrQx
321
321
  wandb/sdk/launch/builder/build.py,sha256=1wmQ60137DoF5cMYJGBNhBQo9_onEuiNm2Hx-oM6BgQ,10785
322
322
  wandb/sdk/launch/builder/context_manager.py,sha256=p8rVZj7TDolsU4DEY0HRTgXBt_ht31Bv4GODMRxQSms,9618
323
323
  wandb/sdk/launch/builder/docker_builder.py,sha256=0HbPxwWuCHXogmIc6o18nvBaHIx-xcWOQfHnfOJIgcI,6316
324
- wandb/sdk/launch/builder/kaniko_builder.py,sha256=UDM7coPH07067AQZe-5payYauT1wetR_GWMqR4IT-wg,22807
324
+ wandb/sdk/launch/builder/kaniko_builder.py,sha256=xAxnNRK9RGb_sa5VmCbL8jsBpQqN3xqlpNlMGptXMJs,23666
325
325
  wandb/sdk/launch/builder/noop.py,sha256=A--UUfqkcZxCpTmBKbL6JvkE_emcJRXIkAhAfVv5u7k,1900
326
326
  wandb/sdk/launch/builder/templates/_wandb_bootstrap.py,sha256=KbW2cmZm55NvOmcDL0A_lKIbeLe_FYKHJJYELKNYUKc,7226
327
327
  wandb/sdk/launch/builder/templates/dockerfile.py,sha256=X8D6n6tyyh69oNHeFiUp-d8ClEtMpHSjwk45N12CR68,2264
@@ -331,8 +331,8 @@ wandb/sdk/launch/environment/azure_environment.py,sha256=2Yt-NVD-_eXR73-pp6CAneK
331
331
  wandb/sdk/launch/environment/gcp_environment.py,sha256=0US6TKVKlvVl_Y_R17xm_j_MuJdiS-L31rkHZ4O4AIo,12734
332
332
  wandb/sdk/launch/environment/local_environment.py,sha256=mO35r8XgxRvqxhmmkBx3xIymz1M2lKYGtnltRB1c9mM,2258
333
333
  wandb/sdk/launch/inputs/files.py,sha256=BWGDmAfDPLja7zz0bUzYLaF3wH4cTPesD9LqDuJRUoU,4685
334
- wandb/sdk/launch/inputs/internal.py,sha256=qsmqTl-I9M62LzZeSqip05pIRoG9Vdxohu1Oquto-PA,6321
335
- wandb/sdk/launch/inputs/manage.py,sha256=LTDTlIKHvF_1F6wgVVXIo9gvIY-lMmUoclYXkUyQ6SY,3786
334
+ wandb/sdk/launch/inputs/internal.py,sha256=jKIaIZAgERd2sDwM8naZSfCtEnMGFlfnG5u91NC0htM,9392
335
+ wandb/sdk/launch/inputs/manage.py,sha256=O0IsTWhjUftihohRfK7DkT186LjHMMcE2NSMeG8IFBY,5003
336
336
  wandb/sdk/launch/registry/abstract.py,sha256=eTiuMPEm0NnrTkU6M8UteZQfK50BN-n7tyev4nMA1oQ,1146
337
337
  wandb/sdk/launch/registry/anon.py,sha256=jft6cCObrI1mgydwX2rR9xYfdLDokHv8RqlZiMHBFCI,943
338
338
  wandb/sdk/launch/registry/azure_container_registry.py,sha256=uy8j5SF7lTtHyIGl527RZtFP-y1gQErcG6IlPue56w0,4570
@@ -393,7 +393,7 @@ wandb/sdk/lib/sparkline.py,sha256=SbeX9FkaU47BMi0-HtnpCh_cBHsUSl5n1vL7vVL9e60,13
393
393
  wandb/sdk/lib/telemetry.py,sha256=OdBUbhUAU1LPDJJmW5Rm6GkRDRPpeCk2SP61XUQYm2g,2752
394
394
  wandb/sdk/lib/timed_input.py,sha256=D7vx3N3m4LlxwkQpzS7lDi7IOnccqZ3WfLlDYRs8Oes,3229
395
395
  wandb/sdk/lib/timer.py,sha256=VZUyl7fmQAB75l9QXw9Nkz9SxyYj-CvLPawAk866YKM,440
396
- wandb/sdk/lib/tracelog.py,sha256=oOB56Ya4Eo-T72JFRxL2JRzvUny7pKkFK2j8IQw-Mvw,7540
396
+ wandb/sdk/lib/tracelog.py,sha256=uI_1Z4cTq_dDWxdC5sIh2dB0js56OmVw9e_OMOwOCCE,7572
397
397
  wandb/sdk/lib/wburls.py,sha256=foGBNKwdRSlG_J8PJyAQ0nSWzGZcwbJeN3yjk231KO4,1435
398
398
  wandb/sdk/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
399
399
  wandb/sdk/service/_startup_debug.py,sha256=0-evSjgwjb2LiOP952eScrfSWL8PrAXPOKPgZbio5_M,588
@@ -812,8 +812,8 @@ wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py,sha256=cJIaJ2EQso
812
812
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py,sha256=UORYTNVcUSE2NpFcq9UVLIS-tsS0TS_Qw8akhKxn2eY,1506
813
813
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py,sha256=UWX8DB97ygkEeSxWQUYCHR4MahNilux7vl5TCTQtPPk,2190
814
814
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py,sha256=ZOevOTbSo8NRiIxkuBVGaG4yigWnPoO0goxAi-jsBkM,3828
815
- wandb-0.17.4.dist-info/METADATA,sha256=iyb9JSebdNvRiD4LlXufW_kCcO7Quiy7c2n4IF3-wy0,10047
816
- wandb-0.17.4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
817
- wandb-0.17.4.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
818
- wandb-0.17.4.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
819
- wandb-0.17.4.dist-info/RECORD,,
815
+ wandb-0.17.5.dist-info/METADATA,sha256=SlVUSxYN0OOfoN9dBroAUa-kzLJkncK8UsumfL_61zs,10047
816
+ wandb-0.17.5.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
817
+ wandb-0.17.5.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
818
+ wandb-0.17.5.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
819
+ wandb-0.17.5.dist-info/RECORD,,
File without changes