wandb 0.20.2rc20250616__py3-none-musllinux_1_2_aarch64.whl → 0.21.0__py3-none-musllinux_1_2_aarch64.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 (72) hide show
  1. wandb/__init__.py +1 -1
  2. wandb/__init__.pyi +24 -23
  3. wandb/apis/internal.py +3 -0
  4. wandb/apis/paginator.py +17 -4
  5. wandb/apis/public/api.py +83 -2
  6. wandb/apis/public/artifacts.py +10 -8
  7. wandb/apis/public/files.py +5 -5
  8. wandb/apis/public/projects.py +44 -3
  9. wandb/apis/public/reports.py +64 -8
  10. wandb/apis/public/runs.py +16 -23
  11. wandb/automations/__init__.py +10 -10
  12. wandb/automations/_filters/run_metrics.py +0 -2
  13. wandb/automations/_utils.py +0 -2
  14. wandb/automations/actions.py +0 -2
  15. wandb/automations/automations.py +0 -2
  16. wandb/automations/events.py +0 -2
  17. wandb/bin/gpu_stats +0 -0
  18. wandb/bin/wandb-core +0 -0
  19. wandb/integration/catboost/catboost.py +6 -2
  20. wandb/integration/kfp/kfp_patch.py +3 -1
  21. wandb/integration/sb3/sb3.py +3 -3
  22. wandb/integration/ultralytics/callback.py +6 -2
  23. wandb/plot/__init__.py +2 -0
  24. wandb/plot/bar.py +30 -29
  25. wandb/plot/confusion_matrix.py +75 -71
  26. wandb/plot/histogram.py +26 -25
  27. wandb/plot/line.py +33 -32
  28. wandb/plot/line_series.py +100 -103
  29. wandb/plot/pr_curve.py +33 -32
  30. wandb/plot/roc_curve.py +38 -38
  31. wandb/plot/scatter.py +27 -27
  32. wandb/proto/v3/wandb_internal_pb2.py +366 -385
  33. wandb/proto/v3/wandb_settings_pb2.py +2 -2
  34. wandb/proto/v4/wandb_internal_pb2.py +352 -356
  35. wandb/proto/v4/wandb_settings_pb2.py +2 -2
  36. wandb/proto/v5/wandb_internal_pb2.py +352 -356
  37. wandb/proto/v5/wandb_settings_pb2.py +2 -2
  38. wandb/proto/v6/wandb_internal_pb2.py +352 -356
  39. wandb/proto/v6/wandb_settings_pb2.py +2 -2
  40. wandb/sdk/artifacts/_generated/__init__.py +12 -1
  41. wandb/sdk/artifacts/_generated/input_types.py +20 -2
  42. wandb/sdk/artifacts/_generated/link_artifact.py +21 -0
  43. wandb/sdk/artifacts/_generated/operations.py +9 -0
  44. wandb/sdk/artifacts/_validators.py +40 -2
  45. wandb/sdk/artifacts/artifact.py +163 -21
  46. wandb/sdk/data_types/base_types/media.py +9 -7
  47. wandb/sdk/data_types/base_types/wb_value.py +6 -6
  48. wandb/sdk/data_types/saved_model.py +3 -3
  49. wandb/sdk/data_types/table.py +41 -41
  50. wandb/sdk/data_types/trace_tree.py +12 -12
  51. wandb/sdk/interface/interface.py +8 -19
  52. wandb/sdk/interface/interface_shared.py +7 -16
  53. wandb/sdk/internal/datastore.py +18 -18
  54. wandb/sdk/internal/handler.py +3 -5
  55. wandb/sdk/internal/internal_api.py +54 -0
  56. wandb/sdk/internal/sender.py +23 -3
  57. wandb/sdk/internal/sender_config.py +9 -0
  58. wandb/sdk/launch/_project_spec.py +3 -3
  59. wandb/sdk/launch/agent/agent.py +3 -3
  60. wandb/sdk/launch/agent/job_status_tracker.py +3 -1
  61. wandb/sdk/launch/utils.py +3 -3
  62. wandb/sdk/lib/console_capture.py +66 -19
  63. wandb/sdk/wandb_init.py +1 -2
  64. wandb/sdk/wandb_require.py +0 -1
  65. wandb/sdk/wandb_run.py +23 -113
  66. wandb/sdk/wandb_settings.py +234 -72
  67. {wandb-0.20.2rc20250616.dist-info → wandb-0.21.0.dist-info}/METADATA +1 -1
  68. {wandb-0.20.2rc20250616.dist-info → wandb-0.21.0.dist-info}/RECORD +71 -71
  69. wandb/sdk/wandb_metadata.py +0 -623
  70. {wandb-0.20.2rc20250616.dist-info → wandb-0.21.0.dist-info}/WHEEL +0 -0
  71. {wandb-0.20.2rc20250616.dist-info → wandb-0.21.0.dist-info}/entry_points.txt +0 -0
  72. {wandb-0.20.2rc20250616.dist-info → wandb-0.21.0.dist-info}/licenses/LICENSE +0 -0
