wandb 0.19.4rc1__py3-none-any.whl → 0.19.6rc4__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.
Files changed (46) hide show
  1. wandb/__init__.py +1 -1
  2. wandb/__init__.pyi +1 -8
  3. wandb/_iterutils.py +46 -0
  4. wandb/apis/internal.py +4 -0
  5. wandb/apis/normalize.py +13 -5
  6. wandb/bin/gpu_stats +0 -0
  7. wandb/cli/cli.py +9 -2
  8. wandb/proto/v3/wandb_internal_pb2.py +36 -36
  9. wandb/proto/v3/wandb_settings_pb2.py +2 -2
  10. wandb/proto/v4/wandb_internal_pb2.py +36 -36
  11. wandb/proto/v4/wandb_settings_pb2.py +2 -2
  12. wandb/proto/v5/wandb_internal_pb2.py +36 -36
  13. wandb/proto/v5/wandb_settings_pb2.py +2 -2
  14. wandb/sdk/artifacts/artifact.py +120 -8
  15. wandb/sdk/artifacts/storage_handlers/local_file_handler.py +12 -5
  16. wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py +1 -1
  17. wandb/sdk/backend/backend.py +7 -11
  18. wandb/sdk/data_types/base_types/wb_value.py +10 -10
  19. wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +2 -2
  20. wandb/sdk/data_types/helper_types/image_mask.py +2 -2
  21. wandb/sdk/data_types/image.py +0 -3
  22. wandb/sdk/data_types/saved_model.py +1 -1
  23. wandb/sdk/data_types/utils.py +2 -6
  24. wandb/sdk/interface/interface.py +26 -12
  25. wandb/sdk/interface/interface_sock.py +7 -11
  26. wandb/sdk/internal/internal_api.py +9 -1
  27. wandb/sdk/internal/sender.py +2 -2
  28. wandb/sdk/internal/system/assets/cpu.py +1 -1
  29. wandb/sdk/lib/apikey.py +7 -19
  30. wandb/sdk/lib/mailbox.py +0 -14
  31. wandb/sdk/lib/retry.py +6 -3
  32. wandb/sdk/lib/run_moment.py +19 -7
  33. wandb/sdk/lib/server.py +20 -0
  34. wandb/sdk/lib/service_connection.py +2 -2
  35. wandb/sdk/wandb_init.py +71 -46
  36. wandb/sdk/wandb_login.py +86 -110
  37. wandb/sdk/wandb_metadata.py +60 -31
  38. wandb/sdk/wandb_run.py +32 -45
  39. wandb/sdk/wandb_settings.py +465 -143
  40. wandb/sdk/wandb_setup.py +10 -22
  41. wandb/util.py +44 -12
  42. {wandb-0.19.4rc1.dist-info → wandb-0.19.6rc4.dist-info}/METADATA +1 -1
  43. {wandb-0.19.4rc1.dist-info → wandb-0.19.6rc4.dist-info}/RECORD +46 -45
  44. {wandb-0.19.4rc1.dist-info → wandb-0.19.6rc4.dist-info}/WHEEL +0 -0
  45. {wandb-0.19.4rc1.dist-info → wandb-0.19.6rc4.dist-info}/entry_points.txt +0 -0
  46. {wandb-0.19.4rc1.dist-info → wandb-0.19.6rc4.dist-info}/licenses/LICENSE +0 -0
wandb/sdk/wandb_setup.py CHANGED
@@ -177,42 +177,30 @@ class _WandbSetup:
177
177
  def _get_entity(self) -> str | None:
178
178
  if self._settings and self._settings._offline:
179
179
  return None
180
- if self._server is None:
181
- self._load_viewer()
182
- assert self._server is not None
183
- entity = self._server._viewer.get("entity")
180
+ entity = self.viewer.get("entity")
184
181
  return entity
185
182
 
186
183
  def _get_username(self) -> str | None:
187
184
  if self._settings and self._settings._offline:
188
185
  return None
189
- if self._server is None:
190
- self._load_viewer()
191
- assert self._server is not None
192
- return self._server._viewer.get("username")
186
+ return self.viewer.get("username")
193
187
 
194
188
  def _get_teams(self) -> list[str]:
195
189
  if self._settings and self._settings._offline:
196
190
  return []
197
- if self._server is None:
198
- self._load_viewer()
199
- assert self._server is not None
200
- teams = self._server._viewer.get("teams")
191
+ teams = self.viewer.get("teams")
201
192
  if teams:
202
193
  teams = [team["node"]["name"] for team in teams["edges"]]
203
194
  return teams or []
204
195
 
205
- def _load_viewer(self) -> None:
206
- if self._settings and self._settings._offline:
207
- return
208
- s = server.Server(settings=self._settings)
209
- s.query_with_timeout()
210
- self._server = s
211
-
212
- def _load_user_settings(self) -> dict[str, Any] | None:
196
+ @property
197
+ def viewer(self) -> dict[str, Any]:
213
198
  if self._server is None:
214
- self._load_viewer()
199
+ self._server = server.Server(settings=self._settings)
215
200
 
201
+ return self._server.viewer
202
+
203
+ def _load_user_settings(self) -> dict[str, Any] | None:
216
204
  # offline?
217
205
  if self._server is None:
218
206
  return None
@@ -222,7 +210,7 @@ class _WandbSetup:
222
210
  if "code_saving_enabled" in flags:
223
211
  user_settings["save_code"] = flags["code_saving_enabled"]
224
212
 
225
- email = self._server._viewer.get("email", None)
213
+ email = self.viewer.get("email", None)
226
214
  if email:
227
215
  user_settings["email"] = email
228
216
 
wandb/util.py CHANGED
@@ -854,20 +854,52 @@ def no_retry_4xx(e: Exception) -> bool:
854
854
 
855
855
 
856
856
  def parse_backend_error_messages(response: requests.Response) -> List[str]:
