wandb 0.15.3__py3-none-any.whl → 0.15.5__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- wandb/__init__.py +1 -1
- wandb/analytics/sentry.py +1 -0
- wandb/apis/importers/base.py +20 -5
- wandb/apis/importers/mlflow.py +7 -1
- wandb/apis/internal.py +12 -0
- wandb/apis/public.py +247 -1387
- wandb/apis/reports/_panels.py +58 -35
- wandb/beta/workflows.py +6 -7
- wandb/cli/cli.py +130 -60
- wandb/data_types.py +3 -1
- wandb/filesync/dir_watcher.py +21 -27
- wandb/filesync/step_checksum.py +8 -8
- wandb/filesync/step_prepare.py +23 -10
- wandb/filesync/step_upload.py +13 -13
- wandb/filesync/upload_job.py +4 -8
- wandb/integration/cohere/__init__.py +3 -0
- wandb/integration/cohere/cohere.py +21 -0
- wandb/integration/cohere/resolver.py +347 -0
- wandb/integration/gym/__init__.py +4 -6
- wandb/integration/huggingface/__init__.py +3 -0
- wandb/integration/huggingface/huggingface.py +18 -0
- wandb/integration/huggingface/resolver.py +213 -0
- wandb/integration/langchain/wandb_tracer.py +16 -179
- wandb/integration/openai/__init__.py +1 -3
- wandb/integration/openai/openai.py +11 -143
- wandb/integration/openai/resolver.py +111 -38
- wandb/integration/sagemaker/config.py +2 -2
- wandb/integration/tensorboard/log.py +4 -4
- wandb/old/settings.py +24 -7
- wandb/proto/v3/wandb_telemetry_pb2.py +12 -12
- wandb/proto/v4/wandb_telemetry_pb2.py +12 -12
- wandb/proto/wandb_deprecated.py +3 -1
- wandb/sdk/__init__.py +1 -1
- wandb/sdk/artifacts/__init__.py +0 -0
- wandb/sdk/artifacts/artifact.py +2101 -0
- wandb/sdk/artifacts/artifact_download_logger.py +42 -0
- wandb/sdk/artifacts/artifact_manifest.py +67 -0
- wandb/sdk/artifacts/artifact_manifest_entry.py +159 -0
- wandb/sdk/artifacts/artifact_manifests/__init__.py +0 -0
- wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py +91 -0
- wandb/sdk/{internal → artifacts}/artifact_saver.py +6 -5
- wandb/sdk/artifacts/artifact_state.py +10 -0
- wandb/sdk/{interface/artifacts/artifact_cache.py → artifacts/artifacts_cache.py} +22 -12
- wandb/sdk/artifacts/exceptions.py +55 -0
- wandb/sdk/artifacts/storage_handler.py +59 -0
- wandb/sdk/artifacts/storage_handlers/__init__.py +0 -0
- wandb/sdk/artifacts/storage_handlers/azure_handler.py +192 -0
- wandb/sdk/artifacts/storage_handlers/gcs_handler.py +224 -0
- wandb/sdk/artifacts/storage_handlers/http_handler.py +112 -0
- wandb/sdk/artifacts/storage_handlers/local_file_handler.py +134 -0
- wandb/sdk/artifacts/storage_handlers/multi_handler.py +53 -0
- wandb/sdk/artifacts/storage_handlers/s3_handler.py +301 -0
- wandb/sdk/artifacts/storage_handlers/tracking_handler.py +67 -0
- wandb/sdk/artifacts/storage_handlers/wb_artifact_handler.py +132 -0
- wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py +72 -0
- wandb/sdk/artifacts/storage_layout.py +6 -0
- wandb/sdk/artifacts/storage_policies/__init__.py +0 -0
- wandb/sdk/artifacts/storage_policies/s3_bucket_policy.py +61 -0
- wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +386 -0
- wandb/sdk/{interface/artifacts/artifact_storage.py → artifacts/storage_policy.py} +5 -57
- wandb/sdk/data_types/_dtypes.py +7 -12
- wandb/sdk/data_types/base_types/json_metadata.py +3 -2
- wandb/sdk/data_types/base_types/media.py +8 -8
- wandb/sdk/data_types/base_types/wb_value.py +12 -13
- wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +5 -6
- wandb/sdk/data_types/helper_types/classes.py +6 -8
- wandb/sdk/data_types/helper_types/image_mask.py +5 -6
- wandb/sdk/data_types/histogram.py +4 -3
- wandb/sdk/data_types/html.py +3 -4
- wandb/sdk/data_types/image.py +11 -9
- wandb/sdk/data_types/molecule.py +5 -3
- wandb/sdk/data_types/object_3d.py +7 -5
- wandb/sdk/data_types/plotly.py +3 -2
- wandb/sdk/data_types/saved_model.py +11 -11
- wandb/sdk/data_types/trace_tree.py +5 -4
- wandb/sdk/data_types/utils.py +3 -5
- wandb/sdk/data_types/video.py +5 -4
- wandb/sdk/integration_utils/auto_logging.py +215 -0
- wandb/sdk/interface/interface.py +15 -15
- wandb/sdk/internal/file_pusher.py +8 -16
- wandb/sdk/internal/file_stream.py +5 -11
- wandb/sdk/internal/handler.py +13 -1
- wandb/sdk/internal/internal_api.py +287 -13
- wandb/sdk/internal/job_builder.py +119 -30
- wandb/sdk/internal/sender.py +6 -26
- wandb/sdk/internal/settings_static.py +2 -0
- wandb/sdk/internal/system/assets/__init__.py +2 -0
- wandb/sdk/internal/system/assets/gpu.py +42 -0
- wandb/sdk/internal/system/assets/gpu_amd.py +216 -0
- wandb/sdk/internal/system/env_probe_helpers.py +13 -0
- wandb/sdk/internal/system/system_info.py +3 -3
- wandb/sdk/internal/tb_watcher.py +32 -22
- wandb/sdk/internal/thread_local_settings.py +18 -0
- wandb/sdk/launch/_project_spec.py +57 -11
- wandb/sdk/launch/agent/agent.py +147 -65
- wandb/sdk/launch/agent/job_status_tracker.py +34 -0
- wandb/sdk/launch/agent/run_queue_item_file_saver.py +45 -0
- wandb/sdk/launch/builder/abstract.py +5 -1
- wandb/sdk/launch/builder/build.py +21 -18
- wandb/sdk/launch/builder/docker_builder.py +10 -4
- wandb/sdk/launch/builder/kaniko_builder.py +113 -23
- wandb/sdk/launch/builder/noop.py +6 -3
- wandb/sdk/launch/builder/templates/_wandb_bootstrap.py +46 -14
- wandb/sdk/launch/environment/aws_environment.py +3 -2
- wandb/sdk/launch/environment/azure_environment.py +124 -0
- wandb/sdk/launch/environment/gcp_environment.py +2 -4
- wandb/sdk/launch/environment/local_environment.py +1 -1
- wandb/sdk/launch/errors.py +19 -0
- wandb/sdk/launch/github_reference.py +32 -19
- wandb/sdk/launch/launch.py +3 -8
- wandb/sdk/launch/launch_add.py +6 -2
- wandb/sdk/launch/loader.py +21 -2
- wandb/sdk/launch/registry/azure_container_registry.py +132 -0
- wandb/sdk/launch/registry/elastic_container_registry.py +39 -5
- wandb/sdk/launch/registry/google_artifact_registry.py +68 -26
- wandb/sdk/launch/registry/local_registry.py +2 -1
- wandb/sdk/launch/runner/abstract.py +24 -3
- wandb/sdk/launch/runner/kubernetes_runner.py +479 -26
- wandb/sdk/launch/runner/local_container.py +103 -51
- wandb/sdk/launch/runner/local_process.py +1 -1
- wandb/sdk/launch/runner/sagemaker_runner.py +60 -10
- wandb/sdk/launch/runner/vertex_runner.py +10 -5
- wandb/sdk/launch/sweeps/__init__.py +7 -9
- wandb/sdk/launch/sweeps/scheduler.py +307 -77
- wandb/sdk/launch/sweeps/scheduler_sweep.py +2 -1
- wandb/sdk/launch/sweeps/utils.py +82 -35
- wandb/sdk/launch/utils.py +89 -75
- wandb/sdk/lib/_settings_toposort_generated.py +7 -0
- wandb/sdk/lib/capped_dict.py +26 -0
- wandb/sdk/lib/{git.py → gitlib.py} +76 -59
- wandb/sdk/lib/hashutil.py +12 -4
- wandb/sdk/lib/paths.py +96 -8
- wandb/sdk/lib/sock_client.py +2 -2
- wandb/sdk/lib/timer.py +1 -0
- wandb/sdk/service/server.py +22 -9
- wandb/sdk/service/server_sock.py +1 -1
- wandb/sdk/service/service.py +27 -8
- wandb/sdk/verify/verify.py +4 -7
- wandb/sdk/wandb_config.py +2 -6
- wandb/sdk/wandb_init.py +57 -53
- wandb/sdk/wandb_require.py +7 -0
- wandb/sdk/wandb_run.py +61 -223
- wandb/sdk/wandb_settings.py +28 -4
- wandb/testing/relay.py +15 -2
- wandb/util.py +74 -36
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/METADATA +15 -9
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/RECORD +151 -116
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/entry_points.txt +1 -0
- wandb/integration/langchain/util.py +0 -191
- wandb/sdk/interface/artifacts/__init__.py +0 -33
- wandb/sdk/interface/artifacts/artifact.py +0 -615
- wandb/sdk/interface/artifacts/artifact_manifest.py +0 -131
- wandb/sdk/wandb_artifacts.py +0 -2226
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/LICENSE +0 -0
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/WHEEL +0 -0
- {wandb-0.15.3.dist-info → wandb-0.15.5.dist-info}/top_level.txt +0 -0
@@ -1,131 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass, field
|
2
|
-
from typing import TYPE_CHECKING, Dict, List, Mapping, Optional, Union
|
3
|
-
|
4
|
-
from wandb import util
|
5
|
-
from wandb.sdk.lib.hashutil import B64MD5, ETag, HexMD5
|
6
|
-
from wandb.sdk.lib.paths import FilePathStr, LogicalFilePathStr, URIStr
|
7
|
-
|
8
|
-
if TYPE_CHECKING:
|
9
|
-
from wandb.sdk import wandb_artifacts
|
10
|
-
from wandb.sdk.interface.artifacts import Artifact
|
11
|
-
|
12
|
-
|
13
|
-
@dataclass
|
14
|
-
class ArtifactManifestEntry:
|
15
|
-
"""A single entry in an artifact manifest."""
|
16
|
-
|
17
|
-
path: LogicalFilePathStr
|
18
|
-
digest: Union[B64MD5, URIStr, FilePathStr, ETag]
|
19
|
-
ref: Optional[Union[FilePathStr, URIStr]] = None
|
20
|
-
birth_artifact_id: Optional[str] = None
|
21
|
-
size: Optional[int] = None
|
22
|
-
extra: Dict = field(default_factory=dict)
|
23
|
-
local_path: Optional[str] = None
|
24
|
-
|
25
|
-
def __post_init__(self) -> None:
|
26
|
-
self.path = util.to_forward_slash_path(self.path)
|
27
|
-
self.extra = self.extra or {}
|
28
|
-
if self.local_path and self.size is None:
|
29
|
-
raise ValueError("size required when local_path specified")
|
30
|
-
|
31
|
-
def parent_artifact(self) -> "Artifact":
|
32
|
-
"""Get the artifact to which this artifact entry belongs.
|
33
|
-
|
34
|
-
Returns:
|
35
|
-
(Artifact): The parent artifact
|
36
|
-
"""
|
37
|
-
raise NotImplementedError
|
38
|
-
|
39
|
-
def download(self, root: Optional[str] = None) -> FilePathStr:
|
40
|
-
"""Download this artifact entry to the specified root path.
|
41
|
-
|
42
|
-
Arguments:
|
43
|
-
root: (str, optional) The root path in which to download this
|
44
|
-
artifact entry. Defaults to the artifact's root.
|
45
|
-
|
46
|
-
Returns:
|
47
|
-
(str): The path of the downloaded artifact entry.
|
48
|
-
"""
|
49
|
-
raise NotImplementedError
|
50
|
-
|
51
|
-
def ref_target(self) -> str:
|
52
|
-
"""Get the reference URL that is targeted by this artifact entry.
|
53
|
-
|
54
|
-
Returns:
|
55
|
-
(str): The reference URL of this artifact entry.
|
56
|
-
|
57
|
-
Raises:
|
58
|
-
ValueError: If this artifact entry was not a reference.
|
59
|
-
"""
|
60
|
-
if self.ref is None:
|
61
|
-
raise ValueError("Only reference entries support ref_target().")
|
62
|
-
return self.ref
|
63
|
-
|
64
|
-
def ref_url(self) -> str:
|
65
|
-
"""Get a URL to this artifact entry.
|
66
|
-
|
67
|
-
These URLs can be referenced by another artifact.
|
68
|
-
|
69
|
-
Returns:
|
70
|
-
(str): A URL representing this artifact entry.
|
71
|
-
|
72
|
-
Examples:
|
73
|
-
Basic usage
|
74
|
-
```
|
75
|
-
ref_url = source_artifact.get_path('file.txt').ref_url()
|
76
|
-
derived_artifact.add_reference(ref_url)
|
77
|
-
```
|
78
|
-
"""
|
79
|
-
raise NotImplementedError
|
80
|
-
|
81
|
-
|
82
|
-
class ArtifactManifest:
|
83
|
-
entries: Dict[str, "ArtifactManifestEntry"]
|
84
|
-
|
85
|
-
@classmethod
|
86
|
-
def from_manifest_json(cls, manifest_json: Dict) -> "ArtifactManifest":
|
87
|
-
if "version" not in manifest_json:
|
88
|
-
raise ValueError("Invalid manifest format. Must contain version field.")
|
89
|
-
version = manifest_json["version"]
|
90
|
-
for sub in cls.__subclasses__():
|
91
|
-
if sub.version() == version:
|
92
|
-
return sub.from_manifest_json(manifest_json)
|
93
|
-
raise ValueError("Invalid manifest version.")
|
94
|
-
|
95
|
-
@classmethod
|
96
|
-
def version(cls) -> int:
|
97
|
-
raise NotImplementedError
|
98
|
-
|
99
|
-
def __init__(
|
100
|
-
self,
|
101
|
-
storage_policy: "wandb_artifacts.WandbStoragePolicy",
|
102
|
-
entries: Optional[Mapping[str, ArtifactManifestEntry]] = None,
|
103
|
-
) -> None:
|
104
|
-
self.storage_policy = storage_policy
|
105
|
-
self.entries = dict(entries) if entries else {}
|
106
|
-
|
107
|
-
def to_manifest_json(self) -> Dict:
|
108
|
-
raise NotImplementedError
|
109
|
-
|
110
|
-
def digest(self) -> HexMD5:
|
111
|
-
raise NotImplementedError
|
112
|
-
|
113
|
-
def add_entry(self, entry: ArtifactManifestEntry) -> None:
|
114
|
-
if (
|
115
|
-
entry.path in self.entries
|
116
|
-
and entry.digest != self.entries[entry.path].digest
|
117
|
-
):
|
118
|
-
raise ValueError("Cannot add the same path twice: %s" % entry.path)
|
119
|
-
self.entries[entry.path] = entry
|
120
|
-
|
121
|
-
def get_entry_by_path(self, path: str) -> Optional[ArtifactManifestEntry]:
|
122
|
-
return self.entries.get(path)
|
123
|
-
|
124
|
-
def get_entries_in_directory(self, directory: str) -> List[ArtifactManifestEntry]:
|
125
|
-
return [
|
126
|
-
self.entries[entry_key]
|
127
|
-
for entry_key in self.entries
|
128
|
-
if entry_key.startswith(
|
129
|
-
directory + "/"
|
130
|
-
) # entries use forward slash even for windows
|
131
|
-
]
|