wandb/plot/line_series.py CHANGED
@@ -20,18 +20,18 @@ def line_series(
20
20
  """Constructs a line series chart.
21
21
 
22
22
  Args:
23
- xs (Iterable[Iterable] | Iterable): Sequence of x values. If a singular
23
+ xs: Sequence of x values. If a singular
24
24
  array is provided, all y values are plotted against that x array. If
25
25
  an array of arrays is provided, each y value is plotted against the
26
26
  corresponding x array.
27
- ys (Iterable[Iterable]): Sequence of y values, where each iterable represents
27
+ ys: Sequence of y values, where each iterable represents
28
28
  a separate line series.
29
- keys (Iterable[str]): Sequence of keys for labeling each line series. If
29
+ keys: Sequence of keys for labeling each line series. If
30
30
  not provided, keys will be automatically generated as "line_1",
31
31
  "line_2", etc.
32
- title (str): Title of the chart.
33
- xname (str): Label for the x-axis.
34
- split_table (bool): Whether the table should be split into a separate section
32
+ title: Title of the chart.
33
+ xname: Label for the x-axis.
34
+ split_table: Whether the table should be split into a separate section
35
35
  in the W&B UI. If `True`, the table will be displayed in a section named
36
36
  "Custom Chart Tables". Default is `False`.
37
37
 
@@ -40,103 +40,100 @@ def line_series(
40
40
  chart, pass it to `wandb.log()`.
41
41
 
42
42
  Examples:
43
- 1. Logging a single x array where all y series are plotted against
44
- the same x values:
45
-
46
- ```
47
- import wandb
48
-
49
- # Initialize W&B run
50
- with wandb.init(project="line_series_example") as run:
51
- # x values shared across all y series
52
- xs = list(range(10))
53
-
54
- # Multiple y series to plot
55
- ys = [
56
- [i for i in range(10)], # y = x
57
- [i**2 for i in range(10)], # y = x^2
58
- [i**3 for i in range(10)], # y = x^3
59
- ]
60
-
61
- # Generate and log the line series chart
62
- line_series_chart = wandb.plot.line_series(
63
- xs,
64
- ys,
65
- title="title",
66
- xname="step",
67
- )
68
- run.log({"line-series-single-x": line_series_chart})
69
- ```
70
-
71
- In this example, a single `xs` series (shared x-values) is used for all
72
- `ys` series. This results in each y-series being plotted against the
73
- same x-values (0-9).
74
-
75
- 2. Logging multiple x arrays where each y series is plotted against
76
- its corresponding x array:
77
-
78
- ```python
79
- import wandb
80
-
81
- # Initialize W&B run
82
- with wandb.init(project="line_series_example") as run:
83
- # Separate x values for each y series
84
- xs = [
85
- [i for i in range(10)], # x for first series
86
- [2 * i for i in range(10)], # x for second series (stretched)
87
- [3 * i for i in range(10)], # x for third series (stretched more)
88
- ]
89
-
90
- # Corresponding y series
91
- ys = [
92
- [i for i in range(10)], # y = x
93
- [i**2 for i in range(10)], # y = x^2
94
- [i**3 for i in range(10)], # y = x^3
95
- ]
96
-
97
- # Generate and log the line series chart
98
- line_series_chart = wandb.plot.line_series(
99
- xs, ys, title="Multiple X Arrays Example", xname="Step"
100
- )
101
- run.log({"line-series-multiple-x": line_series_chart})
102
- ```
103
-
104
- In this example, each y series is plotted against its own unique x series.
105
- This allows for more flexibility when the x values are not uniform across
106
- the data series.
107
-
108
- 3. Customizing line labels using `keys`:
109
-
110
- ```python
111
- import wandb
112
-
113
- # Initialize W&B run
114
- with wandb.init(project="line_series_example") as run:
115
- xs = list(range(10)) # Single x array
116
- ys = [
117
- [i for i in range(10)], # y = x
118
- [i**2 for i in range(10)], # y = x^2
119
- [i**3 for i in range(10)], # y = x^3
120
- ]
121
-
122
- # Custom labels for each line
123
- keys = ["Linear", "Quadratic", "Cubic"]
124
-
125
- # Generate and log the line series chart
126
- line_series_chart = wandb.plot.line_series(
127
- xs,
128
- ys,
129
- keys=keys, # Custom keys (line labels)
130
- title="Custom Line Labels Example",
131
- xname="Step",
132
- )
133
- run.log({"line-series-custom-keys": line_series_chart})
134
- ```
135
-
136
- This example shows how to provide custom labels for the lines using
137
- the `keys` argument. The keys will appear in the legend as "Linear",
138
- "Quadratic", and "Cubic".
139
-
43
+ Logging a single x array where all y series are plotted against the same x values:
44
+
45
+ ```python
46
+ import wandb
47
+
48
+ # Initialize W&B run
49
+ with wandb.init(project="line_series_example") as run:
50
+ # x values shared across all y series
51
+ xs = list(range(10))
52
+
53
+ # Multiple y series to plot
54
+ ys = [
55
+ [i for i in range(10)], # y = x
56
+ [i**2 for i in range(10)], # y = x^2
57
+ [i**3 for i in range(10)], # y = x^3
58
+ ]
59
+
60
+ # Generate and log the line series chart
61
+ line_series_chart = wandb.plot.line_series(
62
+ xs,
63
+ ys,
64
+ title="title",
65
+ xname="step",
66
+ )
67
+ run.log({"line-series-single-x": line_series_chart})
68
+ ```
69
+
70
+ In this example, a single `xs` series (shared x-values) is used for all
71
+ `ys` series. This results in each y-series being plotted against the
72
+ same x-values (0-9).
73
+
74
+ Logging multiple x arrays where each y series is plotted against its corresponding x array:
75
+
76
+ ```python
77
+ import wandb
78
+
79
+ # Initialize W&B run
80
+ with wandb.init(project="line_series_example") as run:
81
+ # Separate x values for each y series
82
+ xs = [
83
+ [i for i in range(10)], # x for first series
84
+ [2 * i for i in range(10)], # x for second series (stretched)
85
+ [3 * i for i in range(10)], # x for third series (stretched more)
86
+ ]
87
+
88
+ # Corresponding y series
89
+ ys = [
90
+ [i for i in range(10)], # y = x
91
+ [i**2 for i in range(10)], # y = x^2
92
+ [i**3 for i in range(10)], # y = x^3
93
+ ]
94
+
95
+ # Generate and log the line series chart
96
+ line_series_chart = wandb.plot.line_series(
97
+ xs, ys, title="Multiple X Arrays Example", xname="Step"
98
+ )
99
+ run.log({"line-series-multiple-x": line_series_chart})
100
+ ```
101
+
102
+ In this example, each y series is plotted against its own unique x series.
103
+ This allows for more flexibility when the x values are not uniform across
104
+ the data series.
105
+
106
+ Customizing line labels using `keys`:
107
+
108
+ ```python
109
+ import wandb
110
+
111
+ # Initialize W&B run
112
+ with wandb.init(project="line_series_example") as run:
113
+ xs = list(range(10)) # Single x array
114
+ ys = [
115
+ [i for i in range(10)], # y = x
116
+ [i**2 for i in range(10)], # y = x^2
117
+ [i**3 for i in range(10)], # y = x^3
118
+ ]
119
+
120
+ # Custom labels for each line
121
+ keys = ["Linear", "Quadratic", "Cubic"]
122
+
123
+ # Generate and log the line series chart
124
+ line_series_chart = wandb.plot.line_series(
125
+ xs,
126
+ ys,
127
+ keys=keys, # Custom keys (line labels)
128
+ title="Custom Line Labels Example",
129
+ xname="Step",
130
+ )
131
+ run.log({"line-series-custom-keys": line_series_chart})
132
+ ```
133
+
134
+ This example shows how to provide custom labels for the lines using
135
+ the `keys` argument. The keys will appear in the legend as "Linear",
136
+ "Quadratic", and "Cubic".
140
137
  """
141
138
  # If xs is a single array, repeat it for each y in ys
142
139
  if not isinstance(xs[0], Iterable) or isinstance(xs[0], (str, bytes)):
wandb/plot/pr_curve.py CHANGED
@@ -34,24 +34,24 @@ def pr_curve(
34
34
  a model's performance.
35
35
 
36
36
  Args:
37
- y_true (Iterable): True binary labels. The shape should be (`num_samples`,).
38
- y_probas (Iterable): Predicted scores or probabilities for each class.
37
+ y_true: True binary labels. The shape should be (`num_samples`,).
38
+ y_probas: Predicted scores or probabilities for each class.
39
39
  These can be probability estimates, confidence scores, or non-thresholded
40
40
  decision values. The shape should be (`num_samples`, `num_classes`).
41
- labels (list[str] | None): Optional list of class names to replace
41
+ labels: Optional list of class names to replace
42
42
  numeric values in `y_true` for easier plot interpretation.
43
43
  For example, `labels = ['dog', 'cat', 'owl']` will replace 0 with
44
44
  'dog', 1 with 'cat', and 2 with 'owl' in the plot. If not provided,
45
45
  numeric values from `y_true` will be used.
46
- classes_to_plot (list | None): Optional list of unique class values from
46
+ classes_to_plot: Optional list of unique class values from
47
47
  y_true to be included in the plot. If not specified, all unique
48
48
  classes in y_true will be plotted.
49
- interp_size (int): Number of points to interpolate recall values. The
49
+ interp_size: Number of points to interpolate recall values. The
50
50
  recall values will be fixed to `interp_size` uniformly distributed
51
51
  points in the range [0, 1], and the precision will be interpolated
52
52
  accordingly.
53
- title (str): Title of the plot. Defaults to "Precision-Recall Curve".
54
- split_table (bool): Whether the table should be split into a separate section
53
+ title: Title of the plot. Defaults to "Precision-Recall Curve".
54
+ split_table: Whether the table should be split into a separate section
55
55
  in the W&B UI. If `True`, the table will be displayed in a section named
56
56
  "Custom Chart Tables". Default is `False`.
57
57
 
@@ -60,34 +60,35 @@ def pr_curve(
60
60
  chart, pass it to `wandb.log()`.
61
61
 
62
62
  Raises:
63
- wandb.Error: If numpy, pandas, or scikit-learn is not installed.
63
+ wandb.Error: If NumPy, pandas, or scikit-learn is not installed.
64
64
 
65
65
 
66
66
  Example:
67
- ```
68
- import wandb
69
-
70
- # Example for spam detection (binary classification)
71
- y_true = [0, 1, 1, 0, 1] # 0 = not spam, 1 = spam
72
- y_probas = [
73
- [0.9, 0.1], # Predicted probabilities for the first sample (not spam)
74
- [0.2, 0.8], # Second sample (spam), and so on
75
- [0.1, 0.9],
76
- [0.8, 0.2],
77
- [0.3, 0.7],
78
- ]
79
-
80
- labels = ["not spam", "spam"] # Optional class names for readability
81
-
82
- with wandb.init(project="spam-detection") as run:
83
- pr_curve = wandb.plot.pr_curve(
84
- y_true=y_true,
85
- y_probas=y_probas,
86
- labels=labels,
87
- title="Precision-Recall Curve for Spam Detection",
88
- )
89
- run.log({"pr-curve": pr_curve})
90
- ```
67
+
68
+ ```python
69
+ import wandb
70
+
71
+ # Example for spam detection (binary classification)
72
+ y_true = [0, 1, 1, 0, 1] # 0 = not spam, 1 = spam
73
+ y_probas = [
74
+ [0.9, 0.1], # Predicted probabilities for the first sample (not spam)
75
+ [0.2, 0.8], # Second sample (spam), and so on
76
+ [0.1, 0.9],
77
+ [0.8, 0.2],
78
+ [0.3, 0.7],
79
+ ]
80
+
81
+ labels = ["not spam", "spam"] # Optional class names for readability
82
+
83
+ with wandb.init(project="spam-detection") as run:
84
+ pr_curve = wandb.plot.pr_curve(
85
+ y_true=y_true,
86
+ y_probas=y_probas,
87
+ labels=labels,
88
+ title="Precision-Recall Curve for Spam Detection",
89
+ )
90
+ run.log({"pr-curve": pr_curve})
91
+ ```
91
92
  """
92
93
  np = util.get_module(
93
94
  "numpy",
wandb/plot/roc_curve.py CHANGED
@@ -23,20 +23,20 @@ def roc_curve(
23
23
  """Constructs Receiver Operating Characteristic (ROC) curve chart.
24
24
 
25
25
  Args:
26
- y_true (Sequence[numbers.Number]): The true class labels (ground truth)
26
+ y_true: The true class labels (ground truth)
27
27
  for the target variable. Shape should be (num_samples,).
28
- y_probas (Sequence[Sequence[float]]): The predicted probabilities or
28
+ y_probas: The predicted probabilities or
29
29
  decision scores for each class. Shape should be (num_samples, num_classes).
30
- labels (list[str]): Human-readable labels corresponding to the class
30
+ labels: Human-readable labels corresponding to the class
31
31
  indices in `y_true`. For example, if `labels=['dog', 'cat']`,
32
32
  class 0 will be displayed as 'dog' and class 1 as 'cat' in the plot.
33
33
  If None, the raw class indices from `y_true` will be used.
34
34
  Default is None.
35
- classes_to_plot (list[numbers.Number]): A subset of unique class labels
35
+ classes_to_plot: A subset of unique class labels
36
36
  to include in the ROC curve. If None, all classes in `y_true` will
37
37
  be plotted. Default is None.
38
- title (str): Title of the ROC curve plot. Default is "ROC Curve".
39
- split_table (bool): Whether the table should be split into a separate
38
+ title: Title of the ROC curve plot. Default is "ROC Curve".
39
+ split_table: Whether the table should be split into a separate
40
40
  section in the W&B UI. If `True`, the table will be displayed in a
41
41
  section named "Custom Chart Tables". Default is `False`.
42
42
 
@@ -48,38 +48,38 @@ def roc_curve(
48
48
  wandb.Error: If numpy, pandas, or scikit-learn are not found.
49
49
 
50
50
  Example:
51
- ```
52
- import numpy as np
53
- import wandb
54
-
55
- # Simulate a medical diagnosis classification problem with three diseases
56
- n_samples = 200
57
- n_classes = 3
58
-
59
- # True labels: assign "Diabetes", "Hypertension", or "Heart Disease" to
60
- # each sample
61
- disease_labels = ["Diabetes", "Hypertension", "Heart Disease"]
62
- # 0: Diabetes, 1: Hypertension, 2: Heart Disease
63
- y_true = np.random.choice([0, 1, 2], size=n_samples)
64
-
65
- # Predicted probabilities: simulate predictions, ensuring they sum to 1
66
- # for each sample
67
- y_probas = np.random.dirichlet(np.ones(n_classes), size=n_samples)
68
-
69
- # Specify classes to plot (plotting all three diseases)
70
- classes_to_plot = [0, 1, 2]
71
-
72
- # Initialize a W&B run and log a ROC curve plot for disease classification
73
- with wandb.init(project="medical_diagnosis") as run:
74
- roc_plot = wandb.plot.roc_curve(
75
- y_true=y_true,
76
- y_probas=y_probas,
77
- labels=disease_labels,
78
- classes_to_plot=classes_to_plot,
79
- title="ROC Curve for Disease Classification",
80
- )
81
- run.log({"roc-curve": roc_plot})
82
- ```
51
+ ```python
52
+ import numpy as np
53
+ import wandb
54
+
55
+ # Simulate a medical diagnosis classification problem with three diseases
56
+ n_samples = 200
57
+ n_classes = 3
58
+
59
+ # True labels: assign "Diabetes", "Hypertension", or "Heart Disease" to
60
+ # each sample
61
+ disease_labels = ["Diabetes", "Hypertension", "Heart Disease"]
62
+ # 0: Diabetes, 1: Hypertension, 2: Heart Disease
63
+ y_true = np.random.choice([0, 1, 2], size=n_samples)
64
+
65
+ # Predicted probabilities: simulate predictions, ensuring they sum to 1
66
+ # for each sample
67
+ y_probas = np.random.dirichlet(np.ones(n_classes), size=n_samples)
68
+
69
+ # Specify classes to plot (plotting all three diseases)
70
+ classes_to_plot = [0, 1, 2]
71
+
72
+ # Initialize a W&B run and log a ROC curve plot for disease classification
73
+ with wandb.init(project="medical_diagnosis") as run:
74
+ roc_plot = wandb.plot.roc_curve(
75
+ y_true=y_true,
76
+ y_probas=y_probas,
77
+ labels=disease_labels,
78
+ classes_to_plot=classes_to_plot,
79
+ title="ROC Curve for Disease Classification",
80
+ )
81
+ run.log({"roc-curve": roc_plot})
82
+ ```
83
83
  """
84
84
  np = util.get_module(
85
85
  "numpy",
wandb/plot/scatter.py CHANGED
@@ -19,11 +19,11 @@ def scatter(
19
19
  """Constructs a scatter plot from a wandb.Table of data.
20
20
 
21
21
  Args:
22
- table (wandb.Table): The W&B Table containing the data to visualize.
23
- x (str): The name of the column used for the x-axis.
24
- y (str): The name of the column used for the y-axis.
25
- title (str): The title of the scatter chart.
26
- split_table (bool): Whether the table should be split into a separate section
22
+ table: The W&B Table containing the data to visualize.
23
+ x: The name of the column used for the x-axis.
24
+ y: The name of the column used for the y-axis.
25
+ title: The title of the scatter chart.
26
+ split_table: Whether the table should be split into a separate section
27
27
  in the W&B UI. If `True`, the table will be displayed in a section named
28
28
  "Custom Chart Tables". Default is `False`.
29
29
 
@@ -31,31 +31,31 @@ def scatter(
31
31
  CustomChart: A custom chart object that can be logged to W&B. To log the
32
32
  chart, pass it to `wandb.log()`.
33
33
  Example:
34
- ```
35
- import math
36
- import random
37
- import wandb
34
+ ```python
35
+ import math
36
+ import random
37
+ import wandb
38
38
 
39
- # Simulate temperature variations at different altitudes over time
40
- data = [
41
- [i, random.uniform(-10, 20) - 0.005 * i + 5 * math.sin(i / 50)]
42
- for i in range(300)
43
- ]
39
+ # Simulate temperature variations at different altitudes over time
40
+ data = [
41
+ [i, random.uniform(-10, 20) - 0.005 * i + 5 * math.sin(i / 50)]
42
+ for i in range(300)
43
+ ]
44
44
 
45
- # Create W&B table with altitude (m) and temperature (°C) columns
46
- table = wandb.Table(data=data, columns=["altitude (m)", "temperature (°C)"])
45
+ # Create W&B table with altitude (m) and temperature (°C) columns
46
+ table = wandb.Table(data=data, columns=["altitude (m)", "temperature (°C)"])
47
47
 
48
- # Initialize W&B run and log the scatter plot
49
- with wandb.init(project="temperature-altitude-scatter") as run:
50
- # Create and log the scatter plot
51
- scatter_plot = wandb.plot.scatter(
52
- table=table,
53
- x="altitude (m)",
54
- y="temperature (°C)",
55
- title="Altitude vs Temperature",
56
- )
57
- run.log({"altitude-temperature-scatter": scatter_plot})
58
- ```
48
+ # Initialize W&B run and log the scatter plot
49
+ with wandb.init(project="temperature-altitude-scatter") as run:
50
+ # Create and log the scatter plot
51
+ scatter_plot = wandb.plot.scatter(
52
+ table=table,
53
+ x="altitude (m)",
54
+ y="temperature (°C)",
55
+ title="Altitude vs Temperature",
56
+ )
57
+ run.log({"altitude-temperature-scatter": scatter_plot})
58
+ ```
59
59
  """
60
60
  return plot_table(
61
61
  data_table=table,