wandb 0.21.2__py3-none-macosx_12_0_x86_64.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 (904) hide show
  1. package_readme.md +97 -0
  2. wandb/__init__.py +248 -0
  3. wandb/__init__.pyi +1230 -0
  4. wandb/__main__.py +3 -0
  5. wandb/_iterutils.py +65 -0
  6. wandb/_pydantic/__init__.py +30 -0
  7. wandb/_pydantic/base.py +128 -0
  8. wandb/_pydantic/utils.py +80 -0
  9. wandb/_pydantic/v1_compat.py +284 -0
  10. wandb/agents/__init__.py +0 -0
  11. wandb/agents/pyagent.py +386 -0
  12. wandb/analytics/__init__.py +3 -0
  13. wandb/analytics/sentry.py +267 -0
  14. wandb/apis/__init__.py +48 -0
  15. wandb/apis/attrs.py +50 -0
  16. wandb/apis/importers/__init__.py +1 -0
  17. wandb/apis/importers/internals/internal.py +382 -0
  18. wandb/apis/importers/internals/protocols.py +103 -0
  19. wandb/apis/importers/internals/util.py +78 -0
  20. wandb/apis/importers/mlflow.py +254 -0
  21. wandb/apis/importers/validation.py +108 -0
  22. wandb/apis/importers/wandb.py +1608 -0
  23. wandb/apis/internal.py +239 -0
  24. wandb/apis/normalize.py +81 -0
  25. wandb/apis/paginator.py +138 -0
  26. wandb/apis/public/__init__.py +35 -0
  27. wandb/apis/public/api.py +2449 -0
  28. wandb/apis/public/artifacts.py +1046 -0
  29. wandb/apis/public/automations.py +85 -0
  30. wandb/apis/public/const.py +4 -0
  31. wandb/apis/public/files.py +402 -0
  32. wandb/apis/public/history.py +201 -0
  33. wandb/apis/public/integrations.py +203 -0
  34. wandb/apis/public/jobs.py +742 -0
  35. wandb/apis/public/projects.py +276 -0
  36. wandb/apis/public/query_generator.py +176 -0
  37. wandb/apis/public/registries/__init__.py +0 -0
  38. wandb/apis/public/registries/_freezable_list.py +179 -0
  39. wandb/apis/public/registries/_utils.py +138 -0
  40. wandb/apis/public/registries/registries_search.py +347 -0
  41. wandb/apis/public/registries/registry.py +358 -0
  42. wandb/apis/public/reports.py +595 -0
  43. wandb/apis/public/runs.py +1216 -0
  44. wandb/apis/public/sweeps.py +440 -0
  45. wandb/apis/public/teams.py +235 -0
  46. wandb/apis/public/users.py +177 -0
  47. wandb/apis/public/utils.py +210 -0
  48. wandb/apis/reports/__init__.py +1 -0
  49. wandb/apis/reports/v1/__init__.py +8 -0
  50. wandb/apis/reports/v2/__init__.py +8 -0
  51. wandb/apis/workspaces/__init__.py +8 -0
  52. wandb/automations/__init__.py +73 -0
  53. wandb/automations/_filters/__init__.py +40 -0
  54. wandb/automations/_filters/expressions.py +181 -0
  55. wandb/automations/_filters/operators.py +258 -0
  56. wandb/automations/_filters/run_metrics.py +330 -0
  57. wandb/automations/_generated/__init__.py +177 -0
  58. wandb/automations/_generated/create_automation.py +17 -0
  59. wandb/automations/_generated/create_generic_webhook_integration.py +43 -0
  60. wandb/automations/_generated/delete_automation.py +15 -0
  61. wandb/automations/_generated/enums.py +35 -0
  62. wandb/automations/_generated/fragments.py +358 -0
  63. wandb/automations/_generated/generic_webhook_integrations_by_entity.py +22 -0
  64. wandb/automations/_generated/get_automations.py +24 -0
  65. wandb/automations/_generated/get_automations_by_entity.py +26 -0
  66. wandb/automations/_generated/input_types.py +104 -0
  67. wandb/automations/_generated/integrations_by_entity.py +22 -0
  68. wandb/automations/_generated/operations.py +647 -0
  69. wandb/automations/_generated/slack_integrations_by_entity.py +22 -0
  70. wandb/automations/_generated/update_automation.py +17 -0
  71. wandb/automations/_utils.py +235 -0
  72. wandb/automations/_validators.py +165 -0
  73. wandb/automations/actions.py +218 -0
  74. wandb/automations/automations.py +85 -0
  75. wandb/automations/events.py +285 -0
  76. wandb/automations/integrations.py +45 -0
  77. wandb/automations/scopes.py +78 -0
  78. wandb/beta/workflows.py +324 -0
  79. wandb/bin/gpu_stats +0 -0
  80. wandb/bin/wandb-core +0 -0
  81. wandb/cli/__init__.py +0 -0
  82. wandb/cli/beta.py +175 -0
  83. wandb/cli/cli.py +2883 -0
  84. wandb/data_types.py +66 -0
  85. wandb/docker/__init__.py +290 -0
  86. wandb/docker/names.py +40 -0
  87. wandb/docker/wandb-entrypoint.sh +33 -0
  88. wandb/env.py +535 -0
  89. wandb/errors/__init__.py +17 -0
  90. wandb/errors/errors.py +40 -0
  91. wandb/errors/links.py +73 -0
  92. wandb/errors/term.py +415 -0
  93. wandb/errors/util.py +57 -0
  94. wandb/errors/warnings.py +2 -0
  95. wandb/filesync/__init__.py +0 -0
  96. wandb/filesync/dir_watcher.py +404 -0
  97. wandb/filesync/stats.py +100 -0
  98. wandb/filesync/step_checksum.py +142 -0
  99. wandb/filesync/step_prepare.py +179 -0
  100. wandb/filesync/step_upload.py +287 -0
  101. wandb/filesync/upload_job.py +142 -0
  102. wandb/integration/__init__.py +0 -0
  103. wandb/integration/catboost/__init__.py +5 -0
  104. wandb/integration/catboost/catboost.py +182 -0
  105. wandb/integration/cohere/__init__.py +3 -0
  106. wandb/integration/cohere/cohere.py +21 -0
  107. wandb/integration/cohere/resolver.py +347 -0
  108. wandb/integration/diffusers/__init__.py +3 -0
  109. wandb/integration/diffusers/autologger.py +76 -0
  110. wandb/integration/diffusers/pipeline_resolver.py +50 -0
  111. wandb/integration/diffusers/resolvers/__init__.py +9 -0
  112. wandb/integration/diffusers/resolvers/multimodal.py +881 -0
  113. wandb/integration/diffusers/resolvers/utils.py +102 -0
  114. wandb/integration/fastai/__init__.py +243 -0
  115. wandb/integration/gym/__init__.py +98 -0
  116. wandb/integration/huggingface/__init__.py +3 -0
  117. wandb/integration/huggingface/huggingface.py +18 -0
  118. wandb/integration/huggingface/resolver.py +213 -0
  119. wandb/integration/keras/__init__.py +11 -0
  120. wandb/integration/keras/callbacks/__init__.py +5 -0
  121. wandb/integration/keras/callbacks/metrics_logger.py +129 -0
  122. wandb/integration/keras/callbacks/model_checkpoint.py +188 -0
  123. wandb/integration/keras/callbacks/tables_builder.py +228 -0
  124. wandb/integration/keras/keras.py +1086 -0
  125. wandb/integration/kfp/__init__.py +6 -0
  126. wandb/integration/kfp/helpers.py +28 -0
  127. wandb/integration/kfp/kfp_patch.py +335 -0
  128. wandb/integration/kfp/wandb_logging.py +182 -0
  129. wandb/integration/langchain/__init__.py +3 -0
  130. wandb/integration/langchain/wandb_tracer.py +49 -0
  131. wandb/integration/lightgbm/__init__.py +239 -0
  132. wandb/integration/lightning/__init__.py +0 -0
  133. wandb/integration/lightning/fabric/__init__.py +3 -0
  134. wandb/integration/lightning/fabric/logger.py +763 -0
  135. wandb/integration/metaflow/__init__.py +9 -0
  136. wandb/integration/metaflow/data_pandas.py +74 -0
  137. wandb/integration/metaflow/data_pytorch.py +75 -0
  138. wandb/integration/metaflow/data_sklearn.py +76 -0
  139. wandb/integration/metaflow/errors.py +13 -0
  140. wandb/integration/metaflow/metaflow.py +327 -0
  141. wandb/integration/openai/__init__.py +3 -0
  142. wandb/integration/openai/fine_tuning.py +480 -0
  143. wandb/integration/openai/openai.py +22 -0
  144. wandb/integration/openai/resolver.py +240 -0
  145. wandb/integration/prodigy/__init__.py +3 -0
  146. wandb/integration/prodigy/prodigy.py +291 -0
  147. wandb/integration/sacred/__init__.py +117 -0
  148. wandb/integration/sagemaker/__init__.py +14 -0
  149. wandb/integration/sagemaker/auth.py +29 -0
  150. wandb/integration/sagemaker/config.py +58 -0
  151. wandb/integration/sagemaker/files.py +2 -0
  152. wandb/integration/sagemaker/resources.py +63 -0
  153. wandb/integration/sb3/__init__.py +3 -0
  154. wandb/integration/sb3/sb3.py +147 -0
  155. wandb/integration/sklearn/__init__.py +37 -0
  156. wandb/integration/sklearn/calculate/__init__.py +32 -0
  157. wandb/integration/sklearn/calculate/calibration_curves.py +125 -0
  158. wandb/integration/sklearn/calculate/class_proportions.py +68 -0
  159. wandb/integration/sklearn/calculate/confusion_matrix.py +93 -0
  160. wandb/integration/sklearn/calculate/decision_boundaries.py +40 -0
  161. wandb/integration/sklearn/calculate/elbow_curve.py +55 -0
  162. wandb/integration/sklearn/calculate/feature_importances.py +67 -0
  163. wandb/integration/sklearn/calculate/learning_curve.py +64 -0
  164. wandb/integration/sklearn/calculate/outlier_candidates.py +69 -0
  165. wandb/integration/sklearn/calculate/residuals.py +86 -0
  166. wandb/integration/sklearn/calculate/silhouette.py +118 -0
  167. wandb/integration/sklearn/calculate/summary_metrics.py +62 -0
  168. wandb/integration/sklearn/plot/__init__.py +35 -0
  169. wandb/integration/sklearn/plot/classifier.py +329 -0
  170. wandb/integration/sklearn/plot/clusterer.py +146 -0
  171. wandb/integration/sklearn/plot/regressor.py +121 -0
  172. wandb/integration/sklearn/plot/shared.py +91 -0
  173. wandb/integration/sklearn/utils.py +184 -0
  174. wandb/integration/tensorboard/__init__.py +10 -0
  175. wandb/integration/tensorboard/log.py +351 -0
  176. wandb/integration/tensorboard/monkeypatch.py +186 -0
  177. wandb/integration/tensorflow/__init__.py +5 -0
  178. wandb/integration/tensorflow/estimator_hook.py +54 -0
  179. wandb/integration/torch/__init__.py +0 -0
  180. wandb/integration/torch/wandb_torch.py +554 -0
  181. wandb/integration/ultralytics/__init__.py +11 -0
  182. wandb/integration/ultralytics/bbox_utils.py +215 -0
  183. wandb/integration/ultralytics/callback.py +528 -0
  184. wandb/integration/ultralytics/classification_utils.py +83 -0
  185. wandb/integration/ultralytics/mask_utils.py +202 -0
  186. wandb/integration/ultralytics/pose_utils.py +103 -0
  187. wandb/integration/weave/__init__.py +6 -0
  188. wandb/integration/weave/interface.py +49 -0
  189. wandb/integration/weave/weave.py +63 -0
  190. wandb/integration/xgboost/__init__.py +11 -0
  191. wandb/integration/xgboost/xgboost.py +189 -0
  192. wandb/integration/yolov8/__init__.py +0 -0
  193. wandb/integration/yolov8/yolov8.py +284 -0
  194. wandb/jupyter.py +538 -0
  195. wandb/mpmain/__init__.py +0 -0
  196. wandb/mpmain/__main__.py +1 -0
  197. wandb/old/__init__.py +0 -0
  198. wandb/old/core.py +53 -0
  199. wandb/old/settings.py +176 -0
  200. wandb/old/summary.py +438 -0
  201. wandb/plot/__init__.py +30 -0
  202. wandb/plot/bar.py +71 -0
  203. wandb/plot/confusion_matrix.py +185 -0
  204. wandb/plot/custom_chart.py +147 -0
  205. wandb/plot/histogram.py +66 -0
  206. wandb/plot/line.py +75 -0
  207. wandb/plot/line_series.py +173 -0
  208. wandb/plot/pr_curve.py +186 -0
  209. wandb/plot/roc_curve.py +163 -0
  210. wandb/plot/scatter.py +66 -0
  211. wandb/plot/utils.py +184 -0
  212. wandb/plot/viz.py +41 -0
  213. wandb/proto/__init__.py +0 -0
  214. wandb/proto/v3/__init__.py +0 -0
  215. wandb/proto/v3/wandb_base_pb2.py +55 -0
  216. wandb/proto/v3/wandb_internal_pb2.py +1728 -0
  217. wandb/proto/v3/wandb_server_pb2.py +228 -0
  218. wandb/proto/v3/wandb_settings_pb2.py +122 -0
  219. wandb/proto/v3/wandb_telemetry_pb2.py +106 -0
  220. wandb/proto/v4/__init__.py +0 -0
  221. wandb/proto/v4/wandb_base_pb2.py +30 -0
  222. wandb/proto/v4/wandb_internal_pb2.py +382 -0
  223. wandb/proto/v4/wandb_server_pb2.py +67 -0
  224. wandb/proto/v4/wandb_settings_pb2.py +47 -0
  225. wandb/proto/v4/wandb_telemetry_pb2.py +41 -0
  226. wandb/proto/v5/wandb_base_pb2.py +31 -0
  227. wandb/proto/v5/wandb_internal_pb2.py +383 -0
  228. wandb/proto/v5/wandb_server_pb2.py +68 -0
  229. wandb/proto/v5/wandb_settings_pb2.py +48 -0
  230. wandb/proto/v5/wandb_telemetry_pb2.py +42 -0
  231. wandb/proto/v6/wandb_base_pb2.py +41 -0
  232. wandb/proto/v6/wandb_internal_pb2.py +393 -0
  233. wandb/proto/v6/wandb_server_pb2.py +78 -0
  234. wandb/proto/v6/wandb_settings_pb2.py +58 -0
  235. wandb/proto/v6/wandb_telemetry_pb2.py +52 -0
  236. wandb/proto/wandb_base_pb2.py +12 -0
  237. wandb/proto/wandb_deprecated.py +59 -0
  238. wandb/proto/wandb_generate_deprecated.py +30 -0
  239. wandb/proto/wandb_generate_proto.py +49 -0
  240. wandb/proto/wandb_internal_pb2.py +18 -0
  241. wandb/proto/wandb_server_pb2.py +12 -0
  242. wandb/proto/wandb_settings_pb2.py +12 -0
  243. wandb/proto/wandb_telemetry_pb2.py +12 -0
  244. wandb/py.typed +0 -0
  245. wandb/sdk/__init__.py +37 -0
  246. wandb/sdk/artifacts/__init__.py +0 -0
  247. wandb/sdk/artifacts/_factories.py +17 -0
  248. wandb/sdk/artifacts/_generated/__init__.py +508 -0
  249. wandb/sdk/artifacts/_generated/add_aliases.py +21 -0
  250. wandb/sdk/artifacts/_generated/artifact_by_id.py +17 -0
  251. wandb/sdk/artifacts/_generated/artifact_by_name.py +22 -0
  252. wandb/sdk/artifacts/_generated/artifact_collection_membership_file_urls.py +43 -0
  253. wandb/sdk/artifacts/_generated/artifact_collection_membership_files.py +43 -0
  254. wandb/sdk/artifacts/_generated/artifact_created_by.py +47 -0
  255. wandb/sdk/artifacts/_generated/artifact_file_urls.py +22 -0
  256. wandb/sdk/artifacts/_generated/artifact_type.py +31 -0
  257. wandb/sdk/artifacts/_generated/artifact_used_by.py +43 -0
  258. wandb/sdk/artifacts/_generated/artifact_version_files.py +36 -0
  259. wandb/sdk/artifacts/_generated/artifact_via_membership_by_name.py +26 -0
  260. wandb/sdk/artifacts/_generated/create_artifact_collection_tag_assignments.py +36 -0
  261. wandb/sdk/artifacts/_generated/delete_aliases.py +21 -0
  262. wandb/sdk/artifacts/_generated/delete_artifact.py +28 -0
  263. wandb/sdk/artifacts/_generated/delete_artifact_collection_tag_assignments.py +25 -0
  264. wandb/sdk/artifacts/_generated/delete_artifact_portfolio.py +35 -0
  265. wandb/sdk/artifacts/_generated/delete_artifact_sequence.py +35 -0
  266. wandb/sdk/artifacts/_generated/enums.py +22 -0
  267. wandb/sdk/artifacts/_generated/fetch_artifact_manifest.py +38 -0
  268. wandb/sdk/artifacts/_generated/fetch_linked_artifacts.py +67 -0
  269. wandb/sdk/artifacts/_generated/fetch_registries.py +32 -0
  270. wandb/sdk/artifacts/_generated/fragments.py +459 -0
  271. wandb/sdk/artifacts/_generated/input_types.py +46 -0
  272. wandb/sdk/artifacts/_generated/link_artifact.py +27 -0
  273. wandb/sdk/artifacts/_generated/move_artifact_collection.py +35 -0
  274. wandb/sdk/artifacts/_generated/operations.py +1223 -0
  275. wandb/sdk/artifacts/_generated/project_artifact_collection.py +101 -0
  276. wandb/sdk/artifacts/_generated/project_artifact_collections.py +33 -0
  277. wandb/sdk/artifacts/_generated/project_artifact_type.py +24 -0
  278. wandb/sdk/artifacts/_generated/project_artifact_types.py +24 -0
  279. wandb/sdk/artifacts/_generated/project_artifacts.py +42 -0
  280. wandb/sdk/artifacts/_generated/registry_collections.py +34 -0
  281. wandb/sdk/artifacts/_generated/registry_versions.py +34 -0
  282. wandb/sdk/artifacts/_generated/run_input_artifacts.py +51 -0
  283. wandb/sdk/artifacts/_generated/run_output_artifacts.py +51 -0
  284. wandb/sdk/artifacts/_generated/unlink_artifact.py +25 -0
  285. wandb/sdk/artifacts/_generated/update_artifact.py +26 -0
  286. wandb/sdk/artifacts/_generated/update_artifact_portfolio.py +35 -0
  287. wandb/sdk/artifacts/_generated/update_artifact_sequence.py +35 -0
  288. wandb/sdk/artifacts/_graphql_fragments.py +19 -0
  289. wandb/sdk/artifacts/_internal_artifact.py +54 -0
  290. wandb/sdk/artifacts/_validators.py +309 -0
  291. wandb/sdk/artifacts/artifact.py +2702 -0
  292. wandb/sdk/artifacts/artifact_download_logger.py +45 -0
  293. wandb/sdk/artifacts/artifact_file_cache.py +251 -0
  294. wandb/sdk/artifacts/artifact_instance_cache.py +17 -0
  295. wandb/sdk/artifacts/artifact_manifest.py +76 -0
  296. wandb/sdk/artifacts/artifact_manifest_entry.py +258 -0
  297. wandb/sdk/artifacts/artifact_manifests/__init__.py +0 -0
  298. wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py +94 -0
  299. wandb/sdk/artifacts/artifact_saver.py +277 -0
  300. wandb/sdk/artifacts/artifact_state.py +13 -0
  301. wandb/sdk/artifacts/artifact_ttl.py +9 -0
  302. wandb/sdk/artifacts/exceptions.py +71 -0
  303. wandb/sdk/artifacts/staging.py +27 -0
  304. wandb/sdk/artifacts/storage_handler.py +62 -0
  305. wandb/sdk/artifacts/storage_handlers/__init__.py +0 -0
  306. wandb/sdk/artifacts/storage_handlers/azure_handler.py +214 -0
  307. wandb/sdk/artifacts/storage_handlers/gcs_handler.py +224 -0
  308. wandb/sdk/artifacts/storage_handlers/http_handler.py +114 -0
  309. wandb/sdk/artifacts/storage_handlers/local_file_handler.py +142 -0
  310. wandb/sdk/artifacts/storage_handlers/multi_handler.py +56 -0
  311. wandb/sdk/artifacts/storage_handlers/s3_handler.py +339 -0
  312. wandb/sdk/artifacts/storage_handlers/tracking_handler.py +68 -0
  313. wandb/sdk/artifacts/storage_handlers/wb_artifact_handler.py +131 -0
  314. wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py +74 -0
  315. wandb/sdk/artifacts/storage_layout.py +8 -0
  316. wandb/sdk/artifacts/storage_policies/__init__.py +4 -0
  317. wandb/sdk/artifacts/storage_policies/register.py +1 -0
  318. wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +580 -0
  319. wandb/sdk/artifacts/storage_policy.py +75 -0
  320. wandb/sdk/backend/__init__.py +0 -0
  321. wandb/sdk/backend/backend.py +57 -0
  322. wandb/sdk/data_types/__init__.py +0 -0
  323. wandb/sdk/data_types/_dtypes.py +914 -0
  324. wandb/sdk/data_types/_private.py +10 -0
  325. wandb/sdk/data_types/audio.py +208 -0
  326. wandb/sdk/data_types/base_types/__init__.py +0 -0
  327. wandb/sdk/data_types/base_types/json_metadata.py +55 -0
  328. wandb/sdk/data_types/base_types/media.py +339 -0
  329. wandb/sdk/data_types/base_types/wb_value.py +295 -0
  330. wandb/sdk/data_types/bokeh.py +87 -0
  331. wandb/sdk/data_types/graph.py +439 -0
  332. wandb/sdk/data_types/helper_types/__init__.py +0 -0
  333. wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +327 -0
  334. wandb/sdk/data_types/helper_types/classes.py +159 -0
  335. wandb/sdk/data_types/helper_types/image_mask.py +251 -0
  336. wandb/sdk/data_types/histogram.py +107 -0
  337. wandb/sdk/data_types/html.py +165 -0
  338. wandb/sdk/data_types/image.py +974 -0
  339. wandb/sdk/data_types/molecule.py +250 -0
  340. wandb/sdk/data_types/object_3d.py +495 -0
  341. wandb/sdk/data_types/plotly.py +95 -0
  342. wandb/sdk/data_types/saved_model.py +435 -0
  343. wandb/sdk/data_types/table.py +1468 -0
  344. wandb/sdk/data_types/table_decorators.py +108 -0
  345. wandb/sdk/data_types/trace_tree.py +440 -0
  346. wandb/sdk/data_types/utils.py +260 -0
  347. wandb/sdk/data_types/video.py +303 -0
  348. wandb/sdk/integration_utils/__init__.py +0 -0
  349. wandb/sdk/integration_utils/auto_logging.py +232 -0
  350. wandb/sdk/integration_utils/data_logging.py +475 -0
  351. wandb/sdk/interface/__init__.py +0 -0
  352. wandb/sdk/interface/constants.py +4 -0
  353. wandb/sdk/interface/interface.py +1056 -0
  354. wandb/sdk/interface/interface_queue.py +40 -0
  355. wandb/sdk/interface/interface_shared.py +471 -0
  356. wandb/sdk/interface/interface_sock.py +49 -0
  357. wandb/sdk/interface/summary_record.py +67 -0
  358. wandb/sdk/internal/__init__.py +0 -0
  359. wandb/sdk/internal/_generated/__init__.py +15 -0
  360. wandb/sdk/internal/_generated/enums.py +4 -0
  361. wandb/sdk/internal/_generated/input_types.py +4 -0
  362. wandb/sdk/internal/_generated/operations.py +15 -0
  363. wandb/sdk/internal/_generated/server_features_query.py +27 -0
  364. wandb/sdk/internal/context.py +89 -0
  365. wandb/sdk/internal/datastore.py +293 -0
  366. wandb/sdk/internal/file_pusher.py +177 -0
  367. wandb/sdk/internal/file_stream.py +686 -0
  368. wandb/sdk/internal/handler.py +854 -0
  369. wandb/sdk/internal/incremental_table_util.py +53 -0
  370. wandb/sdk/internal/internal_api.py +4723 -0
  371. wandb/sdk/internal/job_builder.py +639 -0
  372. wandb/sdk/internal/profiler.py +79 -0
  373. wandb/sdk/internal/progress.py +77 -0
  374. wandb/sdk/internal/run.py +27 -0
  375. wandb/sdk/internal/sample.py +70 -0
  376. wandb/sdk/internal/sender.py +1692 -0
  377. wandb/sdk/internal/sender_config.py +203 -0
  378. wandb/sdk/internal/settings_static.py +120 -0
  379. wandb/sdk/internal/tb_watcher.py +519 -0
  380. wandb/sdk/internal/thread_local_settings.py +18 -0
  381. wandb/sdk/launch/__init__.py +15 -0
  382. wandb/sdk/launch/_launch.py +331 -0
  383. wandb/sdk/launch/_launch_add.py +255 -0
  384. wandb/sdk/launch/_project_spec.py +565 -0
  385. wandb/sdk/launch/agent/__init__.py +5 -0
  386. wandb/sdk/launch/agent/agent.py +931 -0
  387. wandb/sdk/launch/agent/config.py +296 -0
  388. wandb/sdk/launch/agent/job_status_tracker.py +55 -0
  389. wandb/sdk/launch/agent/run_queue_item_file_saver.py +39 -0
  390. wandb/sdk/launch/builder/__init__.py +0 -0
  391. wandb/sdk/launch/builder/abstract.py +156 -0
  392. wandb/sdk/launch/builder/build.py +296 -0
  393. wandb/sdk/launch/builder/context_manager.py +235 -0
  394. wandb/sdk/launch/builder/docker_builder.py +177 -0
  395. wandb/sdk/launch/builder/kaniko_builder.py +595 -0
  396. wandb/sdk/launch/builder/noop.py +58 -0
  397. wandb/sdk/launch/builder/templates/_wandb_bootstrap.py +188 -0
  398. wandb/sdk/launch/builder/templates/dockerfile.py +92 -0
  399. wandb/sdk/launch/create_job.py +541 -0
  400. wandb/sdk/launch/environment/abstract.py +29 -0
  401. wandb/sdk/launch/environment/aws_environment.py +322 -0
  402. wandb/sdk/launch/environment/azure_environment.py +105 -0
  403. wandb/sdk/launch/environment/gcp_environment.py +334 -0
  404. wandb/sdk/launch/environment/local_environment.py +65 -0
  405. wandb/sdk/launch/errors.py +13 -0
  406. wandb/sdk/launch/git_reference.py +109 -0
  407. wandb/sdk/launch/inputs/files.py +148 -0
  408. wandb/sdk/launch/inputs/internal.py +314 -0
  409. wandb/sdk/launch/inputs/manage.py +113 -0
  410. wandb/sdk/launch/inputs/schema.py +40 -0
  411. wandb/sdk/launch/loader.py +249 -0
  412. wandb/sdk/launch/registry/abstract.py +48 -0
  413. wandb/sdk/launch/registry/anon.py +29 -0
  414. wandb/sdk/launch/registry/azure_container_registry.py +124 -0
  415. wandb/sdk/launch/registry/elastic_container_registry.py +192 -0
  416. wandb/sdk/launch/registry/google_artifact_registry.py +219 -0
  417. wandb/sdk/launch/registry/local_registry.py +65 -0
  418. wandb/sdk/launch/runner/__init__.py +0 -0
  419. wandb/sdk/launch/runner/abstract.py +185 -0
  420. wandb/sdk/launch/runner/kubernetes_monitor.py +473 -0
  421. wandb/sdk/launch/runner/kubernetes_runner.py +1285 -0
  422. wandb/sdk/launch/runner/local_container.py +301 -0
  423. wandb/sdk/launch/runner/local_process.py +78 -0
  424. wandb/sdk/launch/runner/sagemaker_runner.py +424 -0
  425. wandb/sdk/launch/runner/vertex_runner.py +225 -0
  426. wandb/sdk/launch/sweeps/__init__.py +37 -0
  427. wandb/sdk/launch/sweeps/scheduler.py +739 -0
  428. wandb/sdk/launch/sweeps/scheduler_sweep.py +90 -0
  429. wandb/sdk/launch/sweeps/utils.py +324 -0
  430. wandb/sdk/launch/utils.py +746 -0
  431. wandb/sdk/launch/wandb_reference.py +138 -0
  432. wandb/sdk/lib/__init__.py +5 -0
  433. wandb/sdk/lib/apikey.py +334 -0
  434. wandb/sdk/lib/asyncio_compat.py +213 -0
  435. wandb/sdk/lib/asyncio_manager.py +252 -0
  436. wandb/sdk/lib/capped_dict.py +26 -0
  437. wandb/sdk/lib/config_util.py +101 -0
  438. wandb/sdk/lib/console_capture.py +219 -0
  439. wandb/sdk/lib/credentials.py +141 -0
  440. wandb/sdk/lib/deprecate.py +27 -0
  441. wandb/sdk/lib/disabled.py +30 -0
  442. wandb/sdk/lib/exit_hooks.py +54 -0
  443. wandb/sdk/lib/file_stream_utils.py +118 -0
  444. wandb/sdk/lib/filenames.py +64 -0
  445. wandb/sdk/lib/filesystem.py +372 -0
  446. wandb/sdk/lib/fsm.py +165 -0
  447. wandb/sdk/lib/gitlib.py +240 -0
  448. wandb/sdk/lib/gql_request.py +65 -0
  449. wandb/sdk/lib/handler_util.py +21 -0
  450. wandb/sdk/lib/hashutil.py +106 -0
  451. wandb/sdk/lib/import_hooks.py +275 -0
  452. wandb/sdk/lib/interrupt.py +37 -0
  453. wandb/sdk/lib/ipython.py +126 -0
  454. wandb/sdk/lib/json_util.py +75 -0
  455. wandb/sdk/lib/lazyloader.py +63 -0
  456. wandb/sdk/lib/module.py +72 -0
  457. wandb/sdk/lib/paths.py +106 -0
  458. wandb/sdk/lib/preinit.py +42 -0
  459. wandb/sdk/lib/printer.py +571 -0
  460. wandb/sdk/lib/printer_asyncio.py +48 -0
  461. wandb/sdk/lib/progress.py +320 -0
  462. wandb/sdk/lib/proto_util.py +90 -0
  463. wandb/sdk/lib/redirect.py +876 -0
  464. wandb/sdk/lib/retry.py +395 -0
  465. wandb/sdk/lib/run_moment.py +82 -0
  466. wandb/sdk/lib/runid.py +12 -0
  467. wandb/sdk/lib/server.py +58 -0
  468. wandb/sdk/lib/service/ipc_support.py +13 -0
  469. wandb/sdk/lib/service/service_client.py +106 -0
  470. wandb/sdk/lib/service/service_connection.py +192 -0
  471. wandb/sdk/lib/service/service_port_file.py +105 -0
  472. wandb/sdk/lib/service/service_process.py +111 -0
  473. wandb/sdk/lib/service/service_token.py +181 -0
  474. wandb/sdk/lib/sparkline.py +44 -0
  475. wandb/sdk/lib/telemetry.py +100 -0
  476. wandb/sdk/lib/timed_input.py +133 -0
  477. wandb/sdk/lib/timer.py +19 -0
  478. wandb/sdk/lib/wb_logging.py +161 -0
  479. wandb/sdk/mailbox/__init__.py +23 -0
  480. wandb/sdk/mailbox/mailbox.py +143 -0
  481. wandb/sdk/mailbox/mailbox_handle.py +132 -0
  482. wandb/sdk/mailbox/response_handle.py +99 -0
  483. wandb/sdk/mailbox/wait_with_progress.py +100 -0
  484. wandb/sdk/projects/_generated/__init__.py +47 -0
  485. wandb/sdk/projects/_generated/delete_project.py +22 -0
  486. wandb/sdk/projects/_generated/enums.py +4 -0
  487. wandb/sdk/projects/_generated/fetch_registry.py +22 -0
  488. wandb/sdk/projects/_generated/fragments.py +41 -0
  489. wandb/sdk/projects/_generated/input_types.py +13 -0
  490. wandb/sdk/projects/_generated/operations.py +88 -0
  491. wandb/sdk/projects/_generated/rename_project.py +27 -0
  492. wandb/sdk/projects/_generated/upsert_registry_project.py +27 -0
  493. wandb/sdk/verify/__init__.py +0 -0
  494. wandb/sdk/verify/verify.py +555 -0
  495. wandb/sdk/wandb_alerts.py +12 -0
  496. wandb/sdk/wandb_config.py +323 -0
  497. wandb/sdk/wandb_helper.py +54 -0
  498. wandb/sdk/wandb_init.py +1581 -0
  499. wandb/sdk/wandb_login.py +332 -0
  500. wandb/sdk/wandb_metric.py +112 -0
  501. wandb/sdk/wandb_require.py +88 -0
  502. wandb/sdk/wandb_require_helpers.py +44 -0
  503. wandb/sdk/wandb_run.py +4088 -0
  504. wandb/sdk/wandb_settings.py +2105 -0
  505. wandb/sdk/wandb_setup.py +560 -0
  506. wandb/sdk/wandb_summary.py +150 -0
  507. wandb/sdk/wandb_sweep.py +120 -0
  508. wandb/sdk/wandb_sync.py +71 -0
  509. wandb/sdk/wandb_watch.py +146 -0
  510. wandb/sklearn.py +35 -0
  511. wandb/sync/__init__.py +3 -0
  512. wandb/sync/sync.py +452 -0
  513. wandb/trigger.py +29 -0
  514. wandb/util.py +2040 -0
  515. wandb/vendor/__init__.py +0 -0
  516. wandb/vendor/gql-0.2.0/setup.py +40 -0
  517. wandb/vendor/gql-0.2.0/tests/__init__.py +0 -0
  518. wandb/vendor/gql-0.2.0/tests/starwars/__init__.py +0 -0
  519. wandb/vendor/gql-0.2.0/tests/starwars/fixtures.py +96 -0
  520. wandb/vendor/gql-0.2.0/tests/starwars/schema.py +146 -0
  521. wandb/vendor/gql-0.2.0/tests/starwars/test_dsl.py +293 -0
  522. wandb/vendor/gql-0.2.0/tests/starwars/test_query.py +355 -0
  523. wandb/vendor/gql-0.2.0/tests/starwars/test_validation.py +171 -0
  524. wandb/vendor/gql-0.2.0/tests/test_client.py +31 -0
  525. wandb/vendor/gql-0.2.0/tests/test_transport.py +89 -0
  526. wandb/vendor/gql-0.2.0/wandb_gql/__init__.py +4 -0
  527. wandb/vendor/gql-0.2.0/wandb_gql/client.py +75 -0
  528. wandb/vendor/gql-0.2.0/wandb_gql/dsl.py +152 -0
  529. wandb/vendor/gql-0.2.0/wandb_gql/gql.py +10 -0
  530. wandb/vendor/gql-0.2.0/wandb_gql/transport/__init__.py +0 -0
  531. wandb/vendor/gql-0.2.0/wandb_gql/transport/http.py +6 -0
  532. wandb/vendor/gql-0.2.0/wandb_gql/transport/local_schema.py +15 -0
  533. wandb/vendor/gql-0.2.0/wandb_gql/transport/requests.py +46 -0
  534. wandb/vendor/gql-0.2.0/wandb_gql/utils.py +21 -0
  535. wandb/vendor/graphql-core-1.1/setup.py +86 -0
  536. wandb/vendor/graphql-core-1.1/wandb_graphql/__init__.py +287 -0
  537. wandb/vendor/graphql-core-1.1/wandb_graphql/error/__init__.py +6 -0
  538. wandb/vendor/graphql-core-1.1/wandb_graphql/error/base.py +42 -0
  539. wandb/vendor/graphql-core-1.1/wandb_graphql/error/format_error.py +11 -0
  540. wandb/vendor/graphql-core-1.1/wandb_graphql/error/located_error.py +29 -0
  541. wandb/vendor/graphql-core-1.1/wandb_graphql/error/syntax_error.py +36 -0
  542. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/__init__.py +26 -0
  543. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/base.py +311 -0
  544. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executor.py +398 -0
  545. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/__init__.py +0 -0
  546. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/asyncio.py +53 -0
  547. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/gevent.py +22 -0
  548. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/process.py +32 -0
  549. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/sync.py +7 -0
  550. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/thread.py +35 -0
  551. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/utils.py +6 -0
  552. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/__init__.py +0 -0
  553. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/executor.py +66 -0
  554. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/fragment.py +252 -0
  555. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/resolver.py +151 -0
  556. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/utils.py +7 -0
  557. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/middleware.py +57 -0
  558. wandb/vendor/graphql-core-1.1/wandb_graphql/execution/values.py +145 -0
  559. wandb/vendor/graphql-core-1.1/wandb_graphql/graphql.py +60 -0
  560. wandb/vendor/graphql-core-1.1/wandb_graphql/language/__init__.py +0 -0
  561. wandb/vendor/graphql-core-1.1/wandb_graphql/language/ast.py +1349 -0
  562. wandb/vendor/graphql-core-1.1/wandb_graphql/language/base.py +19 -0
  563. wandb/vendor/graphql-core-1.1/wandb_graphql/language/lexer.py +435 -0
  564. wandb/vendor/graphql-core-1.1/wandb_graphql/language/location.py +30 -0
  565. wandb/vendor/graphql-core-1.1/wandb_graphql/language/parser.py +779 -0
  566. wandb/vendor/graphql-core-1.1/wandb_graphql/language/printer.py +193 -0
  567. wandb/vendor/graphql-core-1.1/wandb_graphql/language/source.py +18 -0
  568. wandb/vendor/graphql-core-1.1/wandb_graphql/language/visitor.py +222 -0
  569. wandb/vendor/graphql-core-1.1/wandb_graphql/language/visitor_meta.py +82 -0
  570. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/__init__.py +0 -0
  571. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/cached_property.py +17 -0
  572. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/contain_subset.py +28 -0
  573. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/default_ordered_dict.py +40 -0
  574. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/ordereddict.py +8 -0
  575. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/pair_set.py +43 -0
  576. wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/version.py +78 -0
  577. wandb/vendor/graphql-core-1.1/wandb_graphql/type/__init__.py +67 -0
  578. wandb/vendor/graphql-core-1.1/wandb_graphql/type/definition.py +619 -0
  579. wandb/vendor/graphql-core-1.1/wandb_graphql/type/directives.py +132 -0
  580. wandb/vendor/graphql-core-1.1/wandb_graphql/type/introspection.py +440 -0
  581. wandb/vendor/graphql-core-1.1/wandb_graphql/type/scalars.py +131 -0
  582. wandb/vendor/graphql-core-1.1/wandb_graphql/type/schema.py +100 -0
  583. wandb/vendor/graphql-core-1.1/wandb_graphql/type/typemap.py +145 -0
  584. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/__init__.py +0 -0
  585. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/assert_valid_name.py +9 -0
  586. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_from_value.py +65 -0
  587. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_to_code.py +49 -0
  588. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_to_dict.py +24 -0
  589. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/base.py +75 -0
  590. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/build_ast_schema.py +291 -0
  591. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/build_client_schema.py +250 -0
  592. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/concat_ast.py +9 -0
  593. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/extend_schema.py +357 -0
  594. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/get_field_def.py +27 -0
  595. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/get_operation_ast.py +21 -0
  596. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/introspection_query.py +90 -0
  597. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/is_valid_literal_value.py +67 -0
  598. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/is_valid_value.py +66 -0
  599. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/quoted_or_list.py +21 -0
  600. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/schema_printer.py +168 -0
  601. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/suggestion_list.py +56 -0
  602. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_comparators.py +69 -0
  603. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_from_ast.py +21 -0
  604. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_info.py +149 -0
  605. wandb/vendor/graphql-core-1.1/wandb_graphql/utils/value_from_ast.py +69 -0
  606. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/__init__.py +4 -0
  607. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/__init__.py +79 -0
  608. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/arguments_of_correct_type.py +24 -0
  609. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/base.py +8 -0
  610. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/default_values_of_correct_type.py +44 -0
  611. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/fields_on_correct_type.py +113 -0
  612. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/fragments_on_composite_types.py +33 -0
  613. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_argument_names.py +70 -0
  614. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_directives.py +97 -0
  615. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_fragment_names.py +19 -0
  616. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_type_names.py +43 -0
  617. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/lone_anonymous_operation.py +23 -0
  618. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_fragment_cycles.py +59 -0
  619. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_undefined_variables.py +36 -0
  620. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_unused_fragments.py +38 -0
  621. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_unused_variables.py +37 -0
  622. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/overlapping_fields_can_be_merged.py +529 -0
  623. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/possible_fragment_spreads.py +44 -0
  624. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/provided_non_null_arguments.py +46 -0
  625. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/scalar_leafs.py +33 -0
  626. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_argument_names.py +32 -0
  627. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_fragment_names.py +28 -0
  628. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_input_field_names.py +33 -0
  629. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_operation_names.py +31 -0
  630. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_variable_names.py +27 -0
  631. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/variables_are_input_types.py +21 -0
  632. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/variables_in_allowed_position.py +53 -0
  633. wandb/vendor/graphql-core-1.1/wandb_graphql/validation/validation.py +158 -0
  634. wandb/vendor/promise-2.3.0/conftest.py +30 -0
  635. wandb/vendor/promise-2.3.0/setup.py +64 -0
  636. wandb/vendor/promise-2.3.0/tests/__init__.py +0 -0
  637. wandb/vendor/promise-2.3.0/tests/conftest.py +8 -0
  638. wandb/vendor/promise-2.3.0/tests/test_awaitable.py +32 -0
  639. wandb/vendor/promise-2.3.0/tests/test_awaitable_35.py +47 -0
  640. wandb/vendor/promise-2.3.0/tests/test_benchmark.py +116 -0
  641. wandb/vendor/promise-2.3.0/tests/test_complex_threads.py +23 -0
  642. wandb/vendor/promise-2.3.0/tests/test_dataloader.py +452 -0
  643. wandb/vendor/promise-2.3.0/tests/test_dataloader_awaitable_35.py +99 -0
  644. wandb/vendor/promise-2.3.0/tests/test_dataloader_extra.py +65 -0
  645. wandb/vendor/promise-2.3.0/tests/test_extra.py +670 -0
  646. wandb/vendor/promise-2.3.0/tests/test_issues.py +132 -0
  647. wandb/vendor/promise-2.3.0/tests/test_promise_list.py +70 -0
  648. wandb/vendor/promise-2.3.0/tests/test_spec.py +584 -0
  649. wandb/vendor/promise-2.3.0/tests/test_thread_safety.py +115 -0
  650. wandb/vendor/promise-2.3.0/tests/utils.py +3 -0
  651. wandb/vendor/promise-2.3.0/wandb_promise/__init__.py +38 -0
  652. wandb/vendor/promise-2.3.0/wandb_promise/async_.py +135 -0
  653. wandb/vendor/promise-2.3.0/wandb_promise/compat.py +32 -0
  654. wandb/vendor/promise-2.3.0/wandb_promise/dataloader.py +326 -0
  655. wandb/vendor/promise-2.3.0/wandb_promise/iterate_promise.py +12 -0
  656. wandb/vendor/promise-2.3.0/wandb_promise/promise.py +848 -0
  657. wandb/vendor/promise-2.3.0/wandb_promise/promise_list.py +151 -0
  658. wandb/vendor/promise-2.3.0/wandb_promise/pyutils/__init__.py +0 -0
  659. wandb/vendor/promise-2.3.0/wandb_promise/pyutils/version.py +83 -0
  660. wandb/vendor/promise-2.3.0/wandb_promise/schedulers/__init__.py +0 -0
  661. wandb/vendor/promise-2.3.0/wandb_promise/schedulers/asyncio.py +22 -0
  662. wandb/vendor/promise-2.3.0/wandb_promise/schedulers/gevent.py +21 -0
  663. wandb/vendor/promise-2.3.0/wandb_promise/schedulers/immediate.py +27 -0
  664. wandb/vendor/promise-2.3.0/wandb_promise/schedulers/thread.py +18 -0
  665. wandb/vendor/promise-2.3.0/wandb_promise/utils.py +56 -0
  666. wandb/vendor/pygments/__init__.py +90 -0
  667. wandb/vendor/pygments/cmdline.py +568 -0
  668. wandb/vendor/pygments/console.py +74 -0
  669. wandb/vendor/pygments/filter.py +74 -0
  670. wandb/vendor/pygments/filters/__init__.py +350 -0
  671. wandb/vendor/pygments/formatter.py +95 -0
  672. wandb/vendor/pygments/formatters/__init__.py +153 -0
  673. wandb/vendor/pygments/formatters/_mapping.py +85 -0
  674. wandb/vendor/pygments/formatters/bbcode.py +109 -0
  675. wandb/vendor/pygments/formatters/html.py +851 -0
  676. wandb/vendor/pygments/formatters/img.py +600 -0
  677. wandb/vendor/pygments/formatters/irc.py +182 -0
  678. wandb/vendor/pygments/formatters/latex.py +482 -0
  679. wandb/vendor/pygments/formatters/other.py +160 -0
  680. wandb/vendor/pygments/formatters/rtf.py +147 -0
  681. wandb/vendor/pygments/formatters/svg.py +153 -0
  682. wandb/vendor/pygments/formatters/terminal.py +136 -0
  683. wandb/vendor/pygments/formatters/terminal256.py +309 -0
  684. wandb/vendor/pygments/lexer.py +871 -0
  685. wandb/vendor/pygments/lexers/__init__.py +329 -0
  686. wandb/vendor/pygments/lexers/_asy_builtins.py +1645 -0
  687. wandb/vendor/pygments/lexers/_cl_builtins.py +232 -0
  688. wandb/vendor/pygments/lexers/_cocoa_builtins.py +72 -0
  689. wandb/vendor/pygments/lexers/_csound_builtins.py +1346 -0
  690. wandb/vendor/pygments/lexers/_lasso_builtins.py +5327 -0
  691. wandb/vendor/pygments/lexers/_lua_builtins.py +295 -0
  692. wandb/vendor/pygments/lexers/_mapping.py +500 -0
  693. wandb/vendor/pygments/lexers/_mql_builtins.py +1172 -0
  694. wandb/vendor/pygments/lexers/_openedge_builtins.py +2547 -0
  695. wandb/vendor/pygments/lexers/_php_builtins.py +4756 -0
  696. wandb/vendor/pygments/lexers/_postgres_builtins.py +621 -0
  697. wandb/vendor/pygments/lexers/_scilab_builtins.py +3094 -0
  698. wandb/vendor/pygments/lexers/_sourcemod_builtins.py +1163 -0
  699. wandb/vendor/pygments/lexers/_stan_builtins.py +532 -0
  700. wandb/vendor/pygments/lexers/_stata_builtins.py +419 -0
  701. wandb/vendor/pygments/lexers/_tsql_builtins.py +1004 -0
  702. wandb/vendor/pygments/lexers/_vim_builtins.py +1939 -0
  703. wandb/vendor/pygments/lexers/actionscript.py +240 -0
  704. wandb/vendor/pygments/lexers/agile.py +24 -0
  705. wandb/vendor/pygments/lexers/algebra.py +221 -0
  706. wandb/vendor/pygments/lexers/ambient.py +76 -0
  707. wandb/vendor/pygments/lexers/ampl.py +87 -0
  708. wandb/vendor/pygments/lexers/apl.py +101 -0
  709. wandb/vendor/pygments/lexers/archetype.py +318 -0
  710. wandb/vendor/pygments/lexers/asm.py +641 -0
  711. wandb/vendor/pygments/lexers/automation.py +374 -0
  712. wandb/vendor/pygments/lexers/basic.py +500 -0
  713. wandb/vendor/pygments/lexers/bibtex.py +160 -0
  714. wandb/vendor/pygments/lexers/business.py +612 -0
  715. wandb/vendor/pygments/lexers/c_cpp.py +252 -0
  716. wandb/vendor/pygments/lexers/c_like.py +541 -0
  717. wandb/vendor/pygments/lexers/capnproto.py +78 -0
  718. wandb/vendor/pygments/lexers/chapel.py +102 -0
  719. wandb/vendor/pygments/lexers/clean.py +288 -0
  720. wandb/vendor/pygments/lexers/compiled.py +34 -0
  721. wandb/vendor/pygments/lexers/configs.py +833 -0
  722. wandb/vendor/pygments/lexers/console.py +114 -0
  723. wandb/vendor/pygments/lexers/crystal.py +393 -0
  724. wandb/vendor/pygments/lexers/csound.py +366 -0
  725. wandb/vendor/pygments/lexers/css.py +689 -0
  726. wandb/vendor/pygments/lexers/d.py +251 -0
  727. wandb/vendor/pygments/lexers/dalvik.py +125 -0
  728. wandb/vendor/pygments/lexers/data.py +555 -0
  729. wandb/vendor/pygments/lexers/diff.py +165 -0
  730. wandb/vendor/pygments/lexers/dotnet.py +691 -0
  731. wandb/vendor/pygments/lexers/dsls.py +878 -0
  732. wandb/vendor/pygments/lexers/dylan.py +289 -0
  733. wandb/vendor/pygments/lexers/ecl.py +125 -0
  734. wandb/vendor/pygments/lexers/eiffel.py +65 -0
  735. wandb/vendor/pygments/lexers/elm.py +121 -0
  736. wandb/vendor/pygments/lexers/erlang.py +533 -0
  737. wandb/vendor/pygments/lexers/esoteric.py +277 -0
  738. wandb/vendor/pygments/lexers/ezhil.py +69 -0
  739. wandb/vendor/pygments/lexers/factor.py +344 -0
  740. wandb/vendor/pygments/lexers/fantom.py +250 -0
  741. wandb/vendor/pygments/lexers/felix.py +273 -0
  742. wandb/vendor/pygments/lexers/forth.py +177 -0
  743. wandb/vendor/pygments/lexers/fortran.py +205 -0
  744. wandb/vendor/pygments/lexers/foxpro.py +428 -0
  745. wandb/vendor/pygments/lexers/functional.py +21 -0
  746. wandb/vendor/pygments/lexers/go.py +101 -0
  747. wandb/vendor/pygments/lexers/grammar_notation.py +213 -0
  748. wandb/vendor/pygments/lexers/graph.py +80 -0
  749. wandb/vendor/pygments/lexers/graphics.py +553 -0
  750. wandb/vendor/pygments/lexers/haskell.py +843 -0
  751. wandb/vendor/pygments/lexers/haxe.py +936 -0
  752. wandb/vendor/pygments/lexers/hdl.py +382 -0
  753. wandb/vendor/pygments/lexers/hexdump.py +103 -0
  754. wandb/vendor/pygments/lexers/html.py +602 -0
  755. wandb/vendor/pygments/lexers/idl.py +270 -0
  756. wandb/vendor/pygments/lexers/igor.py +288 -0
  757. wandb/vendor/pygments/lexers/inferno.py +96 -0
  758. wandb/vendor/pygments/lexers/installers.py +322 -0
  759. wandb/vendor/pygments/lexers/int_fiction.py +1343 -0
  760. wandb/vendor/pygments/lexers/iolang.py +63 -0
  761. wandb/vendor/pygments/lexers/j.py +146 -0
  762. wandb/vendor/pygments/lexers/javascript.py +1525 -0
  763. wandb/vendor/pygments/lexers/julia.py +333 -0
  764. wandb/vendor/pygments/lexers/jvm.py +1573 -0
  765. wandb/vendor/pygments/lexers/lisp.py +2621 -0
  766. wandb/vendor/pygments/lexers/make.py +202 -0
  767. wandb/vendor/pygments/lexers/markup.py +595 -0
  768. wandb/vendor/pygments/lexers/math.py +21 -0
  769. wandb/vendor/pygments/lexers/matlab.py +663 -0
  770. wandb/vendor/pygments/lexers/ml.py +769 -0
  771. wandb/vendor/pygments/lexers/modeling.py +358 -0
  772. wandb/vendor/pygments/lexers/modula2.py +1561 -0
  773. wandb/vendor/pygments/lexers/monte.py +204 -0
  774. wandb/vendor/pygments/lexers/ncl.py +894 -0
  775. wandb/vendor/pygments/lexers/nimrod.py +159 -0
  776. wandb/vendor/pygments/lexers/nit.py +64 -0
  777. wandb/vendor/pygments/lexers/nix.py +136 -0
  778. wandb/vendor/pygments/lexers/oberon.py +105 -0
  779. wandb/vendor/pygments/lexers/objective.py +504 -0
  780. wandb/vendor/pygments/lexers/ooc.py +85 -0
  781. wandb/vendor/pygments/lexers/other.py +41 -0
  782. wandb/vendor/pygments/lexers/parasail.py +79 -0
  783. wandb/vendor/pygments/lexers/parsers.py +835 -0
  784. wandb/vendor/pygments/lexers/pascal.py +644 -0
  785. wandb/vendor/pygments/lexers/pawn.py +199 -0
  786. wandb/vendor/pygments/lexers/perl.py +620 -0
  787. wandb/vendor/pygments/lexers/php.py +267 -0
  788. wandb/vendor/pygments/lexers/praat.py +294 -0
  789. wandb/vendor/pygments/lexers/prolog.py +306 -0
  790. wandb/vendor/pygments/lexers/python.py +939 -0
  791. wandb/vendor/pygments/lexers/qvt.py +152 -0
  792. wandb/vendor/pygments/lexers/r.py +453 -0
  793. wandb/vendor/pygments/lexers/rdf.py +270 -0
  794. wandb/vendor/pygments/lexers/rebol.py +431 -0
  795. wandb/vendor/pygments/lexers/resource.py +85 -0
  796. wandb/vendor/pygments/lexers/rnc.py +67 -0
  797. wandb/vendor/pygments/lexers/roboconf.py +82 -0
  798. wandb/vendor/pygments/lexers/robotframework.py +560 -0
  799. wandb/vendor/pygments/lexers/ruby.py +519 -0
  800. wandb/vendor/pygments/lexers/rust.py +220 -0
  801. wandb/vendor/pygments/lexers/sas.py +228 -0
  802. wandb/vendor/pygments/lexers/scripting.py +1222 -0
  803. wandb/vendor/pygments/lexers/shell.py +794 -0
  804. wandb/vendor/pygments/lexers/smalltalk.py +195 -0
  805. wandb/vendor/pygments/lexers/smv.py +79 -0
  806. wandb/vendor/pygments/lexers/snobol.py +83 -0
  807. wandb/vendor/pygments/lexers/special.py +103 -0
  808. wandb/vendor/pygments/lexers/sql.py +681 -0
  809. wandb/vendor/pygments/lexers/stata.py +108 -0
  810. wandb/vendor/pygments/lexers/supercollider.py +90 -0
  811. wandb/vendor/pygments/lexers/tcl.py +145 -0
  812. wandb/vendor/pygments/lexers/templates.py +2283 -0
  813. wandb/vendor/pygments/lexers/testing.py +207 -0
  814. wandb/vendor/pygments/lexers/text.py +25 -0
  815. wandb/vendor/pygments/lexers/textedit.py +169 -0
  816. wandb/vendor/pygments/lexers/textfmts.py +297 -0
  817. wandb/vendor/pygments/lexers/theorem.py +458 -0
  818. wandb/vendor/pygments/lexers/trafficscript.py +54 -0
  819. wandb/vendor/pygments/lexers/typoscript.py +226 -0
  820. wandb/vendor/pygments/lexers/urbi.py +133 -0
  821. wandb/vendor/pygments/lexers/varnish.py +190 -0
  822. wandb/vendor/pygments/lexers/verification.py +111 -0
  823. wandb/vendor/pygments/lexers/web.py +24 -0
  824. wandb/vendor/pygments/lexers/webmisc.py +988 -0
  825. wandb/vendor/pygments/lexers/whiley.py +116 -0
  826. wandb/vendor/pygments/lexers/x10.py +69 -0
  827. wandb/vendor/pygments/modeline.py +44 -0
  828. wandb/vendor/pygments/plugin.py +68 -0
  829. wandb/vendor/pygments/regexopt.py +92 -0
  830. wandb/vendor/pygments/scanner.py +105 -0
  831. wandb/vendor/pygments/sphinxext.py +158 -0
  832. wandb/vendor/pygments/style.py +155 -0
  833. wandb/vendor/pygments/styles/__init__.py +80 -0
  834. wandb/vendor/pygments/styles/abap.py +29 -0
  835. wandb/vendor/pygments/styles/algol.py +63 -0
  836. wandb/vendor/pygments/styles/algol_nu.py +63 -0
  837. wandb/vendor/pygments/styles/arduino.py +98 -0
  838. wandb/vendor/pygments/styles/autumn.py +65 -0
  839. wandb/vendor/pygments/styles/borland.py +51 -0
  840. wandb/vendor/pygments/styles/bw.py +49 -0
  841. wandb/vendor/pygments/styles/colorful.py +81 -0
  842. wandb/vendor/pygments/styles/default.py +73 -0
  843. wandb/vendor/pygments/styles/emacs.py +72 -0
  844. wandb/vendor/pygments/styles/friendly.py +72 -0
  845. wandb/vendor/pygments/styles/fruity.py +42 -0
  846. wandb/vendor/pygments/styles/igor.py +29 -0
  847. wandb/vendor/pygments/styles/lovelace.py +97 -0
  848. wandb/vendor/pygments/styles/manni.py +75 -0
  849. wandb/vendor/pygments/styles/monokai.py +106 -0
  850. wandb/vendor/pygments/styles/murphy.py +80 -0
  851. wandb/vendor/pygments/styles/native.py +65 -0
  852. wandb/vendor/pygments/styles/paraiso_dark.py +125 -0
  853. wandb/vendor/pygments/styles/paraiso_light.py +125 -0
  854. wandb/vendor/pygments/styles/pastie.py +75 -0
  855. wandb/vendor/pygments/styles/perldoc.py +69 -0
  856. wandb/vendor/pygments/styles/rainbow_dash.py +89 -0
  857. wandb/vendor/pygments/styles/rrt.py +33 -0
  858. wandb/vendor/pygments/styles/sas.py +44 -0
  859. wandb/vendor/pygments/styles/stata.py +40 -0
  860. wandb/vendor/pygments/styles/tango.py +141 -0
  861. wandb/vendor/pygments/styles/trac.py +63 -0
  862. wandb/vendor/pygments/styles/vim.py +63 -0
  863. wandb/vendor/pygments/styles/vs.py +38 -0
  864. wandb/vendor/pygments/styles/xcode.py +51 -0
  865. wandb/vendor/pygments/token.py +213 -0
  866. wandb/vendor/pygments/unistring.py +217 -0
  867. wandb/vendor/pygments/util.py +388 -0
  868. wandb/vendor/watchdog_0_9_0/wandb_watchdog/__init__.py +17 -0
  869. wandb/vendor/watchdog_0_9_0/wandb_watchdog/events.py +615 -0
  870. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/__init__.py +98 -0
  871. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/api.py +369 -0
  872. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/fsevents.py +172 -0
  873. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/fsevents2.py +239 -0
  874. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify.py +218 -0
  875. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify_buffer.py +81 -0
  876. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify_c.py +575 -0
  877. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/kqueue.py +730 -0
  878. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/polling.py +145 -0
  879. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/read_directory_changes.py +133 -0
  880. wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/winapi.py +348 -0
  881. wandb/vendor/watchdog_0_9_0/wandb_watchdog/patterns.py +265 -0
  882. wandb/vendor/watchdog_0_9_0/wandb_watchdog/tricks/__init__.py +174 -0
  883. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/__init__.py +151 -0
  884. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/bricks.py +249 -0
  885. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/compat.py +29 -0
  886. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/decorators.py +198 -0
  887. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/delayed_queue.py +88 -0
  888. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/dirsnapshot.py +293 -0
  889. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/echo.py +157 -0
  890. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/event_backport.py +41 -0
  891. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py +40 -0
  892. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py +57 -0
  893. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py +64 -0
  894. wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py +123 -0
  895. wandb/vendor/watchdog_0_9_0/wandb_watchdog/version.py +28 -0
  896. wandb/vendor/watchdog_0_9_0/wandb_watchdog/watchmedo.py +577 -0
  897. wandb/wandb_agent.py +580 -0
  898. wandb/wandb_controller.py +719 -0
  899. wandb/wandb_run.py +8 -0
  900. wandb-0.21.2.dist-info/METADATA +223 -0
  901. wandb-0.21.2.dist-info/RECORD +904 -0
  902. wandb-0.21.2.dist-info/WHEEL +4 -0
  903. wandb-0.21.2.dist-info/entry_points.txt +3 -0
  904. wandb-0.21.2.dist-info/licenses/LICENSE +21 -0