857
- errors: List[str] = []
857
+ """Returns error messages stored in a backend response.
858
+
859
+ If the response is not in an expected format, an empty list is returned.
860
+
861
+ Args:
862
+ response: A response to an HTTP request to the W&B server.
863
+ """
858
864
  try:
859
865
  data = response.json()
860
- except ValueError:
861
- return errors
866
+ except requests.JSONDecodeError:
867
+ return []
868
+
869
+ if not isinstance(data, dict):
870
+ return []
862
871
 
863
- if "errors" in data and isinstance(data["errors"], list):
864
- for error in data["errors"]:
865
- # Our tests and potentially some api endpoints return a string error?
866
- if isinstance(error, str):
867
- error = {"message": error}
868
- if "message" in error:
869
- errors.append(error["message"])
870
- return errors
872
+ # Backend error values are returned in one of two ways:
873
+ # - A string containing the error message
874
+ # - A JSON object with a "message" field that is a string
875
+ def get_message(err: Any) -> Optional[str]:
876
+ if isinstance(error, str):
877
+ return error
878
+ elif (
879
+ isinstance(error, dict)
880
+ and (message := error.get("message"))
881
+ and isinstance(message, str)
882
+ ):
883
+ return message
884
+ else:
885
+ return None
886
+
887
+ # The response can contain an "error" field with a single error
888
+ # or an "errors" field with a list of errors.
889
+ if error := data.get("error"):
890
+ message = get_message(error)
891
+ return [message] if message else []
892
+
893
+ elif (errors := data.get("errors")) and isinstance(errors, list):
894
+ messages: List[str] = []
895
+ for error in errors:
896
+ message = get_message(error)
897
+ if message:
898
+ messages.append(message)
899
+ return messages
900
+
901
+ else:
902
+ return []
871
903
 
872
904
 
873
905
  def no_retry_auth(e: Any) -> bool:
@@ -1266,7 +1298,7 @@ def prompt_choices(
1266
1298
  ) -> str:
1267
1299
  """Allow a user to choose from a list of options."""
1268
1300
  for i, choice in enumerate(choices):
1269
- wandb.termlog(f"({i+1}) {choice}")
1301
+ wandb.termlog(f"({i + 1}) {choice}")
1270
1302
 
1271
1303
  idx = -1
1272
1304
  while idx < 0 or idx > len(choices) - 1:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandb
3
- Version: 0.19.4rc1
3
+ Version: 0.19.6rc4
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,15 +1,16 @@
1
1
  package_readme.md,sha256=U9047nyMDICgctm1HLm4HfXwFnFKsEn2m77hsYPUZ1I,4298
2
- wandb/__init__.py,sha256=amlCK5n_1hyN1-MkgQ3CWpMhvrRq-X8B9Q4iZemjWzY,6991
3
- wandb/__init__.pyi,sha256=nZ_mrCwelWNIQBbhGrJ1cKX8z_IfihKjoMc3ByY0loM,47027
2
+ wandb/__init__.py,sha256=z9qa4RemyCngKb-KmUVUAG8XeG7s0lKgwOaEWkO3BoI,6991
3
+ wandb/__init__.pyi,sha256=Rd4ARb64AK401vM56lDpn7qwfgKR7bsiFo7fRTSAv2A,46671
4
4
  wandb/__main__.py,sha256=gripuDgB7J8wMMeJt4CIBRjn1BMSFr5zvsrt585Pnj4,64
5
5
  wandb/_globals.py,sha256=CccwOAls5bxJArYHg12b08ZeKR8Qu9u57GtYWjBH0o0,702
6
+ wandb/_iterutils.py,sha256=bOhOrOENEDzOMtyQqHysivzHri9axcVlCfXt4Ai1ot8,1545
6
7
  wandb/data_types.py,sha256=tjxcQ8padGuGxST192PyEDX_nhU__izHcAK-kaSyevI,2276
7
8
  wandb/env.py,sha256=ImVRezUi1wpXf2ogJ4IY9YNaELqon3k3S6-vCMNNzwQ,13505
8
9
  wandb/jupyter.py,sha256=ip6ukYdoFzvPiHO-IUNnbMMxRnYl3ebEoC0X143_VEw,17274
9
10
  wandb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
11
  wandb/sklearn.py,sha256=hbPkefhS39A1RRymn0nHZZmKM2TrOd4xjlkthTZe9pY,803
11
12
  wandb/trigger.py,sha256=PaitU3sX6ekGkd2R8iD6d_VtI72ypF7LaPBXh3rXY7Q,615
12
- wandb/util.py,sha256=aYGSh8sOj5P0O6IMmp9lekBuUcwHX6fKdGB85Zt_uW0,62525
13
+ wandb/util.py,sha256=CoQPRhzGtCYp4QYPTyBy4AHTU5oqSL8QlZnUTDuIaGk,63445
13
14
  wandb/wandb_agent.py,sha256=0TKjcJ8jxEqaXMrs_dIflXfWFFOaulfSjzp_fpYiXD0,20985
14
15
  wandb/wandb_controller.py,sha256=SksJdgwn14PpnUoIaBjJ9Ki4Nksl9BpQGGn42hT0xZg,24936
15
16
  wandb/wandb_run.py,sha256=CNh9S6uubFk8FphQjzkbvedyyGCN9aBEsRBKjy8tqqs,155
@@ -19,8 +20,8 @@ wandb/analytics/__init__.py,sha256=WG_Mh20Hr8d3vDmGMcfDXCMEIew3uzDYZAJwFsrbAug,5
19
20
  wandb/analytics/sentry.py,sha256=-Fn7698AuFI68uaqxRGlGXnv-J6fnYxJOrSE_vv-nDQ,8411
20
21
  wandb/apis/__init__.py,sha256=uPZKqlX8Y9YcHoERJshWRGS3ukMOIVWi4sDnkO5_CYY,1338
21
22
  wandb/apis/attrs.py,sha256=MRle0pRB8QGV31MRjVfqE7l8XJOA04FFKCtOOuDt0xE,1445
