wandb 0.21.2__py3-none-win32.whl → 0.21.3__py3-none-win32.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
@@ -10,7 +10,7 @@ For reference documentation, see https://docs.wandb.com/ref/python.
10
10
  """
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.21.2"
13
+ __version__ = "0.21.3"
14
14
 
15
15
 
16
16
  from wandb.errors import Error
wandb/__init__.pyi CHANGED
@@ -107,7 +107,7 @@ if TYPE_CHECKING:
107
107
  import wandb
108
108
  from wandb.plot import CustomChart
109
109
 
110
- __version__: str = "0.21.2"
110
+ __version__: str = "0.21.3"
111
111
 
112
112
  run: Run | None
113
113
  config: wandb_config.Config
wandb/bin/gpu_stats.exe CHANGED
Binary file
wandb/bin/wandb-core CHANGED
Binary file
wandb/cli/cli.py CHANGED
@@ -1985,7 +1985,7 @@ def create(
1985
1985
  base_image=base_image,
1986
1986
  dockerfile=dockerfile,
1987
1987
  services=services,
1988
- schema=schema_dict,
1988
+ schema=schema_dict if schema else None,
1989
1989
  )
1990
1990
  if not artifact:
1991
1991
  wandb.termerror("Job creation failed")
@@ -54,8 +54,9 @@ from wandb.sdk.data_types._dtypes import Type as WBType
54
54
  from wandb.sdk.data_types._dtypes import TypeRegistry
55
55
  from wandb.sdk.internal.internal_api import Api as InternalApi
56
56
  from wandb.sdk.internal.thread_local_settings import _thread_local_api_settings
57
- from wandb.sdk.lib import filesystem, retry, runid, telemetry
57
+ from wandb.sdk.lib import retry, runid, telemetry
58
58
  from wandb.sdk.lib.deprecate import deprecate
59
+ from wandb.sdk.lib.filesystem import check_exists, system_preferred_path
59
60
  from wandb.sdk.lib.hashutil import B64MD5, b64_to_hex_id, md5_file_b64
60
61
  from wandb.sdk.lib.paths import FilePathStr, LogicalPath, StrPath, URIStr
61
62
  from wandb.sdk.lib.runid import generate_id
@@ -1967,7 +1968,7 @@ class Artifact:
1967
1968
  Raises:
1968
1969
  ArtifactNotLoggedError: If the artifact is not logged.
1969
1970
  """
1970
- root = FilePathStr(str(root or self._default_root()))
1971
+ root = FilePathStr(root or self._default_root())
1971
1972
  self._add_download_root(root)
1972
1973
 
1973
1974
  # TODO: download artifacts using core when implemented
@@ -2324,8 +2325,7 @@ class Artifact:
2324
2325
  # In case we're on a system where the artifact dir has a name corresponding to
2325
2326
  # an unexpected filesystem, we'll check for alternate roots. If one exists we'll
2326
2327
  # use that, otherwise we'll fall back to the system-preferred path.
2327
- path = filesystem.check_exists(root) or filesystem.system_preferred_path(root)
2328
- return FilePathStr(str(path))
2328
+ return FilePathStr(check_exists(root) or system_preferred_path(root))
2329
2329
 
2330
2330
  def _add_download_root(self, dir_path: str) -> None:
2331
2331
  self._download_roots.add(os.path.abspath(dir_path))
@@ -87,7 +87,7 @@ class ArtifactFileCache:
87
87
  ) -> tuple[FilePathStr, bool, Opener]:
88
88
  opener = self._opener(path, size, skip_cache=skip_cache)
89
89
  hit = path.is_file() and path.stat().st_size == size
90
- return FilePathStr(str(path)), hit, opener
90
+ return FilePathStr(path), hit, opener
91
91
 
