wandb 0.17.1__py3-none-any.whl → 0.17.2__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/__init__.py CHANGED
@@ -11,7 +11,7 @@ For scripts and interactive notebooks, see https://github.com/wandb/examples.
11
11
 
12
12
  For reference documentation, see https://docs.wandb.com/ref/python.
13
13
  """
14
- __version__ = "0.17.1"
14
+ __version__ = "0.17.2"
15
15
 
16
16
 
17
17
  # Used with pypi checks and other messages related to pip
@@ -214,9 +214,12 @@ from .analytics import Sentry as _Sentry
214
214
  if "dev" in __version__:
215
215
  import os
216
216
 
217
+ # disable error reporting in dev versions for the python client
217
218
  os.environ["WANDB_ERROR_REPORTING"] = os.environ.get(
218
219
  "WANDB_ERROR_REPORTING", "false"
219
220
  )
221
+ # turn on wandb-core for dev versions
222
+ os.environ["WANDB__REQUIRE_CORE"] = os.environ.get("WANDB__REQUIRE_CORE", "true")
220
223
 
221
224
  _sentry = _Sentry()
222
225
  _sentry.setup()
wandb/cli/cli.py CHANGED
@@ -880,6 +880,14 @@ def sync(
880
880
  default=False,
881
881
  help="Resume a sweep to continue running new runs.",
882
882
  )
883
+ @click.option(
884
+ "--prior_run",
885
+ "-R",
886
+ "prior_runs",
887
+ multiple=True,
888
+ default=None,
889
+ help="ID of an existing run to add to this sweep",
890
+ )
883
891
  @click.argument("config_yaml_or_sweep_id")
884
892
  @click.pass_context
885
893
  @display_error
@@ -897,6 +905,7 @@ def sweep(
897
905
  cancel,
898
906
  pause,
899
907
  resume,
908
+ prior_runs,
900
909
  config_yaml_or_sweep_id,
901
910
  ):
902
911
  state_args = "stop", "cancel", "pause", "resume"
@@ -1038,6 +1047,7 @@ def sweep(
1038
1047
  project=project,
1039
1048
  entity=entity,
1040
1049
  obj_id=sweep_obj_id,
1050
+ prior_runs=prior_runs,
1041
1051
  )
1042
1052
  sweep_utils.handle_sweep_config_violations(warnings)
1043
1053
 
@@ -1104,6 +1114,14 @@ def sweep(
1104
1114
  default=None,
1105
1115
  help="Resume a launch sweep by passing an 8-char sweep id. Queue required",
1106
1116
  )
1117
+ @click.option(
1118
+ "--prior_run",
1119
+ "-R",
1120
+ "prior_runs",
1121
+ multiple=True,
1122
+ default=None,
1123
+ help="ID of an existing run to add to this sweep",
1124
+ )
1107
1125
  @click.argument("config", required=False, type=click.Path(exists=True))
1108
1126
  @click.pass_context
1109
1127
  @display_error
@@ -1114,6 +1132,7 @@ def launch_sweep(
1114
1132
  queue,
1115
1133
  config,
1116
1134
  resume_id,
1135
+ prior_runs,
1117
1136
  ):
1118
1137
  api = _get_cling_api()
1119
1138
  env = os.environ
@@ -1298,6 +1317,7 @@ def launch_sweep(
1298
1317
  obj_id=sweep_obj_id, # if resuming
1299
1318
  launch_scheduler=launch_scheduler_with_queue,
1300
1319
  state="PENDING",
1320
+ prior_runs=prior_runs,
1301
1321
  )
1302
1322
  sweep_utils.handle_sweep_config_violations(warnings)
1303
1323
  # Log nicely formatted sweep information
wandb/old/summary.py CHANGED
@@ -390,6 +390,11 @@ class HTTPSummary(Summary):
390
390
  self._client = client
391
391
  self._started = time.time()
392
392
 
393
+ def __delitem__(self, key):
394
+ if key not in self._json_dict:
395
+ raise KeyError(key)
396
+ del self._json_dict[key]
397
+
393
398
  def load(self):
394
399
  pass
395
400
 
@@ -2019,16 +2019,23 @@ class Artifact:
2019
2019
  def delete(self, delete_aliases: bool = False) -> None:
2020
2020
  """Delete an artifact and its files.