22
- wandb/apis/internal.py,sha256=fL4sPpXqupAml1s_x_fQXzWallbxgNHIUKrTYwzWXVg,7461
23
- wandb/apis/normalize.py,sha256=LAM71nDl6xD2gXrpLv5e1mJsJDJZ_0y89zH7ygVYt10,2396
23
+ wandb/apis/internal.py,sha256=Whl1x29iH_DdIu47vUVvDSyOavEVaovdmlqXmu4-yOw,7622
24
+ wandb/apis/normalize.py,sha256=mamR8PquPZU7YAVNP1k_Q941l7FRwEoQhJhTH3SgSJQ,2676
24
25
  wandb/apis/paginator.py,sha256=18qGrzVzjamd-8AlrwvhUq11Bk31qCjxWWVcYzijGa8,2118
25
26
  wandb/apis/importers/__init__.py,sha256=ewph-RBUC9FnxL6uWbuuW0Hmdv2cHsxfqnZi0546ds4,38
26
27
  wandb/apis/importers/mlflow.py,sha256=uoxzm3bSOqjQyUkgOBwuzpaBjTdGp4drPaqE9f7Ny5w,8256
@@ -49,10 +50,10 @@ wandb/apis/reports/v1/__init__.py,sha256=L5l1BqMaap-w5wXCzn8pC8RXB7_72MsjTx8HeLu
49
50
  wandb/apis/reports/v2/__init__.py,sha256=jdLiTqf5QIRxnWH8drWV9Y06bZEhI5N6uGGSKAT7tv0,263
50
51
  wandb/apis/workspaces/__init__.py,sha256=buvqtqELpCFWC7sHzEuslJgx24ZWDj-5lo2mdV6aHdg,265
51
52
  wandb/beta/workflows.py,sha256=bk12HDWnxI4uuP0KyUbfclrTSoRVXrJibAuO_QBB5tI,10239
52
- wandb/bin/gpu_stats,sha256=UoDlCDMWg-7wj2egpk1UberOg7-mDcl8CTpERla_hGw,10856328
53
+ wandb/bin/gpu_stats,sha256=IV5UwR6wQruFMvfg8Jj71S7hdGYw4Zcnb4UjBH1gS1w,11043120
53
54
  wandb/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
55
  wandb/cli/beta.py,sha256=Um35Q9CeoQPS80g0wryo2WtSaD7VA0XqF_YCQNDNiSY,5438
55
- wandb/cli/cli.py,sha256=9UKKfjKwI_oRWK13UqQA3Ep1qH3HDCBXmKlOwcK0k_U,92726
56
+ wandb/cli/cli.py,sha256=LOeIp_FQ9PgknW2bquEEI7nnlJEKv2GP2ggloxGNlwA,92777
56
57
  wandb/docker/__init__.py,sha256=zaXUYlTQLBJo8YlxbL3kh0NBHqtXFHNg4-_TNV_WDBs,10594
57
58
  wandb/docker/auth.py,sha256=Tr-BMoiMJjX8TsdUquVBBLyfxEJWR4WQZGyz6vBaJk0,15009
58
59
  wandb/docker/wandb-entrypoint.sh,sha256=P4eTMG7wYsgTfJIws_HT7QFlYBI70ZLnNlDGTZdmYVE,989
@@ -184,41 +185,41 @@ wandb/proto/wandb_settings_pb2.py,sha256=g5NT8BLXrE1Y7zWMM768zRoW98dBLE9TNuwttXn
184
185
  wandb/proto/wandb_telemetry_pb2.py,sha256=ReY9N2qSt46o7m1ou1khvYSYYImrzo5ro90g_9m8QsM,322
185
186
  wandb/proto/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
187
  wandb/proto/v3/wandb_base_pb2.py,sha256=_nsr_HW4Fdz62-KiXGo6Dw0_9bwdXz07auZkkH2QfSI,2355
187
- wandb/proto/v3/wandb_internal_pb2.py,sha256=04llmv8f_dNUGDyDMYSb8nrpWjemYP-WjlWv6j8rg2U,114564
188
+ wandb/proto/v3/wandb_internal_pb2.py,sha256=-zsy_FpMea-pu-e8iGOSyoXt_aOWaJZ-wkb-oLk5u4E,114598
188
189
  wandb/proto/v3/wandb_server_pb2.py,sha256=v_A6xNDUCKToBeUTgr1b6sqo51-PdqBEgLLKu8oloSU,15442
189
- wandb/proto/v3/wandb_settings_pb2.py,sha256=TY-zqOizYCiCYKUiBr9dWTesFzNXm-t7RgDH9yqdURM,21042
190
+ wandb/proto/v3/wandb_settings_pb2.py,sha256=oaZH14fElK1x3Ze2i5A2VzU7YcagWF64MfkYA6Mj3yI,21122
190
191
  wandb/proto/v3/wandb_telemetry_pb2.py,sha256=tQQJ7s3fbFYJc60JLnrkdf8yxCqKK0zJMdJaXxA3phM,13805
191
192
  wandb/proto/v4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
193
  wandb/proto/v4/wandb_base_pb2.py,sha256=El5lnZMRpkc1W4SlZgeKoDPqWiJau0BG8QfigMMt6bM,1422
193
- wandb/proto/v4/wandb_internal_pb2.py,sha256=ajx8u7q0FGcQn2GVQ_KoVn_puo3Gc84zDvHldCV6rLo,52477
194
+ wandb/proto/v4/wandb_internal_pb2.py,sha256=aFpVLemWazsb3XeV7z4qi9vOBc98FkoazbA6Lx6my7o,52511
194
195
  wandb/proto/v4/wandb_server_pb2.py,sha256=MjXs9_8Gy8PKlIZuNZILp0fh2GDXctwKDL5BZhXydsA,6905
