wandb 0.21.2__py3-none-musllinux_1_2_x86_64.whl → 0.21.3__py3-none-musllinux_1_2_x86_64.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/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.4
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,11 +1,11 @@
1
1
  package_readme.md,sha256=U9047nyMDICgctm1HLm4HfXwFnFKsEn2m77hsYPUZ1I,4298
2
- wandb-0.21.2.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
3
- wandb-0.21.2.dist-info/RECORD,,
4
- wandb-0.21.2.dist-info/WHEEL,sha256=RxvhifuBhLd6SN-6iyiE0YaR0dAdJ7WRhPtwoKcEtTM,105
5
- wandb-0.21.2.dist-info/METADATA,sha256=M59q2UY-7lv07A3JXmcD3VohND4wq3ElOgalaqdDCFs,10250
6
- wandb-0.21.2.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
2
+ wandb-0.21.3.dist-info/entry_points.txt,sha256=v4FCOZ9gW7Pc6KLsmgQqpCiKTrA1wh2XHmNf-NUP1-I,67
3
+ wandb-0.21.3.dist-info/RECORD,,
4
+ wandb-0.21.3.dist-info/WHEEL,sha256=RxvhifuBhLd6SN-6iyiE0YaR0dAdJ7WRhPtwoKcEtTM,105
5
+ wandb-0.21.3.dist-info/METADATA,sha256=ZMi72H0ayZ7Y6rpnA1rhdjmA0okZzvTVxhFhzRjfszw,10244
6
+ wandb-0.21.3.dist-info/licenses/LICENSE,sha256=izOKRJpGOx1PrJiGOKR0HsNdlB5JdH2d0Z4P7a7ssTc,1081
7
7
  wandb/env.py,sha256=DuzNj6MX0DRDQ8Y_t80jTLC3wiroLZPxA7otwASoE44,14012
8
- wandb/__init__.py,sha256=J5vg9u36X10RdNDsj7FaFdZiy80SI7Hs-pAG6ADXB6g,6771
8
+ wandb/__init__.py,sha256=ETf3KRXvmJSJ0PcRetJjkk98iZNPly_nk0FsH5xKj_0,6771
9
9
  wandb/__main__.py,sha256=gripuDgB7J8wMMeJt4CIBRjn1BMSFr5zvsrt585Pnj4,64
10
10
  wandb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  wandb/trigger.py,sha256=PaitU3sX6ekGkd2R8iD6d_VtI72ypF7LaPBXh3rXY7Q,615
@@ -13,7 +13,7 @@ wandb/wandb_run.py,sha256=RRjZweHEMpfTyQghzOrSZdmViIItT9wLJYzcZ4nlvjk,128
13
13
  wandb/util.py,sha256=pLo26E7AbBaGFpWra5Vumm2JENYTaDCpzWMZaQAzihY,65381
14
14
  wandb/jupyter.py,sha256=NEH-o2QdHfKorPmeOHORLRq25Am64GBDwuAPFz-x7uk,17323
15
15
  wandb/data_types.py,sha256=M-wqAO0FtIqvj28556u3h4nzSwlRcbxhXoX0B9jlJSo,2283
16
- wandb/__init__.pyi,sha256=Xb2lWTanpKH1Q0qhUoJWkLF0KbKCcHec3cfvUP_oCWM,46397
16
+ wandb/__init__.pyi,sha256=6Ue5DZ0TuA0ePk4x3mqB92oYAs0qpSN97oZSmGDPEy4,46397
17
17
  wandb/wandb_agent.py,sha256=kdlK_NZRZRNkjXRUha7Q-1fDOARf7v0TyIr_a-aRXKk,20868
18
18
  wandb/sklearn.py,sha256=hbPkefhS39A1RRymn0nHZZmKM2TrOd4xjlkthTZe9pY,803
19
19
  wandb/_iterutils.py,sha256=NX6MaIE3JzPXsqKNXUKdnpIlX0spGG8HwGIQt5VASrk,2400
@@ -404,7 +404,7 @@ wandb/vendor/graphql-core-1.1/wandb_graphql/language/location.py,sha256=QcVvx0NK
404
404
  wandb/vendor/graphql-core-1.1/wandb_graphql/language/base.py,sha256=Q07CFeZbOfxiR_Dc5HOIBRbJK6Zk5mfl8KE2e7WVrq4,408