2021
2021
 
2022
+ If called on a linked artifact (i.e. a member of a portfolio collection): only the link is deleted, and the
2023
+ source artifact is unaffected.
2024
+
2022
2025
  Arguments:
2023
2026
  delete_aliases: If set to `True`, deletes all aliases associated with the artifact.
2024
2027
  Otherwise, this raises an exception if the artifact has existing
2025
2028
  aliases.
2029
+ This parameter is ignored if the artifact is linked (i.e. a member of a portfolio collection).
2026
2030
 
2027
2031
  Raises:
2028
2032
  ArtifactNotLoggedError: If the artifact is not logged.
2029
2033
  """
2030
2034
  self._ensure_logged("delete")
2031
- self._delete(delete_aliases)
2035
+ if self.collection.is_sequence():
2036
+ self._delete(delete_aliases)
2037
+ else:
2038
+ self._unlink()
2032
2039
 
2033
2040
  @normalize_exceptions
2034
2041
  def _delete(self, delete_aliases: bool = False) -> None:
@@ -390,10 +390,13 @@ if np:
390
390
  NumberType.types.append(np.uintp)
391
391
  NumberType.types.append(np.float32)
392
392
  NumberType.types.append(np.float64)
393
- NumberType.types.append(np.float_)
394
393
  NumberType.types.append(np.complex64)
395
394
  NumberType.types.append(np.complex128)
396
- NumberType.types.append(np.complex_)
395
+
396
+ numpy_major_version = np.__version__.split(".")[0]
397
+ if int(numpy_major_version) < 2:
398
+ NumberType.types.append(np.float_)
399
+ NumberType.types.append(np.complex_)
397
400
 
398
401
 
399
402
  class TimestampType(Type):
@@ -33,7 +33,7 @@ class Html(BatchableMedia):
33
33
  if data_is_path:
34
34
  assert isinstance(data, str)
35
35
  data_path = data
36
- with open(data_path) as file:
36
+ with open(data_path, encoding="utf-8") as file:
37
37
  self.html = file.read()
38
38
  elif isinstance(data, str):
39
39
  self.html = data
@@ -36,7 +36,7 @@ if TYPE_CHECKING: # pragma: no cover
36
36
 
37
37
  from ..wandb_run import Run as LocalRun
38
38
 
39
- numeric = Union[int, float, np.integer, np.float_]
39
+ numeric = Union[int, float, np.integer, np.float64]
40
40
  FileFormat3D = Literal[
41
41
  "obj",
42
42
  "gltf",
@@ -1180,6 +1180,7 @@ class Api:
1180
1180
  project_name (str): The project to download, (can include bucket)
1181
1181
  name (str): The run to download
1182
1182
  """