195
- wandb/proto/v4/wandb_settings_pb2.py,sha256=viqW95K4Pd2yngqpNbZGQMPVEyxRIhsmkYRU2k9lgn8,17417
196
+ wandb/proto/v4/wandb_settings_pb2.py,sha256=O0U7x3aM6ih8Riiyv8CTIS4fUsMi3wSe8UkpL373myQ,17497
196
197
  wandb/proto/v4/wandb_telemetry_pb2.py,sha256=sd9xk2SdYw3SBOYw77GT5pFa0YHl9v-P17-854RMMxg,11252
197
198
  wandb/proto/v5/wandb_base_pb2.py,sha256=u7VVWdExJ4WDkYNMV-xvWvyQ-NTIbAqToTKtgEqt_Lg,1572
198
- wandb/proto/v5/wandb_internal_pb2.py,sha256=g5g6uVgFI7A3e1g2ucbTlUvzPeqLD0UIQOMzpZNtV18,56776
199
+ wandb/proto/v5/wandb_internal_pb2.py,sha256=JNGSa8ynettM2C6xFzo_q2A5Ej2olXtfryzKZcWuUKs,56810
199
200
  wandb/proto/v5/wandb_server_pb2.py,sha256=piGeVPCrHNCMMc9yIYKQtFRNSvfvB2fQKs8ANwApJu8,7463
200
- wandb/proto/v5/wandb_settings_pb2.py,sha256=uOkoefVta5Gk81jrzLbtwME3hnSBEbnnGKk0uszlcao,17773
201
+ wandb/proto/v5/wandb_settings_pb2.py,sha256=KKbLjQkNwX-9QHxgQHgSts8lwg3w7Eo999ytTsiYjc4,17853
201
202
  wandb/proto/v5/wandb_telemetry_pb2.py,sha256=tYmNIX5Mtw2AybnuX8n9KbwdxT2w4GKPvvokFfKfP8M,11522
202
203
  wandb/sdk/__init__.py,sha256=N-GTAC0AzbZF2J8RzB33DTmYk9u-jubllCwvhWrPgsE,813
203
204
  wandb/sdk/wandb_alerts.py,sha256=SwBPBiXRxknMTMGbsVoMMWqWK65UWMcKAdTWZtdwAeo,193
204
205
  wandb/sdk/wandb_config.py,sha256=b7kxQVnIh5HCBZXb2pOGZ4c02xCVlW4IQiAu3N-8Opg,10856
205
206
  wandb/sdk/wandb_helper.py,sha256=IbJ7opO8UkfwCDekSjRYIrGBblUxnTPBfp1EdesfF4U,1824
206
- wandb/sdk/wandb_init.py,sha256=XqlUH5OpIdyatgTKHMIsDM3xUSwVbgl_zFzezB8xOg8,58443
207
- wandb/sdk/wandb_login.py,sha256=DP7nDUGx2UmqGRBrvTmcpvzRBVeRD0qEENtmu4sjDAQ,10966
208
- wandb/sdk/wandb_metadata.py,sha256=nT6TUF4Yh-ka3VQGyKd3y9MTEHJUgRVT4ICyfJkbHFo,20111
207
+ wandb/sdk/wandb_init.py,sha256=ZlbLSBpfgqNtpv7hsAc3LScs-pw6k9QQEPRiBF7515A,59687
208
+ wandb/sdk/wandb_login.py,sha256=qYDpk2e8DVFecZfEV-KaRVqSLeuVGHnHBp5413nqT_M,10863
209
+ wandb/sdk/wandb_metadata.py,sha256=wNvnpkY8WUWctVffZGbu1SZUkKP1plAJr65nNKNjk4s,20331
209
210
  wandb/sdk/wandb_metric.py,sha256=a3GiQXr6H18m81uobYjlJaC8CL8iANzI42qxkxfZsDs,3268
210
211
  wandb/sdk/wandb_require.py,sha256=Y0ib8h27__t7hXos1F2srfsQzVfzH4BB6wq8E1aRbRA,2950
211
212
  wandb/sdk/wandb_require_helpers.py,sha256=ZmKv5aXXHDTTU6nYHMLKW4_pt9X-PlaMtbRJl77kHX8,1331
212
- wandb/sdk/wandb_run.py,sha256=Jk-KLMtrjX698iUCT2gjivutfR01ud9DjnuSiuVYop8,155193
213
- wandb/sdk/wandb_settings.py,sha256=gXZydMDYH8OLcAoK78mA4naRqBA2aKlsIGKn3i4OC0s,47290
214
- wandb/sdk/wandb_setup.py,sha256=7j3UBiqm8x7f4JsFPX5jR19wNRSRvf77TIyncd0HpJg,13014
213
+ wandb/sdk/wandb_run.py,sha256=m3zHyYUDcDBr5wGGei74GCPV85ZvFKPtiNRhfgsDMTo,154325
214
+ wandb/sdk/wandb_settings.py,sha256=MdniU_qPcjeAVBATwUcxYKQUnpGlQwsJLf6H8vzTpPQ,55514
215
+ wandb/sdk/wandb_setup.py,sha256=IadkZxlkOiMRTS24NstInMHmoSb7q0KeIn1WtjPNajM,12569
215
216
  wandb/sdk/wandb_summary.py,sha256=yQdOVIPrZaZanhBQ7yuSfPLX0x6dxwkN_KAn4SgjSZU,4536
216
217
  wandb/sdk/wandb_sweep.py,sha256=Sg_JqxVzmjUBvii41azpdr-c6RPwHOBnSha8k7jrRhk,4028
217
218
  wandb/sdk/wandb_sync.py,sha256=GmIjtydDNiUT3FHkrFcIZzSlqiRerXA8kY3q72ZbL1k,2275
218
219
  wandb/sdk/wandb_watch.py,sha256=F7S9CLbw9PddUp1qBjPRKsOiVFU8LPaq6A9taV3TJKI,4840
219
220
  wandb/sdk/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
