wandb 0.17.4__py3-none-any.whl → 0.17.5__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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