wandb 0.21.0__py3-none-win32.whl → 0.21.2__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 +16 -14
- wandb/__init__.pyi +427 -450
- wandb/agents/pyagent.py +41 -12
- wandb/analytics/sentry.py +7 -2
- wandb/apis/importers/mlflow.py +1 -1
- wandb/apis/public/__init__.py +1 -1
- wandb/apis/public/api.py +525 -360
- wandb/apis/public/artifacts.py +207 -13
- wandb/apis/public/automations.py +19 -3
- wandb/apis/public/files.py +172 -33
- wandb/apis/public/history.py +67 -15
- wandb/apis/public/integrations.py +25 -2
- wandb/apis/public/jobs.py +90 -2
- wandb/apis/public/projects.py +130 -79
- wandb/apis/public/query_generator.py +11 -1
- wandb/apis/public/registries/_utils.py +14 -16
- wandb/apis/public/registries/registries_search.py +183 -304
- wandb/apis/public/reports.py +96 -15
- wandb/apis/public/runs.py +299 -105
- wandb/apis/public/sweeps.py +222 -22
- wandb/apis/public/teams.py +41 -4
- wandb/apis/public/users.py +45 -4
- wandb/automations/_generated/delete_automation.py +1 -3
- wandb/automations/_generated/enums.py +13 -11
- wandb/beta/workflows.py +66 -30
- wandb/bin/gpu_stats.exe +0 -0
- wandb/bin/wandb-core +0 -0
- wandb/cli/cli.py +127 -3
- wandb/env.py +8 -0
- wandb/errors/errors.py +4 -1
- wandb/integration/lightning/fabric/logger.py +3 -4
- wandb/integration/metaflow/__init__.py +6 -0
- wandb/integration/metaflow/data_pandas.py +74 -0
- wandb/integration/metaflow/data_pytorch.py +75 -0
- wandb/integration/metaflow/data_sklearn.py +76 -0
- wandb/integration/metaflow/errors.py +13 -0
- wandb/integration/metaflow/metaflow.py +167 -223
- wandb/integration/openai/fine_tuning.py +1 -2
- wandb/integration/weave/__init__.py +6 -0
- wandb/integration/weave/interface.py +49 -0
- wandb/integration/weave/weave.py +63 -0
- wandb/jupyter.py +5 -5
- wandb/plot/custom_chart.py +30 -7
- wandb/proto/v3/wandb_internal_pb2.py +281 -280
- wandb/proto/v3/wandb_telemetry_pb2.py +4 -4
- wandb/proto/v4/wandb_internal_pb2.py +280 -280
- wandb/proto/v4/wandb_telemetry_pb2.py +4 -4
- wandb/proto/v5/wandb_internal_pb2.py +280 -280
- wandb/proto/v5/wandb_telemetry_pb2.py +4 -4
- wandb/proto/v6/wandb_internal_pb2.py +280 -280
- wandb/proto/v6/wandb_telemetry_pb2.py +4 -4
- wandb/proto/wandb_deprecated.py +6 -0
- wandb/sdk/artifacts/_factories.py +17 -0
- wandb/sdk/artifacts/_generated/__init__.py +221 -13
- wandb/sdk/artifacts/_generated/artifact_by_id.py +17 -0
- wandb/sdk/artifacts/_generated/artifact_by_name.py +22 -0
- wandb/sdk/artifacts/_generated/artifact_collection_membership_file_urls.py +43 -0
- wandb/sdk/artifacts/_generated/artifact_created_by.py +47 -0
- wandb/sdk/artifacts/_generated/artifact_file_urls.py +22 -0
- wandb/sdk/artifacts/_generated/artifact_type.py +31 -0
- wandb/sdk/artifacts/_generated/artifact_used_by.py +43 -0
- wandb/sdk/artifacts/_generated/artifact_via_membership_by_name.py +26 -0
- wandb/sdk/artifacts/_generated/delete_artifact.py +28 -0
- wandb/sdk/artifacts/_generated/enums.py +5 -0
- wandb/sdk/artifacts/_generated/fetch_artifact_manifest.py +38 -0
- wandb/sdk/artifacts/_generated/fetch_registries.py +32 -0
- wandb/sdk/artifacts/_generated/fragments.py +279 -41
- wandb/sdk/artifacts/_generated/link_artifact.py +6 -0
- wandb/sdk/artifacts/_generated/operations.py +654 -51
- wandb/sdk/artifacts/_generated/registry_collections.py +34 -0
- wandb/sdk/artifacts/_generated/registry_versions.py +34 -0
- wandb/sdk/artifacts/_generated/unlink_artifact.py +25 -0
- wandb/sdk/artifacts/_graphql_fragments.py +3 -86
- wandb/sdk/artifacts/_internal_artifact.py +19 -8
- wandb/sdk/artifacts/_validators.py +14 -4
- wandb/sdk/artifacts/artifact.py +512 -618
- wandb/sdk/artifacts/artifact_file_cache.py +10 -6
- wandb/sdk/artifacts/artifact_manifest.py +10 -9
- wandb/sdk/artifacts/artifact_manifest_entry.py +9 -10
- wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py +5 -3
- wandb/sdk/artifacts/storage_handlers/http_handler.py +1 -1
- wandb/sdk/artifacts/storage_handlers/s3_handler.py +1 -1
- wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +1 -1
- wandb/sdk/data_types/audio.py +38 -10
- wandb/sdk/data_types/base_types/media.py +6 -56
- wandb/sdk/data_types/graph.py +48 -14
- wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +1 -3
- wandb/sdk/data_types/helper_types/image_mask.py +1 -3
- wandb/sdk/data_types/histogram.py +34 -21
- wandb/sdk/data_types/html.py +35 -12
- wandb/sdk/data_types/image.py +104 -68
- wandb/sdk/data_types/molecule.py +32 -19
- wandb/sdk/data_types/object_3d.py +36 -17
- wandb/sdk/data_types/plotly.py +18 -5
- wandb/sdk/data_types/saved_model.py +4 -6
- wandb/sdk/data_types/table.py +59 -30
- wandb/sdk/data_types/video.py +53 -26
- wandb/sdk/integration_utils/auto_logging.py +2 -2
- wandb/sdk/interface/interface_queue.py +1 -4
- wandb/sdk/interface/interface_shared.py +26 -37
- wandb/sdk/interface/interface_sock.py +24 -14
- wandb/sdk/internal/internal_api.py +6 -0
- wandb/sdk/internal/job_builder.py +6 -0
- wandb/sdk/internal/settings_static.py +2 -3
- wandb/sdk/launch/agent/agent.py +8 -1
- wandb/sdk/launch/agent/run_queue_item_file_saver.py +2 -2
- wandb/sdk/launch/create_job.py +15 -2
- wandb/sdk/launch/inputs/internal.py +3 -4
- wandb/sdk/launch/inputs/schema.py +1 -0
- wandb/sdk/launch/runner/kubernetes_monitor.py +1 -0
- wandb/sdk/launch/runner/kubernetes_runner.py +323 -1
- wandb/sdk/launch/sweeps/scheduler.py +2 -3
- wandb/sdk/lib/asyncio_compat.py +19 -16
- wandb/sdk/lib/asyncio_manager.py +252 -0
- wandb/sdk/lib/deprecate.py +1 -7
- wandb/sdk/lib/disabled.py +1 -1
- wandb/sdk/lib/hashutil.py +27 -5
- wandb/sdk/lib/module.py +7 -13
- wandb/sdk/lib/printer.py +2 -2
- wandb/sdk/lib/printer_asyncio.py +3 -1
- wandb/sdk/lib/progress.py +0 -19
- wandb/sdk/lib/retry.py +185 -78
- wandb/sdk/lib/service/service_client.py +106 -0
- wandb/sdk/lib/service/service_connection.py +20 -26
- wandb/sdk/lib/service/service_token.py +30 -13
- wandb/sdk/mailbox/mailbox.py +13 -5
- wandb/sdk/mailbox/mailbox_handle.py +22 -13
- wandb/sdk/mailbox/response_handle.py +42 -106
- wandb/sdk/mailbox/wait_with_progress.py +7 -42
- wandb/sdk/wandb_init.py +77 -116
- wandb/sdk/wandb_login.py +19 -15
- wandb/sdk/wandb_metric.py +2 -0
- wandb/sdk/wandb_run.py +497 -469
- wandb/sdk/wandb_settings.py +145 -4
- wandb/sdk/wandb_setup.py +204 -124
- wandb/sdk/wandb_sweep.py +14 -13
- wandb/sdk/wandb_watch.py +4 -6
- wandb/sync/sync.py +10 -0
- wandb/util.py +58 -1
- wandb/wandb_run.py +1 -2
- {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/METADATA +1 -1
- {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/RECORD +145 -129
- wandb/sdk/interface/interface_relay.py +0 -38
- wandb/sdk/interface/router.py +0 -89
- wandb/sdk/interface/router_queue.py +0 -43
- wandb/sdk/interface/router_relay.py +0 -50
- wandb/sdk/interface/router_sock.py +0 -32
- wandb/sdk/lib/sock_client.py +0 -236
- wandb/vendor/pynvml/__init__.py +0 -0
- wandb/vendor/pynvml/pynvml.py +0 -4779
- {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/WHEEL +0 -0
- {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/entry_points.txt +0 -0
- {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/licenses/LICENSE +0 -0
wandb/agents/pyagent.py
CHANGED
@@ -9,6 +9,7 @@ import logging
|
|
9
9
|
import os
|
10
10
|
import queue
|
11
11
|
import socket
|
12
|
+
import sys
|
12
13
|
import threading
|
13
14
|
import time
|
14
15
|
import traceback
|
@@ -222,17 +223,10 @@ class Agent:
|
|
222
223
|
self._run_status[run_id] = RunStatus.DONE
|
223
224
|
elif self._run_status[run_id] == RunStatus.ERRORED:
|
224
225
|
exc = self._exceptions[run_id]
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
)
|
230
|
-
exc_traceback_formatted = traceback.format_exception(
|
231
|
-
exc_type, exc_value, exc_traceback
|
232
|
-
)
|
233
|
-
exc_repr = "".join(exc_traceback_formatted)
|
234
|
-
logger.error(f"Run {run_id} errored:\n{exc_repr}")
|
235
|
-
wandb.termerror(f"Run {run_id} errored:\n{exc_repr}")
|
226
|
+
# Extract to reduce a decision point to avoid ruff c901
|
227
|
+
log_str, term_str = _get_exception_logger_and_term_strs(exc)
|
228
|
+
logger.error(f"Run {run_id} errored:\n{log_str}")
|
229
|
+
wandb.termerror(f"Run {run_id} errored:{term_str}")
|
236
230
|
if os.getenv(wandb.env.AGENT_DISABLE_FLAPPING) == "true":
|
237
231
|
self._exit_flag = True
|
238
232
|
return
|
@@ -299,7 +293,18 @@ class Agent:
|
|
299
293
|
for k, v in job.config.items():
|
300
294
|
wandb.termlog("\t{}: {}".format(k, v["value"]))
|
301
295
|
|
302
|
-
|
296
|
+
try:
|
297
|
+
self._function()
|
298
|
+
except KeyboardInterrupt:
|
299
|
+
raise
|
300
|
+
except Exception as e:
|
301
|
+
# Log the run's exceptions directly to stderr to match CLI case, and wrap so we
|
302
|
+
# can identify it as coming from the job later later. This will get automatically
|
303
|
+
# logged by console_capture.py. Exception handler below will also handle exceptions
|
304
|
+
# in setup code.
|
305
|
+
exc_repr = _format_exception_traceback(e)
|
306
|
+
print(exc_repr, file=sys.stderr) # noqa: T201
|
307
|
+
raise _JobError(f"Run threw exception: {str(e)}") from e
|
303
308
|
wandb.finish()
|
304
309
|
except KeyboardInterrupt:
|
305
310
|
raise
|
@@ -350,6 +355,30 @@ def pyagent(sweep_id, function, entity=None, project=None, count=None):
|
|
350
355
|
agent.run()
|
351
356
|
|
352
357
|
|
358
|
+
def _format_exception_traceback(exc):
|
359
|
+
return "".join(traceback.format_exception(type(exc), exc, exc.__traceback__))
|
360
|
+
|
361
|
+
|
362
|
+
class _JobError(Exception):
|
363
|
+
"""Exception raised when a job fails during execution."""
|
364
|
+
|
365
|
+
pass
|
366
|
+
|
367
|
+
|
368
|
+
def _get_exception_logger_and_term_strs(exc):
|
369
|
+
if isinstance(exc, _JobError) and exc.__cause__:
|
370
|
+
# If it's a JobException, get the original exception for display
|
371
|
+
job_exc = exc.__cause__
|
372
|
+
log_str = _format_exception_traceback(job_exc)
|
373
|
+
# Don't long full stacktrace to terminal again because we already
|
374
|
+
# printed it to stderr.
|
375
|
+
term_str = " " + str(job_exc)
|
376
|
+
else:
|
377
|
+
log_str = _format_exception_traceback(exc)
|
378
|
+
term_str = "\n" + log_str
|
379
|
+
return log_str, term_str
|
380
|
+
|
381
|
+
|
353
382
|
_INSTANCES = 0
|
354
383
|
|
355
384
|
|
wandb/analytics/sentry.py
CHANGED
@@ -91,13 +91,18 @@ class Sentry:
|
|
91
91
|
self.scope.set_client(client)
|
92
92
|
|
93
93
|
@_safe_noop
|
94
|
-
def message(
|
94
|
+
def message(
|
95
|
+
self,
|
96
|
+
message: str,
|
97
|
+
repeat: bool = True,
|
98
|
+
level: str = "info",
|
99
|
+
) -> str | None:
|
95
100
|
"""Send a message to Sentry."""
|
96
101
|
if not repeat and message in self._sent_messages:
|
97
102
|
return None
|
98
103
|
self._sent_messages.add(message)
|
99
104
|
with sentry_sdk.scope.use_isolation_scope(self.scope): # type: ignore
|
100
|
-
return sentry_sdk.capture_message(message) # type: ignore
|
105
|
+
return sentry_sdk.capture_message(message, level=level) # type: ignore
|
101
106
|
|
102
107
|
@_safe_noop
|
103
108
|
def exception(
|
wandb/apis/importers/mlflow.py
CHANGED
wandb/apis/public/__init__.py
CHANGED
@@ -20,7 +20,7 @@ from wandb.apis.public.jobs import (
|
|
20
20
|
RunQueuePrioritizationMode,
|
21
21
|
RunQueueResourceType,
|
22
22
|
)
|
23
|
-
from wandb.apis.public.projects import PROJECT_FRAGMENT, Project, Projects
|
23
|
+
from wandb.apis.public.projects import PROJECT_FRAGMENT, Project, Projects, Sweeps
|
24
24
|
from wandb.apis.public.query_generator import QueryGenerator
|
25
25
|
from wandb.apis.public.registries.registry import Registry
|
26
26
|
from wandb.apis.public.reports import (
|