221
  wandb/sdk/artifacts/_validators.py,sha256=QlN8yn7muPn1NZMSslHVYM-mcGEEd_4XLfRdv3Wf91Y,4171
221
- wandb/sdk/artifacts/artifact.py,sha256=qVbQQbOm_MkHhrsOib9ScMq870kp1nNoGYOzIzsUp6w,87958
222
+ wandb/sdk/artifacts/artifact.py,sha256=afIes8o0NyaCZsB1ROc-AsKVrQHdH98PCPa0DVju3EY,91248
222
223
  wandb/sdk/artifacts/artifact_download_logger.py,sha256=XEVxmktMInrd1p2z86CKt3QyTA9vscxJL5-8_eupknI,1501
223
224
  wandb/sdk/artifacts/artifact_file_cache.py,sha256=503z2x4CoTLXk_IfC9jRKBU9fr-X9PMiyG66h0INzQg,9744
224
225
  wandb/sdk/artifacts/artifact_instance_cache.py,sha256=atSUDvKjkp6by6QY0w2FLMrFUg9UKc8TIrMVWGauV64,501
@@ -238,17 +239,17 @@ wandb/sdk/artifacts/storage_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
238
239
  wandb/sdk/artifacts/storage_handlers/azure_handler.py,sha256=OGfwIi2gfMRzs6EU4mtf9KBhz279yN0AuXApauZigys,8253
239
240
  wandb/sdk/artifacts/storage_handlers/gcs_handler.py,sha256=hGslEr9QYi0Jp5_C5fxv7CaRu219tdmldyayncze0vc,8514
240
241
  wandb/sdk/artifacts/storage_handlers/http_handler.py,sha256=BI-NlGm0WRwGz8B-ZW9YtDEwlClvNwCE4_LRwSlXlpw,4070
241
- wandb/sdk/artifacts/storage_handlers/local_file_handler.py,sha256=mRohKfaa4RAMST5_9jVR_mT0hkZpDAnIHgtJeImtYa8,5272
242
+ wandb/sdk/artifacts/storage_handlers/local_file_handler.py,sha256=XvFrNxadghPdI1fHw5X56OPYJfYolfDxLU28puQuIJY,5554
242
243
  wandb/sdk/artifacts/storage_handlers/multi_handler.py,sha256=4SSGuBisSNjqfvMQXguNL1keyx0lpDL9P0Dx7eZhTxo,1853
243
244
  wandb/sdk/artifacts/storage_handlers/s3_handler.py,sha256=XysTYz7_4zqGuvY1mdfaw--SqyIOe-WvjTowJFFHBvY,11586
244
245
  wandb/sdk/artifacts/storage_handlers/tracking_handler.py,sha256=lFWh0NIySHq6JWNJ-WOX367lUEY7KN7zFsB-zte7FpQ,2571
245
246
  wandb/sdk/artifacts/storage_handlers/wb_artifact_handler.py,sha256=MVLbOi-py7Fbw0BxTs_23At3AyB-FFTHheD7nZnyu7s,4839
246
- wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py,sha256=CfVOgg4QSiauUu7gi-CD4tLCgZZmJITWTdlODEzIDo0,2553
247
+ wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py,sha256=JgQVx0G5wocuycEJXxXKlXAl6B7fRVlrvlBEX8_BzP0,2552
247
248
  wandb/sdk/artifacts/storage_policies/__init__.py,sha256=bgpWKElL-3iHcLO8pF-L8oezG-dQbp_6vcCYo7CEFAU,226
248
249
  wandb/sdk/artifacts/storage_policies/register.py,sha256=xT7kUxubtLqyE-9S6U9E4mCo1PtXl0ZEJ6gVQiS-kGQ,49
249
250
  wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py,sha256=m2s67vmRySPw0bkI69HoIUTO2hyYAo-Nl22jv32Rl90,14002
250
251
  wandb/sdk/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
251
- wandb/sdk/backend/backend.py,sha256=bod3MjcpErC-r66yuhVz2m398NntdpRblgeOYA5wbCQ,7613
252
+ wandb/sdk/backend/backend.py,sha256=c0vdeiQr6D3Ua8hvKKlYoELfDTRxPrHIX4E3qRZsX00,7492
252
253
  wandb/sdk/data_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
254
  wandb/sdk/data_types/_dtypes.py,sha256=NdRfTto95YxLMMK89PONQvAz_Jaey8D7caTsZ_OlvW8,30092
254
255
  wandb/sdk/data_types/_private.py,sha256=zp2NRarTlIq4Hk3R2xp7j_qPGNzBMnaGHrZUN82shaY,299
@@ -257,33 +258,33 @@ wandb/sdk/data_types/bokeh.py,sha256=0Aq4CJECPpoAkl7vw5LCGYhdCb9pS8i46jHB9PxTj1k
257
258
  wandb/sdk/data_types/graph.py,sha256=_P_z2dNj2mCJeSvusIfVHkSkVB9AL0AEO-6KaguC1ys,12089
258
259
  wandb/sdk/data_types/histogram.py,sha256=syx3fUDoP6vYqA3r5m7bHXK6MAWo2MkRhpCKasihwvg,3145
259
260
  wandb/sdk/data_types/html.py,sha256=CBgxEybPGDY6vpQ1fHoKtQfGNGuqSkFQtUZF-qG9p6c,3504
260
- wandb/sdk/data_types/image.py,sha256=dK-EUA1owm1OTspPLX8j3b-Je6KqV4SPSYZ0Pjhfzls,31370
261
+ wandb/sdk/data_types/image.py,sha256=o_ZwqB4uO1-R8QLuO9J6aiUuyANMz2qPQJAskushozQ,31239
261
262
  wandb/sdk/data_types/molecule.py,sha256=lTScaG-_B-eGh20bRfLNA2fECDYQOuD0zdnGvQjEI8o,8583
262
263
  wandb/sdk/data_types/object_3d.py,sha256=xQw-9mq_cXMxXoW817BiByh7C5wvMuC6jliJEzKEAPg,15948