405
405
  wandb/vendor/graphql-core-1.1/wandb_graphql/language/lexer.py,sha256=TMlNjDoNatPxVdJsCjp4OSvH3K-lxfBhips4MqRbkoI,11467
406
406
  wandb/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
407
- wandb/cli/cli.py,sha256=rBjwynxvq6LbubTO5m1_WfCakzSG_N8aTECuakLbIZA,95025
407
+ wandb/cli/cli.py,sha256=3_2SuxOv4a9Ha9SuGvVuc3RFvWueb0wuJQy8HrXFzww,95045
408
408
  wandb/cli/beta.py,sha256=Mq-5A-XXH3VLIvhWPxA84DFPeirNMYGPSQ53H78Xkjc,5187
409
409
  wandb/mpmain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
410
410
  wandb/mpmain/__main__.py,sha256=bLhspPeHQvNMyRNR7xi9v-02XfW1mhJY2yBWI3bYtbg,57
@@ -513,7 +513,7 @@ wandb/integration/sklearn/plot/clusterer.py,sha256=iV-UsSjc3VVUKboILhTUZRmd_rLm5
513
513
  wandb/integration/sklearn/plot/shared.py,sha256=elvnlCHFlASs7Olnh-MVh7kvuuR89qvfmit2GmbeRMo,2763
514
514
  wandb/sync/__init__.py,sha256=e0Ygm4RRlZjqQe8tkBkF7aYtXAYWxR2PeY_zLi-dzZc,79
515
515
  wandb/sync/sync.py,sha256=buuToYHmKk4w9A1yEa2i2wzSqhkJXrRUal5-2xoW_F4,16154
516
- wandb/bin/wandb-core,sha256=P6VViy-3hUBzikogGKO8tVU_2qCeauJ-OGDJM3r1zK8,42315960
516
+ wandb/bin/wandb-core,sha256=zrVxUYROVpRPm7E2goqODBC9Br-efFPun3SRwNn0eBs,42315960
517
517
  wandb/bin/gpu_stats,sha256=9K-GTr_5Z5yIT4OBywEUnNymF8q12cd1iKmNP6rbYY4,11254360
518
518
  wandb/agents/pyagent.py,sha256=cQ0YlusW6_JV4NlPJJpodJ6HCLr-NiubXjEBaVAPgrg,14287
519
519
  wandb/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -521,8 +521,8 @@ wandb/sdk/__init__.py,sha256=N-GTAC0AzbZF2J8RzB33DTmYk9u-jubllCwvhWrPgsE,813
521
521
  wandb/sdk/wandb_sync.py,sha256=GNC8xYqT56ws4aw6Vd_mV_Ck-InEbqnyioSqHIybDug,2106
522
522
  wandb/sdk/wandb_helper.py,sha256=IbJ7opO8UkfwCDekSjRYIrGBblUxnTPBfp1EdesfF4U,1824
523
523
  wandb/sdk/wandb_alerts.py,sha256=SwBPBiXRxknMTMGbsVoMMWqWK65UWMcKAdTWZtdwAeo,193
524
- wandb/sdk/wandb_setup.py,sha256=rq45q7xPqmEtt8ivQ5_trqo3jvpFPtZRJMH42QblHIg,19116
525
- wandb/sdk/wandb_run.py,sha256=6s_noYzR9cTXZAofc-OHbKFo9md8cmkD6D6VlDz-L3c,146748
524
+ wandb/sdk/wandb_setup.py,sha256=BanGtCYoQSStnXFJkMrDO9GgN16Z-GEi4Q5TR5Qa5ls,19115
525
+ wandb/sdk/wandb_run.py,sha256=lE3CC5MME5KXiW5S_3OYHi9WxFQZ9IU-VmMdXzfh044,146743
526
526
  wandb/sdk/wandb_init.py,sha256=ga7mq1njTU4XlamnUvo_aEx4LqLHE_gbNQvE6VhXCmQ,60890
527
527
  wandb/sdk/wandb_metric.py,sha256=HihH23rZWw6AOH5Vn4KsFREMTFJGkjYqUBhqfOlHg2I,3346
528
528
  wandb/sdk/wandb_login.py,sha256=JY0GTqi8taj8im7yPE9bjnbMIhCNmBmpP2Z4tYRPdUc,11325