wandb/__init__.pyi ADDED
@@ -0,0 +1,1230 @@
1
+ """Use wandb to track machine learning work.
2
+
3
+ Train and fine-tune models, manage models from experimentation to production.
4
+
5
+ For guides and examples, see https://docs.wandb.ai.
6
+
7
+ For scripts and interactive notebooks, see https://github.com/wandb/examples.
8
+
9
+ For reference documentation, see https://docs.wandb.com/ref/python.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ __all__ = (
15
+ "__version__", # doc:exclude
16
+ "init",
17
+ "finish",
18
+ "setup",
19
+ "login",
20
+ "save", # doc:exclude
21
+ "sweep",
22
+ "controller",
23
+ "agent",
24
+ "config", # doc:exclude
25
+ "log", # doc:exclude
26
+ "summary", # doc:exclude
27
+ "Api",
28
+ "Graph", # doc:exclude
29
+ "Image",
30
+ "Plotly",
31
+ "Video",
32
+ "Audio",
33
+ "Table",
34
+ "Html",
35
+ "box3d",
36
+ "Object3D",
37
+ "Molecule",
38
+ "Histogram",
39
+ "ArtifactTTL", # doc:exclude
40
+ "log_artifact", # doc:exclude
41
+ "use_artifact", # doc:exclude
42
+ "log_model", # doc:exclude
43
+ "use_model", # doc:exclude
44
+ "link_model", # doc:exclude
45
+ "define_metric", # doc:exclude
46
+ "Error", # doc:exclude
47
+ "termsetup", # doc:exclude
48
+ "termlog", # doc:exclude
49
+ "termerror", # doc:exclude
50
+ "termwarn", # doc:exclude
51
+ "Artifact",
52
+ "Settings",
53
+ "teardown",
54
+ "watch", # doc:exclude
55
+ "unwatch", # doc:exclude
56
+ "plot", # doc:exclude
57
+ "plot_table",
58
+ "restore",
59
+ "Run",
60
+ )
61
+
62
+ import os
63
+ from typing import (
64
+ TYPE_CHECKING,
65
+ Any,
66
+ Callable,
67
+ Dict,
68
+ Iterable,
69
+ List,
70
+ Literal,
71
+ Optional,
72
+ Sequence,
73
+ TextIO,
74
+ Union,
75
+ )
76
+
77
+ import wandb.plot as plot
78
+ from wandb.analytics import Sentry
79
+ from wandb.apis import InternalApi
80
+ from wandb.apis import PublicApi as Api
81
+ from wandb.data_types import (
82
+ Audio,
83
+ Graph,
84
+ Histogram,
85
+ Html,
86
+ Image,
87
+ Molecule,
88
+ Object3D,
89
+ Plotly,
90
+ Table,
91
+ Video,
92
+ box3d,
93
+ )
94
+ from wandb.errors import Error
95
+ from wandb.errors.term import termerror, termlog, termsetup, termwarn
96
+ from wandb.sdk import Artifact, Settings, wandb_config, wandb_metric, wandb_summary
97
+ from wandb.sdk.artifacts.artifact_ttl import ArtifactTTL
98
+ from wandb.sdk.interface.interface import PolicyName
99
+ from wandb.sdk.lib.paths import FilePathStr, StrPath
100
+ from wandb.sdk.wandb_run import Run
101
+ from wandb.sdk.wandb_setup import _WandbSetup
102
+ from wandb.wandb_controller import _WandbController
103
+
104
+ if TYPE_CHECKING:
105
+ import torch # type: ignore [import-not-found]
106
+
107
+ import wandb
108
+ from wandb.plot import CustomChart
109
+
110
+ __version__: str = "0.21.2"
111
+
112
+ run: Run | None
113
+ config: wandb_config.Config
114
+ summary: wandb_summary.Summary
115
+
116
+ # private attributes
117
+ _sentry: Sentry
118
+ api: InternalApi
119
+ patched: Dict[str, List[Callable]]
120
+
121
+ def require(
122
+ requirement: str | Iterable[str] | None = None,
123
+ experiment: str | Iterable[str] | None = None,
124
+ ) -> None:
125
+ """Indicate which experimental features are used by the script.
126
+
127
+ This should be called before any other `wandb` functions, ideally right
128
+ after importing `wandb`.
129
+
130
+ Args:
131
+ requirement: The name of a feature to require or an iterable of
132
+ feature names.
133
+ experiment: An alias for `requirement`.
134
+
135
+ Raises:
136
+ wandb.errors.UnsupportedError: If a feature name is unknown.
137
+ """
138
+ ...
139
+
140
+ def setup(settings: Settings | None = None) -> _WandbSetup:
141
+ """Prepares W&B for use in the current process and its children.
142
+
143
+ You can usually ignore this as it is implicitly called by `wandb.init()`.
144
+
145
+ When using wandb in multiple processes, calling `wandb.setup()`
146
+ in the parent process before starting child processes may improve
147
+ performance and resource utilization.
148
+
149
+ Note that `wandb.setup()` modifies `os.environ`, and it is important
150
+ that child processes inherit the modified environment variables.
151
+
152
+ See also `wandb.teardown()`.
153
+
154
+ Args:
155
+ settings: Configuration settings to apply globally. These can be
156
+ overridden by subsequent `wandb.init()` calls.
157
+
158
+ Example:
159
+ ```python
160
+ import multiprocessing
161
+
162
+ import wandb
163
+
164
+ def run_experiment(params):
165
+ with wandb.init(config=params):
166
+ # Run experiment
167
+ pass
168
+
169
+ if __name__ == "__main__":
170
+ # Start backend and set global config
171
+ wandb.setup(settings={"project": "my_project"})
172
+
173
+ # Define experiment parameters
174
+ experiment_params = [
175
+ {"learning_rate": 0.01, "epochs": 10},
176
+ {"learning_rate": 0.001, "epochs": 20},
177
+ ]
178
+
179
+ # Start multiple processes, each running a separate experiment
180
+ processes = []
181
+ for params in experiment_params:
182
+ p = multiprocessing.Process(target=run_experiment, args=(params,))
183
+ p.start()
184
+ processes.append(p)
185
+
186
+ # Wait for all processes to complete
187
+ for p in processes:
188
+ p.join()
189
+
190
+ # Optional: Explicitly shut down the backend
191
+ wandb.teardown()
192
+ ```
193
+ """
194
+ ...
195
+
196
+ def teardown(exit_code: int | None = None) -> None:
197
+ """Waits for W&B to finish and frees resources.
198
+
199
+ Completes any runs that were not explicitly finished
200
+ using `run.finish()` and waits for all data to be uploaded.
201
+
202
+ It is recommended to call this at the end of a session
203
+ that used `wandb.setup()`. It is invoked automatically
204
+ in an `atexit` hook, but this is not reliable in certain setups
205
+ such as when using Python's `multiprocessing` module.
206
+ """
207
+ ...
208
+
209
+ def init(
210
+ entity: str | None = None,
211
+ project: str | None = None,
212
+ dir: StrPath | None = None,
213
+ id: str | None = None,
214
+ name: str | None = None,
215
+ notes: str | None = None,
216
+ tags: Sequence[str] | None = None,
217
+ config: dict[str, Any] | str | None = None,
218
+ config_exclude_keys: list[str] | None = None,
219
+ config_include_keys: list[str] | None = None,
220
+ allow_val_change: bool | None = None,
221
+ group: str | None = None,
222
+ job_type: str | None = None,
223
+ mode: Literal["online", "offline", "disabled", "shared"] | None = None,
224
+ force: bool | None = None,
225
+ anonymous: Literal["never", "allow", "must"] | None = None,
226
+ reinit: (
227
+ bool
228
+ | Literal[
229
+ None,
230
+ "default",
231
+ "return_previous",
232
+ "finish_previous",
233
+ "create_new",
234
+ ]
235
+ ) = None,
236
+ resume: bool | Literal["allow", "never", "must", "auto"] | None = None,
237
+ resume_from: str | None = None,
238
+ fork_from: str | None = None,
239
+ save_code: bool | None = None,
240
+ tensorboard: bool | None = None,
241
+ sync_tensorboard: bool | None = None,
242
+ monitor_gym: bool | None = None,
243
+ settings: Settings | dict[str, Any] | None = None,
244
+ ) -> Run:
245
+ r"""Start a new run to track and log to W&B.
246
+
247
+ In an ML training pipeline, you could add `wandb.init()` to the beginning of
248
+ your training script as well as your evaluation script, and each piece would
249
+ be tracked as a run in W&B.
250
+
251
+ `wandb.init()` spawns a new background process to log data to a run, and it
252
+ also syncs data to https://wandb.ai by default, so you can see your results
253
+ in real-time. When you're done logging data, call `wandb.Run.finish()` to end the run.
254
+ If you don't call `run.finish()`, the run will end when your script exits.
255
+
256
+ Run IDs must not contain any of the following special characters `/ \ # ? % :`
257
+
258
+ Args:
259
+ entity: The username or team name the runs are logged to.
260
+ The entity must already exist, so ensure you create your account
261
+ or team in the UI before starting to log runs. If not specified, the
262
+ run will default your default entity. To change the default entity,
263
+ go to your settings and update the
264
+ "Default location to create new projects" under "Default team".
265
+ project: The name of the project under which this run will be logged.
266
+ If not specified, we use a heuristic to infer the project name based
267
+ on the system, such as checking the git root or the current program
268
+ file. If we can't infer the project name, the project will default to
269
+ `"uncategorized"`.
270
+ dir: The absolute path to the directory where experiment logs and
271
+ metadata files are stored. If not specified, this defaults
272
+ to the `./wandb` directory. Note that this does not affect the
273
+ location where artifacts are stored when calling `download()`.
274
+ id: A unique identifier for this run, used for resuming. It must be unique
275
+ within the project and cannot be reused once a run is deleted. For
276
+ a short descriptive name, use the `name` field,
277
+ or for saving hyperparameters to compare across runs, use `config`.
278
+ name: A short display name for this run, which appears in the UI to help
279
+ you identify it. By default, we generate a random two-word name
280
+ allowing easy cross-reference runs from table to charts. Keeping these
281
+ run names brief enhances readability in chart legends and tables. For
282
+ saving hyperparameters, we recommend using the `config` field.
283
+ notes: A detailed description of the run, similar to a commit message in
284
+ Git. Use this argument to capture any context or details that may
285
+ help you recall the purpose or setup of this run in the future.
286
+ tags: A list of tags to label this run in the UI. Tags are helpful for
287
+ organizing runs or adding temporary identifiers like "baseline" or
288
+ "production." You can easily add, remove tags, or filter by tags in
289
+ the UI.
290
+ If resuming a run, the tags provided here will replace any existing
291
+ tags. To add tags to a resumed run without overwriting the current
292
+ tags, use `run.tags += ("new_tag",)` after calling `run = wandb.init()`.
293
+ config: Sets `wandb.config`, a dictionary-like object for storing input
294
+ parameters to your run, such as model hyperparameters or data
295
+ preprocessing settings.
296
+ The config appears in the UI in an overview page, allowing you to
297
+ group, filter, and sort runs based on these parameters.
298
+ Keys should not contain periods (`.`), and values should be
299
+ smaller than 10 MB.
300
+ If a dictionary, `argparse.Namespace`, or `absl.flags.FLAGS` is
301
+ provided, the key-value pairs will be loaded directly into
302
+ `wandb.config`.
303
+ If a string is provided, it is interpreted as a path to a YAML file,
304
+ from which configuration values will be loaded into `wandb.config`.
305
+ config_exclude_keys: A list of specific keys to exclude from `wandb.config`.
306
+ config_include_keys: A list of specific keys to include in `wandb.config`.
307
+ allow_val_change: Controls whether config values can be modified after their
308
+ initial set. By default, an exception is raised if a config value is
309
+ overwritten. For tracking variables that change during training, such as
310
+ a learning rate, consider using `wandb.log()` instead. By default, this
311
+ is `False` in scripts and `True` in Notebook environments.
312
+ group: Specify a group name to organize individual runs as part of a larger
313
+ experiment. This is useful for cases like cross-validation or running
314
+ multiple jobs that train and evaluate a model on different test sets.
315
+ Grouping allows you to manage related runs collectively in the UI,
316
+ making it easy to toggle and review results as a unified experiment.
317
+ job_type: Specify the type of run, especially helpful when organizing runs
318
+ within a group as part of a larger experiment. For example, in a group,
319
+ you might label runs with job types such as "train" and "eval".
320
+ Defining job types enables you to easily filter and group similar runs
321
+ in the UI, facilitating direct comparisons.
322
+ mode: Specifies how run data is managed, with the following options:
323
+ - `"online"` (default): Enables live syncing with W&B when a network
324
+ connection is available, with real-time updates to visualizations.
325
+ - `"offline"`: Suitable for air-gapped or offline environments; data
326
+ is saved locally and can be synced later. Ensure the run folder
327
+ is preserved to enable future syncing.
328
+ - `"disabled"`: Disables all W&B functionality, making the run’s methods
329
+ no-ops. Typically used in testing to bypass W&B operations.
330
+ - `"shared"`: (This is an experimental feature). Allows multiple processes,
331
+ possibly on different machines, to simultaneously log to the same run.
332
+ In this approach you use a primary node and one or more worker nodes
333
+ to log data to the same run. Within the primary node you
334
+ initialize a run. For each worker node, initialize a run
335
+ using the run ID used by the primary node.
336
+ force: Determines if a W&B login is required to run the script. If `True`,
337
+ the user must be logged in to W&B; otherwise, the script will not
338
+ proceed. If `False` (default), the script can proceed without a login,
339
+ switching to offline mode if the user is not logged in.
340
+ anonymous: Specifies the level of control over anonymous data logging.
341
+ Available options are:
342
+ - `"never"` (default): Requires you to link your W&B account before
343
+ tracking the run. This prevents unintentional creation of anonymous
344
+ runs by ensuring each run is associated with an account.
345
+ - `"allow"`: Enables a logged-in user to track runs with their account,
346
+ but also allows someone running the script without a W&B account
347
+ to view the charts and data in the UI.
348
+ - `"must"`: Forces the run to be logged to an anonymous account, even
349
+ if the user is logged in.
350
+ reinit: Shorthand for the "reinit" setting. Determines the behavior of
351
+ `wandb.init()` when a run is active.
352
+ resume: Controls the behavior when resuming a run with the specified `id`.
353
+ Available options are:
354
+ - `"allow"`: If a run with the specified `id` exists, it will resume
355
+ from the last step; otherwise, a new run will be created.
356
+ - `"never"`: If a run with the specified `id` exists, an error will
357
+ be raised. If no such run is found, a new run will be created.
358
+ - `"must"`: If a run with the specified `id` exists, it will resume
359
+ from the last step. If no run is found, an error will be raised.
360
+ - `"auto"`: Automatically resumes the previous run if it crashed on
361
+ this machine; otherwise, starts a new run.
362
+ - `True`: Deprecated. Use `"auto"` instead.
363
+ - `False`: Deprecated. Use the default behavior (leaving `resume`
364
+ unset) to always start a new run.
365
+ If `resume` is set, `fork_from` and `resume_from` cannot be
366
+ used. When `resume` is unset, the system will always start a new run.
367
+ resume_from: Specifies a moment in a previous run to resume a run from,
368
+ using the format `{run_id}?_step={step}`. This allows users to truncate
369
+ the history logged to a run at an intermediate step and resume logging
370
+ from that step. The target run must be in the same project.
371
+ If an `id` argument is also provided, the `resume_from` argument will
372
+ take precedence.
373
+ `resume`, `resume_from` and `fork_from` cannot be used together, only
374
+ one of them can be used at a time.
375
+ Note that this feature is in beta and may change in the future.
376
+ fork_from: Specifies a point in a previous run from which to fork a new
377
+ run, using the format `{id}?_step={step}`. This creates a new run that
378
+ resumes logging from the specified step in the target run’s history.
379
+ The target run must be part of the current project.
380
+ If an `id` argument is also provided, it must be different from the
381
+ `fork_from` argument, an error will be raised if they are the same.
382
+ `resume`, `resume_from` and `fork_from` cannot be used together, only
383
+ one of them can be used at a time.
384
+ Note that this feature is in beta and may change in the future.
385
+ save_code: Enables saving the main script or notebook to W&B, aiding in
386
+ experiment reproducibility and allowing code comparisons across runs in
387
+ the UI. By default, this is disabled, but you can change the default to
388
+ enable on your settings page.
389
+ tensorboard: Deprecated. Use `sync_tensorboard` instead.
390
+ sync_tensorboard: Enables automatic syncing of W&B logs from TensorBoard
391
+ or TensorBoardX, saving relevant event files for viewing in the W&B UI.
392
+ saving relevant event files for viewing in the W&B UI. (Default: `False`)
393
+ monitor_gym: Enables automatic logging of videos of the environment when
394
+ using OpenAI Gym.
395
+ settings: Specifies a dictionary or `wandb.Settings` object with advanced
396
+ settings for the run.
397
+
398
+ Returns:
399
+ A `Run` object.
400
+
401
+ Raises:
402
+ Error: If some unknown or internal error happened during the run
403
+ initialization.
404
+ AuthenticationError: If the user failed to provide valid credentials.
405
+ CommError: If there was a problem communicating with the WandB server.
406
+ UsageError: If the user provided invalid arguments.
407
+ KeyboardInterrupt: If user interrupts the run.
408
+
409
+ Examples:
410
+ `wandb.init()` returns a `Run` object. Use the run object to log data,
411
+ save artifacts, and manage the run lifecycle.
412
+
413
+ ```python
414
+ import wandb
415
+
416
+ config = {"lr": 0.01, "batch_size": 32}
417
+ with wandb.init(config=config) as run:
418
+ # Log accuracy and loss to the run
419
+ acc = 0.95 # Example accuracy
420
+ loss = 0.05 # Example loss
421
+ run.log({"accuracy": acc, "loss": loss})
422
+ ```
423
+ """
424
+ ...
425
+
426
+ def finish(
427
+ exit_code: int | None = None,
428
+ quiet: bool | None = None,
429
+ ) -> None:
430
+ """Finish a run and upload any remaining data.
431
+
432
+ Marks the completion of a W&B run and ensures all data is synced to the server.
433
+ The run's final state is determined by its exit conditions and sync status.
434
+
435
+ Run States:
436
+ - Running: Active run that is logging data and/or sending heartbeats.
437
+ - Crashed: Run that stopped sending heartbeats unexpectedly.
438
+ - Finished: Run completed successfully (`exit_code=0`) with all data synced.
439
+ - Failed: Run completed with errors (`exit_code!=0`).
440
+
441
+ Args:
442
+ exit_code: Integer indicating the run's exit status. Use 0 for success,
443
+ any other value marks the run as failed.
444
+ quiet: Deprecated. Configure logging verbosity using `wandb.Settings(quiet=...)`.
445
+ """
446
+ ...
447
+
448
+ def login(
449
+ anonymous: Optional[Literal["must", "allow", "never"]] = None,
450
+ key: Optional[str] = None,
451
+ relogin: Optional[bool] = None,
452
+ host: Optional[str] = None,
453
+ force: Optional[bool] = None,
454
+ timeout: Optional[int] = None,
455
+ verify: bool = False,
456
+ referrer: Optional[str] = None,
457
+ ) -> bool:
458
+ """Set up W&B login credentials.
459
+
460
+ By default, this will only store credentials locally without
461
+ verifying them with the W&B server. To verify credentials, pass
462
+ `verify=True`.
463
+
464
+ Args:
465
+ anonymous: Set to "must", "allow", or "never".
466
+ If set to "must", always log a user in anonymously. If set to
467
+ "allow", only create an anonymous user if the user
468
+ isn't already logged in. If set to "never", never log a
469
+ user anonymously. Default set to "never". Defaults to `None`.
470
+ key: The API key to use.
471
+ relogin: If true, will re-prompt for API key.
472
+ host: The host to connect to.
473
+ force: If true, will force a relogin.
474
+ timeout: Number of seconds to wait for user input.
475
+ verify: Verify the credentials with the W&B server.
476
+ referrer: The referrer to use in the URL login request.
477
+
478
+
479
+ Returns:
480
+ bool: If `key` is configured.
481
+
482
+ Raises:
483
+ AuthenticationError: If `api_key` fails verification with the server.
484
+ UsageError: If `api_key` cannot be configured and no tty.
485
+ """
486
+ ...
487
+
488
+ def log(
489
+ data: dict[str, Any],
490
+ step: int | None = None,
491
+ commit: bool | None = None,
492
+ ) -> None:
493
+ """Upload run data.
494
+
495
+ Use `log` to log data from runs, such as scalars, images, video,
496
+ histograms, plots, and tables. See [Log objects and media](https://docs.wandb.ai/guides/track/log) for
497
+ code snippets, best practices, and more.
498
+
499
+ Basic usage:
500
+
501
+ ```python
502
+ import wandb
503
+
504
+ with wandb.init() as run:
505
+ run.log({"train-loss": 0.5, "accuracy": 0.9})
506
+ ```
507
+
508
+ The previous code snippet saves the loss and accuracy to the run's
509
+ history and updates the summary values for these metrics.
510
+
511
+ Visualize logged data in a workspace at [wandb.ai](https://wandb.ai),
512
+ or locally on a [self-hosted instance](https://docs.wandb.ai/guides/hosting)
513
+ of the W&B app, or export data to visualize and explore locally, such as in a
514
+ Jupyter notebook, with the [Public API](https://docs.wandb.ai/guides/track/public-api-guide).
515
+
516
+ Logged values don't have to be scalars. You can log any
517
+ [W&B supported Data Type](https://docs.wandb.ai/ref/python/data-types/)
518
+ such as images, audio, video, and more. For example, you can use
519
+ `wandb.Table` to log structured data. See
520
+ [Log tables, visualize and query data](https://docs.wandb.ai/guides/models/tables/tables-walkthrough)
521
+ tutorial for more details.
522
+
523
+ W&B organizes metrics with a forward slash (`/`) in their name
524
+ into sections named using the text before the final slash. For example,
525
+ the following results in two sections named "train" and "validate":
526
+
527
+ ```python
528
+ with wandb.init() as run:
529
+ # Log metrics in the "train" section.
530
+ run.log(
531
+ {
532
+ "train/accuracy": 0.9,
533
+ "train/loss": 30,
534
+ "validate/accuracy": 0.8,
535
+ "validate/loss": 20,
536
+ }
537
+ )
538
+ ```
539
+
540
+ Only one level of nesting is supported; `run.log({"a/b/c": 1})`
541
+ produces a section named "a/b".
542
+
543
+ `run.log()` is not intended to be called more than a few times per second.
544
+ For optimal performance, limit your logging to once every N iterations,
545
+ or collect data over multiple iterations and log it in a single step.
546
+
547
+ By default, each call to `log` creates a new "step".
548
+ The step must always increase, and it is not possible to log
549
+ to a previous step. You can use any metric as the X axis in charts.
550
+ See [Custom log axes](https://docs.wandb.ai/guides/track/log/customize-logging-axes/)
551
+ for more details.
552
+
553
+ In many cases, it is better to treat the W&B step like
554
+ you'd treat a timestamp rather than a training step.
555
+
556
+ ```python
557
+ with wandb.init() as run:
558
+ # Example: log an "epoch" metric for use as an X axis.
559
+ run.log({"epoch": 40, "train-loss": 0.5})
560
+ ```
561
+
562
+ It is possible to use multiple `wandb.Run.log()` invocations to log to
563
+ the same step with the `step` and `commit` parameters.
564
+ The following are all equivalent:
565
+
566
+ ```python
567
+ with wandb.init() as run:
568
+ # Normal usage:
569
+ run.log({"train-loss": 0.5, "accuracy": 0.8})
570
+ run.log({"train-loss": 0.4, "accuracy": 0.9})
571
+
572
+ # Implicit step without auto-incrementing:
573
+ run.log({"train-loss": 0.5}, commit=False)
574
+ run.log({"accuracy": 0.8})
575
+ run.log({"train-loss": 0.4}, commit=False)
576
+ run.log({"accuracy": 0.9})
577
+
578
+ # Explicit step:
579
+ run.log({"train-loss": 0.5}, step=current_step)
580
+ run.log({"accuracy": 0.8}, step=current_step)
581
+ current_step += 1
582
+ run.log({"train-loss": 0.4}, step=current_step)
583
+ run.log({"accuracy": 0.9}, step=current_step)
584
+ ```
585
+
586
+ Args:
587
+ data: A `dict` with `str` keys and values that are serializable
588
+ Python objects including: `int`, `float` and `string`;
589
+ any of the `wandb.data_types`; lists, tuples and NumPy arrays
590
+ of serializable Python objects; other `dict`s of this
591
+ structure.
592
+ step: The step number to log. If `None`, then an implicit
593
+ auto-incrementing step is used. See the notes in
594
+ the description.
595
+ commit: If true, finalize and upload the step. If false, then
596
+ accumulate data for the step. See the notes in the description.
597
+ If `step` is `None`, then the default is `commit=True`;
598
+ otherwise, the default is `commit=False`.
599
+
600
+ Examples:
601
+ For more and more detailed examples, see
602
+ [our guides to logging](https://docs.wandb.com/guides/track/log).
603
+
604
+ Basic usage
605
+
606
+ ```python
607
+ import wandb
608
+
609
+ with wandb.init() as run:
610
+ run.log({"train-loss": 0.5, "accuracy": 0.9
611
+ ```
612
+
613
+ Incremental logging
614
+
615
+ ```python
616
+ import wandb
617
+
618
+ with wandb.init() as run:
619
+ run.log({"loss": 0.2}, commit=False)
620
+ # Somewhere else when I'm ready to report this step:
621
+ run.log({"accuracy": 0.8})
622
+ ```
623
+
624
+ Histogram
625
+
626
+ ```python
627
+ import numpy as np
628
+ import wandb
629
+
630
+ # sample gradients at random from normal distribution
631
+ gradients = np.random.randn(100, 100)
632
+ with wandb.init() as run:
633
+ run.log({"gradients": wandb.Histogram(gradients)})
634
+ ```
635
+
636
+ Image from NumPy
637
+
638
+ ```python
639
+ import numpy as np
640
+ import wandb
641
+
642
+ with wandb.init() as run:
643
+ examples = []
644
+ for i in range(3):
645
+ pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
646
+ image = wandb.Image(pixels, caption=f"random field {i}")
647
+ examples.append(image)
648
+ run.log({"examples": examples})
649
+ ```
650
+
651
+ Image from PIL
652
+
653
+ ```python
654
+ import numpy as np
655
+ from PIL import Image as PILImage
656
+ import wandb
657
+
658
+ with wandb.init() as run:
659
+ examples = []
660
+ for i in range(3):
661
+ pixels = np.random.randint(
662
+ low=0,
663
+ high=256,
664
+ size=(100, 100, 3),
665
+ dtype=np.uint8,
666
+ )
667
+ pil_image = PILImage.fromarray(pixels, mode="RGB")
668
+ image = wandb.Image(pil_image, caption=f"random field {i}")
669
+ examples.append(image)
670
+ run.log({"examples": examples})
671
+ ```
672
+
673
+ Video from NumPy
674
+
675
+ ```python
676
+ import numpy as np
677
+ import wandb
678
+
679
+ with wandb.init() as run:
680
+ # axes are (time, channel, height, width)
681
+ frames = np.random.randint(
682
+ low=0,
683
+ high=256,
684
+ size=(10, 3, 100, 100),
685
+ dtype=np.uint8,
686
+ )
687
+ run.log({"video": wandb.Video(frames, fps=4)})
688
+ ```
689
+
690
+ Matplotlib plot
691
+
692
+ ```python
693
+ from matplotlib import pyplot as plt
694
+ import numpy as np
695
+ import wandb
696
+
697
+ with wandb.init() as run:
698
+ fig, ax = plt.subplots()
699
+ x = np.linspace(0, 10)
700
+ y = x * x
701
+ ax.plot(x, y) # plot y = x^2
702
+ run.log({"chart": fig})
703
+ ```
704
+
705
+ PR Curve
706
+
707
+ ```python
708
+ import wandb
709
+
710
+ with wandb.init() as run:
711
+ run.log({"pr": wandb.plot.pr_curve(y_test, y_probas, labels)})
712
+ ```
713
+
714
+ 3D Object
715
+
716
+ ```python
717
+ import wandb
718
+
719
+ with wandb.init() as run:
720
+ run.log(
721
+ {
722
+ "generated_samples": [
723
+ wandb.Object3D(open("sample.obj")),
724
+ wandb.Object3D(open("sample.gltf")),
725
+ wandb.Object3D(open("sample.glb")),
726
+ ]
727
+ }
728
+ )
729
+ ```
730
+
731
+ Raises:
732
+ wandb.Error: If called before `wandb.init()`.
733
+ ValueError: If invalid data is passed.
734
+ """
735
+ ...
736
+
737
+ def save(
738
+ glob_str: str | os.PathLike,
739
+ base_path: str | os.PathLike | None = None,
740
+ policy: PolicyName = "live",
741
+ ) -> bool | list[str]:
742
+ """Sync one or more files to W&B.
743
+
744
+ Relative paths are relative to the current working directory.
745
+
746
+ A Unix glob, such as "myfiles/*", is expanded at the time `save` is
747
+ called regardless of the `policy`. In particular, new files are not
748
+ picked up automatically.
749
+
750
+ A `base_path` may be provided to control the directory structure of
751
+ uploaded files. It should be a prefix of `glob_str`, and the directory
752
+ structure beneath it is preserved.
753
+
754
+ When given an absolute path or glob and no `base_path`, one
755
+ directory level is preserved as in the example above.
756
+
757
+ Args:
758
+ glob_str: A relative or absolute path or Unix glob.
759
+ base_path: A path to use to infer a directory structure; see examples.
760
+ policy: One of `live`, `now`, or `end`.
761
+ - live: upload the file as it changes, overwriting the previous version
762
+ - now: upload the file once now
763
+ - end: upload file when the run ends
764
+
765
+ Returns:
766
+ Paths to the symlinks created for the matched files.
767
+
768
+ For historical reasons, this may return a boolean in legacy code.
769
+
770
+ ```python
771
+ import wandb
772
+
773
+ run = wandb.init()
774
+
775
+ run.save("these/are/myfiles/*")
776
+ # => Saves files in a "these/are/myfiles/" folder in the run.
777
+
778
+ run.save("these/are/myfiles/*", base_path="these")
779
+ # => Saves files in an "are/myfiles/" folder in the run.
780
+
781
+ run.save("/User/username/Documents/run123/*.txt")
782
+ # => Saves files in a "run123/" folder in the run. See note below.
783
+
784
+ run.save("/User/username/Documents/run123/*.txt", base_path="/User")
785
+ # => Saves files in a "username/Documents/run123/" folder in the run.
786
+
787
+ run.save("files/*/saveme.txt")
788
+ # => Saves each "saveme.txt" file in an appropriate subdirectory
789
+ # of "files/".
790
+
791
+ # Explicitly finish the run since a context manager is not used.
792
+ run.finish()
793
+ ```
794
+ """
795
+ ...
796
+
797
+ def sweep(
798
+ sweep: Union[dict, Callable],
799
+ entity: Optional[str] = None,
800
+ project: Optional[str] = None,
801
+ prior_runs: Optional[List[str]] = None,
802
+ ) -> str:
803
+ """Initialize a hyperparameter sweep.
804
+
805
+ Search for hyperparameters that optimizes a cost function
806
+ of a machine learning model by testing various combinations.
807
+
808
+ Make note the unique identifier, `sweep_id`, that is returned.
809
+ At a later step provide the `sweep_id` to a sweep agent.
810
+
811
+ See [Sweep configuration structure](https://docs.wandb.ai/guides/sweeps/define-sweep-configuration)
812
+ for information on how to define your sweep.
813
+
814
+ Args:
815
+ sweep: The configuration of a hyperparameter search.
816
+ (or configuration generator).
817
+ If you provide a callable, ensure that the callable does
818
+ not take arguments and that it returns a dictionary that
819
+ conforms to the W&B sweep config spec.
820
+ entity: The username or team name where you want to send W&B
821
+ runs created by the sweep to. Ensure that the entity you
822
+ specify already exists. If you don't specify an entity,
823
+ the run will be sent to your default entity,
824
+ which is usually your username.
825
+ project: The name of the project where W&B runs created from
826
+ the sweep are sent to. If the project is not specified, the
827
+ run is sent to a project labeled 'Uncategorized'.
828
+ prior_runs: The run IDs of existing runs to add to this sweep.
829
+
830
+ Returns:
831
+ str: A unique identifier for the sweep.
832
+ """
833
+ ...
834
+
835
+ def controller(
836
+ sweep_id_or_config: Optional[Union[str, Dict]] = None,
837
+ entity: Optional[str] = None,
838
+ project: Optional[str] = None,
839
+ ) -> _WandbController:
840
+ """Public sweep controller constructor.
841
+
842
+ Examples:
843
+ ```python
844
+ import wandb
845
+
846
+ tuner = wandb.controller(...)
847
+ print(tuner.sweep_config)
848
+ print(tuner.sweep_id)
849
+ tuner.configure_search(...)
850
+ tuner.configure_stopping(...)
851
+ ```
852
+ """
853
+ ...
854
+
855
+ def agent(
856
+ sweep_id: str,
857
+ function: Optional[Callable] = None,
858
+ entity: Optional[str] = None,
859
+ project: Optional[str] = None,
860
+ count: Optional[int] = None,
861
+ ) -> None:
862
+ """Start one or more sweep agents.
863
+
864
+ The sweep agent uses the `sweep_id` to know which sweep it
865
+ is a part of, what function to execute, and (optionally) how
866
+ many agents to run.
867
+
868
+ Args:
869
+ sweep_id: The unique identifier for a sweep. A sweep ID
870
+ is generated by W&B CLI or Python SDK.
871
+ function: A function to call instead of the "program"
872
+ specified in the sweep config.
873
+ entity: The username or team name where you want to send W&B
874
+ runs created by the sweep to. Ensure that the entity you
875
+ specify already exists. If you don't specify an entity,
876
+ the run will be sent to your default entity,
877
+ which is usually your username.
878
+ project: The name of the project where W&B runs created from
879
+ the sweep are sent to. If the project is not specified, the
880
+ run is sent to a project labeled "Uncategorized".
881
+ count: The number of sweep config trials to try.
882
+ """
883
+ ...
884
+
885
+ def define_metric(
886
+ name: str,
887
+ step_metric: str | wandb_metric.Metric | None = None,
888
+ step_sync: bool | None = None,
889
+ hidden: bool | None = None,
890
+ summary: str | None = None,
891
+ goal: str | None = None,
892
+ overwrite: bool | None = None,
893
+ ) -> wandb_metric.Metric:
894
+ """Customize metrics logged with `wandb.Run.log()`.
895
+
896
+ Args:
897
+ name: The name of the metric to customize.
898
+ step_metric: The name of another metric to serve as the X-axis
899
+ for this metric in automatically generated charts.
900
+ step_sync: Automatically insert the last value of step_metric into
901
+ `wandb.Run.log()` if it is not provided explicitly. Defaults to True
902
+ if step_metric is specified.
903
+ hidden: Hide this metric from automatic plots.
904
+ summary: Specify aggregate metrics added to summary.
905
+ Supported aggregations include "min", "max", "mean", "last",
906
+ "first", "best", "copy" and "none". "none" prevents a summary
907
+ from being generated. "best" is used together with the goal
908
+ parameter, "best" is deprecated and should not be used, use
909
+ "min" or "max" instead. "copy" is deprecated and should not be
910
+ used.
911
+ goal: Specify how to interpret the "best" summary type.
912
+ Supported options are "minimize" and "maximize". "goal" is
913
+ deprecated and should not be used, use "min" or "max" instead.
914
+ overwrite: If false, then this call is merged with previous
915
+ `define_metric` calls for the same metric by using their
916
+ values for any unspecified parameters. If true, then
917
+ unspecified parameters overwrite values specified by
918
+ previous calls.
919
+
920
+ Returns:
921
+ An object that represents this call but can otherwise be discarded.
922
+ """
923
+ ...
924
+
925
+ def log_artifact(
926
+ artifact_or_path: Artifact | StrPath,
927
+ name: str | None = None,
928
+ type: str | None = None,
929
+ aliases: list[str] | None = None,
930
+ tags: list[str] | None = None,
931
+ ) -> Artifact:
932
+ """Declare an artifact as an output of a run.
933
+
934
+ Args:
935
+ artifact_or_path: (str or Artifact) A path to the contents of this artifact,
936
+ can be in the following forms:
937
+ - `/local/directory`
938
+ - `/local/directory/file.txt`
939
+ - `s3://bucket/path`
940
+ You can also pass an Artifact object created by calling
941
+ `wandb.Artifact`.
942
+ name: (str, optional) An artifact name. Valid names can be in the following forms:
943
+ - name:version
944
+ - name:alias
945
+ - digest
946
+ This will default to the basename of the path prepended with the current
947
+ run id if not specified.
948
+ type: (str) The type of artifact to log, examples include `dataset`, `model`
949
+ aliases: (list, optional) Aliases to apply to this artifact,
950
+ defaults to `["latest"]`
951
+ tags: (list, optional) Tags to apply to this artifact, if any.
952
+
953
+ Returns:
954
+ An `Artifact` object.
955
+ """
956
+ ...
957
+
958
+ def use_artifact(
959
+ artifact_or_name: str | Artifact,
960
+ type: str | None = None,
961
+ aliases: list[str] | None = None,
962
+ use_as: str | None = None,
963
+ ) -> Artifact:
964
+ """Declare an artifact as an input to a run.
965
+
966
+ Call `download` or `file` on the returned object to get the contents locally.
967
+
968
+ Args:
969
+ artifact_or_name: The name of the artifact to use. May be prefixed
970
+ with the name of the project the artifact was logged to
971
+ ("<entity>" or "<entity>/<project>"). If no
972
+ entity is specified in the name, the Run or API setting's entity is used.
973
+ Valid names can be in the following forms
974
+ - name:version
975
+ - name:alias
976
+ type: The type of artifact to use.
977
+ aliases: Aliases to apply to this artifact
978
+ use_as: This argument is deprecated and does nothing.
979
+
980
+ Returns:
981
+ An `Artifact` object.
982
+
983
+ Examples:
984
+ ```python
985
+ import wandb
986
+
987
+ run = wandb.init(project="<example>")
988
+
989
+ # Use an artifact by name and alias
990
+ artifact_a = run.use_artifact(artifact_or_name="<name>:<alias>")
991
+
992
+ # Use an artifact by name and version
993
+ artifact_b = run.use_artifact(artifact_or_name="<name>:v<version>")
994
+
995
+ # Use an artifact by entity/project/name:alias
996
+ artifact_c = run.use_artifact(artifact_or_name="<entity>/<project>/<name>:<alias>")
997
+
998
+ # Use an artifact by entity/project/name:version
999
+ artifact_d = run.use_artifact(
1000
+ artifact_or_name="<entity>/<project>/<name>:v<version>"
1001
+ )
1002
+
1003
+ # Explicitly finish the run since a context manager is not used.
1004
+ run.finish()
1005
+ ```
1006
+ """
1007
+ ...
1008
+
1009
+ def log_model(
1010
+ path: StrPath,
1011
+ name: str | None = None,
1012
+ aliases: list[str] | None = None,
1013
+ ) -> None:
1014
+ """Logs a model artifact containing the contents inside the 'path' to a run and marks it as an output to this run.
1015
+
1016
+ The name of model artifact can only contain alphanumeric characters,
1017
+ underscores, and hyphens.
1018
+
1019
+ Args:
1020
+ path: (str) A path to the contents of this model,
1021
+ can be in the following forms:
1022
+ - `/local/directory`
1023
+ - `/local/directory/file.txt`
1024
+ - `s3://bucket/path`
1025
+ name: A name to assign to the model artifact that
1026
+ the file contents will be added to. This will default to the
1027
+ basename of the path prepended with the current run id if
1028
+ not specified.
1029
+ aliases: Aliases to apply to the created model artifact,
1030
+ defaults to `["latest"]`
1031
+
1032
+ Raises:
1033
+ ValueError: If name has invalid special characters.
1034
+
1035
+ Returns:
1036
+ None
1037
+ """
1038
+ ...
1039
+
1040
+ def use_model(name: str) -> FilePathStr:
1041
+ """Download the files logged in a model artifact 'name'.
1042
+
1043
+ Args:
1044
+ name: A model artifact name. 'name' must match the name of an existing logged
1045
+ model artifact. May be prefixed with `entity/project/`. Valid names
1046
+ can be in the following forms
1047
+ - model_artifact_name:version
1048
+ - model_artifact_name:alias
1049
+
1050
+ Returns:
1051
+ path (str): Path to downloaded model artifact file(s).
1052
+
1053
+ Raises:
1054
+ AssertionError: If model artifact 'name' is of a type that does
1055
+ not contain the substring 'model'.
1056
+ """
1057
+ ...
1058
+
1059
+ def link_model(
1060
+ path: StrPath,
1061
+ registered_model_name: str,
1062
+ name: str | None = None,
1063
+ aliases: list[str] | None = None,
1064
+ ) -> Artifact | None:
1065
+ """Log a model artifact version and link it to a registered model in the model registry.
1066
+
1067
+ Linked model versions are visible in the UI for the specified registered model.
1068
+
1069
+ This method will:
1070
+ - Check if 'name' model artifact has been logged. If so, use the artifact version that matches the files
1071
+ located at 'path' or log a new version. Otherwise log files under 'path' as a new model artifact, 'name'
1072
+ of type 'model'.
1073
+ - Check if registered model with name 'registered_model_name' exists in the 'model-registry' project.
1074
+ If not, create a new registered model with name 'registered_model_name'.
1075
+ - Link version of model artifact 'name' to registered model, 'registered_model_name'.
1076
+ - Attach aliases from 'aliases' list to the newly linked model artifact version.
1077
+
1078
+ Args:
1079
+ path: (str) A path to the contents of this model, can be in the
1080
+ following forms:
1081
+ - `/local/directory`
1082
+ - `/local/directory/file.txt`
1083
+ - `s3://bucket/path`
1084
+ registered_model_name: The name of the registered model that the
1085
+ model is to be linked to. A registered model is a collection of
1086
+ model versions linked to the model registry, typically
1087
+ representing a team's specific ML Task. The entity that this
1088
+ registered model belongs to will be derived from the run.
1089
+ name: The name of the model artifact that files in 'path' will be
1090
+ logged to. This will default to the basename of the path
1091
+ prepended with the current run id if not specified.
1092
+ aliases: Aliases that will only be applied on this linked artifact
1093
+ inside the registered model. The alias "latest" will always be
1094
+ applied to the latest version of an artifact that is linked.
1095
+
1096
+ Raises:
1097
+ AssertionError: If registered_model_name is a path or
1098
+ if model artifact 'name' is of a type that does not contain
1099
+ the substring 'model'.
1100
+ ValueError: If name has invalid special characters.
1101
+
1102
+ Returns:
1103
+ The linked artifact if linking was successful, otherwise `None`.
1104
+ """
1105
+ ...
1106
+
1107
+ def plot_table(
1108
+ vega_spec_name: str,
1109
+ data_table: wandb.Table,
1110
+ fields: dict[str, Any],
1111
+ string_fields: dict[str, Any] | None = None,
1112
+ split_table: bool = False,
1113
+ ) -> CustomChart:
1114
+ """Creates a custom charts using a Vega-Lite specification and a `wandb.Table`.
1115
+
1116
+ This function creates a custom chart based on a Vega-Lite specification and
1117
+ a data table represented by a `wandb.Table` object. The specification needs
1118
+ to be predefined and stored in the W&B backend. The function returns a custom
1119
+ chart object that can be logged to W&B using `wandb.Run.log()`.
1120
+
1121
+ Args:
1122
+ vega_spec_name: The name or identifier of the Vega-Lite spec
1123
+ that defines the visualization structure.
1124
+ data_table: A `wandb.Table` object containing the data to be
1125
+ visualized.
1126
+ fields: A mapping between the fields in the Vega-Lite spec and the
1127
+ corresponding columns in the data table to be visualized.
1128
+ string_fields: A dictionary for providing values for any string constants
1129
+ required by the custom visualization.
1130
+ split_table: Whether the table should be split into a separate section
1131
+ in the W&B UI. If `True`, the table will be displayed in a section named
1132
+ "Custom Chart Tables". Default is `False`.
1133
+
1134
+ Returns:
1135
+ CustomChart: A custom chart object that can be logged to W&B. To log the
1136
+ chart, pass the chart object as argument to `wandb.Run.log()`.
1137
+
1138
+ Raises:
1139
+ wandb.Error: If `data_table` is not a `wandb.Table` object.
1140
+
1141
+ Example:
1142
+ ```python
1143
+ # Create a custom chart using a Vega-Lite spec and the data table.
1144
+ import wandb
1145
+
1146
+ data = [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]
1147
+ table = wandb.Table(data=data, columns=["x", "y"])
1148
+ fields = {"x": "x", "y": "y", "title": "MY TITLE"}
1149
+
1150
+ with wandb.init() as run:
1151
+ # Training code goes here
1152
+
1153
+ # Create a custom title with `string_fields`.
1154
+ my_custom_chart = wandb.plot_table(
1155
+ vega_spec_name="wandb/line/v0",
1156
+ data_table=table,
1157
+ fields=fields,
1158
+ string_fields={"title": "Title"},
1159
+ )
1160
+
1161
+ run.log({"custom_chart": my_custom_chart})
1162
+ ```
1163
+ """
1164
+ ...
1165
+
1166
+ def watch(
1167
+ models: torch.nn.Module | Sequence[torch.nn.Module],
1168
+ criterion: torch.F | None = None,
1169
+ log: Literal["gradients", "parameters", "all"] | None = "gradients",
1170
+ log_freq: int = 1000,
1171
+ idx: int | None = None,
1172
+ log_graph: bool = False,
1173
+ ) -> None:
1174
+ """Hook into given PyTorch model to monitor gradients and the model's computational graph.
1175
+
1176
+ This function can track parameters, gradients, or both during training.
1177
+
1178
+ Args:
1179
+ models: A single model or a sequence of models to be monitored.
1180
+ criterion: The loss function being optimized (optional).
1181
+ log: Specifies whether to log "gradients", "parameters", or "all".
1182
+ Set to None to disable logging. (default="gradients").
1183
+ log_freq: Frequency (in batches) to log gradients and parameters. (default=1000)
1184
+ idx: Index used when tracking multiple models with `wandb.watch`. (default=None)
1185
+ log_graph: Whether to log the model's computational graph. (default=False)
1186
+
1187
+ Raises:
1188
+ ValueError:
1189
+ If `wandb.init()` has not been called or if any of the models are not instances
1190
+ of `torch.nn.Module`.
1191
+ """
1192
+ ...
1193
+
1194
+ def unwatch(
1195
+ models: torch.nn.Module | Sequence[torch.nn.Module] | None = None,
1196
+ ) -> None:
1197
+ """Remove pytorch model topology, gradient and parameter hooks.
1198
+
1199
+ Args:
1200
+ models: Optional list of pytorch models that have had watch called on them.
1201
+ """
1202
+ ...
1203
+
1204
+ def restore(
1205
+ name: str,
1206
+ run_path: str | None = None,
1207
+ replace: bool = False,
1208
+ root: str | None = None,
1209
+ ) -> None | TextIO:
1210
+ """Download the specified file from cloud storage.
1211
+
1212
+ File is placed into the current directory or run directory.
1213
+ By default, will only download the file if it doesn't already exist.
1214
+
1215
+ Args:
1216
+ name: The name of the file.
1217
+ run_path: Optional path to a run to pull files from, i.e. `username/project_name/run_id`
1218
+ if wandb.init has not been called, this is required.
1219
+ replace: Whether to download the file even if it already exists locally
1220
+ root: The directory to download the file to. Defaults to the current
1221
+ directory or the run directory if wandb.init was called.
1222
+
1223
+ Returns:
1224
+ None if it can't find the file, otherwise a file object open for reading.
1225
+
1226
+ Raises:
1227
+ CommError: If W&B can't connect to the W&B backend.
1228
+ ValueError: If the file is not found or can't find run_path.
1229
+ """
1230
+ ...