263
264
  wandb/sdk/data_types/plotly.py,sha256=LEIHRqtHHpSou04AEUsyH8_UMXP4adrEHHaKoEtQkxo,2913
264
- wandb/sdk/data_types/saved_model.py,sha256=_N2AriHLqRC_ZhbjPL_1sYvJIU2Rb8Zrh1lPhcN0Ip0,16378
265
+ wandb/sdk/data_types/saved_model.py,sha256=aKM7CGO5c8VE_7klwyYeC9tnl3XKIunVT03vyrXGFaQ,16398
265
266
  wandb/sdk/data_types/table.py,sha256=DjppFy0-ii1iMoVOg-h_F1YEUbgk5wGPJDXlQURXLQw,44683
266
267
  wandb/sdk/data_types/trace_tree.py,sha256=HHJE6QHmlfvWE090OMW6CxMebMT03rF_qnTSGmX0-EE,14700
267
- wandb/sdk/data_types/utils.py,sha256=n-cEEFVBew0YK83RjQNO8Anw71aN4oSUTYPMwkVkwEY,7893
268
+ wandb/sdk/data_types/utils.py,sha256=Qdj-gUOrrc9wVjBD7Mtmt2o6bHadr1IgzAWF4ijdrz4,7633
268
269
  wandb/sdk/data_types/video.py,sha256=q0vvyZHzHnxjYmX6VFVuTGT72m52YdYGnW-jAwqJSJg,9715
269
270
  wandb/sdk/data_types/base_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
271
  wandb/sdk/data_types/base_types/json_metadata.py,sha256=oKpimndUQvDW30n15tb2pbyyyKhhWwm8wsYNBEot060,1553
271
272
  wandb/sdk/data_types/base_types/media.py,sha256=QO6aQdNGYtwr6qZYUQ9-WbTpkB3adCBTXWSqO3ZCJjI,14284
272
- wandb/sdk/data_types/base_types/wb_value.py,sha256=Er5Z_DbBpomEWlOkJXFpvh1cP3H-LVY-MvWLXJm74LA,11394
273
+ wandb/sdk/data_types/base_types/wb_value.py,sha256=HtV2VblGg_nnSBQ1rRSjlRuY-NyDTbeDVCJzlQ49SUc,11460
273
274
  wandb/sdk/data_types/helper_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
- wandb/sdk/data_types/helper_types/bounding_boxes_2d.py,sha256=o_QeU_sEsO2NUGyWhUIPUX5pWHRo_JtfH5a-s-68v4o,13100
275
+ wandb/sdk/data_types/helper_types/bounding_boxes_2d.py,sha256=hzVq4wTxx3-rJk4zaPKHR6-v0cTwj46JC9yUMTwuhUU,13010
275
276
  wandb/sdk/data_types/helper_types/classes.py,sha256=cg-AwUgULbb3T_-ptOdliXGvYjXZYRj8rvSmT7fl9ds,5520
276
- wandb/sdk/data_types/helper_types/image_mask.py,sha256=Eupi41lU_Hyc8vO9_5AdV9eRb4j3cRJ4fPGunm6QfBg,8689
277
+ wandb/sdk/data_types/helper_types/image_mask.py,sha256=JwgXaYTFkw4gEGe35ptIScnv4KA5ViqrUlVD8SZwmRQ,8601
277
278
  wandb/sdk/integration_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
278
279
  wandb/sdk/integration_utils/auto_logging.py,sha256=sblNn9BIG7memxTj23UfrGXyA06t39FEt5igMwS0-zU,8233
279
280
  wandb/sdk/integration_utils/data_logging.py,sha256=DDFtDaUu50aeTTgxCHHYd2f85guqqf2xfEOburRlwwQ,19533
280
281
  wandb/sdk/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
282
  wandb/sdk/interface/constants.py,sha256=NJNBFr7LkshLI837D3LU3JuEURLzBwza9H-kxcy4ihw,60
282
- wandb/sdk/interface/interface.py,sha256=coqmzkIQr8s_hzryIhID__5JHw-waMkE65ICv1KcFMQ,36439
283
+ wandb/sdk/interface/interface.py,sha256=xPY5MHwMf1go_pDnDYs1bkQdpSbIF43mm5N-85U1m-Y,36576
283
284
  wandb/sdk/interface/interface_queue.py,sha256=7lbQz6VYamqYlNpkC-Ckrn5az_Yc9CrbnmwKNFtta44,1700
284
285
  wandb/sdk/interface/interface_relay.py,sha256=vQUrk5KESKInZsXpOxWF4YcWRZFLJjNz1mdNywbWbbE,1514
285
286
  wandb/sdk/interface/interface_shared.py,sha256=F6kkd8Aaq_nZALIprMgul0xDkSB8uG0HXJ0-94uEZNw,21276
286
- wandb/sdk/interface/interface_sock.py,sha256=ZQuEQS-dHgugEGw9zveEwRm8bolfjZ-MGjk6ENk18fs,2002
287
+ wandb/sdk/interface/interface_sock.py,sha256=dCTpyTQHsWhs2x5v3hY2NY3PK97ta0Pl4B1i9lil_ag,1802
287
288
  wandb/sdk/interface/message_future.py,sha256=5OMApIUKTXLHP98ph_jCdshuPZB_E0Uf3UGZpOQ8sik,685
288
289
  wandb/sdk/interface/message_future_poll.py,sha256=drjrcBKswYPYJJQLFlj7UDXq7_zg7KNcObFVetsbvhQ,1410
289
290
  wandb/sdk/interface/router.py,sha256=uTgmF0TaQnYq8Frgs7pncUBucA6B7XXCmKcRoYEZV10,3419
@@ -299,14 +300,14 @@ wandb/sdk/internal/file_stream.py,sha256=Dnqayrbqa6L2sG03rX2oIFhWT-IME5vl5JTykyL
299
300
  wandb/sdk/internal/flow_control.py,sha256=3LJ-KatyPPH18G7TfSMLDk-BE5tankB4JRhQqLoUOWM,8585
