wandb 0.13.11__py3-none-any.whl → 0.14.0__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/apis/importers/__init__.py +4 -0
- wandb/apis/importers/base.py +312 -0
- wandb/apis/importers/mlflow.py +113 -0
- wandb/apis/internal.py +9 -0
- wandb/apis/public.py +0 -2
- wandb/cli/cli.py +100 -72
- wandb/docker/__init__.py +33 -5
- wandb/proto/v3/wandb_telemetry_pb2.py +10 -10
- wandb/proto/v4/wandb_telemetry_pb2.py +10 -10
- wandb/sdk/internal/internal_api.py +85 -9
- wandb/sdk/launch/_project_spec.py +45 -55
- wandb/sdk/launch/agent/agent.py +80 -18
- wandb/sdk/launch/builder/build.py +16 -74
- wandb/sdk/launch/builder/docker_builder.py +36 -8
- wandb/sdk/launch/builder/kaniko_builder.py +78 -37
- wandb/sdk/launch/builder/templates/_wandb_bootstrap.py +68 -18
- wandb/sdk/launch/environment/aws_environment.py +4 -0
- wandb/sdk/launch/launch.py +1 -6
- wandb/sdk/launch/launch_add.py +0 -5
- wandb/sdk/launch/registry/abstract.py +12 -0
- wandb/sdk/launch/registry/elastic_container_registry.py +31 -1
- wandb/sdk/launch/registry/google_artifact_registry.py +32 -0
- wandb/sdk/launch/registry/local_registry.py +15 -1
- wandb/sdk/launch/runner/abstract.py +0 -14
- wandb/sdk/launch/runner/kubernetes_runner.py +25 -19
- wandb/sdk/launch/runner/local_container.py +7 -8
- wandb/sdk/launch/runner/local_process.py +0 -3
- wandb/sdk/launch/runner/sagemaker_runner.py +0 -3
- wandb/sdk/launch/runner/vertex_runner.py +0 -2
- wandb/sdk/launch/sweeps/scheduler.py +39 -10
- wandb/sdk/launch/utils.py +52 -4
- wandb/sdk/wandb_run.py +3 -10
- wandb/sync/sync.py +1 -0
- wandb/util.py +1 -0
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/METADATA +1 -1
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/RECORD +41 -38
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/WHEEL +1 -1
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/LICENSE +0 -0
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/entry_points.txt +0 -0
- {wandb-0.13.11.dist-info → wandb-0.14.0.dist-info}/top_level.txt +0 -0
wandb/cli/cli.py
CHANGED
@@ -897,8 +897,12 @@ def sweep(
|
|
897
897
|
launch_config = {}
|
898
898
|
wandb.termlog(f"Using launch 🚀 with config: {launch_config}")
|
899
899
|
|
900
|
-
if entity is None
|
901
|
-
_msg = "Must specify --entity
|
900
|
+
if entity is None:
|
901
|
+
_msg = "Must specify --entity flag when using launch."
|
902
|
+
wandb.termerror(_msg)
|
903
|
+
raise LaunchError(_msg)
|
904
|
+
elif project is None:
|
905
|
+
_msg = "A project must be configured when using launch."
|
902
906
|
wandb.termerror(_msg)
|
903
907
|
raise LaunchError(_msg)
|
904
908
|
|
@@ -936,6 +940,10 @@ def sweep(
|
|
936
940
|
]
|
937
941
|
|
938
942
|
if _job:
|
943
|
+
if ":" not in _job:
|
944
|
+
wandb.termwarn("No alias specified for job, defaulting to 'latest'")
|
945
|
+
_job += ":latest"
|
946
|
+
|
939
947
|
scheduler_entrypoint += [
|
940
948
|
"--job",
|
941
949
|
_job,
|
@@ -950,24 +958,21 @@ def sweep(
|
|
950
958
|
"run_queue_project": project_queue,
|
951
959
|
"run_spec": json.dumps(
|
952
960
|
construct_launch_spec(
|
953
|
-
SCHEDULER_URI,
|
954
|
-
None,
|
955
|
-
api,
|
956
|
-
"Scheduler.WANDB_SWEEP_ID",
|
957
|
-
project,
|
958
|
-
entity,
|
959
|
-
scheduler_config.get("docker_image"),
|
960
|
-
scheduler_config.get("resource", "local-process"),
|
961
|
-
scheduler_entrypoint,
|
962
|
-
None,
|
963
|
-
None,
|
964
|
-
scheduler_config.get("resource_args"
|
965
|
-
None,
|
966
|
-
None,
|
967
|
-
|
968
|
-
launch_config.get("registry", {}).get(
|
969
|
-
"url", None
|
970
|
-
), # repository
|
961
|
+
uri=SCHEDULER_URI,
|
962
|
+
job=None,
|
963
|
+
api=api,
|
964
|
+
name="Scheduler.WANDB_SWEEP_ID",
|
965
|
+
project=project,
|
966
|
+
entity=entity,
|
967
|
+
docker_image=scheduler_config.get("docker_image"),
|
968
|
+
resource=scheduler_config.get("resource", "local-process"),
|
969
|
+
entry_point=scheduler_entrypoint,
|
970
|
+
version=None,
|
971
|
+
parameters=None,
|
972
|
+
resource_args=scheduler_config.get("resource_args", {}),
|
973
|
+
launch_config=None,
|
974
|
+
run_id=None,
|
975
|
+
repository=launch_config.get("registry", {}).get("url", None),
|
971
976
|
)
|
972
977
|
),
|
973
978
|
}
|
@@ -1031,7 +1036,7 @@ def sweep(
|
|
1031
1036
|
"uri of the form https://wandb.ai/entity/project/runs/run_id, "
|
1032
1037
|
"or a git uri pointing to a remote repository, or path to a local directory.",
|
1033
1038
|
)
|
1034
|
-
@click.
|
1039
|
+
@click.option("--uri", "-u", metavar="(str)", default=None, hidden=True)
|
1035
1040
|
@click.option(
|
1036
1041
|
"--job",
|
1037
1042
|
"-j",
|
@@ -1053,6 +1058,7 @@ def sweep(
|
|
1053
1058
|
"--git-version",
|
1054
1059
|
"-g",
|
1055
1060
|
metavar="GIT-VERSION",
|
1061
|
+
hidden=True,
|
1056
1062
|
help="Version of the project to run, as a Git commit reference for Git projects.",
|
1057
1063
|
)
|
1058
1064
|
@click.option(
|
@@ -1136,18 +1142,11 @@ def sweep(
|
|
1136
1142
|
"as resource args to the compute resource. The exact content which should be "
|
1137
1143
|
"provided is different for each execution backend. See documentation for layout of this file.",
|
1138
1144
|
)
|
1139
|
-
@click.option(
|
1140
|
-
"--cuda",
|
1141
|
-
is_flag=False,
|
1142
|
-
flag_value=True,
|
1143
|
-
default=None,
|
1144
|
-
help="Flag to build an image with CUDA enabled. If reproducing a previous wandb run that ran on GPU, a CUDA-enabled image will be "
|
1145
|
-
"built by default and you must set --cuda=False to build a CPU-only image.",
|
1146
|
-
)
|
1147
1145
|
@click.option(
|
1148
1146
|
"--build",
|
1149
1147
|
"-b",
|
1150
1148
|
is_flag=True,
|
1149
|
+
hidden=True,
|
1151
1150
|
help="Flag to build an associated job and push to queue as an image job.",
|
1152
1151
|
)
|
1153
1152
|
@click.option(
|
@@ -1155,6 +1154,7 @@ def sweep(
|
|
1155
1154
|
"-rg",
|
1156
1155
|
is_flag=False,
|
1157
1156
|
default=None,
|
1157
|
+
hidden=True,
|
1158
1158
|
help="Name of a remote repository. Will be used to push a built image to.",
|
1159
1159
|
)
|
1160
1160
|
# TODO: this is only included for back compat. But we should remove this in the future
|
@@ -1180,7 +1180,6 @@ def launch(
|
|
1180
1180
|
queue,
|
1181
1181
|
run_async,
|
1182
1182
|
resource_args,
|
1183
|
-
cuda,
|
1184
1183
|
build,
|
1185
1184
|
repository,
|
1186
1185
|
project_queue,
|
@@ -1198,6 +1197,7 @@ def launch(
|
|
1198
1197
|
logger.info(
|
1199
1198
|
f"=== Launch called with kwargs {locals()} CLI Version: {wandb.__version__}==="
|
1200
1199
|
)
|
1200
|
+
util.sentry_set_scope(process_context="launch_cli")
|
1201
1201
|
from wandb.sdk.launch import launch as wandb_launch
|
1202
1202
|
|
1203
1203
|
wandb.termlog(
|
@@ -1210,18 +1210,6 @@ def launch(
|
|
1210
1210
|
"Cannot use both --async and --queue with wandb launch, see help for details."
|
1211
1211
|
)
|
1212
1212
|
|
1213
|
-
# we take a string for the `cuda` arg in order to accept None values, then convert it to a bool
|
1214
|
-
if cuda is not None:
|
1215
|
-
# preserve cuda=None as unspecified, otherwise convert to bool
|
1216
|
-
if cuda == "True":
|
1217
|
-
cuda = True
|
1218
|
-
elif cuda == "False":
|
1219
|
-
cuda = False
|
1220
|
-
else:
|
1221
|
-
raise LaunchError(
|
1222
|
-
f"Invalid value for --cuda: {cuda!r} is not a valid boolean."
|
1223
|
-
)
|
1224
|
-
|
1225
1213
|
args_dict = util._user_args_to_dict(args_list)
|
1226
1214
|
|
1227
1215
|
if resource_args is not None:
|
@@ -1271,38 +1259,42 @@ def launch(
|
|
1271
1259
|
resource_args=resource_args,
|
1272
1260
|
config=config,
|
1273
1261
|
synchronous=(not run_async),
|
1274
|
-
cuda=cuda,
|
1275
1262
|
run_id=run_id,
|
1276
1263
|
repository=repository,
|
1277
1264
|
)
|
1278
1265
|
except LaunchError as e:
|
1279
1266
|
logger.error("=== %s ===", e)
|
1267
|
+
util.sentry_exc(e)
|
1280
1268
|
sys.exit(e)
|
1281
1269
|
except ExecutionError as e:
|
1282
1270
|
logger.error("=== %s ===", e)
|
1271
|
+
util.sentry_exc(e)
|
1283
1272
|
sys.exit(e)
|
1284
1273
|
else:
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1274
|
+
try:
|
1275
|
+
_launch_add(
|
1276
|
+
api,
|
1277
|
+
uri,
|
1278
|
+
job,
|
1279
|
+
config,
|
1280
|
+
project,
|
1281
|
+
entity,
|
1282
|
+
queue,
|
1283
|
+
resource,
|
1284
|
+
entry_point,
|
1285
|
+
name,
|
1286
|
+
git_version,
|
1287
|
+
docker_image,
|
1288
|
+
args_dict,
|
1289
|
+
project_queue,
|
1290
|
+
resource_args,
|
1291
|
+
build=build,
|
1292
|
+
run_id=run_id,
|
1293
|
+
repository=repository,
|
1294
|
+
)
|
1295
|
+
except Exception as e:
|
1296
|
+
util.sentry_exc(e)
|
1297
|
+
raise e
|
1306
1298
|
|
1307
1299
|
|
1308
1300
|
@cli.command(
|
@@ -1361,6 +1353,7 @@ def launch_agent(
|
|
1361
1353
|
logger.info(
|
1362
1354
|
f"=== Launch-agent called with kwargs {locals()} CLI Version: {wandb.__version__} ==="
|
1363
1355
|
)
|
1356
|
+
util.sentry_set_scope(process_context="launch_agent")
|
1364
1357
|
if url is not None:
|
1365
1358
|
raise LaunchError(
|
1366
1359
|
"--url is not supported in this version, upgrade with: pip install -u wandb"
|
@@ -1388,7 +1381,11 @@ def launch_agent(
|
|
1388
1381
|
check_logged_in(api)
|
1389
1382
|
|
1390
1383
|
wandb.termlog("Starting launch agent ✨")
|
1391
|
-
|
1384
|
+
try:
|
1385
|
+
wandb_launch.create_and_run_agent(api, agent_config)
|
1386
|
+
except Exception as e:
|
1387
|
+
util.sentry_exc(e)
|
1388
|
+
raise e
|
1392
1389
|
|
1393
1390
|
|
1394
1391
|
@cli.command(context_settings=CONTEXT, help="Run the W&B agent")
|
@@ -1431,6 +1428,7 @@ def scheduler(
|
|
1431
1428
|
ctx.invoke(login, no_offline=True)
|
1432
1429
|
api = _get_cling_api(reset=True)
|
1433
1430
|
|
1431
|
+
util.sentry_set_scope(process_context="sweep_scheduler")
|
1434
1432
|
wandb.termlog("Starting a Launch Scheduler 🚀")
|
1435
1433
|
from wandb.sdk.launch.sweeps import load_scheduler
|
1436
1434
|
|
@@ -1445,13 +1443,16 @@ def scheduler(
|
|
1445
1443
|
if str.isdigit(_args):
|
1446
1444
|
_args = int(_args)
|
1447
1445
|
kwargs[_key] = _args
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1446
|
+
try:
|
1447
|
+
_scheduler = load_scheduler("sweep")(
|
1448
|
+
api,
|
1449
|
+
sweep_id=sweep_id,
|
1450
|
+
**kwargs,
|
1451
|
+
)
|
1452
|
+
_scheduler.start()
|
1453
|
+
except Exception as e:
|
1454
|
+
util.sentry_exc(e)
|
1455
|
+
raise e
|
1455
1456
|
|
1456
1457
|
|
1457
1458
|
@cli.command(context_settings=CONTEXT, help="Run the W&B local sweep controller")
|
@@ -2343,3 +2344,30 @@ def verify(host):
|
|
2343
2344
|
and url_success
|
2344
2345
|
):
|
2345
2346
|
sys.exit(1)
|
2347
|
+
|
2348
|
+
|
2349
|
+
@cli.group("import", help="Commands for importing data from other systems")
|
2350
|
+
def importer():
|
2351
|
+
pass
|
2352
|
+
|
2353
|
+
|
2354
|
+
@importer.command("mlflow", help="Import from MLFlow")
|
2355
|
+
@click.option("--mlflow-tracking-uri", help="MLFlow Tracking URI")
|
2356
|
+
@click.option(
|
2357
|
+
"--target-entity", required=True, help="Override default entity to import data into"
|
2358
|
+
)
|
2359
|
+
@click.option(
|
2360
|
+
"--target-project",
|
2361
|
+
required=True,
|
2362
|
+
help="Override default project to import data into",
|
2363
|
+
)
|
2364
|
+
def mlflow(mlflow_tracking_uri, target_entity, target_project):
|
2365
|
+
from wandb.apis.importers import MlflowImporter
|
2366
|
+
|
2367
|
+
importer = MlflowImporter(mlflow_tracking_uri=mlflow_tracking_uri)
|
2368
|
+
overrides = {
|
2369
|
+
"entity": target_entity,
|
2370
|
+
"project": target_project,
|
2371
|
+
}
|
2372
|
+
|
2373
|
+
importer.import_all_parallel(overrides=overrides)
|
wandb/docker/__init__.py
CHANGED
@@ -87,12 +87,40 @@ def build(tags: List[str], file: str, context_path: str) -> str:
|
|
87
87
|
build_tags = []
|
88
88
|
for tag in tags:
|
89
89
|
build_tags += ["-t", tag]
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
capture_stdout=False,
|
90
|
+
args = ["docker"] + command + build_tags + ["-f", file, context_path]
|
91
|
+
stdout = run_command_live_output(
|
92
|
+
args,
|
94
93
|
)
|
95
|
-
return
|
94
|
+
return stdout
|
95
|
+
|
96
|
+
|
97
|
+
def run_command_live_output(args: List[Any]) -> str:
|
98
|
+
with subprocess.Popen(
|
99
|
+
args,
|
100
|
+
stdout=subprocess.PIPE,
|
101
|
+
stderr=subprocess.STDOUT,
|
102
|
+
universal_newlines=True,
|
103
|
+
bufsize=1,
|
104
|
+
) as process:
|
105
|
+
stdout = ""
|
106
|
+
while True:
|
107
|
+
chunk = os.read(process.stdout.fileno(), 4096) # type: ignore
|
108
|
+
if not chunk:
|
109
|
+
break
|
110
|
+
index = chunk.find(b"\r")
|
111
|
+
if index != -1:
|
112
|
+
print(chunk.decode(), end="")
|
113
|
+
else:
|
114
|
+
stdout += chunk.decode()
|
115
|
+
print(chunk.decode(), end="\r")
|
116
|
+
|
117
|
+
print(stdout)
|
118
|
+
|
119
|
+
return_code = process.wait()
|
120
|
+
if return_code != 0:
|
121
|
+
raise DockerError(args, return_code, stdout.encode())
|
122
|
+
|
123
|
+
return stdout
|
96
124
|
|
97
125
|
|
98
126
|
def run(
|
@@ -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\"\xb2\n\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\"\
|
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\"\xb2\n\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\"\x91\t\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\"\xd1\x01\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\"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\"\x80\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\"|\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
|
|
@@ -93,13 +93,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
93
93
|
_IMPORTS._serialized_start=541
|
94
94
|
_IMPORTS._serialized_end=1871
|
95
95
|
_FEATURE._serialized_start=1874
|
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=
|
96
|
+
_FEATURE._serialized_end=3043
|
97
|
+
_ENV._serialized_start=3046
|
98
|
+
_ENV._serialized_end=3255
|
99
|
+
_LABELS._serialized_start=3257
|
100
|
+
_LABELS._serialized_end=3329
|
101
|
+
_DEPRECATED._serialized_start=3332
|
102
|
+
_DEPRECATED._serialized_end=3588
|
103
|
+
_ISSUES._serialized_start=3590
|
104
|
+
_ISSUES._serialized_end=3714
|
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\"\xb2\n\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\"\
|
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\"\xb2\n\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\"\x91\t\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\"\xd1\x01\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\"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\"\x80\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\"|\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())
|
@@ -28,13 +28,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
28
28
|
_IMPORTS._serialized_start=541
|
29
29
|
_IMPORTS._serialized_end=1871
|
30
30
|
_FEATURE._serialized_start=1874
|
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=
|
31
|
+
_FEATURE._serialized_end=3043
|
32
|
+
_ENV._serialized_start=3046
|
33
|
+
_ENV._serialized_end=3255
|
34
|
+
_LABELS._serialized_start=3257
|
35
|
+
_LABELS._serialized_end=3329
|
36
|
+
_DEPRECATED._serialized_start=3332
|
37
|
+
_DEPRECATED._serialized_end=3588
|
38
|
+
_ISSUES._serialized_start=3590
|
39
|
+
_ISSUES._serialized_end=3714
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
@@ -205,6 +205,7 @@ class Api:
|
|
205
205
|
self._azure_blob_module = util.get_module("azure.storage.blob")
|
206
206
|
|
207
207
|
self.query_types: Optional[List[str]] = None
|
208
|
+
self.mutation_types: Optional[List[str]] = None
|
208
209
|
self.server_info_types: Optional[List[str]] = None
|
209
210
|
self.server_use_artifact_input_info: Optional[List[str]] = None
|
210
211
|
self._max_cli_version: Optional[str] = None
|
@@ -409,12 +410,15 @@ class Api:
|
|
409
410
|
return project, run
|
410
411
|
|
411
412
|
@normalize_exceptions
|
412
|
-
def server_info_introspection(self) -> Tuple[List[str], List[str]]:
|
413
|
+
def server_info_introspection(self) -> Tuple[List[str], List[str], List[str]]:
|
413
414
|
query_string = """
|
414
415
|
query ProbeServerCapabilities {
|
415
416
|
QueryType: __type(name: "Query") {
|
416
417
|
...fieldData
|
417
418
|
}
|
419
|
+
MutationType: __type(name: "Mutation") {
|
420
|
+
...fieldData
|
421
|
+
}
|
418
422
|
ServerInfoType: __type(name: "ServerInfo") {
|
419
423
|
...fieldData
|
420
424
|
}
|
@@ -426,7 +430,11 @@ class Api:
|
|
426
430
|
}
|
427
431
|
}
|
428
432
|
"""
|
429
|
-
if
|
433
|
+
if (
|
434
|
+
self.query_types is None
|
435
|
+
or self.mutation_types is None
|
436
|
+
or self.server_info_types is None
|
437
|
+
):
|
430
438
|
query = gql(query_string)
|
431
439
|
res = self.gql(query)
|
432
440
|
|
@@ -434,11 +442,15 @@ class Api:
|
|
434
442
|
field.get("name", "")
|
435
443
|
for field in res.get("QueryType", {}).get("fields", [{}])
|
436
444
|
]
|
445
|
+
self.mutation_types = [
|
446
|
+
field.get("name", "")
|
447
|
+
for field in res.get("MutationType", {}).get("fields", [{}])
|
448
|
+
]
|
437
449
|
self.server_info_types = [
|
438
450
|
field.get("name", "")
|
439
451
|
for field in res.get("ServerInfoType", {}).get("fields", [{}])
|
440
452
|
]
|
441
|
-
return self.query_types, self.server_info_types
|
453
|
+
return self.query_types, self.server_info_types, self.mutation_types
|
442
454
|
|
443
455
|
@normalize_exceptions
|
444
456
|
def server_settings_introspection(self) -> None:
|
@@ -505,6 +517,35 @@ class Api:
|
|
505
517
|
res = self.gql(query)
|
506
518
|
return res.get("LaunchAgentType") or None
|
507
519
|
|
520
|
+
@normalize_exceptions
|
521
|
+
def fail_run_queue_item_introspection(self) -> bool:
|
522
|
+
_, _, mutations = self.server_info_introspection()
|
523
|
+
return "failRunQueueItem" in mutations
|
524
|
+
|
525
|
+
@normalize_exceptions
|
526
|
+
def fail_run_queue_item(self, run_queue_item_id: str) -> bool:
|
527
|
+
mutation = gql(
|
528
|
+
"""
|
529
|
+
mutation failRunQueueItem($runQueueItemId: ID!) {
|
530
|
+
failRunQueueItem(
|
531
|
+
input: {
|
532
|
+
runQueueItemId: $runQueueItemId
|
533
|
+
}
|
534
|
+
) {
|
535
|
+
success
|
536
|
+
}
|
537
|
+
}
|
538
|
+
"""
|
539
|
+
)
|
540
|
+
response = self.gql(
|
541
|
+
mutation,
|
542
|
+
variable_values={
|
543
|
+
"runQueueItemId": run_queue_item_id,
|
544
|
+
},
|
545
|
+
)
|
546
|
+
result: bool = response["failRunQueueItem"]["success"]
|
547
|
+
return result
|
548
|
+
|
508
549
|
@normalize_exceptions
|
509
550
|
def viewer(self) -> Dict[str, Any]:
|
510
551
|
query = gql(
|
@@ -533,7 +574,7 @@ class Api:
|
|
533
574
|
if self._max_cli_version is not None:
|
534
575
|
return self._max_cli_version
|
535
576
|
|
536
|
-
query_types, server_info_types = self.server_info_introspection()
|
577
|
+
query_types, server_info_types, _ = self.server_info_introspection()
|
537
578
|
cli_version_exists = (
|
538
579
|
"serverInfo" in query_types and "cliVersionInfo" in server_info_types
|
539
580
|
)
|
@@ -579,7 +620,7 @@ class Api:
|
|
579
620
|
_CLI_QUERY_
|
580
621
|
}
|
581
622
|
"""
|
582
|
-
query_types, server_info_types = self.server_info_introspection()
|
623
|
+
query_types, server_info_types, _ = self.server_info_introspection()
|
583
624
|
|
584
625
|
cli_version_exists = (
|
585
626
|
"serverInfo" in query_types and "cliVersionInfo" in server_info_types
|
@@ -1005,6 +1046,32 @@ class Api:
|
|
1005
1046
|
result: Dict[str, Any] = response["upsertModel"]["model"]
|
1006
1047
|
return result
|
1007
1048
|
|
1049
|
+
@normalize_exceptions
|
1050
|
+
def entity_is_team(self, entity: str) -> bool:
|
1051
|
+
query = gql(
|
1052
|
+
"""
|
1053
|
+
query EntityIsTeam($entity: String!) {
|
1054
|
+
entity(name: $entity) {
|
1055
|
+
id
|
1056
|
+
isTeam
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
"""
|
1060
|
+
)
|
1061
|
+
variable_values = {
|
1062
|
+
"entity": entity,
|
1063
|
+
}
|
1064
|
+
|
1065
|
+
res = self.gql(query, variable_values)
|
1066
|
+
if res.get("entity") is None:
|
1067
|
+
raise Exception(
|
1068
|
+
f"Error fetching entity {entity} "
|
1069
|
+
"check that you have access to this entity"
|
1070
|
+
)
|
1071
|
+
|
1072
|
+
is_team: bool = res["entity"]["isTeam"]
|
1073
|
+
return is_team
|
1074
|
+
|
1008
1075
|
@normalize_exceptions
|
1009
1076
|
def get_project_run_queues(self, entity: str, project: str) -> List[Dict[str, str]]:
|
1010
1077
|
query = gql(
|
@@ -1028,10 +1095,19 @@ class Api:
|
|
1028
1095
|
|
1029
1096
|
res = self.gql(query, variable_values)
|
1030
1097
|
if res.get("project") is None:
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1098
|
+
# circular dependency: (LAUNCH_DEFAULT_PROJECT = model-registry)
|
1099
|
+
if project == "model-registry":
|
1100
|
+
msg = (
|
1101
|
+
f"Error fetching run queues for {entity} "
|
1102
|
+
"check that you have access to this entity and project"
|
1103
|
+
)
|
1104
|
+
else:
|
1105
|
+
msg = (
|
1106
|
+
f"Error fetching run queues for {entity}/{project} "
|
1107
|
+
"check that you have access to this entity and project"
|
1108
|
+
)
|
1109
|
+
|
1110
|
+
raise Exception(msg)
|
1035
1111
|
|
1036
1112
|
project_run_queues: List[Dict[str, str]] = res["project"]["runQueues"]
|
1037
1113
|
return project_run_queues
|