92
92
  def cleanup(
93
93
  self,
@@ -11,8 +11,8 @@ from typing import TYPE_CHECKING
11
11
  from urllib.parse import urlparse
12
12
 
13
13
  from wandb.proto.wandb_deprecated import Deprecated
14
- from wandb.sdk.lib import filesystem
15
14
  from wandb.sdk.lib.deprecate import deprecate
15
+ from wandb.sdk.lib.filesystem import copy_or_overwrite_changed
16
16
  from wandb.sdk.lib.hashutil import (
17
17
  B64MD5,
18
18
  ETag,
@@ -184,13 +184,11 @@ class ArtifactManifestEntry:
184
184
  executor=executor,
185
185
  multipart=multipart,
186
186
  )
187
-
188
- if skip_cache:
189
- return FilePathStr(dest_path)
190
- else:
191
- return FilePathStr(
192
- str(filesystem.copy_or_overwrite_changed(cache_path, dest_path))
193
- )
187
+ return FilePathStr(
188
+ dest_path
189
+ if skip_cache
190
+ else copy_or_overwrite_changed(cache_path, dest_path)
191
+ )
194
192
 
195
193
  def ref_target(self) -> FilePathStr | URIStr:
196
194
  """Get the reference URL that is targeted by this artifact entry.
@@ -198,7 +198,7 @@ class GCSHandler(StorageHandler):
198
198
  posix_ref = posix_path / relpath
199
199
  return ArtifactManifestEntry(
200
200
  path=posix_name,
201
- ref=URIStr(f"{self._scheme}://{str(posix_ref)}"),
201
+ ref=URIStr(f"{self._scheme}://{posix_ref}"),
202
202
  digest=obj.etag,
203
203
  size=obj.size,
204
204
  extra={"versionID": obj.generation},
@@ -171,6 +171,29 @@ def _replace_refs_and_allofs(schema: dict, defs: Optional[dict]) -> dict:
171
171
  return ret
172
172
 
173
173
 
174
+ def _prepare_schema(schema: Any) -> dict:
175
+ """Prepare a schema for validation.
176
+
177
+ This function prepares a schema for validation by:
178
+ 1. Converting a Pydantic model instance or class to a dict
179
+ 2. Replacing $ref with their associated definition in defs
180
+ 3. Removing any "allOf" lists that only have one item, "lifting" the item up
181
+
182
+ We support both an instance of a pydantic BaseModel class (e.g. schema=MySchema(...))
183
+ or the BaseModel class itself (e.g. schema=MySchema)
184
+ """
185
+ if hasattr(schema, "model_json_schema") and callable(
186
+ schema.model_json_schema # type: ignore
187
+ ):
188
+ schema = schema.model_json_schema()
189
+ if not isinstance(schema, dict):
190
+ raise LaunchError(
191
+ "schema must be a dict, Pydantic model instance, or Pydantic model class."
192
+ )
193
+ defs = schema.pop("$defs", None)
194
+ return _replace_refs_and_allofs(schema, defs)
195
+
196
+
174
197
  def _validate_schema(schema: dict) -> None:
175
198
  jsonschema = get_module(
176
199
  "jsonschema",
@@ -210,18 +233,7 @@ def handle_config_file_input(
210
233
  dest,
211
234
  )
212
235
  if schema:
213
- # This supports both an instance of a pydantic BaseModel class (e.g. schema=MySchema(...))
214
- # or the BaseModel class itself (e.g. schema=MySchema)
215
- if hasattr(schema, "model_json_schema") and callable(
216
- schema.model_json_schema # type: ignore
217
- ):
218
- schema = schema.model_json_schema()
219
- if not isinstance(schema, dict):
220
- raise LaunchError(
221
- "schema must be a dict, Pydantic model instance, or Pydantic model class."
222
- )
223
- defs = schema.pop("$defs", None)
224
- schema = _replace_refs_and_allofs(schema, defs)
236
+ schema = _prepare_schema(schema)
225
237
  _validate_schema(schema)
226
238
  arguments = JobInputArguments(
227
239
  include=include,
@@ -251,18 +263,7 @@ def handle_run_config_input(
251
263
  when a run is created.
252
264
  """
253
265
  if schema:
254
- # This supports both an instance of a pydantic BaseModel class (e.g. schema=MySchema(...))
255
- # or the BaseModel class itself (e.g. schema=MySchema)
256
- if hasattr(schema, "model_json_schema") and callable(
257
- schema.model_json_schema # type: ignore
258
- ):
259
- schema = schema.model_json_schema()
260
- if not isinstance(schema, dict):
261
- raise LaunchError(
262
- "schema must be a dict, Pydantic model instance, or Pydantic model class."
263
- )
264
- defs = schema.pop("$defs", None)
265
- schema = _replace_refs_and_allofs(schema, defs)
266
+ schema = _prepare_schema(schema)
266
267
  _validate_schema(schema)
267
268
  arguments = JobInputArguments(
268
269
  include=include,
@@ -3,7 +3,7 @@ META_SCHEMA = {
3
3
  "properties": {
4
4
  "type": {
5
5
  "type": "string",
6
- "enum": ["boolean", "integer", "number", "string", "object"],
6
+ "enum": ["boolean", "integer", "number", "string", "object", "array"],
7
7
  },
8
8
  "title": {"type": "string"},
9
9
  "description": {"type": "string"},
@@ -11,6 +11,11 @@ META_SCHEMA = {
11
11
  "enum": {"type": "array", "items": {"type": ["integer", "number", "string"]}},
12
12
  "properties": {"type": "object", "patternProperties": {".*": {"$ref": "#"}}},
13
13
  "allOf": {"type": "array", "items": {"$ref": "#"}},
14
+ # Array-specific properties
15
+ "items": {"$ref": "#"},
16
+ "uniqueItems": {"type": "boolean"},
17
+ "minItems": {"type": "integer", "minimum": 0},
18
+ "maxItems": {"type": "integer", "minimum": 0},
14
19
  },
15
20
  "allOf": [
16
21
  {
@@ -35,6 +40,31 @@ META_SCHEMA = {
35
40
  }
36
41
  },
37
42
  },
43
+ {
44
+ "if": {"properties": {"type": {"const": "array"}}},
45
+ "then": {
46
+ "required": ["items"],
47
+ "properties": {
48
+ "items": {
49
+ "properties": {
50
+ "type": {"enum": ["integer", "number", "string"]},
51
+ "enum": {
52
+ "type": "array",
53
+ "items": {"type": ["integer", "number", "string"]},
54
+ },
55
+ "title": {"type": "string"},
56
+ "description": {"type": "string"},
57
+ "format": {"type": "string"},
58
+ },
59
+ "required": ["type", "enum"],
60
+ "unevaluatedProperties": False,
61
+ },
62
+ "uniqueItems": {"type": "boolean"},
63
+ "minItems": {"type": "integer", "minimum": 0},
64
+ "maxItems": {"type": "integer", "minimum": 0},
65
+ },
66
+ },
67
+ },
38
68
  ],
39
69
  "unevaluatedProperties": False,
40
70
  }
wandb/sdk/lib/paths.py CHANGED
@@ -1,18 +1,20 @@
1
+ from __future__ import annotations
2
+
1
3
  import os
2
4
  import platform
3
5
  from functools import wraps
4
6
  from pathlib import PurePath, PurePosixPath
5
- from typing import Any, NewType, Union
7
+ from typing import Any, Union
8
+
9
+ from typing_extensions import TypeAlias
6
10
 
7
11
  # Path _inputs_ should generally accept any kind of path. This is named the same and
8
12
  # modeled after the hint defined in the Python standard library's `typeshed`:
9
13
  # https://github.com/python/typeshed/blob/0b1cd5989669544866213807afa833a88f649ee7/stdlib/_typeshed/__init__.pyi#L56-L65
10
- StrPath = Union[str, "os.PathLike[str]"]
11
-
12
- # A native path to a file on a local filesystem.
13
- FilePathStr = NewType("FilePathStr", str)
14
+ StrPath: TypeAlias = Union[str, "os.PathLike[str]"]
14
15
 
15
- URIStr = NewType("URIStr", str)
16
+ FilePathStr: TypeAlias = str #: A native path to a file on a local filesystem.
17
+ URIStr: TypeAlias = str
16
18
 
17
19
 
18
20
  class LogicalPath(str):
@@ -54,7 +56,7 @@ class LogicalPath(str):
54
56
  # will result in different outputs on different platforms; however, it doesn't alter
55
57
  # absolute paths or check for prohibited characters etc.
56
58
 
57
- def __new__(cls, path: StrPath) -> "LogicalPath":
59
+ def __new__(cls, path: StrPath) -> LogicalPath:
58
60
  if isinstance(path, LogicalPath):
59
61
  return super().__new__(cls, path)
60
62
  if hasattr(path, "as_posix"):
@@ -77,30 +79,30 @@ class LogicalPath(str):
77
79
  """Convert this path to a PurePosixPath."""
78
80
  return PurePosixPath(self)
79
81
 
80
- def __getattr__(self, attr: str) -> Any:
82
+ def __getattr__(self, name: str) -> Any:
81
83
  """Act like a subclass of PurePosixPath for all methods not defined on str."""
82
84
  try:
83
- result = getattr(self.to_path(), attr)
84
- except AttributeError as e:
85
- raise AttributeError(f"LogicalPath has no attribute {attr!r}") from e
85
+ attr = getattr(self.to_path(), name)
86
+ except AttributeError:
87
+ classname = type(self).__qualname__
88
+ raise AttributeError(f"{classname!r} has no attribute {name!r}") from None
86
89
 
87
- if isinstance(result, PurePosixPath):
88
- return LogicalPath(result)
90
+ if isinstance(attr, PurePosixPath):
91
+ return LogicalPath(attr)
89
92
 
90
93
  # If the result is a callable (a method), wrap it so that it has the same
91
94
  # behavior: if the call result returns a PurePosixPath, return a LogicalPath.
92
- if callable(result):
95
+ if callable(fn := attr):
93
96
 
94
- @wraps(result)
97
+ @wraps(fn)
95
98
  def wrapper(*args: Any, **kwargs: Any) -> Any:
96
- inner_result = result(*args, **kwargs)
97
- if isinstance(inner_result, PurePosixPath):
98
- return LogicalPath(inner_result)
99
- return inner_result
99
+ if isinstance(res := fn(*args, **kwargs), PurePosixPath):
100
+ return LogicalPath(res)
101
+ return res
100
102
 
101
103
  return wrapper
102
- return result
104
+ return attr
103
105
 
104
- def __truediv__(self, other: StrPath) -> "LogicalPath":
106
+ def __truediv__(self, other: StrPath) -> LogicalPath:
105
107
  """Act like a PurePosixPath for the / operator, but return a LogicalPath."""
106
108
  return LogicalPath(self.to_path() / LogicalPath(other))
wandb/sdk/wandb_run.py CHANGED
@@ -2610,7 +2610,7 @@ class Run:
2610
2610
  ) -> Artifact:
2611
2611
  job_artifact = InternalArtifact(name, job_builder.JOB_ARTIFACT_TYPE)
2612
2612
  if patch_path and os.path.exists(patch_path):
2613
- job_artifact.add_file(FilePathStr(str(patch_path)), "diff.patch")
2613
+ job_artifact.add_file(FilePathStr(patch_path), "diff.patch")
2614
2614
  with job_artifact.new_file("requirements.frozen.txt") as f:
2615
2615
  f.write("\n".join(installed_packages_list))
2616
2616
  with job_artifact.new_file("wandb-job.json") as f:
wandb/sdk/wandb_setup.py CHANGED
@@ -183,8 +183,8 @@ class _WandbSetup:
183
183
  }