300
301
  wandb/sdk/internal/handler.py,sha256=k3b5pHh8NQgh8BqegaKLqawt9d_cnxKW64i_Z6cw3pk,34183
301
302
  wandb/sdk/internal/internal.py,sha256=o9_-6C99LMOx_YB5xuZ1I1KgpeHk3jUgll63sEe9gCY,12182
302
- wandb/sdk/internal/internal_api.py,sha256=0-pGwUEHq8cf4Hm5CR1OxcmNYG-F5Gvl1kEI60kSUhQ,159306
303
+ wandb/sdk/internal/internal_api.py,sha256=WrWaeVasXrSyTj9eABz3ULa3vIAIb2lGzZDWK8ng9KQ,159641
303
304
  wandb/sdk/internal/internal_util.py,sha256=dKawQKw4UdZUE6Bmme5baT0FGDC0IUgoD2zM6ey4oBU,2555
304
305
  wandb/sdk/internal/job_builder.py,sha256=_L-DfGFEzDl0JLXPo535KPK3Bk0vqXsTQVF7buXeaiY,22962
305
306
  wandb/sdk/internal/profiler.py,sha256=C8-mPrAhPS6_l-Fj_zCOwmXaEqhjI9Wd0EAPXS9GAEI,2348
306
307
  wandb/sdk/internal/progress.py,sha256=9nNAErIXzJoapctsfqWYhESNPzFkXAu5TVAnaKsIa4k,2339
307
308
  wandb/sdk/internal/run.py,sha256=8OhVy2vfgPC8pNFq0tJ4CkQHETOBfQsFDghw50ccSXc,682
308
309
  wandb/sdk/internal/sample.py,sha256=USAWLhEeP83J13BVOSIy1Rb3kDDKTK9kzR88SlhO7dw,2470
309
- wandb/sdk/internal/sender.py,sha256=TPidmgTSE2gYlC4uh-32eNtI-XRgHEoYVVkC5F-saCQ,65328
310
+ wandb/sdk/internal/sender.py,sha256=1oJX1f1FqxloyCIgy-A3bM8XLThdcPNZGkRn1PhAN1w,65287
310
311
  wandb/sdk/internal/sender_config.py,sha256=qEuXwOskca3sYyDIRsswlXmj9StCCS0WKQ1qrBXbIjw,6767
311
312
  wandb/sdk/internal/settings_static.py,sha256=1Dc2MoVCIskHo7rKafjtrVxY9sQWZMNeee39LYBe9t0,3668
312
313
  wandb/sdk/internal/tb_watcher.py,sha256=3AvQGlZLGkr8POhaSGzbeyIcX0YWkLkblJ0bksAB8U8,18738
@@ -319,7 +320,7 @@ wandb/sdk/internal/system/system_monitor.py,sha256=mUUHUoPUUa9_WrgeLEOT3f_FvIA_6
319
320
  wandb/sdk/internal/system/assets/__init__.py,sha256=X0_hRaWP1eTC-R-2WZI3Or3bKmqNwP7NsNijRq5DBVo,474
320
321
  wandb/sdk/internal/system/assets/aggregators.py,sha256=EzJp_YjvYORcBH6g58OsqGtmy55HqYHYMAvaIsp2Iwg,1093
321
322
  wandb/sdk/internal/system/assets/asset_registry.py,sha256=NYSoCDya3Wh7ytBJOE-tNySdPpLYnSghM6CzS9-I4nk,478
322
- wandb/sdk/internal/system/assets/cpu.py,sha256=DvAVWrlSb_amBjTfG-hpSKzlE1aIW3qu3JloBM_ycTs,4576
323
+ wandb/sdk/internal/system/assets/cpu.py,sha256=rwXZZ6bchKEijE1GCE4j6mrxLDM4-H4ZLexcgNO_55k,4578
323
324
  wandb/sdk/internal/system/assets/disk.py,sha256=ASvzdmb3gSMMKyp57xCauu0AzIlLOuExSMDveI7G9jM,6262
324
325
  wandb/sdk/internal/system/assets/gpu.py,sha256=DnnfH9fvvfiRXzMAXjCgHZZZt_Kkn2br74T3Y_oyyhw,13722
325
326
  wandb/sdk/internal/system/assets/gpu_amd.py,sha256=MpL2c74p7hls_BRwF6f25C1QdW1wwToi9hthE7o7-rY,7355
@@ -382,7 +383,7 @@ wandb/sdk/launch/sweeps/scheduler.py,sha256=yPHVT5GD1my_2tlMqGsLOBL3Q8pAxCcxLoFf
382
383
  wandb/sdk/launch/sweeps/scheduler_sweep.py,sha256=beM0go0u9xRcXW20ED8MyTqq4ol_O5_4PODbA7FpN88,2987
383
384
  wandb/sdk/launch/sweeps/utils.py,sha256=TbsAvn3eQnp5js0SvMmPVoP5vaT5bXMPL-ISWyZvVlQ,9837
384
385
  wandb/sdk/lib/__init__.py,sha256=53BA5lIOtUXciXZcPpNsFbp-iUPzI5gQFxplTykNmOE,183
385
- wandb/sdk/lib/apikey.py,sha256=MU5b3YrASIlhersBi7769OtBXkVBuuAJGK2gJLxsoNI,9104
386
+ wandb/sdk/lib/apikey.py,sha256=1nCkfu7G-mOdJYTyByDxeuQHFZmYeT-UUm4OL_mgSGU,8715
386
387
  wandb/sdk/lib/capped_dict.py,sha256=T2CNkmzfWeFgXOsFmx5IDPzgYmP1jxaVAb-nn3-qBBE,820
387
388
  wandb/sdk/lib/config_util.py,sha256=YdYvk-KbTdTa-84XegpvbqMuQfdlOREFiVR7m3q6e3Q,2917