@@ -597,15 +597,15 @@ wandb/sdk/artifacts/artifact_state.py,sha256=JbPVinN8Vaq16IKdPtFmiYbBdBtCKLDMVU_
597
597
  wandb/sdk/artifacts/_graphql_fragments.py,sha256=Nsiuy7lsY1jGR6pqqkqhplXnmZf9JmGeh7YznPsNfTc,581
598
598
  wandb/sdk/artifacts/storage_handler.py,sha256=ebMCKXvvn7z_eYunXriTOYescstuBbNbxn7MDW9qZAw,1834
599
599
  wandb/sdk/artifacts/_validators.py,sha256=ZDAaFH2LJ_OlxQ2B4ejryx4RFZHfKQKwbuX3FL-DsjM,10948
600
- wandb/sdk/artifacts/artifact_file_cache.py,sha256=9gd30F16978N54w26_rp9_mknOBH6ABTYvgQCnUblxw,9879
601
- wandb/sdk/artifacts/artifact_manifest_entry.py,sha256=NBWfMpZ3Aj243LgbwPjGR8_HzLNcsOLzWuVmj4t__MU,8722
600
+ wandb/sdk/artifacts/artifact_file_cache.py,sha256=pTl4ah6_Bv_vX24tA_jEa9ZPpkF3UdW7TUtRYD2jluY,9874
601
+ wandb/sdk/artifacts/artifact_manifest_entry.py,sha256=pA-3qBKpjOM3axaSyn131Pu1ikSZIJUxDGYKzm2eF0o,8693
602
602
  wandb/sdk/artifacts/_internal_artifact.py,sha256=Jx79CVB5xfuJCXTmmRIN8yegqknsqKNpKJa-WJmCO3w,1975
603
603
  wandb/sdk/artifacts/_factories.py,sha256=gs_fTayk46y5MwLZxhvsx-UekuNKJYX7ZfLaWsk0OTs,543
604
604
  wandb/sdk/artifacts/storage_policy.py,sha256=b87WYRCrzKBKy0WBNjZIB_98_YbnqP7eKS3CoKT_Ig0,2216
605
605
  wandb/sdk/artifacts/artifact_download_logger.py,sha256=bS4v544rFcTOTRTXMUSd6tfLUXzezbIogDpQmZUjah0,1537
606
606
  wandb/sdk/artifacts/staging.py,sha256=QNbPQhlW-w2liQ_5ZgGJaxsp-prPrOAZ1InmCx3N9Zk,890
607
607
  wandb/sdk/artifacts/artifact_instance_cache.py,sha256=atSUDvKjkp6by6QY0w2FLMrFUg9UKc8TIrMVWGauV64,501
608
- wandb/sdk/artifacts/artifact.py,sha256=2PAchYvXVgPdaKIVkM2iVWYbgqeRKYZltEChKZpgOwI,103241
608
+ wandb/sdk/artifacts/artifact.py,sha256=HydpYBKmYlwNAkDI_eflXrgPWeuvn9fj3XNlUSlwQUA,103250
609
609
  wandb/sdk/artifacts/artifact_saver.py,sha256=RwJIveLn87UE3_tk5zAJ8ry-TAvxwTS94yNAChwhLAk,9654
610
610
  wandb/sdk/artifacts/exceptions.py,sha256=w0ScWmElSSHHFeh_HQ-Wae4P1U1RMztDCXN0PhyejbE,2333
611
611
  wandb/sdk/artifacts/artifact_manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -621,7 +621,7 @@ wandb/sdk/artifacts/storage_handlers/tracking_handler.py,sha256=4MFqhnVciygmANKO
621
621
  wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py,sha256=MpYHgEkbjt1VCUV-lfg1f3MscOK10tZHSJwOFjCzGBg,2562
622
622
  wandb/sdk/artifacts/storage_handlers/local_file_handler.py,sha256=SiRfKwfr9brkm0tDhMDpgxhHH6FOlasRaliznL9zyN0,5470
623
623
  wandb/sdk/artifacts/storage_handlers/multi_handler.py,sha256=GZ9wAfVSuZE3IGL5F5ojM_GPrRqYIYTJxWSsqFn9HiI,1842
