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,50 +1,66 @@
|
|
1
|
+
import datetime
|
1
2
|
import io
|
2
3
|
import logging
|
3
|
-
import
|
4
|
-
from typing import Any, Dict, List, Optional,
|
4
|
+
from dataclasses import asdict, dataclass
|
5
|
+
from typing import Any, Dict, List, Optional, Sequence
|
5
6
|
|
7
|
+
import wandb
|
6
8
|
from wandb.sdk.data_types import trace_tree
|
7
|
-
|
8
|
-
if sys.version_info >= (3, 8):
|
9
|
-
from typing import Literal, Protocol
|
10
|
-
else:
|
11
|
-
from typing_extensions import Literal, Protocol
|
12
|
-
|
9
|
+
from wandb.sdk.integration_utils.auto_logging import Response
|
13
10
|
|
14
11
|
logger = logging.getLogger(__name__)
|
15
12
|
|
16
13
|
|
17
|
-
|
18
|
-
|
14
|
+
@dataclass
|
15
|
+
class UsageMetrics:
|
16
|
+
elapsed_time: float = None
|
17
|
+
prompt_tokens: int = None
|
18
|
+
completion_tokens: int = None
|
19
|
+
total_tokens: int = None
|
19
20
|
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
@dataclass
|
23
|
+
class Metrics:
|
24
|
+
usage: UsageMetrics = None
|
25
|
+
stats: wandb.Table = None
|
26
|
+
trace: trace_tree.WBTraceTree = None
|
24
27
|
|
25
|
-
def __getitem__(self, key: K) -> V:
|
26
|
-
... # pragma: no cover
|
27
28
|
|
28
|
-
|
29
|
-
... # pragma: no cover
|
29
|
+
usage_metric_keys = {f"usage/{k}" for k in asdict(UsageMetrics())}
|
30
30
|
|
31
31
|
|
32
32
|
class OpenAIRequestResponseResolver:
|
33
|
+
def __init__(self):
|
34
|
+
self.define_metrics_called = False
|
35
|
+
|
33
36
|
def __call__(
|
34
37
|
self,
|
35
|
-
|
36
|
-
|
38
|
+
args: Sequence[Any],
|
39
|
+
kwargs: Dict[str, Any],
|
40
|
+
response: Response,
|
41
|
+
start_time: float, # pass to comply with the protocol, but use response["created"] instead
|
37
42
|
time_elapsed: float,
|
38
|
-
) -> Optional[
|
43
|
+
) -> Optional[Dict[str, Any]]:
|
44
|
+
request = kwargs
|
45
|
+
|
46
|
+
if not self.define_metrics_called:
|
47
|
+
# define metrics on first call
|
48
|
+
for key in usage_metric_keys:
|
49
|
+
wandb.define_metric(key, step_metric="_timestamp")
|
50
|
+
self.define_metrics_called = True
|
51
|
+
|
39
52
|
try:
|
40
|
-
if response
|
53
|
+
if response.get("object") == "edit":
|
41
54
|
return self._resolve_edit(request, response, time_elapsed)
|
42
|
-
elif response
|
55
|
+
elif response.get("object") == "text_completion":
|
43
56
|
return self._resolve_completion(request, response, time_elapsed)
|
44
|
-
elif response
|
57
|
+
elif response.get("object") == "chat.completion":
|
45
58
|
return self._resolve_chat_completion(request, response, time_elapsed)
|
46
59
|
else:
|
47
|
-
|
60
|
+
# todo: properly treat failed requests
|
61
|
+
logger.info(
|
62
|
+
f"Unsupported OpenAI response object: {response.get('object')}"
|
63
|
+
)
|
48
64
|
except Exception as e:
|
49
65
|
logger.warning(f"Failed to resolve request/response: {e}")
|
50
66
|
return None
|
@@ -52,7 +68,7 @@ class OpenAIRequestResponseResolver:
|
|
52
68
|
@staticmethod
|
53
69
|
def results_to_trace_tree(
|
54
70
|
request: Dict[str, Any],
|
55
|
-
response:
|
71
|
+
response: Response,
|
56
72
|
results: List[trace_tree.Result],
|
57
73
|
time_elapsed: float,
|
58
74
|
) -> trace_tree.WBTraceTree:
|
@@ -82,9 +98,9 @@ class OpenAIRequestResponseResolver:
|
|
82
98
|
def _resolve_edit(
|
83
99
|
self,
|
84
100
|
request: Dict[str, Any],
|
85
|
-
response:
|
101
|
+
response: Response,
|
86
102
|
time_elapsed: float,
|
87
|
-
) ->
|
103
|
+
) -> Dict[str, Any]:
|
88
104
|
"""Resolves the request and response objects for `openai.Edit`."""
|
89
105
|
request_str = (
|
90
106
|
f"\n\n**Instruction**: {request['instruction']}\n\n"
|
@@ -94,7 +110,7 @@ class OpenAIRequestResponseResolver:
|
|
94
110
|
f"\n\n**Edited**: {choice['text']}\n" for choice in response["choices"]
|
95
111
|
]
|
96
112
|
|
97
|
-
return self.
|
113
|
+
return self._resolve_metrics(
|
98
114
|
request=request,
|
99
115
|
response=response,
|
100
116
|
request_str=request_str,
|
@@ -105,16 +121,16 @@ class OpenAIRequestResponseResolver:
|
|
105
121
|
def _resolve_completion(
|
106
122
|
self,
|
107
123
|
request: Dict[str, Any],
|
108
|
-
response:
|
124
|
+
response: Response,
|
109
125
|
time_elapsed: float,
|
110
|
-
) ->
|
126
|
+
) -> Dict[str, Any]:
|
111
127
|
"""Resolves the request and response objects for `openai.Completion`."""
|
112
128
|
request_str = f"\n\n**Prompt**: {request['prompt']}\n"
|
113
129
|
choices = [
|
114
130
|
f"\n\n**Completion**: {choice['text']}\n" for choice in response["choices"]
|
115
131
|
]
|
116
132
|
|
117
|
-
return self.
|
133
|
+
return self._resolve_metrics(
|
118
134
|
request=request,
|
119
135
|
response=response,
|
120
136
|
request_str=request_str,
|
@@ -125,9 +141,9 @@ class OpenAIRequestResponseResolver:
|
|
125
141
|
def _resolve_chat_completion(
|
126
142
|
self,
|
127
143
|
request: Dict[str, Any],
|
128
|
-
response:
|
144
|
+
response: Response,
|
129
145
|
time_elapsed: float,
|
130
|
-
) ->
|
146
|
+
) -> Dict[str, Any]:
|
131
147
|
"""Resolves the request and response objects for `openai.Completion`."""
|
132
148
|
prompt = io.StringIO()
|
133
149
|
for message in request["messages"]:
|
@@ -139,7 +155,7 @@ class OpenAIRequestResponseResolver:
|
|
139
155
|
for choice in response["choices"]
|
140
156
|
]
|
141
157
|
|
142
|
-
return self.
|
158
|
+
return self._resolve_metrics(
|
143
159
|
request=request,
|
144
160
|
response=response,
|
145
161
|
request_str=request_str,
|
@@ -147,14 +163,14 @@ class OpenAIRequestResponseResolver:
|
|
147
163
|
time_elapsed=time_elapsed,
|
148
164
|
)
|
149
165
|
|
150
|
-
def
|
166
|
+
def _resolve_metrics(
|
151
167
|
self,
|
152
168
|
request: Dict[str, Any],
|
153
|
-
response:
|
169
|
+
response: Response,
|
154
170
|
request_str: str,
|
155
171
|
choices: List[str],
|
156
172
|
time_elapsed: float,
|
157
|
-
) ->
|
173
|
+
) -> Dict[str, Any]:
|
158
174
|
"""Resolves the request and response objects for `openai.Completion`."""
|
159
175
|
results = [
|
160
176
|
trace_tree.Result(
|
@@ -163,5 +179,62 @@ class OpenAIRequestResponseResolver:
|
|
163
179
|
)
|
164
180
|
for choice in choices
|
165
181
|
]
|
182
|
+
metrics = self._get_metrics_to_log(request, response, results, time_elapsed)
|
183
|
+
return self._convert_metrics_to_dict(metrics)
|
184
|
+
|
185
|
+
@staticmethod
|
186
|
+
def _get_usage_metrics(response: Response, time_elapsed: float) -> UsageMetrics:
|
187
|
+
"""Gets the usage stats from the response object."""
|
188
|
+
if response.get("usage"):
|
189
|
+
usage_stats = UsageMetrics(**response["usage"])
|
190
|
+
else:
|
191
|
+
usage_stats = UsageMetrics()
|
192
|
+
usage_stats.elapsed_time = time_elapsed
|
193
|
+
return usage_stats
|
194
|
+
|
195
|
+
def _get_metrics_to_log(
|
196
|
+
self,
|
197
|
+
request: Dict[str, Any],
|
198
|
+
response: Response,
|
199
|
+
results: List[Any],
|
200
|
+
time_elapsed: float,
|
201
|
+
) -> Metrics:
|
202
|
+
model = response.get("model") or request.get("model")
|
203
|
+
usage_metrics = self._get_usage_metrics(response, time_elapsed)
|
204
|
+
|
205
|
+
usage = []
|
206
|
+
for result in results:
|
207
|
+
row = {
|
208
|
+
"request": result.inputs["request"],
|
209
|
+
"response": result.outputs["response"],
|
210
|
+
"model": model,
|
211
|
+
"start_time": datetime.datetime.fromtimestamp(response["created"]),
|
212
|
+
"end_time": datetime.datetime.fromtimestamp(
|
213
|
+
response["created"] + time_elapsed
|
214
|
+
),
|
215
|
+
"request_id": response.get("id", None),
|
216
|
+
"api_type": response.get("api_type", "openai"),
|
217
|
+
"session_id": wandb.run.id,
|
218
|
+
}
|
219
|
+
row.update(asdict(usage_metrics))
|
220
|
+
usage.append(row)
|
221
|
+
usage_table = wandb.Table(
|
222
|
+
columns=list(usage[0].keys()),
|
223
|
+
data=[(item.values()) for item in usage],
|
224
|
+
)
|
225
|
+
|
166
226
|
trace = self.results_to_trace_tree(request, response, results, time_elapsed)
|
167
|
-
|
227
|
+
|
228
|
+
metrics = Metrics(stats=usage_table, trace=trace, usage=usage_metrics)
|
229
|
+
return metrics
|
230
|
+
|
231
|
+
@staticmethod
|
232
|
+
def _convert_metrics_to_dict(metrics: Metrics) -> Dict[str, Any]:
|
233
|
+
"""Converts metrics to a dict."""
|
234
|
+
metrics_dict = {
|
235
|
+
"stats": metrics.stats,
|
236
|
+
"trace": metrics.trace,
|
237
|
+
}
|
238
|
+
usage_stats = {f"usage/{k}": v for k, v in asdict(metrics.usage).items()}
|
239
|
+
metrics_dict.update(usage_stats)
|
240
|
+
return metrics_dict
|
@@ -20,9 +20,9 @@ def parse_sm_config() -> Dict[str, Any]:
|
|
20
20
|
# Hyperparameter searches quote configs...
|
21
21
|
for k, v in json.load(open(sm_files.SM_PARAM_CONFIG)).items():
|
22
22
|
cast = v.strip('"')
|
23
|
-
if re.match(r"
|
23
|
+
if re.match(r"^-?[\d]+$", cast):
|
24
24
|
cast = int(cast)
|
25
|
-
elif re.match(r"
|
25
|
+
elif re.match(r"^-?[.\d]+$", cast):
|
26
26
|
cast = float(cast)
|
27
27
|
conf[k] = cast
|
28
28
|
return conf
|
@@ -9,7 +9,7 @@ from wandb.sdk.lib import telemetry
|
|
9
9
|
from wandb.viz import custom_chart
|
10
10
|
|
11
11
|
if TYPE_CHECKING:
|
12
|
-
import numpy as np
|
12
|
+
import numpy as np
|
13
13
|
|
14
14
|
from wandb.sdk.internal.tb_watcher import TBHistory
|
15
15
|
|
@@ -42,7 +42,7 @@ def make_ndarray(tensor: Any) -> Optional["np.ndarray"]:
|
|
42
42
|
if res.dtype == "object":
|
43
43
|
return None
|
44
44
|
else:
|
45
|
-
return res
|
45
|
+
return res # type: ignore
|
46
46
|
else:
|
47
47
|
wandb.termwarn(
|
48
48
|
"Can't convert tensor summary, upgrade tensorboard with `pip"
|
@@ -167,7 +167,7 @@ def tf_summary_to_dict( # noqa: C901
|
|
167
167
|
try:
|
168
168
|
# TODO: we should just re-bin if there are too many buckets
|
169
169
|
values[namespaced_tag(value.tag, namespace)] = wandb.Histogram(
|
170
|
-
np_histogram=(counts, bins)
|
170
|
+
np_histogram=(counts, bins) # type: ignore
|
171
171
|
)
|
172
172
|
except ValueError:
|
173
173
|
wandb.termwarn(
|
@@ -238,7 +238,7 @@ def tf_summary_to_dict( # noqa: C901
|
|
238
238
|
)
|
239
239
|
try:
|
240
240
|
# TODO: we should just re-bin if there are too many buckets
|
241
|
-
values[tag] = wandb.Histogram(np_histogram=np_histogram)
|
241
|
+
values[tag] = wandb.Histogram(np_histogram=np_histogram) # type: ignore
|
242
242
|
except ValueError:
|
243
243
|
wandb.termwarn(
|
244
244
|
f"Not logging key {tag!r}. "
|
wandb/old/settings.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import configparser
|
2
2
|
import os
|
3
|
+
import tempfile
|
3
4
|
from typing import Any, Optional
|
4
5
|
|
5
6
|
from wandb import env
|
@@ -42,6 +43,20 @@ class Settings:
|
|
42
43
|
else:
|
43
44
|
raise
|
44
45
|
|
46
|
+
def _persist_settings(self, settings, settings_path) -> None:
|
47
|
+
# write a temp file and then move it to the settings path
|
48
|
+
target_dir = os.path.dirname(settings_path)
|
49
|
+
with tempfile.NamedTemporaryFile(
|
50
|
+
"w+", suffix=".tmp", delete=False, dir=target_dir
|
51
|
+
) as fp:
|
52
|
+
path = os.path.abspath(fp.name)
|
53
|
+
with open(path, "w+") as f:
|
54
|
+
settings.write(f)
|
55
|
+
try:
|
56
|
+
os.replace(path, settings_path)
|
57
|
+
except AttributeError:
|
58
|
+
os.rename(path, settings_path)
|
59
|
+
|
45
60
|
def set(self, section, key, value, globally=False, persist=False) -> None:
|
46
61
|
"""Persist settings to disk if persist = True"""
|
47
62
|
|
@@ -49,9 +64,9 @@ class Settings:
|
|
49
64
|
if not settings.has_section(section):
|
50
65
|
Settings._safe_add_section(settings, Settings.DEFAULT_SECTION)
|
51
66
|
settings.set(section, key, str(value))
|
67
|
+
|
52
68
|
if persist:
|
53
|
-
|
54
|
-
settings.write(f)
|
69
|
+
self._persist_settings(settings, settings_path)
|
55
70
|
|
56
71
|
if globally:
|
57
72
|
write_setting(self._global_settings, Settings._global_path(), persist)
|
@@ -64,8 +79,7 @@ class Settings:
|
|
64
79
|
def clear_setting(settings, settings_path, persist):
|
65
80
|
settings.remove_option(section, key)
|
66
81
|
if persist:
|
67
|
-
|
68
|
-
settings.write(f)
|
82
|
+
self._persist_settings(settings, settings_path)
|
69
83
|
|
70
84
|
if globally:
|
71
85
|
clear_setting(self._global_settings, Settings._global_path(), persist)
|
@@ -106,9 +120,12 @@ class Settings:
|
|
106
120
|
|
107
121
|
@staticmethod
|
108
122
|
def _global_path():
|
109
|
-
|
110
|
-
|
111
|
-
)
|
123
|
+
default_config_dir = os.path.join(os.path.expanduser("~"), ".config", "wandb")
|
124
|
+
# if not writable, fall back to a temp directory
|
125
|
+
if not os.access(default_config_dir, os.W_OK):
|
126
|
+
default_config_dir = os.path.join(tempfile.gettempdir(), ".config", "wandb")
|
127
|
+
|
128
|
+
config_dir = os.environ.get(env.CONFIG_DIR, default_config_dir)
|
112
129
|
os.makedirs(config_dir, exist_ok=True)
|
113
130
|
return os.path.join(config_dir, "settings")
|
114
131
|
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
15
15
|
from wandb.proto import wandb_base_pb2 as wandb_dot_proto_dot_wandb__base__pb2
|
16
16
|
|
17
17
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\xb3\x03\n\x0fTelemetryRecord\x12-\n\x0cimports_init\x18\x01 \x01(\x0b\x32\x17.wandb_internal.Imports\x12/\n\x0eimports_finish\x18\x02 \x01(\x0b\x32\x17.wandb_internal.Imports\x12(\n\x07\x66\x65\x61ture\x18\x03 \x01(\x0b\x32\x17.wandb_internal.Feature\x12\x16\n\x0epython_version\x18\x04 \x01(\t\x12\x13\n\x0b\x63li_version\x18\x05 \x01(\t\x12\x1b\n\x13huggingface_version\x18\x06 \x01(\t\x12 \n\x03\x65nv\x18\x08 \x01(\x0b\x32\x13.wandb_internal.Env\x12%\n\x05label\x18\t \x01(\x0b\x32\x16.wandb_internal.Labels\x12.\n\ndeprecated\x18\n \x01(\x0b\x32\x1a.wandb_internal.Deprecated\x12&\n\x06issues\x18\x0b \x01(\x0b\x32\x16.wandb_internal.Issues\x12+\n\x05_info\x18\xc8\x01 \x01(\x0b\x32\x1b.wandb_internal._RecordInfo\"\x11\n\x0fTelemetryResult\"\
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\xb3\x03\n\x0fTelemetryRecord\x12-\n\x0cimports_init\x18\x01 \x01(\x0b\x32\x17.wandb_internal.Imports\x12/\n\x0eimports_finish\x18\x02 \x01(\x0b\x32\x17.wandb_internal.Imports\x12(\n\x07\x66\x65\x61ture\x18\x03 \x01(\x0b\x32\x17.wandb_internal.Feature\x12\x16\n\x0epython_version\x18\x04 \x01(\t\x12\x13\n\x0b\x63li_version\x18\x05 \x01(\t\x12\x1b\n\x13huggingface_version\x18\x06 \x01(\t\x12 \n\x03\x65nv\x18\x08 \x01(\x0b\x32\x13.wandb_internal.Env\x12%\n\x05label\x18\t \x01(\x0b\x32\x16.wandb_internal.Labels\x12.\n\ndeprecated\x18\n \x01(\x0b\x32\x1a.wandb_internal.Deprecated\x12&\n\x06issues\x18\x0b \x01(\x0b\x32\x16.wandb_internal.Issues\x12+\n\x05_info\x18\xc8\x01 \x01(\x0b\x32\x1b.wandb_internal._RecordInfo\"\x11\n\x0fTelemetryResult\"\x86\r\n\x07Imports\x12\r\n\x05torch\x18\x01 \x01(\x08\x12\r\n\x05keras\x18\x02 \x01(\x08\x12\x12\n\ntensorflow\x18\x03 \x01(\x08\x12\x0e\n\x06\x66\x61stai\x18\x04 \x01(\x08\x12\x0f\n\x07sklearn\x18\x05 \x01(\x08\x12\x0f\n\x07xgboost\x18\x06 \x01(\x08\x12\x10\n\x08\x63\x61tboost\x18\x07 \x01(\x08\x12\x10\n\x08lightgbm\x18\x08 \x01(\x08\x12\x19\n\x11pytorch_lightning\x18\t \x01(\x08\x12\x0e\n\x06ignite\x18\n \x01(\x08\x12\x14\n\x0ctransformers\x18\x0b \x01(\x08\x12\x0b\n\x03jax\x18\x0c \x01(\x08\x12\x10\n\x08metaflow\x18\r \x01(\x08\x12\x10\n\x08\x61llennlp\x18\x0e \x01(\x08\x12\x11\n\tautogluon\x18\x0f \x01(\x08\x12\x11\n\tautokeras\x18\x10 \x01(\x08\x12\x10\n\x08\x63\x61talyst\x18\x12 \x01(\x08\x12\x10\n\x08\x64\x65\x65pchem\x18\x15 \x01(\x08\x12\x0f\n\x07\x64\x65\x65pctr\x18\x16 \x01(\x08\x12\x0f\n\x07pycaret\x18\x1c \x01(\x08\x12\x14\n\x0cpytorchvideo\x18\x1d \x01(\x08\x12\x0b\n\x03ray\x18\x1e \x01(\x08\x12\x1a\n\x12simpletransformers\x18\x1f \x01(\x08\x12\x0e\n\x06skorch\x18 \x01(\x08\x12\r\n\x05spacy\x18! \x01(\x08\x12\r\n\x05\x66lash\x18\" \x01(\x08\x12\x0e\n\x06optuna\x18# \x01(\x08\x12\x0f\n\x07recbole\x18$ \x01(\x08\x12\x0c\n\x04mmcv\x18% \x01(\x08\x12\r\n\x05mmdet\x18& \x01(\x08\x12\x11\n\ttorchdrug\x18\' \x01(\x08\x12\x11\n\ttorchtext\x18( \x01(\x08\x12\x13\n\x0btorchvision\x18) \x01(\x08\x12\r\n\x05\x65legy\x18* \x01(\x08\x12\x12\n\ndetectron2\x18+ \x01(\x08\x12\r\n\x05\x66lair\x18, \x01(\x08\x12\x0c\n\x04\x66lax\x18- \x01(\x08\x12\x0c\n\x04syft\x18. \x01(\x08\x12\x0b\n\x03TTS\x18/ \x01(\x08\x12\r\n\x05monai\x18\x30 \x01(\x08\x12\x17\n\x0fhuggingface_hub\x18\x31 \x01(\x08\x12\r\n\x05hydra\x18\x32 \x01(\x08\x12\x10\n\x08\x64\x61tasets\x18\x33 \x01(\x08\x12\x0e\n\x06sacred\x18\x34 \x01(\x08\x12\x0e\n\x06joblib\x18\x35 \x01(\x08\x12\x0c\n\x04\x64\x61sk\x18\x36 \x01(\x08\x12\x0f\n\x07\x61syncio\x18\x37 \x01(\x08\x12\x11\n\tpaddleocr\x18\x38 \x01(\x08\x12\r\n\x05ppdet\x18\x39 \x01(\x08\x12\x11\n\tpaddleseg\x18: \x01(\x08\x12\x11\n\tpaddlenlp\x18; \x01(\x08\x12\r\n\x05mmseg\x18< \x01(\x08\x12\r\n\x05mmocr\x18= \x01(\x08\x12\r\n\x05mmcls\x18> \x01(\x08\x12\x0c\n\x04timm\x18? \x01(\x08\x12\x0f\n\x07\x66\x61irseq\x18@ \x01(\x08\x12\x12\n\ndeepchecks\x18\x41 \x01(\x08\x12\x10\n\x08\x63omposer\x18\x42 \x01(\x08\x12\x10\n\x08sparseml\x18\x43 \x01(\x08\x12\x10\n\x08\x61nomalib\x18\x44 \x01(\x08\x12\r\n\x05zenml\x18\x45 \x01(\x08\x12\x12\n\ncolossalai\x18\x46 \x01(\x08\x12\x12\n\naccelerate\x18G \x01(\x08\x12\x0e\n\x06merlin\x18H \x01(\x08\x12\x0f\n\x07nanodet\x18I \x01(\x08\x12#\n\x1bsegmentation_models_pytorch\x18J \x01(\x08\x12\x1d\n\x15sentence_transformers\x18K \x01(\x08\x12\x0b\n\x03\x64gl\x18L \x01(\x08\x12\x17\n\x0ftorch_geometric\x18M \x01(\x08\x12\x0c\n\x04jina\x18N \x01(\x08\x12\x0e\n\x06kornia\x18O \x01(\x08\x12\x16\n\x0e\x61lbumentations\x18P \x01(\x08\x12\x10\n\x08keras_cv\x18Q \x01(\x08\x12\x10\n\x08mmengine\x18R \x01(\x08\x12\x11\n\tdiffusers\x18S \x01(\x08\x12\x0b\n\x03trl\x18T \x01(\x08\x12\x0c\n\x04trlx\x18U \x01(\x08\x12\x11\n\tlangchain\x18V \x01(\x08\x12\x13\n\x0bllama_index\x18W \x01(\x08\x12\x15\n\rstability_sdk\x18X \x01(\x08\x12\x0f\n\x07prefect\x18Y \x01(\x08\x12\x13\n\x0bprefect_ray\x18Z \x01(\x08\x12\x10\n\x08pinecone\x18[ \x01(\x08\x12\x10\n\x08\x63hromadb\x18\\ \x01(\x08\x12\x10\n\x08weaviate\x18] \x01(\x08\x12\x13\n\x0bpromptlayer\x18^ \x01(\x08\x12\x0e\n\x06openai\x18_ \x01(\x08\x12\x0e\n\x06\x63ohere\x18` \x01(\x08\x12\x11\n\tanthropic\x18\x61 \x01(\x08\x12\x0c\n\x04peft\x18\x62 \x01(\x08\x12\x0f\n\x07optimum\x18\x63 \x01(\x08\x12\x10\n\x08\x65valuate\x18\x64 \x01(\x08\x12\x10\n\x08langflow\x18\x65 \x01(\x08\"\x9e\n\n\x07\x46\x65\x61ture\x12\r\n\x05watch\x18\x01 \x01(\x08\x12\x0e\n\x06\x66inish\x18\x02 \x01(\x08\x12\x0c\n\x04save\x18\x03 \x01(\x08\x12\x0f\n\x07offline\x18\x04 \x01(\x08\x12\x0f\n\x07resumed\x18\x05 \x01(\x08\x12\x0c\n\x04grpc\x18\x06 \x01(\x08\x12\x0e\n\x06metric\x18\x07 \x01(\x08\x12\r\n\x05keras\x18\x08 \x01(\x08\x12\x11\n\tsagemaker\x18\t \x01(\x08\x12\x1c\n\x14\x61rtifact_incremental\x18\n \x01(\x08\x12\x10\n\x08metaflow\x18\x0b \x01(\x08\x12\x0f\n\x07prodigy\x18\x0c \x01(\x08\x12\x15\n\rset_init_name\x18\r \x01(\x08\x12\x13\n\x0bset_init_id\x18\x0e \x01(\x08\x12\x15\n\rset_init_tags\x18\x0f \x01(\x08\x12\x17\n\x0fset_init_config\x18\x10 \x01(\x08\x12\x14\n\x0cset_run_name\x18\x11 \x01(\x08\x12\x14\n\x0cset_run_tags\x18\x12 \x01(\x08\x12\x17\n\x0fset_config_item\x18\x13 \x01(\x08\x12\x0e\n\x06launch\x18\x14 \x01(\x08\x12\x1c\n\x14torch_profiler_trace\x18\x15 \x01(\x08\x12\x0b\n\x03sb3\x18\x16 \x01(\x08\x12\x0f\n\x07service\x18\x17 \x01(\x08\x12\x17\n\x0finit_return_run\x18\x18 \x01(\x08\x12\x1f\n\x17lightgbm_wandb_callback\x18\x19 \x01(\x08\x12\x1c\n\x14lightgbm_log_summary\x18\x1a \x01(\x08\x12\x1f\n\x17\x63\x61tboost_wandb_callback\x18\x1b \x01(\x08\x12\x1c\n\x14\x63\x61tboost_log_summary\x18\x1c \x01(\x08\x12\x17\n\x0ftensorboard_log\x18\x1d \x01(\x08\x12\x16\n\x0e\x65stimator_hook\x18\x1e \x01(\x08\x12\x1e\n\x16xgboost_wandb_callback\x18\x1f \x01(\x08\x12\"\n\x1axgboost_old_wandb_callback\x18 \x01(\x08\x12\x0e\n\x06\x61ttach\x18! \x01(\x08\x12\x19\n\x11tensorboard_patch\x18\" \x01(\x08\x12\x18\n\x10tensorboard_sync\x18# \x01(\x08\x12\x15\n\rkfp_wandb_log\x18$ \x01(\x08\x12\x1b\n\x13maybe_run_overwrite\x18% \x01(\x08\x12\x1c\n\x14keras_metrics_logger\x18& \x01(\x08\x12\x1e\n\x16keras_model_checkpoint\x18\' \x01(\x08\x12!\n\x19keras_wandb_eval_callback\x18( \x01(\x08\x12\x1d\n\x15\x66low_control_overflow\x18) \x01(\x08\x12\x0c\n\x04sync\x18* \x01(\x08\x12\x1d\n\x15\x66low_control_disabled\x18+ \x01(\x08\x12\x1b\n\x13\x66low_control_custom\x18, \x01(\x08\x12\x18\n\x10service_disabled\x18- \x01(\x08\x12\x14\n\x0copen_metrics\x18. \x01(\x08\x12\x1a\n\x12ultralytics_yolov8\x18/ \x01(\x08\x12\x17\n\x0fimporter_mlflow\x18\x30 \x01(\x08\x12\x15\n\rsync_tfevents\x18\x31 \x01(\x08\x12\x15\n\rasync_uploads\x18\x32 \x01(\x08\x12\x16\n\x0eopenai_autolog\x18\x33 \x01(\x08\x12\x18\n\x10langchain_tracer\x18\x34 \x01(\x08\x12\x16\n\x0e\x63ohere_autolog\x18\x35 \x01(\x08\x12\x1b\n\x13hf_pipeline_autolog\x18\x36 \x01(\x08\x12\r\n\x05nexus\x18\x37 \x01(\x08\"\x96\x02\n\x03\x45nv\x12\x0f\n\x07jupyter\x18\x01 \x01(\x08\x12\x0e\n\x06kaggle\x18\x02 \x01(\x08\x12\x0f\n\x07windows\x18\x03 \x01(\x08\x12\x0e\n\x06m1_gpu\x18\x04 \x01(\x08\x12\x13\n\x0bstart_spawn\x18\x05 \x01(\x08\x12\x12\n\nstart_fork\x18\x06 \x01(\x08\x12\x18\n\x10start_forkserver\x18\x07 \x01(\x08\x12\x14\n\x0cstart_thread\x18\x08 \x01(\x08\x12\x10\n\x08maybe_mp\x18\t \x01(\x08\x12\x10\n\x08trainium\x18\n \x01(\x08\x12\x0b\n\x03pex\x18\x0b \x01(\x08\x12\r\n\x05\x63olab\x18\x0c \x01(\x08\x12\x0f\n\x07ipython\x18\r \x01(\x08\x12\x12\n\naws_lambda\x18\x0e \x01(\x08\x12\x0f\n\x07\x61md_gpu\x18\x0f \x01(\x08\"H\n\x06Labels\x12\x13\n\x0b\x63ode_string\x18\x01 \x01(\t\x12\x13\n\x0brepo_string\x18\x02 \x01(\t\x12\x14\n\x0c\x63ode_version\x18\x03 \x01(\t\"\x9a\x02\n\nDeprecated\x12!\n\x19keras_callback__data_type\x18\x01 \x01(\x08\x12\x11\n\trun__mode\x18\x02 \x01(\x08\x12\x19\n\x11run__save_no_args\x18\x03 \x01(\x08\x12\x11\n\trun__join\x18\x04 \x01(\x08\x12\r\n\x05plots\x18\x05 \x01(\x08\x12\x15\n\rrun__log_sync\x18\x06 \x01(\x08\x12!\n\x19init__config_include_keys\x18\x07 \x01(\x08\x12!\n\x19init__config_exclude_keys\x18\x08 \x01(\x08\x12\"\n\x1akeras_callback__save_model\x18\t \x01(\x08\x12\x18\n\x10langchain_tracer\x18\n \x01(\x08\"|\n\x06Issues\x12%\n\x1dsettings__validation_warnings\x18\x01 \x01(\x08\x12!\n\x19settings__unexpected_args\x18\x02 \x01(\x08\x12(\n settings__preprocessing_warnings\x18\x03 \x01(\x08\x62\x06proto3')
|
19
19
|
|
20
20
|
|
21
21
|
|
@@ -91,15 +91,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
91
91
|
_TELEMETRYRESULT._serialized_start=521
|
92
92
|
_TELEMETRYRESULT._serialized_end=538
|
93
93
|
_IMPORTS._serialized_start=541
|
94
|
-
_IMPORTS._serialized_end=
|
95
|
-
_FEATURE._serialized_start=
|
96
|
-
_FEATURE._serialized_end=
|
97
|
-
_ENV._serialized_start=
|
98
|
-
_ENV._serialized_end=
|
99
|
-
_LABELS._serialized_start=
|
100
|
-
_LABELS._serialized_end=
|
101
|
-
_DEPRECATED._serialized_start=
|
102
|
-
_DEPRECATED._serialized_end=
|
103
|
-
_ISSUES._serialized_start=
|
104
|
-
_ISSUES._serialized_end=
|
94
|
+
_IMPORTS._serialized_end=2211
|
95
|
+
_FEATURE._serialized_start=2214
|
96
|
+
_FEATURE._serialized_end=3524
|
97
|
+
_ENV._serialized_start=3527
|
98
|
+
_ENV._serialized_end=3805
|
99
|
+
_LABELS._serialized_start=3807
|
100
|
+
_LABELS._serialized_end=3879
|
101
|
+
_DEPRECATED._serialized_start=3882
|
102
|
+
_DEPRECATED._serialized_end=4164
|
103
|
+
_ISSUES._serialized_start=4166
|
104
|
+
_ISSUES._serialized_end=4290
|
105
105
|
# @@protoc_insertion_point(module_scope)
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
14
14
|
from wandb.proto import wandb_base_pb2 as wandb_dot_proto_dot_wandb__base__pb2
|
15
15
|
|
16
16
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\xb3\x03\n\x0fTelemetryRecord\x12-\n\x0cimports_init\x18\x01 \x01(\x0b\x32\x17.wandb_internal.Imports\x12/\n\x0eimports_finish\x18\x02 \x01(\x0b\x32\x17.wandb_internal.Imports\x12(\n\x07\x66\x65\x61ture\x18\x03 \x01(\x0b\x32\x17.wandb_internal.Feature\x12\x16\n\x0epython_version\x18\x04 \x01(\t\x12\x13\n\x0b\x63li_version\x18\x05 \x01(\t\x12\x1b\n\x13huggingface_version\x18\x06 \x01(\t\x12 \n\x03\x65nv\x18\x08 \x01(\x0b\x32\x13.wandb_internal.Env\x12%\n\x05label\x18\t \x01(\x0b\x32\x16.wandb_internal.Labels\x12.\n\ndeprecated\x18\n \x01(\x0b\x32\x1a.wandb_internal.Deprecated\x12&\n\x06issues\x18\x0b \x01(\x0b\x32\x16.wandb_internal.Issues\x12+\n\x05_info\x18\xc8\x01 \x01(\x0b\x32\x1b.wandb_internal._RecordInfo\"\x11\n\x0fTelemetryResult\"\
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\xb3\x03\n\x0fTelemetryRecord\x12-\n\x0cimports_init\x18\x01 \x01(\x0b\x32\x17.wandb_internal.Imports\x12/\n\x0eimports_finish\x18\x02 \x01(\x0b\x32\x17.wandb_internal.Imports\x12(\n\x07\x66\x65\x61ture\x18\x03 \x01(\x0b\x32\x17.wandb_internal.Feature\x12\x16\n\x0epython_version\x18\x04 \x01(\t\x12\x13\n\x0b\x63li_version\x18\x05 \x01(\t\x12\x1b\n\x13huggingface_version\x18\x06 \x01(\t\x12 \n\x03\x65nv\x18\x08 \x01(\x0b\x32\x13.wandb_internal.Env\x12%\n\x05label\x18\t \x01(\x0b\x32\x16.wandb_internal.Labels\x12.\n\ndeprecated\x18\n \x01(\x0b\x32\x1a.wandb_internal.Deprecated\x12&\n\x06issues\x18\x0b \x01(\x0b\x32\x16.wandb_internal.Issues\x12+\n\x05_info\x18\xc8\x01 \x01(\x0b\x32\x1b.wandb_internal._RecordInfo\"\x11\n\x0fTelemetryResult\"\x86\r\n\x07Imports\x12\r\n\x05torch\x18\x01 \x01(\x08\x12\r\n\x05keras\x18\x02 \x01(\x08\x12\x12\n\ntensorflow\x18\x03 \x01(\x08\x12\x0e\n\x06\x66\x61stai\x18\x04 \x01(\x08\x12\x0f\n\x07sklearn\x18\x05 \x01(\x08\x12\x0f\n\x07xgboost\x18\x06 \x01(\x08\x12\x10\n\x08\x63\x61tboost\x18\x07 \x01(\x08\x12\x10\n\x08lightgbm\x18\x08 \x01(\x08\x12\x19\n\x11pytorch_lightning\x18\t \x01(\x08\x12\x0e\n\x06ignite\x18\n \x01(\x08\x12\x14\n\x0ctransformers\x18\x0b \x01(\x08\x12\x0b\n\x03jax\x18\x0c \x01(\x08\x12\x10\n\x08metaflow\x18\r \x01(\x08\x12\x10\n\x08\x61llennlp\x18\x0e \x01(\x08\x12\x11\n\tautogluon\x18\x0f \x01(\x08\x12\x11\n\tautokeras\x18\x10 \x01(\x08\x12\x10\n\x08\x63\x61talyst\x18\x12 \x01(\x08\x12\x10\n\x08\x64\x65\x65pchem\x18\x15 \x01(\x08\x12\x0f\n\x07\x64\x65\x65pctr\x18\x16 \x01(\x08\x12\x0f\n\x07pycaret\x18\x1c \x01(\x08\x12\x14\n\x0cpytorchvideo\x18\x1d \x01(\x08\x12\x0b\n\x03ray\x18\x1e \x01(\x08\x12\x1a\n\x12simpletransformers\x18\x1f \x01(\x08\x12\x0e\n\x06skorch\x18 \x01(\x08\x12\r\n\x05spacy\x18! \x01(\x08\x12\r\n\x05\x66lash\x18\" \x01(\x08\x12\x0e\n\x06optuna\x18# \x01(\x08\x12\x0f\n\x07recbole\x18$ \x01(\x08\x12\x0c\n\x04mmcv\x18% \x01(\x08\x12\r\n\x05mmdet\x18& \x01(\x08\x12\x11\n\ttorchdrug\x18\' \x01(\x08\x12\x11\n\ttorchtext\x18( \x01(\x08\x12\x13\n\x0btorchvision\x18) \x01(\x08\x12\r\n\x05\x65legy\x18* \x01(\x08\x12\x12\n\ndetectron2\x18+ \x01(\x08\x12\r\n\x05\x66lair\x18, \x01(\x08\x12\x0c\n\x04\x66lax\x18- \x01(\x08\x12\x0c\n\x04syft\x18. \x01(\x08\x12\x0b\n\x03TTS\x18/ \x01(\x08\x12\r\n\x05monai\x18\x30 \x01(\x08\x12\x17\n\x0fhuggingface_hub\x18\x31 \x01(\x08\x12\r\n\x05hydra\x18\x32 \x01(\x08\x12\x10\n\x08\x64\x61tasets\x18\x33 \x01(\x08\x12\x0e\n\x06sacred\x18\x34 \x01(\x08\x12\x0e\n\x06joblib\x18\x35 \x01(\x08\x12\x0c\n\x04\x64\x61sk\x18\x36 \x01(\x08\x12\x0f\n\x07\x61syncio\x18\x37 \x01(\x08\x12\x11\n\tpaddleocr\x18\x38 \x01(\x08\x12\r\n\x05ppdet\x18\x39 \x01(\x08\x12\x11\n\tpaddleseg\x18: \x01(\x08\x12\x11\n\tpaddlenlp\x18; \x01(\x08\x12\r\n\x05mmseg\x18< \x01(\x08\x12\r\n\x05mmocr\x18= \x01(\x08\x12\r\n\x05mmcls\x18> \x01(\x08\x12\x0c\n\x04timm\x18? \x01(\x08\x12\x0f\n\x07\x66\x61irseq\x18@ \x01(\x08\x12\x12\n\ndeepchecks\x18\x41 \x01(\x08\x12\x10\n\x08\x63omposer\x18\x42 \x01(\x08\x12\x10\n\x08sparseml\x18\x43 \x01(\x08\x12\x10\n\x08\x61nomalib\x18\x44 \x01(\x08\x12\r\n\x05zenml\x18\x45 \x01(\x08\x12\x12\n\ncolossalai\x18\x46 \x01(\x08\x12\x12\n\naccelerate\x18G \x01(\x08\x12\x0e\n\x06merlin\x18H \x01(\x08\x12\x0f\n\x07nanodet\x18I \x01(\x08\x12#\n\x1bsegmentation_models_pytorch\x18J \x01(\x08\x12\x1d\n\x15sentence_transformers\x18K \x01(\x08\x12\x0b\n\x03\x64gl\x18L \x01(\x08\x12\x17\n\x0ftorch_geometric\x18M \x01(\x08\x12\x0c\n\x04jina\x18N \x01(\x08\x12\x0e\n\x06kornia\x18O \x01(\x08\x12\x16\n\x0e\x61lbumentations\x18P \x01(\x08\x12\x10\n\x08keras_cv\x18Q \x01(\x08\x12\x10\n\x08mmengine\x18R \x01(\x08\x12\x11\n\tdiffusers\x18S \x01(\x08\x12\x0b\n\x03trl\x18T \x01(\x08\x12\x0c\n\x04trlx\x18U \x01(\x08\x12\x11\n\tlangchain\x18V \x01(\x08\x12\x13\n\x0bllama_index\x18W \x01(\x08\x12\x15\n\rstability_sdk\x18X \x01(\x08\x12\x0f\n\x07prefect\x18Y \x01(\x08\x12\x13\n\x0bprefect_ray\x18Z \x01(\x08\x12\x10\n\x08pinecone\x18[ \x01(\x08\x12\x10\n\x08\x63hromadb\x18\\ \x01(\x08\x12\x10\n\x08weaviate\x18] \x01(\x08\x12\x13\n\x0bpromptlayer\x18^ \x01(\x08\x12\x0e\n\x06openai\x18_ \x01(\x08\x12\x0e\n\x06\x63ohere\x18` \x01(\x08\x12\x11\n\tanthropic\x18\x61 \x01(\x08\x12\x0c\n\x04peft\x18\x62 \x01(\x08\x12\x0f\n\x07optimum\x18\x63 \x01(\x08\x12\x10\n\x08\x65valuate\x18\x64 \x01(\x08\x12\x10\n\x08langflow\x18\x65 \x01(\x08\"\x9e\n\n\x07\x46\x65\x61ture\x12\r\n\x05watch\x18\x01 \x01(\x08\x12\x0e\n\x06\x66inish\x18\x02 \x01(\x08\x12\x0c\n\x04save\x18\x03 \x01(\x08\x12\x0f\n\x07offline\x18\x04 \x01(\x08\x12\x0f\n\x07resumed\x18\x05 \x01(\x08\x12\x0c\n\x04grpc\x18\x06 \x01(\x08\x12\x0e\n\x06metric\x18\x07 \x01(\x08\x12\r\n\x05keras\x18\x08 \x01(\x08\x12\x11\n\tsagemaker\x18\t \x01(\x08\x12\x1c\n\x14\x61rtifact_incremental\x18\n \x01(\x08\x12\x10\n\x08metaflow\x18\x0b \x01(\x08\x12\x0f\n\x07prodigy\x18\x0c \x01(\x08\x12\x15\n\rset_init_name\x18\r \x01(\x08\x12\x13\n\x0bset_init_id\x18\x0e \x01(\x08\x12\x15\n\rset_init_tags\x18\x0f \x01(\x08\x12\x17\n\x0fset_init_config\x18\x10 \x01(\x08\x12\x14\n\x0cset_run_name\x18\x11 \x01(\x08\x12\x14\n\x0cset_run_tags\x18\x12 \x01(\x08\x12\x17\n\x0fset_config_item\x18\x13 \x01(\x08\x12\x0e\n\x06launch\x18\x14 \x01(\x08\x12\x1c\n\x14torch_profiler_trace\x18\x15 \x01(\x08\x12\x0b\n\x03sb3\x18\x16 \x01(\x08\x12\x0f\n\x07service\x18\x17 \x01(\x08\x12\x17\n\x0finit_return_run\x18\x18 \x01(\x08\x12\x1f\n\x17lightgbm_wandb_callback\x18\x19 \x01(\x08\x12\x1c\n\x14lightgbm_log_summary\x18\x1a \x01(\x08\x12\x1f\n\x17\x63\x61tboost_wandb_callback\x18\x1b \x01(\x08\x12\x1c\n\x14\x63\x61tboost_log_summary\x18\x1c \x01(\x08\x12\x17\n\x0ftensorboard_log\x18\x1d \x01(\x08\x12\x16\n\x0e\x65stimator_hook\x18\x1e \x01(\x08\x12\x1e\n\x16xgboost_wandb_callback\x18\x1f \x01(\x08\x12\"\n\x1axgboost_old_wandb_callback\x18 \x01(\x08\x12\x0e\n\x06\x61ttach\x18! \x01(\x08\x12\x19\n\x11tensorboard_patch\x18\" \x01(\x08\x12\x18\n\x10tensorboard_sync\x18# \x01(\x08\x12\x15\n\rkfp_wandb_log\x18$ \x01(\x08\x12\x1b\n\x13maybe_run_overwrite\x18% \x01(\x08\x12\x1c\n\x14keras_metrics_logger\x18& \x01(\x08\x12\x1e\n\x16keras_model_checkpoint\x18\' \x01(\x08\x12!\n\x19keras_wandb_eval_callback\x18( \x01(\x08\x12\x1d\n\x15\x66low_control_overflow\x18) \x01(\x08\x12\x0c\n\x04sync\x18* \x01(\x08\x12\x1d\n\x15\x66low_control_disabled\x18+ \x01(\x08\x12\x1b\n\x13\x66low_control_custom\x18, \x01(\x08\x12\x18\n\x10service_disabled\x18- \x01(\x08\x12\x14\n\x0copen_metrics\x18. \x01(\x08\x12\x1a\n\x12ultralytics_yolov8\x18/ \x01(\x08\x12\x17\n\x0fimporter_mlflow\x18\x30 \x01(\x08\x12\x15\n\rsync_tfevents\x18\x31 \x01(\x08\x12\x15\n\rasync_uploads\x18\x32 \x01(\x08\x12\x16\n\x0eopenai_autolog\x18\x33 \x01(\x08\x12\x18\n\x10langchain_tracer\x18\x34 \x01(\x08\x12\x16\n\x0e\x63ohere_autolog\x18\x35 \x01(\x08\x12\x1b\n\x13hf_pipeline_autolog\x18\x36 \x01(\x08\x12\r\n\x05nexus\x18\x37 \x01(\x08\"\x96\x02\n\x03\x45nv\x12\x0f\n\x07jupyter\x18\x01 \x01(\x08\x12\x0e\n\x06kaggle\x18\x02 \x01(\x08\x12\x0f\n\x07windows\x18\x03 \x01(\x08\x12\x0e\n\x06m1_gpu\x18\x04 \x01(\x08\x12\x13\n\x0bstart_spawn\x18\x05 \x01(\x08\x12\x12\n\nstart_fork\x18\x06 \x01(\x08\x12\x18\n\x10start_forkserver\x18\x07 \x01(\x08\x12\x14\n\x0cstart_thread\x18\x08 \x01(\x08\x12\x10\n\x08maybe_mp\x18\t \x01(\x08\x12\x10\n\x08trainium\x18\n \x01(\x08\x12\x0b\n\x03pex\x18\x0b \x01(\x08\x12\r\n\x05\x63olab\x18\x0c \x01(\x08\x12\x0f\n\x07ipython\x18\r \x01(\x08\x12\x12\n\naws_lambda\x18\x0e \x01(\x08\x12\x0f\n\x07\x61md_gpu\x18\x0f \x01(\x08\"H\n\x06Labels\x12\x13\n\x0b\x63ode_string\x18\x01 \x01(\t\x12\x13\n\x0brepo_string\x18\x02 \x01(\t\x12\x14\n\x0c\x63ode_version\x18\x03 \x01(\t\"\x9a\x02\n\nDeprecated\x12!\n\x19keras_callback__data_type\x18\x01 \x01(\x08\x12\x11\n\trun__mode\x18\x02 \x01(\x08\x12\x19\n\x11run__save_no_args\x18\x03 \x01(\x08\x12\x11\n\trun__join\x18\x04 \x01(\x08\x12\r\n\x05plots\x18\x05 \x01(\x08\x12\x15\n\rrun__log_sync\x18\x06 \x01(\x08\x12!\n\x19init__config_include_keys\x18\x07 \x01(\x08\x12!\n\x19init__config_exclude_keys\x18\x08 \x01(\x08\x12\"\n\x1akeras_callback__save_model\x18\t \x01(\x08\x12\x18\n\x10langchain_tracer\x18\n \x01(\x08\"|\n\x06Issues\x12%\n\x1dsettings__validation_warnings\x18\x01 \x01(\x08\x12!\n\x19settings__unexpected_args\x18\x02 \x01(\x08\x12(\n settings__preprocessing_warnings\x18\x03 \x01(\x08\x62\x06proto3')
|
18
18
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
20
20
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'wandb.proto.wandb_telemetry_pb2', globals())
|
@@ -26,15 +26,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
26
26
|
_TELEMETRYRESULT._serialized_start=521
|
27
27
|
_TELEMETRYRESULT._serialized_end=538
|
28
28
|
_IMPORTS._serialized_start=541
|
29
|
-
_IMPORTS._serialized_end=
|
30
|
-
_FEATURE._serialized_start=
|
31
|
-
_FEATURE._serialized_end=
|
32
|
-
_ENV._serialized_start=
|
33
|
-
_ENV._serialized_end=
|
34
|
-
_LABELS._serialized_start=
|
35
|
-
_LABELS._serialized_end=
|
36
|
-
_DEPRECATED._serialized_start=
|
37
|
-
_DEPRECATED._serialized_end=
|
38
|
-
_ISSUES._serialized_start=
|
39
|
-
_ISSUES._serialized_end=
|
29
|
+
_IMPORTS._serialized_end=2211
|
30
|
+
_FEATURE._serialized_start=2214
|
31
|
+
_FEATURE._serialized_end=3524
|
32
|
+
_ENV._serialized_start=3527
|
33
|
+
_ENV._serialized_end=3805
|
34
|
+
_LABELS._serialized_start=3807
|
35
|
+
_LABELS._serialized_end=3879
|
36
|
+
_DEPRECATED._serialized_start=3882
|
37
|
+
_DEPRECATED._serialized_end=4164
|
38
|
+
_ISSUES._serialized_start=4166
|
39
|
+
_ISSUES._serialized_end=4290
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
wandb/proto/wandb_deprecated.py
CHANGED
@@ -19,7 +19,8 @@ DEPRECATED_FEATURES = Literal[
|
|
19
19
|
"run__log_sync",
|
20
20
|
"init__config_include_keys",
|
21
21
|
"init__config_exclude_keys",
|
22
|
-
"keras_callback__save_model"
|
22
|
+
"keras_callback__save_model",
|
23
|
+
"langchain_tracer"
|
23
24
|
]
|
24
25
|
|
25
26
|
|
@@ -33,3 +34,4 @@ class Deprecated:
|
|
33
34
|
init__config_include_keys: DEPRECATED_FEATURES = "init__config_include_keys"
|
34
35
|
init__config_exclude_keys: DEPRECATED_FEATURES = "init__config_exclude_keys"
|
35
36
|
keras_callback__save_model: DEPRECATED_FEATURES = "keras_callback__save_model"
|
37
|
+
langchain_tracer: DEPRECATED_FEATURES = "langchain_tracer"
|
wandb/sdk/__init__.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
"""module sdk."""
|
2
2
|
|
3
3
|
from . import wandb_helper as helper # noqa: F401
|
4
|
+
from .artifacts.artifact import Artifact # noqa: F401
|
4
5
|
from .wandb_alerts import AlertLevel # noqa: F401
|
5
|
-
from .wandb_artifacts import Artifact # noqa: F401
|
6
6
|
from .wandb_config import Config # noqa: F401
|
7
7
|
from .wandb_init import _attach, init # noqa: F401
|
8
8
|
from .wandb_login import login # noqa: F401
|
File without changes
|