184
184
 
185
185
  return (
186
- set(singleton_env.keys()) == set(os_env.keys()) #
187
- and set(singleton_env.values()) == set(os_env.values())
186
+ set(singleton_env.keys()) != set(os_env.keys()) #
187
+ or set(singleton_env.values()) != set(os_env.values())
188
188
  )
189
189
 
190
190
  def _load_settings(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: wandb
3
- Version: 0.21.2
3
+ Version: 0.21.3
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
@@ -47,7 +47,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
47
47
  Classifier: Topic :: System :: Logging
48
48
  Classifier: Topic :: System :: Monitoring
49
49
  Requires-Python: >=3.8
50
- Requires-Dist: click!=8.0.0,>=7.1
50
+ Requires-Dist: click>=8.0.1
51
51
  Requires-Dist: eval-type-backport; python_version < '3.10'
52
52
  Requires-Dist: gitpython!=3.1.29,>=1.0.0
53
53
  Requires-Dist: packaging
@@ -1,6 +1,6 @@
1
1
  package_readme.md,sha256=XGlaq8rMFcoBb21rCr2d5qeSM79ZI4WslLmXqRimTGQ,4395
2
- wandb/__init__.py,sha256=_nTQiJkk-zl4kRquQFftsa_Px2ldqHwq3RoBA1D9Ldc,7019
3
- wandb/__init__.pyi,sha256=5LoC6ETFSwoljpNw7SuNhV7E949iIb5ARJ5z-xJ97tE,47627
2
+ wandb/__init__.py,sha256=O904SuSWLijtkf7g2YHZKIn65dfcW-Drt9rtLOEznrI,7019
3
+ wandb/__init__.pyi,sha256=n1plSKaPnuvx4WjZyIy6tPcXvtDb2_GCYy1PBRb-Lvk,47627
4
4
  wandb/__main__.py,sha256=uHY6OxHT6RtTH34zC8_UC1GsCTkndgbdsHXv-t7dOMI,67
5
5
  wandb/_iterutils.py,sha256=_ZUvfdQ8YeKrT_0HKaAKjkVyLHQdTYRcCh0l-zGxTMM,2465
6
6
  wandb/data_types.py,sha256=DdCkf7Dh_j86Q74FWzh3M20EW_hzKpNagexjo03qv-A,2349
@@ -86,11 +86,11 @@ wandb/automations/_generated/operations.py,sha256=V0n3PZ_e754Ym8IraYjFzLWg0wqnA_
86
86
  wandb/automations/_generated/slack_integrations_by_entity.py,sha256=95llPwkGxKrwX4R6ze9IxzmMuyLpIWoperLUy-hKsE0,558
87
87
  wandb/automations/_generated/update_automation.py,sha256=9SvGNXYK7fEZdhztonzRcMiJ8Yqps-42hKB16CUOFYI,357
88
88
  wandb/beta/workflows.py,sha256=8uFVT9y-9CotD7OLkSQ4mRd_tsrSRsC1q0tAmJ489qI,11825
89
- wandb/bin/gpu_stats.exe,sha256=7bYm2DxBLyrqNJrMkiGINpu-qaIym2Cb6raNzSaDKnU,8110592
90
- wandb/bin/wandb-core,sha256=xe8XmdWcg_Upa46IAvV1zwAuxRHI7YrHhgr9MaQ7RSs,43168768
89
+ wandb/bin/gpu_stats.exe,sha256=35BkgfZX6dGrde2S8GyINVOCXRjw4nEshiV-aU90Jnw,8110592
90
+ wandb/bin/wandb-core,sha256=is64_bjYUsJ1VUekkjJrhRBX5KX6ZLQbA99FooREk4M,43168768
91
91
  wandb/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  wandb/cli/beta.py,sha256=NBgJ67mwdd3k7-PEfiNTvE8dh7Ku4hv4FMZMJ9pN0Is,5362
93
- wandb/cli/cli.py,sha256=lya6C7k2IBaNFhuloH2FMWbBaYeINvYXr-2xoj--Vnw,97908
93
+ wandb/cli/cli.py,sha256=AMmgVyMg8IbjZtBEEas_oG4cyC8oFx93bQKlND0w_7E,97928
94
94
  wandb/docker/__init__.py,sha256=ySgObcuW3AU-CcHIy2-hk2OCEMPHJmoP679eIpWz_kc,8953
95
95
  wandb/docker/names.py,sha256=E0v_-WInxWgg3vK14Tpj0F4zuwaBl8nR7OTQCYbcod4,1351
96
96
  wandb/docker/wandb-entrypoint.sh,sha256=ksJ_wObRwZxZtdu1Ahc1X8VNB1U68a3nleioDDBO-jU,1021
@@ -257,9 +257,9 @@ wandb/sdk/wandb_login.py,sha256=H_T0DThPMk93rVTdet22i7qzRJ1kmzVFpkhlXkpRk1Q,1165
257
257
  wandb/sdk/wandb_metric.py,sha256=JsJP2UZCliJ8OdC_uvvd_XF5k4FIAt3YWlmN1O9jLmc,3458
258
258
  wandb/sdk/wandb_require.py,sha256=bUS9nZXUVjmFcc6EMW6ZSzXtQf1xg0bX98ljVxFdVX0,2801
259
259
  wandb/sdk/wandb_require_helpers.py,sha256=4PUXmVw86_XaKj3rn20s5DAjBMO8L0m26KqnTLaQJNc,1375
260
- wandb/sdk/wandb_run.py,sha256=qW5soKEh9Bf1xyccOETIpFFDrtgXOToaehRG-k3GAac,150836
260
+ wandb/sdk/wandb_run.py,sha256=JsZa9wUFiqeZ_7qHP7koV3SbSVQHwBIDGdTcnD__94k,150831
261
261
  wandb/sdk/wandb_settings.py,sha256=8NSnyAgIpgNhUyCISfvLoUM5Cu2ldNk8_KzBtsHv9go,75033
262
- wandb/sdk/wandb_setup.py,sha256=Z-tmy9pypXF1cwEYpoqqVo-yOsrSbCFYilZPKHKgcSw,19676
262
+ wandb/sdk/wandb_setup.py,sha256=-fFikKNUeq46MRACMqMk_q8hGpx8VqYw1NsBd7CqO9E,19675
263
263
  wandb/sdk/wandb_summary.py,sha256=eEV3hvHhbc1XQus0MUqFmvhXCzd3SPjvVVVg_fVZ1QM,4686
264
264
  wandb/sdk/wandb_sweep.py,sha256=Q7IKd0wXBRxoZLvJVq2knGzAe0W1tVfQjZfFm39D7qs,4102
265
265
  wandb/sdk/wandb_sync.py,sha256=Bk1X5a2RgpdB24trwwW1fLC1sEKET87ySCH84T-kgf4,2177
@@ -269,12 +269,12 @@ wandb/sdk/artifacts/_factories.py,sha256=u4i4U86Q98__9u1MsbvFKS3LHfCeym14yivOA6v
269
269
  wandb/sdk/artifacts/_graphql_fragments.py,sha256=JTPeETiDEXyBxOM_3YYlEGfOI8-AhK8vE3a2dfSB5N8,600
270
270
  wandb/sdk/artifacts/_internal_artifact.py,sha256=ZWu3XwH0zF8Z5LdfuGSmR-kMcVZW6B-_dCvHjZsUIX0,2029
271
271
  wandb/sdk/artifacts/_validators.py,sha256=gTHRgftmFRq9DqqW1vSTKT_lW4Az5ve5zMmUIhk_zyk,11257
272
- wandb/sdk/artifacts/artifact.py,sha256=G3_rModzh6WZEUdegOL-wME_eNcdJvbGe0Gut9og5cM,105943
272
+ wandb/sdk/artifacts/artifact.py,sha256=DieBH-7Zo4u__5B0j_6lJ_qkqB6wikTADfrldBybu34,105952
273
273
  wandb/sdk/artifacts/artifact_download_logger.py,sha256=CPle_AgeO53rr9FwQTuB5FV4bRKWdtoElJUDMQf9I7A,1582
274
- wandb/sdk/artifacts/artifact_file_cache.py,sha256=yVc5Po8oU9M1DKglS01Ts6sd9gXvL7-Gc8IDMLlD5bc,10130
274
+ wandb/sdk/artifacts/artifact_file_cache.py,sha256=-ip9JOlUFMuDXSwkKdsVwz9JlkfcJ8i0RqxgxVgeXik,10125
275
275
  wandb/sdk/artifacts/artifact_instance_cache.py,sha256=Y86c2ph4Fz1p5mfTpWMEPh1VhRzi-OyLGswa-NQDuUw,518
276
276
  wandb/sdk/artifacts/artifact_manifest.py,sha256=V-xjNzEhPoTV0PmO8Vhpbu0Ivg4QbaLWid1GLdaxfJc,2610
277
- wandb/sdk/artifacts/artifact_manifest_entry.py,sha256=nes1jOCl2WmBudNc4SHvM88YQh9tkWPp_76T4Qrd7Og,8980
277
+ wandb/sdk/artifacts/artifact_manifest_entry.py,sha256=xqUDK9jRJY9WBJCyuH4MGf6_iLEtfiQ-KOqz1YzM5C0,8949
278
278
  wandb/sdk/artifacts/artifact_saver.py,sha256=0O4M7nkLdr0M0afStwcqcoRKFmrFK09Uu8ztfP0bTLg,9931
279
279
  wandb/sdk/artifacts/artifact_state.py,sha256=7bdU6ZIt-nx9aSO-aaRdZjj64MKD1ue6MhS6umlD1_U,285
280
280
  wandb/sdk/artifacts/artifact_ttl.py,sha256=L4gGRTKjQAu3hKjiko4TbOAQwVBsZWjQe7esFN7d7rY,131
@@ -327,7 +327,7 @@ wandb/sdk/artifacts/artifact_manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
327
327
  wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py,sha256=r0K0ZPe2-c7g6v3XnIwbcywIIUpCxmIBLsWyrtOg_7Q,3591
328
328
  wandb/sdk/artifacts/storage_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
329
  wandb/sdk/artifacts/storage_handlers/azure_handler.py,sha256=D3YwnAvY94GRNCNFtxuZSUSSrV8gFCAwWjFG5XosamI,8547
330
- wandb/sdk/artifacts/storage_handlers/gcs_handler.py,sha256=itARuzT6VhIfjP9SLT4_HS-oBesl5JkvFWdaEWXabeQ,8738
330
+ wandb/sdk/artifacts/storage_handlers/gcs_handler.py,sha256=35vOyY7Asox9IkB-HV2C2T8zJsSNtpsIBrgKClClXdk,8733
331
331
  wandb/sdk/artifacts/storage_handlers/http_handler.py,sha256=KiyCD4W_2EB-ILWpjrnJBJ2FjRWKYalpR2HKfO2Rn6k,4147
332
332
  wandb/sdk/artifacts/storage_handlers/local_file_handler.py,sha256=XAz2Q8Kc06aWA89cikAyjI8qkZ-rDh7HQz5FCB0vSy0,5612
333
333
  wandb/sdk/artifacts/storage_handlers/multi_handler.py,sha256=m5t_fxXy8Gsk7wnZnGpU-D3gvweHERcNRIZPK-kL380,1898
@@ -429,9 +429,9 @@ wandb/sdk/launch/environment/azure_environment.py,sha256=75Wamar_QS4lr0RSjdsrENR
429
429
  wandb/sdk/launch/environment/gcp_environment.py,sha256=qiQuJtAEMjQPIHMa9iUplY_hwwRR4Kt1WpvM98A3T1E,13049
430
430
  wandb/sdk/launch/environment/local_environment.py,sha256=ZOI35K0C_IP-xt6mxi4ZmQ_EjaT4fhzOvg4Xz1ORZG8,2310
431
431
  wandb/sdk/launch/inputs/files.py,sha256=wLBb6riNplCtUY_p0uVwyCYH8La7H6naUpB5RVGiMUU,4833
432
- wandb/sdk/launch/inputs/internal.py,sha256=Lrw0Ir3K5GSAv-JmEtTqG44xe6x5KwNaC1Ztp82EtZ4,10350
432
+ wandb/sdk/launch/inputs/internal.py,sha256=3LO5BOlwSfwG7XT8HSxuZZwoU07WDsswbPxh6Q1btCQ,10122
433
433
  wandb/sdk/launch/inputs/manage.py,sha256=OeU9nx_NnpCG2qxXsQgZRQiZBDGiW6046j0RUD9lYI8,5116
434
- wandb/sdk/launch/inputs/schema.py,sha256=zLMnyEYcq7xnTy-8cATSCzbLGrNoF6rcx1-o2T4QqC0,1496
434
+ wandb/sdk/launch/inputs/schema.py,sha256=oJrQNEr533upEWU6NqZe9y0ZcUzuOvERRFHMzNy5exA,2849
435
435
  wandb/sdk/launch/registry/abstract.py,sha256=rpPQlTfOTA6wWTU1DdtbnM9myJxQAwXrg4SQPbo9ORY,1194
436
436
  wandb/sdk/launch/registry/anon.py,sha256=tpo6zCREdt3-uUCc47cpX5e97y2QIfRq9lUrh_9zWNg,972
437
437
  wandb/sdk/launch/registry/azure_container_registry.py,sha256=jN5_dbxYPugtKFNBOv3oqyBD5fqT1TN_gKbkWnZzEls,4666
@@ -475,7 +475,7 @@ wandb/sdk/lib/ipython.py,sha256=xQ-B7P14XqiSBZLBd-2tmvPvU_-iUw_uxIkvGFK7qYM,3936
475
475
  wandb/sdk/lib/json_util.py,sha256=wHTDKDHbJHAjqQOoFNPq-xtSGMDhcn1LS5jtnBcwuLU,2541
476
476
  wandb/sdk/lib/lazyloader.py,sha256=MoMgx_tBjA__yFKcYzhimWiug_TSQeRUr71sPNUkTsk,1954
477
477
  wandb/sdk/lib/module.py,sha256=xfs4GCwUjr6CV1bz6BRw9wulcn0aGrG1nSMMajEYwmQ,1988
478
- wandb/sdk/lib/paths.py,sha256=Knkww9wdMK4wqsj5B9aMEJDvIFoCf80xXl28It3FIG4,4635
478
+ wandb/sdk/lib/paths.py,sha256=S_Kn7oNKtVKXNxDZ3XjPFxiQMjJ7UZmDyjKYOww_r18,4673
479
479
  wandb/sdk/lib/preinit.py,sha256=IDK_WXbcrfzXUNWZur505lHIY_cYs1IEWp26HMpIf74,1492
480
480
  wandb/sdk/lib/printer.py,sha256=aArbmWSLVz6CXo4JcnuEkbNjekqVj9NVaobajhJt954,16813
481
481
  wandb/sdk/lib/printer_asyncio.py,sha256=kmknEO3UDvceZvCq18Y2pH_6K79kJ7XFV9pTTnNfTwI,1545
@@ -897,8 +897,8 @@ wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py,sha256=kX0rdVmTDL
897
897
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py,sha256=7fpTDfxSYvSRtHvyog-plRdLR5A6k1QVY_AL0gVhhPM,1563
898
898
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py,sha256=xzyQmuba2gns1s3Qemu9SXaKV5zeTL3TP9--xOi541g,2254
899
899
  wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py,sha256=R48kuuEIi7XzCJBJ6Xo7v6DJIbOP5EwcsWaPf5Axn_g,3951
900
- wandb-0.21.2.dist-info/METADATA,sha256=Em3fwcRKRLmCCxH81amjaAmKAwnzo4C1mTyF4kYM1KM,10250
901
- wandb-0.21.2.dist-info/WHEEL,sha256=F7luzo77gHneG2SMTaD6iIlqNT8oVz1uotn5Zigp4o8,89
902
- wandb-0.21.2.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
903
- wandb-0.21.2.dist-info/licenses/LICENSE,sha256=rJ7p1acqNi17WFOAJ9WqsImXZtKZDA3i_gzdDVGRuFQ,1102
904
- wandb-0.21.2.dist-info/RECORD,,
900
+ wandb-0.21.3.dist-info/METADATA,sha256=pdPj-uVCk7VXWSMS41uu-XQMGjmri-ThueGrYuB63v4,10244
901
+ wandb-0.21.3.dist-info/WHEEL,sha256=F7luzo77gHneG2SMTaD6iIlqNT8oVz1uotn5Zigp4o8,89
902
+ wandb-0.21.3.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
903
+ wandb-0.21.3.dist-info/licenses/LICENSE,sha256=rJ7p1acqNi17WFOAJ9WqsImXZtKZDA3i_gzdDVGRuFQ,1102
904
+ wandb-0.21.3.dist-info/RECORD,,
File without changes