624
- wandb/sdk/artifacts/storage_handlers/gcs_handler.py,sha256=hGslEr9QYi0Jp5_C5fxv7CaRu219tdmldyayncze0vc,8514
624
+ wandb/sdk/artifacts/storage_handlers/gcs_handler.py,sha256=V2ttv1qsOP5Ns8aN-l5qt1J1OF1UKEUBos0EvW_SBD0,8509
625
625
  wandb/sdk/artifacts/storage_handlers/http_handler.py,sha256=sdzBqZyQ_6WKtlcqIfxE6QzDNWy1Kw7rKp4f0OCTYuw,4033
626
626
  wandb/sdk/artifacts/_generated/__init__.py,sha256=lq0ZBRz823gy5g5VKXfeV6qhFvIfmKlwYI4Ybi4su1Q,20103
627
627
  wandb/sdk/artifacts/_generated/project_artifacts.py,sha256=noPODtFVotO69VK5oHZeU8NF4aYLKsPPRHOtNMPhn38,1128
@@ -687,7 +687,7 @@ wandb/sdk/lib/proto_util.py,sha256=JxDldi8j6dfF_Lx9zOwqYL6LQZhYYGgKt_AfZtYHAW0,2
687
687
  wandb/sdk/lib/credentials.py,sha256=WmVdzL1rFy7S0WIHf1ZYd98_eaHTxPKUobReRSPQgBM,4737
688
688
  wandb/sdk/lib/run_moment.py,sha256=hFx3S-F9SAF6xtwRYbBnP5fMDkllMJvGSSla_eqbsA8,2419
689
689
  wandb/sdk/lib/disabled.py,sha256=DO_I4aGCvg0sRzMZQ7bMgQijaxTzY1-Yf7LPf9PuJDU,911
690
- wandb/sdk/lib/paths.py,sha256=YiEE5mkYB5ahMuI4C27IsNvejC3z6MI5JPW1iISi864,4529
690
+ wandb/sdk/lib/paths.py,sha256=-5mtOUwtf7LUrM4NxQWqi0HGsNSHujD0QOhLa0HXzFo,4565
691
691
  wandb/sdk/lib/preinit.py,sha256=11QkGmBpoGazNaUGvyDIzBJA4QTggj7fGQdugpCvOiw,1450
692
692
  wandb/sdk/lib/handler_util.py,sha256=mT9CKsmboq4lPWElsi4uo9ORHhx6OYTr7KY2QtgbM6M,589
693
693
  wandb/sdk/lib/apikey.py,sha256=s2uw8B2O53rCpBCDgiWyF8ceQH9MNpOdaTil1uvy-O0,11097
@@ -729,8 +729,8 @@ wandb/sdk/launch/sweeps/scheduler.py,sha256=mdvHLgOGgLeZi9C88qsp56H5aTcbsPZbKMo-
729
729
  wandb/sdk/launch/sweeps/utils.py,sha256=T6Zr3QwEN1dl26mRDcRwlHXrZMoVNysAwqyCQ4MIU6k,10229
730
730
  wandb/sdk/launch/inputs/manage.py,sha256=O0IsTWhjUftihohRfK7DkT186LjHMMcE2NSMeG8IFBY,5003
731
731
  wandb/sdk/launch/inputs/files.py,sha256=BWGDmAfDPLja7zz0bUzYLaF3wH4cTPesD9LqDuJRUoU,4685
732
- wandb/sdk/launch/inputs/schema.py,sha256=pjAT5foIVeG2lOYNty8AiYtSlxz_DXXuoTz6mNuEXB0,1456
733
- wandb/sdk/launch/inputs/internal.py,sha256=CyBzMcBtKQCy2KTI6OlV9XYxoDLD_rUFgZ1CclsKEXA,10036
732
+ wandb/sdk/launch/inputs/schema.py,sha256=OvLqb8yBI4KsuT6aFp9_M361ACVjFQARUJqqEuicO8w,2779
733
+ wandb/sdk/launch/inputs/internal.py,sha256=liYeKB9yE1ckc0rv6kbKFIk9TloCM59h_HLGwoUdPCs,9807
734
734
  wandb/sdk/launch/builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
735
735
  wandb/sdk/launch/builder/docker_builder.py,sha256=0HbPxwWuCHXogmIc6o18nvBaHIx-xcWOQfHnfOJIgcI,6316
736
736
  wandb/sdk/launch/builder/abstract.py,sha256=OveMZmrZ-L7qkS5ex0_5RChnSaLXPLfaCdL6jb-zmpk,5076
File without changes