1183
+ # Pulling wandbConfig.start_time is required so that we can determine if a run has actually started
1183
1184
  query = gql(
1184
1185
  """
1185
1186
  query RunResumeStatus($project: String, $entity: String, $name: String!) {
@@ -1203,6 +1204,7 @@ class Api:
1203
1204
  eventsTail
1204
1205
  config
1205
1206
  tags
1207
+ wandbConfig(keys: ["t"])
1206
1208
  }
1207
1209
  }
1208
1210
  }
@@ -3036,6 +3038,7 @@ class Api:
3036
3038
  project: Optional[str] = None,
3037
3039
  entity: Optional[str] = None,
3038
3040
  state: Optional[str] = None,
3041
+ prior_runs: Optional[List[str]] = None,
3039
3042
  ) -> Tuple[str, List[str]]:
3040
3043
  """Upsert a sweep object.
3041
3044
 
@@ -3048,6 +3051,7 @@ class Api:
3048
3051
  project (str): project to use
3049
3052
  entity (str): entity to use
3050
3053
  state (str): state
3054
+ prior_runs (list): IDs of existing runs to add to the sweep
3051
3055
  """
3052
3056
  project_query = """
3053
3057
  project {
@@ -3068,7 +3072,8 @@ class Api:
3068
3072
  $projectName: String,
3069
3073
  $controller: JSONString,
3070
3074
  $scheduler: JSONString,
3071
- $state: String
3075
+ $state: String,
3076
+ $priorRunsFilters: JSONString,
3072
3077
  ) {
3073
3078
  upsertSweep(input: {
3074
3079
  id: $id,
@@ -3078,7 +3083,8 @@ class Api:
3078
3083
  projectName: $projectName,
3079
3084
  controller: $controller,
3080
3085
  scheduler: $scheduler,
3081
- state: $state
3086
+ state: $state,
3087
+ priorRunsFilters: $priorRunsFilters,
3082
3088
  }) {
3083
3089
  sweep {
3084
3090
  name
@@ -3127,6 +3133,9 @@ class Api:
3127
3133
  config_str = yaml.dump(
3128
3134
  json.loads(json.dumps(config)), Dumper=util.NonOctalStringDumper
3129
3135
  )
3136
+ filters = None
3137
+ if prior_runs:
3138
+ filters = json.dumps({"$or": [{"name": r} for r in prior_runs]})
3130
3139
 
3131
3140
  err: Optional[Exception] = None
3132
3141
  for mutation in mutations:
@@ -3140,6 +3149,7 @@ class Api:
3140
3149
  "controller": controller,
3141
3150
  "launchScheduler": launch_scheduler,
3142
3151
  "scheduler": scheduler,
3152
+ "priorRunsFilters": filters,
3143
3153
  }
3144
3154
  if state:
3145
3155
  variables["state"] = state
@@ -754,14 +754,14 @@ class SendManager:
754
754
  project_name=run.project,
755
755
  name=run.run_id,
756
756
  )
757
-
758
- if not resume_status:
757
+ # No resume status = run does not exist; No t key in wandbConfig = run exists but hasn't been inited
758
+ if not resume_status or '"t":' not in resume_status.get("wandbConfig", ""):
759
759
  if self._settings.resume == "must":
760
760
  error = wandb_internal_pb2.ErrorInfo()
761
761
  error.code = wandb_internal_pb2.ErrorInfo.ErrorCode.USAGE
762
762
  error.message = (
763
763
  "You provided an invalid value for the `resume` argument."
764
- f" The value 'must' is not a valid option for resuming a run ({run.run_id}) that does not exist."
764
+ f" The value 'must' is not a valid option for resuming a run ({run.run_id}) that has not been initialized."
765
765
  " Please check your inputs and try again with a valid run ID."
766
766
  " If you are trying to start a new run, please omit the `resume` argument or use `resume='allow'`."
767
767
  )
@@ -410,5 +410,7 @@ class GPU:
410
410
 
411
411
  except pynvml.NVMLError:
412
412
  pass
413
+ except Exception as e:
414
+ logger.error(f"Error Probing GPU: {e}")
413
415
 
414
416
  return info
@@ -141,7 +141,7 @@ class LaunchProject:
141
141
  elif self.job is not None:
142
142
  self.source = LaunchSource.JOB
143
143
  self.project_dir = tempfile.mkdtemp()
144
- if self.uri and self.uri.startswith("placeholder"):
144
+ elif self.uri and self.uri.startswith("placeholder"):
145
145
  self.source = LaunchSource.SCHEDULER
146
146
  self.project_dir = os.getcwd()
147
147
  self._entry_point = self.override_entrypoint
wandb/sdk/wandb_run.py CHANGED
@@ -2614,11 +2614,6 @@ class Run:
2614
2614
  exit_handle = self._backend.interface.deliver_exit(self._exit_code)
2615
2615
  exit_handle.add_probe(on_probe=self._on_probe_exit)
2616
2616
 
2617
- # this message is confusing, we should remove it
2618
- # self._footer_exit_status_info(
2619
- # self._exit_code, settings=self._settings, printer=self._printer
2620
- # )
2621
-
2622
2617
  # wait for the exit to complete
2623
2618
  _ = exit_handle.wait(timeout=-1, on_progress=self._on_progress_exit)
2624
2619
 
@@ -3764,6 +3759,11 @@ class Run:
3764
3759
  settings=settings,
3765
3760
  printer=printer,
3766
3761
  )
3762
+ Run._footer_notify_wandb_core(
3763
+ quiet=quiet,
3764
+ settings=settings,
3765
+ printer=printer,
3766
+ )
3767
3767
  Run._footer_local_warn(
3768
3768
  server_info_response=server_info_response,
3769
3769
  quiet=quiet,
@@ -3786,26 +3786,6 @@ class Run:
3786
3786
  printer=printer,
3787
3787
  )
3788
3788
 
3789
- @staticmethod
3790
- def _footer_exit_status_info(
3791
- exit_code: Optional[int],
3792
- *,
3793
- settings: "Settings",
3794
- printer: Union["PrinterTerm", "PrinterJupyter"],
3795
- ) -> None:
3796
- if settings.silent:
3797
- return
3798
-
3799
- status = "(success)." if not exit_code else f"(failed {exit_code})."
3800
- info = [
3801
- f"Waiting for W&B process to finish... {printer.status(status, bool(exit_code))}"
3802
- ]
3803
-
3804
- if not settings._offline and exit_code:
3805
- info.append(f"Press {printer.abort()} to abort syncing.")
3806
-
3807
- printer.display(f'{" ".join(info)}')
3808
-
3809
3789
  # fixme: Temporary hack until we move to rich which allows multiple spinners
3810
3790
  @staticmethod
3811
3791
  def _footer_file_pusher_status_info(
@@ -4154,6 +4134,24 @@ class Run:
4154
4134
  if package_problem and check_version.upgrade_message:
4155
4135
  printer.display(check_version.upgrade_message)
4156
4136
 
4137
+ @staticmethod
4138
+ def _footer_notify_wandb_core(
4139
+ *,
4140
+ quiet: Optional[bool] = None,
4141
+ settings: "Settings",
4142
+ printer: Union["PrinterTerm", "PrinterJupyter"],
4143
+ ) -> None:
4144
+ """Prints a message advertising the upcoming core release."""
4145
+ if quiet or settings._require_core:
4146
+ return
4147
+
4148
+ printer.display(
4149
+ "The new W&B backend becomes opt-out in version 0.18.0;"
4150
+ ' try it out with `wandb.require("core")`!'
4151
+ " See https://wandb.me/wandb-core for more information.",
4152
+ level="warn",
4153
+ )
4154
+
4157
4155
  @staticmethod
4158
4156
  def _footer_reporter_warn_err(
4159
4157
  reporter: Optional[Reporter] = None,
wandb/util.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import colorsys
2
2
  import contextlib
3
3
  import dataclasses
4
+ import enum
4
5
  import functools
5
6
  import gzip
6
7
  import importlib
@@ -637,6 +638,8 @@ def json_friendly( # noqa: C901
637
638
  elif isinstance(obj, set):
638
639
  # set is not json serializable, so we convert it to tuple
639
640
  obj = tuple(obj)
641
+ elif isinstance(obj, enum.Enum):
642
+ obj = obj.name
640
643
  else:
641
644
  converted = False
642
645
  if getsizeof(obj) > VALUE_BYTES_LIMIT:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: wandb
3
- Version: 0.17.1
3
+ Version: 0.17.2
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=rQ6QR2yzyH3BYp3kw3EdVx_Cn5fCRa2XM1YONFii8js,7033
2
+ wandb/__init__.py,sha256=8wErywxqTFW0Dx-_VrrPbU2wKkUDP8jzVHk6F-h3uSQ,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=FA416LFayNUJLCHw65RCEVVO9wABUMTUJwl8t7BQjNM,60943
11
+ wandb/util.py,sha256=JK4QbqJTyeogHLjSg_nTE3HyOe9dADCHSRXOUTtSWxY,61015
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
@@ -50,7 +50,7 @@ wandb/apis/reports/v2/__init__.py,sha256=KFrIs_vw2k49bTUHZCkqx9CzXcbNl192cYBWViK
50
50
  wandb/apis/workspaces/__init__.py,sha256=ZLuZVu1MTNZ9ZWFMk-t6TXGQWDhiaI5liEl-5WN1mi4,264
51
51
  wandb/beta/workflows.py,sha256=bk12HDWnxI4uuP0KyUbfclrTSoRVXrJibAuO_QBB5tI,10239
52
52
  wandb/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- wandb/cli/cli.py,sha256=iWKhKcH77O5Rm5svUvPM9Sl2I4rbNz5FKGD8jdvgMCs,97238
53
+ wandb/cli/cli.py,sha256=pCZF2eq9IzmbclGY-HFnOA4WILKAvz5B4M5W4ijWwvU,97644
54
54
  wandb/docker/__init__.py,sha256=1NktT5nl7XJ35vj7Pq71p49_Vwet2HBLBc2_D7e86sM,10552
55
55
  wandb/docker/auth.py,sha256=I68SFCcbmZr18XqVxVCM75eTB7YhCebgb3dcsFiIYHQ,15032
56
56
  wandb/docker/wandb-entrypoint.sh,sha256=P4eTMG7wYsgTfJIws_HT7QFlYBI70ZLnNlDGTZdmYVE,989
@@ -136,7 +136,7 @@ wandb/mpmain/__main__.py,sha256=bLhspPeHQvNMyRNR7xi9v-02XfW1mhJY2yBWI3bYtbg,57
136
136
  wandb/old/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  wandb/old/core.py,sha256=MJjnAcUObCVXgLQEOW_iS7RREBiTB-YZtf9VHMYV2N4,3758
138
138
  wandb/old/settings.py,sha256=IrS10skC9gCTb8NgTWeRFgsTYL1bw36e-rG_xECk-yo,6374
139
- wandb/old/summary.py,sha256=1ojvsoAOZF4UpSMSPpcLc2RNlg3QJfEZbe2w-xnfK1g,13815
139
+ wandb/old/summary.py,sha256=eqpzQB5CfzTKZta6tB-nVUh0ZmiLwISqjSAt4yvwocE,13952
140
140
  wandb/plot/__init__.py,sha256=jXbVV7QdFRwcSbaWEr_J6XHd3YksHaPrn4wHBQcEO0Y,480
141
141
  wandb/plot/bar.py,sha256=Phb93zGocUhkQNpbAwUUWXBbfJNCAEgIcrTI2jvIGbc,1168
142
142
  wandb/plot/confusion_matrix.py,sha256=OXwBpd_4WQzUrWlDqHL3aQOsqsE7Eex_10-MG9egvGM,3414
@@ -183,7 +183,7 @@ wandb/sdk/wandb_manager.py,sha256=Xy4BvabbOmE9KZwhDpDX7bDL0GUBX72MSCxlnSWY8JI,66
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=bLIc9hBIwV_QTBRoyM3D-whLIKflBdS8YN1pvhs1DOM,160869
186
+ wandb/sdk/wandb_run.py,sha256=bergnWHqdFldBPHDKHIXunDRW1LXZyrwVuj_HU77iec,160798
187
187
  wandb/sdk/wandb_settings.py,sha256=mfA9kHU7f4ilrCwxEzxyy4Wfx8jqKfc9jGR6mD4a2fw,73610
188
188
  wandb/sdk/wandb_setup.py,sha256=yerNWQV9IGrcFVyoGR0_HoYx1-j0cI0aRAqKm1-5LSg,11078
189
189
  wandb/sdk/wandb_summary.py,sha256=yQdOVIPrZaZanhBQ7yuSfPLX0x6dxwkN_KAn4SgjSZU,4536
@@ -191,7 +191,7 @@ wandb/sdk/wandb_sweep.py,sha256=wPhKVjdUVNXCtIB5Bpz0c7JKHv9vLigY6TESNLa7SE4,3746
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=rzoJp-YGy5r53aieLY95kjV-CCq8sQWWAzT34qTfHRU,88458
194
+ wandb/sdk/artifacts/artifact.py,sha256=1qdtz4_IGh5mZ8Y7lKAdUuxYh0oW2EvGt0qimQ3FaDI,88812
195
195
  wandb/sdk/artifacts/artifact_download_logger.py,sha256=XEVxmktMInrd1p2z86CKt3QyTA9vscxJL5-8_eupknI,1501
196
196
  wandb/sdk/artifacts/artifact_file_cache.py,sha256=L5rik8yc1KNKa0TGNETYSCJhzgG8KlTUCTcW8j3Y6b4,8751
197
197
  wandb/sdk/artifacts/artifact_instance_cache.py,sha256=8dnqz8ri-3zAygk-ihn9JQsRaeYUwF7Av_pUqUoJxt0,473
@@ -223,13 +223,13 @@ wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py,sha256=DEDIQ3jh_m51
223
223
  wandb/sdk/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
224
  wandb/sdk/backend/backend.py,sha256=aVJFViyPxV4yXViqpixhNWElbXR1NVxijeIX-NAIFAA,8308
225
225
  wandb/sdk/data_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- wandb/sdk/data_types/_dtypes.py,sha256=zLkEAVoFc7U0vb21t2-uxYFAylfpKohbsy_8_aDOmC8,29937
226
+ wandb/sdk/data_types/_dtypes.py,sha256=4oUPnxA7S9OB3RvmHG8qEvGqH_CENetY_5eSLakv7C8,30038
227
227
  wandb/sdk/data_types/_private.py,sha256=zp2NRarTlIq4Hk3R2xp7j_qPGNzBMnaGHrZUN82shaY,299
228
228
  wandb/sdk/data_types/histogram.py,sha256=BiIYj3yY-9oetopHf_cwPp9Z7mKS7bm3ve_ZMX0hwUg,3202
229
- wandb/sdk/data_types/html.py,sha256=KHUmuUknVKs54RZ3IAlZ2_NgUP4MrQvEIAPM45BizyQ,3491
229
+ wandb/sdk/data_types/html.py,sha256=GAcNfVwwMG_LoS4d64DvIY8pluitwsUvwcP6spwxgcA,3509
230
230
  wandb/sdk/data_types/image.py,sha256=60A-1yejnqprAt8GB6F8CJo0J0AZqWG_HjT7AB_lRqQ,25615
231
231
  wandb/sdk/data_types/molecule.py,sha256=wZzxT_OKuM2CAZxc38o6COfrGgz9t8JCKuy0fd21A9w,8598
232
- wandb/sdk/data_types/object_3d.py,sha256=hxqH0tpQ6Kus_c3lBwaSiQ6K7rWI-vD1m2fpBzJl03U,12516
232
+ wandb/sdk/data_types/object_3d.py,sha256=NHtwyn5L36erpQc_p1GP1bA_NetJzB6mtsiQM7OG5NY,12517
233
233
  wandb/sdk/data_types/plotly.py,sha256=m75HRKSCdd9-cu-odpZ5d2Tu8KwmR_LVdW9u0H-68AE,2918
234
234
  wandb/sdk/data_types/saved_model.py,sha256=EG5gAcheTyzCZdBsrKvEZc11i0xtlhQzwQ3U-ra6nOI,16362
235
235
  wandb/sdk/data_types/trace_tree.py,sha256=KoKIsRuLG7sxTpeor-g1F_CbmY1AXn3KWnitxkVcfCM,14694
@@ -268,14 +268,14 @@ wandb/sdk/internal/file_stream.py,sha256=MNWY5xAPHonGGMTDwQxS4PEZk0ZZRp16I_OOaUo
268
268
  wandb/sdk/internal/flow_control.py,sha256=LO3iDyBbI4WGoDuVLjA_iv62PyiupdYkpSjxPIMGI7E,8584
269
269
  wandb/sdk/internal/handler.py,sha256=Ngq613egsAbKYuVJueLguiSnT39oZeMQQyAvvMI3V0Q,33680
270
270
  wandb/sdk/internal/internal.py,sha256=AUPsOXGwag2UjHg1rQz1zGGWXhywJo85Hoc62ZQ0uCc,12722
271
- wandb/sdk/internal/internal_api.py,sha256=lUvtTrJEYat8LVOkunClqXmFW7txwkdKXN29MZ_j57I,144274
271
+ wandb/sdk/internal/internal_api.py,sha256=Zm_jv5hF11u7UGg5s0m-aRtC9tXr33C1OSeajYrblZk,144817
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=wa_qc_DRmF8HQsJISmVZ_vYPqiv9kRBMHEFZZSQcG6U,65821
278
+ wandb/sdk/internal/sender.py,sha256=w_hONddIpdZHchsfoq4mGE79kvCaxmo3qmSCHKF14-c,65993
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
@@ -291,7 +291,7 @@ wandb/sdk/internal/system/assets/aggregators.py,sha256=EzJp_YjvYORcBH6g58OsqGtmy
291
291
  wandb/sdk/internal/system/assets/asset_registry.py,sha256=NYSoCDya3Wh7ytBJOE-tNySdPpLYnSghM6CzS9-I4nk,478
292
292
  wandb/sdk/internal/system/assets/cpu.py,sha256=6I06hsCmsPt2tjfj0hrFQdlXfUwKKhI3DBg2L6cFbuc,4574
293
293
  wandb/sdk/internal/system/assets/disk.py,sha256=HXZFhCh4guL6u5XkRRD2EWeganbLAeZ3hvQyM4ncrWg,6295
294
- wandb/sdk/internal/system/assets/gpu.py,sha256=fqBxRR6dcnLYX0uDEZ3u2UWk853kdKQQ6mr1yXzXzs0,13631
294
+ wandb/sdk/internal/system/assets/gpu.py,sha256=IniAgV7fcwVuvbbQu-eVmWjBwzVKi2bNFkfwWLpYqXw,13714
295
295
  wandb/sdk/internal/system/assets/gpu_amd.py,sha256=bM5usw4qdKHQGQnqFFi-ObOfS3YZg7oDjzeA7eBiLHY,7171
296
296
  wandb/sdk/internal/system/assets/gpu_apple.py,sha256=1NbkBcnX5fcgUUootdXbC5ntiXZp1YJ07LNXMTm4BlI,5279
297
297
  wandb/sdk/internal/system/assets/interfaces.py,sha256=Re0sm_UQdi5Z4szfNowtk81szzzobv7jSmbth-tfCag,6548
@@ -304,7 +304,7 @@ wandb/sdk/internal/system/assets/trainium.py,sha256=HTYZnibmJbMrMQFikvjZcSB6OmEn
304
304
  wandb/sdk/launch/__init__.py,sha256=2B1J5HbUCeGq7gowbBgYy8-gYiD7kvxNFxbSphVjqhI,349
305
305
  wandb/sdk/launch/_launch.py,sha256=rRhidG0loOoAr_U9MX9aRcBUuD95EzGBhFFqy6xSCiQ,11724
306
306
  wandb/sdk/launch/_launch_add.py,sha256=g3lPxAhX209BqvNj25N13WOOrTOuUB8om9waEDF_0JU,8796
307
- wandb/sdk/launch/_project_spec.py,sha256=rHSS2ZrRoKE6A2LxWG4pBG1dydMIV7GOT1-dSZse92k,20885
307
+ wandb/sdk/launch/_project_spec.py,sha256=UK4p_-n6JGvVb1VQOucThgbTRs4cm3gqjl8XrECPir4,20887
308
308
  wandb/sdk/launch/create_job.py,sha256=vwIexSB1h9YrB2sSgMr_UlBZGlFJU0XPXfQs5iuzNDM,17298
309
309
  wandb/sdk/launch/errors.py,sha256=CC1M5x7FnyyO3VVcWtqH6LgJReTS-g0nqqC-yKiEr_w,305
310
310
  wandb/sdk/launch/git_reference.py,sha256=6pTVlD7-BICWoraN8PsAzCKu64GV7g_GzqMSD9w3Sos,3758
@@ -811,8 +811,8 @@ wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py,sha256=cJIaJ2EQso
811
811
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py,sha256=UORYTNVcUSE2NpFcq9UVLIS-tsS0TS_Qw8akhKxn2eY,1506
812
812
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py,sha256=UWX8DB97ygkEeSxWQUYCHR4MahNilux7vl5TCTQtPPk,2190
813
813
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py,sha256=ZOevOTbSo8NRiIxkuBVGaG4yigWnPoO0goxAi-jsBkM,3828
814
- wandb-0.17.1.dist-info/METADATA,sha256=HCIHiCJeB5-szVfTUeHSJgBx5RY3-iktjRECWHX-iyk,10047
815
- wandb-0.17.1.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
816
- wandb-0.17.1.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
817
- wandb-0.17.1.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
818
- wandb-0.17.1.dist-info/RECORD,,
814
+ wandb-0.17.2.dist-info/METADATA,sha256=JhhTi8qO6vb6y0E45qRuQWrd9rb44DWKGAr2E2Z0kFU,10047
815
+ wandb-0.17.2.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
816
+ wandb-0.17.2.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
817
+ wandb-0.17.2.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
818
+ wandb-0.17.2.dist-info/RECORD,,
File without changes