388
389
  wandb/sdk/lib/credentials.py,sha256=WmVdzL1rFy7S0WIHf1ZYd98_eaHTxPKUobReRSPQgBM,4737
@@ -402,7 +403,7 @@ wandb/sdk/lib/interrupt.py,sha256=Ea7aSVHcY0wLYnyMfm4jZbQcwGPgRcuPuoBSe0Swuds,13
402
403
  wandb/sdk/lib/ipython.py,sha256=I2iT6vY90Aaws7tmjzW_CrUdQFmfV9-WhAPk8at9LQg,3782
403
404
  wandb/sdk/lib/json_util.py,sha256=fAsYfaw8iMmx3KJ0wSthUSj_XpF1iAysad4XZY1kQdo,2584
404
405
  wandb/sdk/lib/lazyloader.py,sha256=4Seis4C8Ph6a2-3scfYqeHh7KjKG6PO0WJ2ZPW30O0o,1891
405
- wandb/sdk/lib/mailbox.py,sha256=enEj8dFre9zoGhnHTWFBvrKYd4DTzzT6uy7ASYJMvTA,14228
406
+ wandb/sdk/lib/mailbox.py,sha256=iuxunHXc2JzxFyubyS6CqxMXsrSpSFswBfxASF-hmss,13832
406
407
  wandb/sdk/lib/module.py,sha256=PWxpFqOYmLyKPF-VgfINZXzkFxDcoQVunVDVNWNnbxQ,2098
407
408
  wandb/sdk/lib/paths.py,sha256=YiEE5mkYB5ahMuI4C27IsNvejC3z6MI5JPW1iISi864,4529
408
409
  wandb/sdk/lib/preinit.py,sha256=11QkGmBpoGazNaUGvyDIzBJA4QTggj7fGQdugpCvOiw,1450
@@ -410,11 +411,11 @@ wandb/sdk/lib/printer.py,sha256=v3T2wqere8HQIVba9LYd8xCIUtV8e8l21Fw4XUEPbXM,1528
410
411
  wandb/sdk/lib/progress.py,sha256=GN3AhhjUK6D2SGCXSercS6pSepyHqVvE-X7f5W1WnW4,8609
411
412
  wandb/sdk/lib/proto_util.py,sha256=JxDldi8j6dfF_Lx9zOwqYL6LQZhYYGgKt_AfZtYHAW0,2894
412
413
  wandb/sdk/lib/redirect.py,sha256=eTNvQp4SFLgN5Kxwmh1BP0du8_7YZxcgoXsmE_2IHSM,26132
413
- wandb/sdk/lib/retry.py,sha256=FheKJLMyKtc7L-dNqGw6DJ1RK3cZ0-Ow0RZQDjJ2o9g,10092
414
- wandb/sdk/lib/run_moment.py,sha256=-_xWnktxlB21obnogPfGeaeIaf8mCS-MIZSMepBL3ZM,2193
414
+ wandb/sdk/lib/retry.py,sha256=BAgPgJb1SxRguor2KTfOFnQpTlyNE4M_X8VcEc7YfMs,10173
415
+ wandb/sdk/lib/run_moment.py,sha256=HMx8jYIaWwmSPNViP54ZYMbxLKBn2m_ezYCa67UC6H8,2464
415
416
  wandb/sdk/lib/runid.py,sha256=Qa-5ft4B85YUazkV_18OYwf9JhMaAVp0JAInZzxzX5o,392
416
- wandb/sdk/lib/server.py,sha256=mDqOrR9LFbSjYfCk9Bufse8P0wISS6DZOBRbw0SDgsg,1110
417
- wandb/sdk/lib/service_connection.py,sha256=VYceAXNUWelzc14A4KUM4LYwvm2xqH5Q35aRw8Ed-fE,6467
417
+ wandb/sdk/lib/server.py,sha256=dn0RXjAnpmigAULLyq75XHYyHxw17MLCJ9fhPq2v22I,1623
418
+ wandb/sdk/lib/service_connection.py,sha256=z4zMzqMxD86Qs8YVJOb_N_GJmkCOYnoBsBGEY9093S4,6504
418
419
  wandb/sdk/lib/service_token.py,sha256=c4olk_g4Suo0zTTDaoR78oHLwpt3NgDzQeF94raigME,2471
419
420
  wandb/sdk/lib/sock_client.py,sha256=-B2V0rTRM_pnZsqV0GuCjPTvEOAjfvjICTz5nohEIGY,10351
420
421
  wandb/sdk/lib/sparkline.py,sha256=9xQkuZ0z1DM7rHE2jFNDy5vBdPirnurd__A_bC6-Bgc,1363
@@ -816,8 +817,8 @@ wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py,sha256=cJIaJ2EQso
816
817
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py,sha256=UORYTNVcUSE2NpFcq9UVLIS-tsS0TS_Qw8akhKxn2eY,1506
817
818
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py,sha256=UWX8DB97ygkEeSxWQUYCHR4MahNilux7vl5TCTQtPPk,2190
818
819
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py,sha256=ZOevOTbSo8NRiIxkuBVGaG4yigWnPoO0goxAi-jsBkM,3828
819
- wandb-0.19.4rc1.dist-info/METADATA,sha256=uyIurAspZwmJRHUtzVckSZv375aN1Lpvi7IqLuCgMbc,10285
820
- wandb-0.19.4rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
821
- wandb-0.19.4rc1.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
822
- wandb-0.19.4rc1.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
823
- wandb-0.19.4rc1.dist-info/RECORD,,
820
+ wandb-0.19.6rc4.dist-info/METADATA,sha256=_U9a5n39YlZHStLBeSlpLkO1lFhNw5uQ29ub8zjVakY,10285
821
+ wandb-0.19.6rc4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
822
+ wandb-0.19.6rc4.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
823
+ wandb-0.19.6rc4.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
824
+ wandb-0.19.6rc4.dist-info/RECORD,,