wandb 0.15.10__py3-none-any.whl → 0.15.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wandb/__init__.py +2 -1
- wandb/apis/public.py +51 -9
- wandb/apis/reports/blocks.py +1 -0
- wandb/cli/cli.py +14 -9
- wandb/env.py +11 -1
- wandb/integration/xgboost/xgboost.py +3 -3
- wandb/proto/v3/wandb_internal_pb2.py +300 -267
- wandb/proto/v3/wandb_settings_pb2.py +2 -2
- wandb/proto/v3/wandb_telemetry_pb2.py +16 -16
- wandb/proto/v4/wandb_internal_pb2.py +260 -252
- wandb/proto/v4/wandb_settings_pb2.py +2 -2
- wandb/proto/v4/wandb_telemetry_pb2.py +16 -16
- wandb/sdk/artifacts/artifact.py +9 -6
- wandb/sdk/artifacts/storage_handlers/s3_handler.py +12 -7
- wandb/sdk/data_types/image.py +1 -1
- wandb/sdk/internal/file_stream.py +2 -1
- wandb/sdk/internal/handler.py +24 -20
- wandb/sdk/internal/internal_api.py +9 -1
- wandb/sdk/internal/sender.py +4 -1
- wandb/sdk/internal/system/system_info.py +2 -2
- wandb/sdk/launch/__init__.py +5 -0
- wandb/sdk/launch/{launch.py → _launch.py} +53 -54
- wandb/sdk/launch/{launch_add.py → _launch_add.py} +34 -31
- wandb/sdk/launch/agent/agent.py +36 -18
- wandb/sdk/launch/agent/run_queue_item_file_saver.py +6 -4
- wandb/sdk/launch/runner/abstract.py +0 -2
- wandb/sdk/launch/runner/kubernetes_monitor.py +329 -0
- wandb/sdk/launch/runner/kubernetes_runner.py +44 -301
- wandb/sdk/launch/runner/local_container.py +5 -2
- wandb/sdk/launch/sweeps/scheduler.py +14 -10
- wandb/sdk/launch/sweeps/utils.py +5 -3
- wandb/sdk/launch/utils.py +3 -1
- wandb/sdk/lib/_settings_toposort_generated.py +5 -0
- wandb/sdk/lib/gql_request.py +3 -0
- wandb/sdk/lib/ipython.py +4 -0
- wandb/sdk/service/service.py +19 -6
- wandb/sdk/wandb_init.py +7 -2
- wandb/sdk/wandb_run.py +2 -5
- wandb/sdk/wandb_settings.py +48 -2
- wandb/util.py +1 -1
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/METADATA +4 -1
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/RECORD +46 -45
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/LICENSE +0 -0
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/WHEEL +0 -0
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/entry_points.txt +0 -0
- {wandb-0.15.10.dist-info → wandb-0.15.11.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
14
14
|
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
|
15
15
|
|
16
16
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n wandb/proto/wandb_settings.proto\x12\x0ewandb_internal\x1a\x1egoogle/protobuf/wrappers.proto\" \n\x0fListStringValue\x12\r\n\x05value\x18\x01 \x03(\t\"\x8a\x01\n\x17MapStringKeyStringValue\x12\x41\n\x05value\x18\x01 \x03(\x0b\x32\x32.wandb_internal.MapStringKeyStringValue.ValueEntry\x1a,\n\nValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcb\x01\n#MapStringKeyMapStringKeyStringValue\x12M\n\x05value\x18\x01 \x03(\x0b\x32>.wandb_internal.MapStringKeyMapStringKeyStringValue.ValueEntry\x1aU\n\nValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue:\x02\x38\x01\"\x9a\x01\n\x12OpenMetricsFilters\x12\x33\n\x08sequence\x18\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValueH\x00\x12\x46\n\x07mapping\x18\x02 \x01(\x0b\x32\x33.wandb_internal.MapStringKeyMapStringKeyStringValueH\x00\x42\x07\n\x05value\"\xcb\x41\n\x08Settings\x12.\n\x05_args\x18\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12/\n\x0b_aws_lambda\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x44\n\x1f_async_upload_concurrency_limit\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x32\n\x0e_cli_only_mode\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06_colab\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x05_cuda\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\r_disable_meta\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\x10_disable_service\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x15_disable_setproctitle\x18\t \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x32\n\x0e_disable_stats\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\x0f_disable_viewer\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x15_disable_machine_info\x18\x9e\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x30\n\x0c_except_exit\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\x0b_executable\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x44\n\x13_extra_http_headers\x18\x0e \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12<\n\x16_file_stream_retry_max\x18\x93\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12I\n#_file_stream_retry_wait_min_seconds\x18\x94\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12I\n#_file_stream_retry_wait_max_seconds\x18\x95\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x41\n\x1c_file_stream_timeout_seconds\x18\x0f \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12>\n\x18_file_uploader_retry_max\x18\x96\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n%_file_uploader_retry_wait_min_seconds\x18\x97\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n%_file_uploader_retry_wait_max_seconds\x18\x98\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x44\n\x1e_file_uploader_timeout_seconds\x18\x99\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x38\n\x14_flow_control_custom\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x16_flow_control_disabled\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12_graphql_retry_max\x18\x9a\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x45\n\x1f_graphql_retry_wait_min_seconds\x18\x9b\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x45\n\x1f_graphql_retry_wait_max_seconds\x18\x9c\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12>\n\x18_graphql_timeout_seconds\x18\x9d\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12=\n\x17_internal_check_process\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12=\n\x17_internal_queue_timeout\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12,\n\x08_ipython\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08_jupyter\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\r_jupyter_name\x18\x8f\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\r_jupyter_path\x18\x90\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\r_jupyter_root\x18\x16 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x07_kaggle\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x17_live_policy_rate_limit\x18\x18 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x16_live_policy_wait_time\x18\x19 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12/\n\n_log_level\x18\x1a \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x34\n\x0f_network_buffer\x18\x1b \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12)\n\x05_noop\x18\x1c \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\t_notebook\x18\x1d \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08_offline\x18\x1e \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12)\n\x05_sync\x18\x1f \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12)\n\x03_os\x18 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\t_platform\x18! \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07_python\x18\" \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11_runqueue_item_id\x18# \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0e_require_nexus\x18$ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x36\n\x12_save_requirements\x18% \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12_service_transport\x18& \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\r_service_wait\x18\' \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x35\n\x0f_start_datetime\x18( \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b_start_time\x18) \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12/\n\n_stats_pid\x18* \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12@\n\x1a_stats_sample_rate_seconds\x18+ \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x19_stats_samples_to_average\x18, \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x36\n\x12_stats_join_assets\x18- \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12G\n!_stats_neuron_monitor_config_path\x18. \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x1d_stats_open_metrics_endpoints\x18/ \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12G\n\x1b_stats_open_metrics_filters\x18\x30 \x01(\x0b\x32\".wandb_internal.OpenMetricsFilters\x12;\n\x11_stats_disk_paths\x18\x92\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12\x33\n\r_tmp_code_dir\x18\x31 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\t_tracelog\x18\x32 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\r_unsaved_keys\x18\x33 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12,\n\x08_windows\x18\x34 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\x10\x61llow_val_change\x18\x35 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\tanonymous\x18\x36 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07\x61pi_key\x18\x37 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12P\n\x1f\x61zure_account_url_to_access_key\x18\x38 \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12.\n\x08\x62\x61se_url\x18\x39 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08\x63ode_dir\x18: \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0c\x63onfig_paths\x18; \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12-\n\x07\x63onsole\x18< \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\ndeployment\x18= \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\x0c\x64isable_code\x18> \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x0b\x64isable_git\x18? \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\rdisable_hints\x18@ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x14\x64isable_job_creation\x18\x41 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08\x64isabled\x18\x42 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x06\x64ocker\x18\x43 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05\x65mail\x18\x44 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06\x65ntity\x18\x45 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfiles_dir\x18\x46 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x05\x66orce\x18G \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x30\n\ngit_commit\x18H \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\ngit_remote\x18I \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0egit_remote_url\x18J \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08git_root\x18K \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x11heartbeat_seconds\x18L \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12*\n\x04host\x18M \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0cignore_globs\x18N \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12\x32\n\x0cinit_timeout\x18O \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12,\n\x08is_local\x18P \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08job_name\x18\x91\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\njob_source\x18Q \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\rlabel_disable\x18R \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06launch\x18S \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12launch_config_path\x18T \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07log_dir\x18U \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0clog_internal\x18V \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x14log_symlink_internal\x18W \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10log_symlink_user\x18X \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08log_user\x18Y \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlogin_timeout\x18Z \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12*\n\x04mode\x18\\ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rnotebook_name\x18] \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07problem\x18^ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07program\x18_ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0fprogram_relpath\x18` \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07project\x18\x61 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bproject_url\x18\x62 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x05quiet\x18\x63 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06reinit\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x07relogin\x18\x65 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x06resume\x18\x66 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cresume_fname\x18g \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x07resumed\x18h \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12.\n\x08root_dir\x18i \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\trun_group\x18j \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06run_id\x18k \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0crun_job_type\x18l \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08run_mode\x18m \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08run_name\x18n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\trun_notes\x18o \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x08run_tags\x18p \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12-\n\x07run_url\x18q \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x11sagemaker_disable\x18r \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\tsave_code\x18s \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x35\n\x0fsettings_system\x18t \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x38\n\x12settings_workspace\x18u \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x0bshow_colors\x18v \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12.\n\nshow_emoji\x18w \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x0bshow_errors\x18x \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\tshow_info\x18y \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\rshow_warnings\x18z \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06silent\x18{ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x32\n\x0cstart_method\x18| \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x06strict\x18} \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\x0esummary_errors\x18~ \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x34\n\x0fsummary_timeout\x18\x7f \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x36\n\x10summary_warnings\x18\x80\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12/\n\x08sweep_id\x18\x81\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x10sweep_param_path\x18\x82\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\tsweep_url\x18\x83\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x07symlink\x18\x84\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08sync_dir\x18\x85\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\tsync_file\x18\x86\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x13sync_symlink_latest\x18\x87\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rsystem_sample\x18\x88\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x15system_sample_seconds\x18\x89\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12J\n%table_raise_on_max_row_limit_exceeded\x18\x8a\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08timespec\x18\x8b\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x07tmp_dir\x18\x8c\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x08username\x18\x8d\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\twandb_dir\x18\x8e\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueb\x06proto3')
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n wandb/proto/wandb_settings.proto\x12\x0ewandb_internal\x1a\x1egoogle/protobuf/wrappers.proto\" \n\x0fListStringValue\x12\r\n\x05value\x18\x01 \x03(\t\"\x8a\x01\n\x17MapStringKeyStringValue\x12\x41\n\x05value\x18\x01 \x03(\x0b\x32\x32.wandb_internal.MapStringKeyStringValue.ValueEntry\x1a,\n\nValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcb\x01\n#MapStringKeyMapStringKeyStringValue\x12M\n\x05value\x18\x01 \x03(\x0b\x32>.wandb_internal.MapStringKeyMapStringKeyStringValue.ValueEntry\x1aU\n\nValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue:\x02\x38\x01\"\x9a\x01\n\x12OpenMetricsFilters\x12\x33\n\x08sequence\x18\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValueH\x00\x12\x46\n\x07mapping\x18\x02 \x01(\x0b\x32\x33.wandb_internal.MapStringKeyMapStringKeyStringValueH\x00\x42\x07\n\x05value\"\xf1\x42\n\x08Settings\x12.\n\x05_args\x18\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12/\n\x0b_aws_lambda\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x44\n\x1f_async_upload_concurrency_limit\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x32\n\x0e_cli_only_mode\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06_colab\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x05_cuda\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\r_disable_meta\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\x10_disable_service\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x15_disable_setproctitle\x18\t \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x32\n\x0e_disable_stats\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\x0f_disable_viewer\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x15_disable_machine_info\x18\x9e\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x30\n\x0c_except_exit\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\x0b_executable\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x44\n\x13_extra_http_headers\x18\x0e \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12:\n\x08_proxies\x18\xc8\x01 \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12<\n\x16_file_stream_retry_max\x18\x93\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12I\n#_file_stream_retry_wait_min_seconds\x18\x94\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12I\n#_file_stream_retry_wait_max_seconds\x18\x95\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x41\n\x1c_file_stream_timeout_seconds\x18\x0f \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12>\n\x18_file_uploader_retry_max\x18\x96\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n%_file_uploader_retry_wait_min_seconds\x18\x97\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n%_file_uploader_retry_wait_max_seconds\x18\x98\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x44\n\x1e_file_uploader_timeout_seconds\x18\x99\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x38\n\x14_flow_control_custom\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x16_flow_control_disabled\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12_graphql_retry_max\x18\x9a\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x45\n\x1f_graphql_retry_wait_min_seconds\x18\x9b\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x45\n\x1f_graphql_retry_wait_max_seconds\x18\x9c\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12>\n\x18_graphql_timeout_seconds\x18\x9d\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12=\n\x17_internal_check_process\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12=\n\x17_internal_queue_timeout\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12,\n\x08_ipython\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08_jupyter\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\r_jupyter_name\x18\x8f\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\r_jupyter_path\x18\x90\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\r_jupyter_root\x18\x16 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x07_kaggle\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x17_live_policy_rate_limit\x18\x18 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x16_live_policy_wait_time\x18\x19 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12/\n\n_log_level\x18\x1a \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x34\n\x0f_network_buffer\x18\x1b \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12)\n\x05_noop\x18\x1c \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\t_notebook\x18\x1d \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08_offline\x18\x1e \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12)\n\x05_sync\x18\x1f \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12)\n\x03_os\x18 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\t_platform\x18! \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07_python\x18\" \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11_runqueue_item_id\x18# \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0e_require_nexus\x18$ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x36\n\x12_save_requirements\x18% \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12_service_transport\x18& \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\r_service_wait\x18\' \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x35\n\x0f_start_datetime\x18( \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b_start_time\x18) \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12/\n\n_stats_pid\x18* \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12@\n\x1a_stats_sample_rate_seconds\x18+ \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x19_stats_samples_to_average\x18, \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x36\n\x12_stats_join_assets\x18- \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12G\n!_stats_neuron_monitor_config_path\x18. \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x1d_stats_open_metrics_endpoints\x18/ \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12G\n\x1b_stats_open_metrics_filters\x18\x30 \x01(\x0b\x32\".wandb_internal.OpenMetricsFilters\x12;\n\x11_stats_disk_paths\x18\x92\x01 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12\x33\n\r_tmp_code_dir\x18\x31 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\t_tracelog\x18\x32 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\r_unsaved_keys\x18\x33 \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12,\n\x08_windows\x18\x34 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\x10\x61llow_val_change\x18\x35 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\tanonymous\x18\x36 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07\x61pi_key\x18\x37 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12P\n\x1f\x61zure_account_url_to_access_key\x18\x38 \x01(\x0b\x32\'.wandb_internal.MapStringKeyStringValue\x12.\n\x08\x62\x61se_url\x18\x39 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08\x63ode_dir\x18: \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0c\x63onfig_paths\x18; \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12\x30\n\tcolab_url\x18\xa0\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07\x63onsole\x18< \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\ndeployment\x18= \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\x0c\x64isable_code\x18> \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x0b\x64isable_git\x18? \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\rdisable_hints\x18@ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x14\x64isable_job_creation\x18\x41 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08\x64isabled\x18\x42 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x06\x64ocker\x18\x43 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05\x65mail\x18\x44 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06\x65ntity\x18\x45 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfiles_dir\x18\x46 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x05\x66orce\x18G \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x30\n\ngit_commit\x18H \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\ngit_remote\x18I \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0egit_remote_url\x18J \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08git_root\x18K \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x11heartbeat_seconds\x18L \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12*\n\x04host\x18M \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0cignore_globs\x18N \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12\x32\n\x0cinit_timeout\x18O \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12,\n\x08is_local\x18P \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08job_name\x18\x91\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\njob_source\x18Q \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\rlabel_disable\x18R \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06launch\x18S \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x38\n\x12launch_config_path\x18T \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07log_dir\x18U \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0clog_internal\x18V \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x14log_symlink_internal\x18W \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10log_symlink_user\x18X \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08log_user\x18Y \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlogin_timeout\x18Z \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12*\n\x04mode\x18\\ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rnotebook_name\x18] \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07problem\x18^ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07program\x18_ \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x0fprogram_abspath\x18\x9f\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0fprogram_relpath\x18` \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07project\x18\x61 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bproject_url\x18\x62 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x05quiet\x18\x63 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06reinit\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x07relogin\x18\x65 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x06resume\x18\x66 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cresume_fname\x18g \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x07resumed\x18h \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12.\n\x08root_dir\x18i \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\trun_group\x18j \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06run_id\x18k \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0crun_job_type\x18l \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08run_mode\x18m \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08run_name\x18n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\trun_notes\x18o \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x08run_tags\x18p \x01(\x0b\x32\x1f.wandb_internal.ListStringValue\x12-\n\x07run_url\x18q \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x11sagemaker_disable\x18r \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\tsave_code\x18s \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x35\n\x0fsettings_system\x18t \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x38\n\x12settings_workspace\x18u \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x0bshow_colors\x18v \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12.\n\nshow_emoji\x18w \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x0bshow_errors\x18x \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\tshow_info\x18y \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x31\n\rshow_warnings\x18z \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06silent\x18{ \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x32\n\x0cstart_method\x18| \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x06strict\x18} \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\x0esummary_errors\x18~ \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x34\n\x0fsummary_timeout\x18\x7f \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x36\n\x10summary_warnings\x18\x80\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12/\n\x08sweep_id\x18\x81\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x10sweep_param_path\x18\x82\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\tsweep_url\x18\x83\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x07symlink\x18\x84\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08sync_dir\x18\x85\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\tsync_file\x18\x86\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x13sync_symlink_latest\x18\x87\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rsystem_sample\x18\x88\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x15system_sample_seconds\x18\x89\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12J\n%table_raise_on_max_row_limit_exceeded\x18\x8a\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12/\n\x08timespec\x18\x8b\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x07tmp_dir\x18\x8c\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x08username\x18\x8d\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\twandb_dir\x18\x8e\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueb\x06proto3')
|
18
18
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
20
20
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'wandb.proto.wandb_settings_pb2', globals())
|
@@ -38,5 +38,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
38
38
|
_OPENMETRICSFILTERS._serialized_start=466
|
39
39
|
_OPENMETRICSFILTERS._serialized_end=620
|
40
40
|
_SETTINGS._serialized_start=623
|
41
|
-
_SETTINGS._serialized_end=
|
41
|
+
_SETTINGS._serialized_end=9184
|
42
42
|
# @@protoc_insertion_point(module_scope)
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
14
14
|
from wandb.proto import wandb_base_pb2 as wandb_dot_proto_dot_wandb__base__pb2
|
15
15
|
|
16
16
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!wandb/proto/wandb_telemetry.proto\x12\x0ewandb_internal\x1a\x1cwandb/proto/wandb_base.proto\"\xdb\x03\n\x0fTelemetryRecord\x12-\n\x0cimports_init\x18\x01 \x01(\x0b\x32\x17.wandb_internal.Imports\x12/\n\x0eimports_finish\x18\x02 \x01(\x0b\x32\x17.wandb_internal.Imports\x12(\n\x07\x66\x65\x61ture\x18\x03 \x01(\x0b\x32\x17.wandb_internal.Feature\x12\x16\n\x0epython_version\x18\x04 \x01(\t\x12\x13\n\x0b\x63li_version\x18\x05 \x01(\t\x12\x1b\n\x13huggingface_version\x18\x06 \x01(\t\x12 \n\x03\x65nv\x18\x08 \x01(\x0b\x32\x13.wandb_internal.Env\x12%\n\x05label\x18\t \x01(\x0b\x32\x16.wandb_internal.Labels\x12.\n\ndeprecated\x18\n \x01(\x0b\x32\x1a.wandb_internal.Deprecated\x12&\n\x06issues\x18\x0b \x01(\x0b\x32\x16.wandb_internal.Issues\x12\x14\n\x0c\x63ore_version\x18\x0c \x01(\t\x12\x10\n\x08platform\x18\r \x01(\t\x12+\n\x05_info\x18\xc8\x01 \x01(\x0b\x32\x1b.wandb_internal._RecordInfo\"\x11\n\x0fTelemetryResult\"\xe2\r\n\x07Imports\x12\r\n\x05torch\x18\x01 \x01(\x08\x12\r\n\x05keras\x18\x02 \x01(\x08\x12\x12\n\ntensorflow\x18\x03 \x01(\x08\x12\x0e\n\x06\x66\x61stai\x18\x04 \x01(\x08\x12\x0f\n\x07sklearn\x18\x05 \x01(\x08\x12\x0f\n\x07xgboost\x18\x06 \x01(\x08\x12\x10\n\x08\x63\x61tboost\x18\x07 \x01(\x08\x12\x10\n\x08lightgbm\x18\x08 \x01(\x08\x12\x19\n\x11pytorch_lightning\x18\t \x01(\x08\x12\x0e\n\x06ignite\x18\n \x01(\x08\x12\x14\n\x0ctransformers\x18\x0b \x01(\x08\x12\x0b\n\x03jax\x18\x0c \x01(\x08\x12\x10\n\x08metaflow\x18\r \x01(\x08\x12\x10\n\x08\x61llennlp\x18\x0e \x01(\x08\x12\x11\n\tautogluon\x18\x0f \x01(\x08\x12\x11\n\tautokeras\x18\x10 \x01(\x08\x12\x10\n\x08\x63\x61talyst\x18\x12 \x01(\x08\x12\x10\n\x08\x64\x65\x65pchem\x18\x15 \x01(\x08\x12\x0f\n\x07\x64\x65\x65pctr\x18\x16 \x01(\x08\x12\x0f\n\x07pycaret\x18\x1c \x01(\x08\x12\x14\n\x0cpytorchvideo\x18\x1d \x01(\x08\x12\x0b\n\x03ray\x18\x1e \x01(\x08\x12\x1a\n\x12simpletransformers\x18\x1f \x01(\x08\x12\x0e\n\x06skorch\x18 \x01(\x08\x12\r\n\x05spacy\x18! \x01(\x08\x12\r\n\x05\x66lash\x18\" \x01(\x08\x12\x0e\n\x06optuna\x18# \x01(\x08\x12\x0f\n\x07recbole\x18$ \x01(\x08\x12\x0c\n\x04mmcv\x18% \x01(\x08\x12\r\n\x05mmdet\x18& \x01(\x08\x12\x11\n\ttorchdrug\x18\' \x01(\x08\x12\x11\n\ttorchtext\x18( \x01(\x08\x12\x13\n\x0btorchvision\x18) \x01(\x08\x12\r\n\x05\x65legy\x18* \x01(\x08\x12\x12\n\ndetectron2\x18+ \x01(\x08\x12\r\n\x05\x66lair\x18, \x01(\x08\x12\x0c\n\x04\x66lax\x18- \x01(\x08\x12\x0c\n\x04syft\x18. \x01(\x08\x12\x0b\n\x03TTS\x18/ \x01(\x08\x12\r\n\x05monai\x18\x30 \x01(\x08\x12\x17\n\x0fhuggingface_hub\x18\x31 \x01(\x08\x12\r\n\x05hydra\x18\x32 \x01(\x08\x12\x10\n\x08\x64\x61tasets\x18\x33 \x01(\x08\x12\x0e\n\x06sacred\x18\x34 \x01(\x08\x12\x0e\n\x06joblib\x18\x35 \x01(\x08\x12\x0c\n\x04\x64\x61sk\x18\x36 \x01(\x08\x12\x0f\n\x07\x61syncio\x18\x37 \x01(\x08\x12\x11\n\tpaddleocr\x18\x38 \x01(\x08\x12\r\n\x05ppdet\x18\x39 \x01(\x08\x12\x11\n\tpaddleseg\x18: \x01(\x08\x12\x11\n\tpaddlenlp\x18; \x01(\x08\x12\r\n\x05mmseg\x18< \x01(\x08\x12\r\n\x05mmocr\x18= \x01(\x08\x12\r\n\x05mmcls\x18> \x01(\x08\x12\x0c\n\x04timm\x18? \x01(\x08\x12\x0f\n\x07\x66\x61irseq\x18@ \x01(\x08\x12\x12\n\ndeepchecks\x18\x41 \x01(\x08\x12\x10\n\x08\x63omposer\x18\x42 \x01(\x08\x12\x10\n\x08sparseml\x18\x43 \x01(\x08\x12\x10\n\x08\x61nomalib\x18\x44 \x01(\x08\x12\r\n\x05zenml\x18\x45 \x01(\x08\x12\x12\n\ncolossalai\x18\x46 \x01(\x08\x12\x12\n\naccelerate\x18G \x01(\x08\x12\x0e\n\x06merlin\x18H \x01(\x08\x12\x0f\n\x07nanodet\x18I \x01(\x08\x12#\n\x1bsegmentation_models_pytorch\x18J \x01(\x08\x12\x1d\n\x15sentence_transformers\x18K \x01(\x08\x12\x0b\n\x03\x64gl\x18L \x01(\x08\x12\x17\n\x0ftorch_geometric\x18M \x01(\x08\x12\x0c\n\x04jina\x18N \x01(\x08\x12\x0e\n\x06kornia\x18O \x01(\x08\x12\x16\n\x0e\x61lbumentations\x18P \x01(\x08\x12\x10\n\x08keras_cv\x18Q \x01(\x08\x12\x10\n\x08mmengine\x18R \x01(\x08\x12\x11\n\tdiffusers\x18S \x01(\x08\x12\x0b\n\x03trl\x18T \x01(\x08\x12\x0c\n\x04trlx\x18U \x01(\x08\x12\x11\n\tlangchain\x18V \x01(\x08\x12\x13\n\x0bllama_index\x18W \x01(\x08\x12\x15\n\rstability_sdk\x18X \x01(\x08\x12\x0f\n\x07prefect\x18Y \x01(\x08\x12\x13\n\x0bprefect_ray\x18Z \x01(\x08\x12\x10\n\x08pinecone\x18[ \x01(\x08\x12\x10\n\x08\x63hromadb\x18\\ \x01(\x08\x12\x10\n\x08weaviate\x18] \x01(\x08\x12\x13\n\x0bpromptlayer\x18^ \x01(\x08\x12\x0e\n\x06openai\x18_ \x01(\x08\x12\x0e\n\x06\x63ohere\x18` \x01(\x08\x12\x11\n\tanthropic\x18\x61 \x01(\x08\x12\x0c\n\x04peft\x18\x62 \x01(\x08\x12\x0f\n\x07optimum\x18\x63 \x01(\x08\x12\x10\n\x08\x65valuate\x18\x64 \x01(\x08\x12\x10\n\x08langflow\x18\x65 \x01(\x08\x12\x12\n\nkeras_core\x18\x66 \x01(\x08\x12\x18\n\x10lightning_fabric\x18g \x01(\x08\x12\x1c\n\x14\x63urated_transformers\x18h \x01(\x08\x12\x0e\n\x06orjson\x18i \x01(\x08\"\x9e\n\n\x07\x46\x65\x61ture\x12\r\n\x05watch\x18\x01 \x01(\x08\x12\x0e\n\x06\x66inish\x18\x02 \x01(\x08\x12\x0c\n\x04save\x18\x03 \x01(\x08\x12\x0f\n\x07offline\x18\x04 \x01(\x08\x12\x0f\n\x07resumed\x18\x05 \x01(\x08\x12\x0c\n\x04grpc\x18\x06 \x01(\x08\x12\x0e\n\x06metric\x18\x07 \x01(\x08\x12\r\n\x05keras\x18\x08 \x01(\x08\x12\x11\n\tsagemaker\x18\t \x01(\x08\x12\x1c\n\x14\x61rtifact_incremental\x18\n \x01(\x08\x12\x10\n\x08metaflow\x18\x0b \x01(\x08\x12\x0f\n\x07prodigy\x18\x0c \x01(\x08\x12\x15\n\rset_init_name\x18\r \x01(\x08\x12\x13\n\x0bset_init_id\x18\x0e \x01(\x08\x12\x15\n\rset_init_tags\x18\x0f \x01(\x08\x12\x17\n\x0fset_init_config\x18\x10 \x01(\x08\x12\x14\n\x0cset_run_name\x18\x11 \x01(\x08\x12\x14\n\x0cset_run_tags\x18\x12 \x01(\x08\x12\x17\n\x0fset_config_item\x18\x13 \x01(\x08\x12\x0e\n\x06launch\x18\x14 \x01(\x08\x12\x1c\n\x14torch_profiler_trace\x18\x15 \x01(\x08\x12\x0b\n\x03sb3\x18\x16 \x01(\x08\x12\x0f\n\x07service\x18\x17 \x01(\x08\x12\x17\n\x0finit_return_run\x18\x18 \x01(\x08\x12\x1f\n\x17lightgbm_wandb_callback\x18\x19 \x01(\x08\x12\x1c\n\x14lightgbm_log_summary\x18\x1a \x01(\x08\x12\x1f\n\x17\x63\x61tboost_wandb_callback\x18\x1b \x01(\x08\x12\x1c\n\x14\x63\x61tboost_log_summary\x18\x1c \x01(\x08\x12\x17\n\x0ftensorboard_log\x18\x1d \x01(\x08\x12\x16\n\x0e\x65stimator_hook\x18\x1e \x01(\x08\x12\x1e\n\x16xgboost_wandb_callback\x18\x1f \x01(\x08\x12\"\n\x1axgboost_old_wandb_callback\x18 \x01(\x08\x12\x0e\n\x06\x61ttach\x18! \x01(\x08\x12\x19\n\x11tensorboard_patch\x18\" \x01(\x08\x12\x18\n\x10tensorboard_sync\x18# \x01(\x08\x12\x15\n\rkfp_wandb_log\x18$ \x01(\x08\x12\x1b\n\x13maybe_run_overwrite\x18% \x01(\x08\x12\x1c\n\x14keras_metrics_logger\x18& \x01(\x08\x12\x1e\n\x16keras_model_checkpoint\x18\' \x01(\x08\x12!\n\x19keras_wandb_eval_callback\x18( \x01(\x08\x12\x1d\n\x15\x66low_control_overflow\x18) \x01(\x08\x12\x0c\n\x04sync\x18* \x01(\x08\x12\x1d\n\x15\x66low_control_disabled\x18+ \x01(\x08\x12\x1b\n\x13\x66low_control_custom\x18, \x01(\x08\x12\x18\n\x10service_disabled\x18- \x01(\x08\x12\x14\n\x0copen_metrics\x18. \x01(\x08\x12\x1a\n\x12ultralytics_yolov8\x18/ \x01(\x08\x12\x17\n\x0fimporter_mlflow\x18\x30 \x01(\x08\x12\x15\n\rsync_tfevents\x18\x31 \x01(\x08\x12\x15\n\rasync_uploads\x18\x32 \x01(\x08\x12\x16\n\x0eopenai_autolog\x18\x33 \x01(\x08\x12\x18\n\x10langchain_tracer\x18\x34 \x01(\x08\x12\x16\n\x0e\x63ohere_autolog\x18\x35 \x01(\x08\x12\x1b\n\x13hf_pipeline_autolog\x18\x36 \x01(\x08\x12\r\n\x05nexus\x18\x37 \x01(\x08\"\x96\x02\n\x03\x45nv\x12\x0f\n\x07jupyter\x18\x01 \x01(\x08\x12\x0e\n\x06kaggle\x18\x02 \x01(\x08\x12\x0f\n\x07windows\x18\x03 \x01(\x08\x12\x0e\n\x06m1_gpu\x18\x04 \x01(\x08\x12\x13\n\x0bstart_spawn\x18\x05 \x01(\x08\x12\x12\n\nstart_fork\x18\x06 \x01(\x08\x12\x18\n\x10start_forkserver\x18\x07 \x01(\x08\x12\x14\n\x0cstart_thread\x18\x08 \x01(\x08\x12\x10\n\x08maybe_mp\x18\t \x01(\x08\x12\x10\n\x08trainium\x18\n \x01(\x08\x12\x0b\n\x03pex\x18\x0b \x01(\x08\x12\r\n\x05\x63olab\x18\x0c \x01(\x08\x12\x0f\n\x07ipython\x18\r \x01(\x08\x12\x12\n\naws_lambda\x18\x0e \x01(\x08\x12\x0f\n\x07\x61md_gpu\x18\x0f \x01(\x08\"H\n\x06Labels\x12\x13\n\x0b\x63ode_string\x18\x01 \x01(\t\x12\x13\n\x0brepo_string\x18\x02 \x01(\t\x12\x14\n\x0c\x63ode_version\x18\x03 \x01(\t\"\x9a\x02\n\nDeprecated\x12!\n\x19keras_callback__data_type\x18\x01 \x01(\x08\x12\x11\n\trun__mode\x18\x02 \x01(\x08\x12\x19\n\x11run__save_no_args\x18\x03 \x01(\x08\x12\x11\n\trun__join\x18\x04 \x01(\x08\x12\r\n\x05plots\x18\x05 \x01(\x08\x12\x15\n\rrun__log_sync\x18\x06 \x01(\x08\x12!\n\x19init__config_include_keys\x18\x07 \x01(\x08\x12!\n\x19init__config_exclude_keys\x18\x08 \x01(\x08\x12\"\n\x1akeras_callback__save_model\x18\t \x01(\x08\x12\x18\n\x10langchain_tracer\x18\n \x01(\x08\"|\n\x06Issues\x12%\n\x1dsettings__validation_warnings\x18\x01 \x01(\x08\x12!\n\x19settings__unexpected_args\x18\x02 \x01(\x08\x12(\n settings__preprocessing_warnings\x18\x03 \x01(\x08\x62\x06proto3')
|
18
18
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
20
20
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'wandb.proto.wandb_telemetry_pb2', globals())
|
@@ -22,19 +22,19 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
22
22
|
|
23
23
|
DESCRIPTOR._options = None
|
24
24
|
_TELEMETRYRECORD._serialized_start=84
|
25
|
-
_TELEMETRYRECORD._serialized_end=
|
26
|
-
_TELEMETRYRESULT._serialized_start=
|
27
|
-
_TELEMETRYRESULT._serialized_end=
|
28
|
-
_IMPORTS._serialized_start=
|
29
|
-
_IMPORTS._serialized_end=
|
30
|
-
_FEATURE._serialized_start=
|
31
|
-
_FEATURE._serialized_end=
|
32
|
-
_ENV._serialized_start=
|
33
|
-
_ENV._serialized_end=
|
34
|
-
_LABELS._serialized_start=
|
35
|
-
_LABELS._serialized_end=
|
36
|
-
_DEPRECATED._serialized_start=
|
37
|
-
_DEPRECATED._serialized_end=
|
38
|
-
_ISSUES._serialized_start=
|
39
|
-
_ISSUES._serialized_end=
|
25
|
+
_TELEMETRYRECORD._serialized_end=559
|
26
|
+
_TELEMETRYRESULT._serialized_start=561
|
27
|
+
_TELEMETRYRESULT._serialized_end=578
|
28
|
+
_IMPORTS._serialized_start=581
|
29
|
+
_IMPORTS._serialized_end=2343
|
30
|
+
_FEATURE._serialized_start=2346
|
31
|
+
_FEATURE._serialized_end=3656
|
32
|
+
_ENV._serialized_start=3659
|
33
|
+
_ENV._serialized_end=3937
|
34
|
+
_LABELS._serialized_start=3939
|
35
|
+
_LABELS._serialized_end=4011
|
36
|
+
_DEPRECATED._serialized_start=4014
|
37
|
+
_DEPRECATED._serialized_end=4296
|
38
|
+
_ISSUES._serialized_start=4298
|
39
|
+
_ISSUES._serialized_end=4422
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
wandb/sdk/artifacts/artifact.py
CHANGED
@@ -1730,7 +1730,8 @@ class Artifact:
|
|
1730
1730
|
has_next_page = True
|
1731
1731
|
cursor = None
|
1732
1732
|
while has_next_page:
|
1733
|
-
|
1733
|
+
fetch_url_batch_size = env.get_artifact_fetch_file_url_batch_size()
|
1734
|
+
attrs = self._fetch_file_urls(cursor, fetch_url_batch_size)
|
1734
1735
|
has_next_page = attrs["pageInfo"]["hasNextPage"]
|
1735
1736
|
cursor = attrs["pageInfo"]["endCursor"]
|
1736
1737
|
for edge in attrs["edges"]:
|
@@ -1738,7 +1739,7 @@ class Artifact:
|
|
1738
1739
|
entry._download_url = edge["node"]["directUrl"]
|
1739
1740
|
active_futures.add(executor.submit(download_entry, entry))
|
1740
1741
|
# Wait for download threads to catch up.
|
1741
|
-
max_backlog =
|
1742
|
+
max_backlog = fetch_url_batch_size
|
1742
1743
|
if len(active_futures) > max_backlog:
|
1743
1744
|
for future in concurrent.futures.as_completed(active_futures):
|
1744
1745
|
future.result() # check for errors
|
@@ -1769,12 +1770,14 @@ class Artifact:
|
|
1769
1770
|
retry_timedelta=timedelta(minutes=3),
|
1770
1771
|
retryable_exceptions=(requests.RequestException),
|
1771
1772
|
)
|
1772
|
-
def _fetch_file_urls(
|
1773
|
+
def _fetch_file_urls(
|
1774
|
+
self, cursor: Optional[str], per_page: Optional[int] = 5000
|
1775
|
+
) -> Any:
|
1773
1776
|
query = gql(
|
1774
1777
|
"""
|
1775
|
-
query ArtifactFileURLs($id: ID!, $cursor: String) {
|
1778
|
+
query ArtifactFileURLs($id: ID!, $cursor: String, $perPage: Int) {
|
1776
1779
|
artifact(id: $id) {
|
1777
|
-
files(after: $cursor, first:
|
1780
|
+
files(after: $cursor, first: $perPage) {
|
1778
1781
|
pageInfo {
|
1779
1782
|
hasNextPage
|
1780
1783
|
endCursor
|
@@ -1793,7 +1796,7 @@ class Artifact:
|
|
1793
1796
|
assert self._client is not None
|
1794
1797
|
response = self._client.execute(
|
1795
1798
|
query,
|
1796
|
-
variable_values={"id": self.id, "cursor": cursor},
|
1799
|
+
variable_values={"id": self.id, "cursor": cursor, "perPage": per_page},
|
1797
1800
|
timeout=60,
|
1798
1801
|
)
|
1799
1802
|
return response["artifact"]["files"]
|
@@ -204,7 +204,9 @@ class S3Handler(StorageHandler):
|
|
204
204
|
)
|
205
205
|
return entries
|
206
206
|
|
207
|
-
def _size_from_obj(
|
207
|
+
def _size_from_obj(
|
208
|
+
self, obj: Union["boto3.s3.Object", "boto3.s3.ObjectSummary"]
|
209
|
+
) -> int:
|
208
210
|
# ObjectSummary has size, Object has content_length
|
209
211
|
size: int
|
210
212
|
if hasattr(obj, "size"):
|
@@ -215,7 +217,7 @@ class S3Handler(StorageHandler):
|
|
215
217
|
|
216
218
|
def _entry_from_obj(
|
217
219
|
self,
|
218
|
-
obj: "boto3.s3.Object",
|
220
|
+
obj: Union["boto3.s3.Object", "boto3.s3.ObjectSummary"],
|
219
221
|
path: str,
|
220
222
|
name: Optional[StrPath] = None,
|
221
223
|
prefix: str = "",
|
@@ -261,18 +263,21 @@ class S3Handler(StorageHandler):
|
|
261
263
|
)
|
262
264
|
|
263
265
|
@staticmethod
|
264
|
-
def _etag_from_obj(obj: "boto3.s3.Object") -> ETag:
|
266
|
+
def _etag_from_obj(obj: Union["boto3.s3.Object", "boto3.s3.ObjectSummary"]) -> ETag:
|
265
267
|
etag: ETag
|
266
268
|
etag = obj.e_tag[1:-1] # escape leading and trailing quote
|
267
269
|
return etag
|
268
270
|
|
269
|
-
|
270
|
-
|
271
|
+
def _extra_from_obj(
|
272
|
+
self, obj: Union["boto3.s3.Object", "boto3.s3.ObjectSummary"]
|
273
|
+
) -> Dict[str, str]:
|
271
274
|
extra = {
|
272
275
|
"etag": obj.e_tag[1:-1], # escape leading and trailing quote
|
273
276
|
}
|
274
|
-
|
275
|
-
|
277
|
+
if not hasattr(obj, "version_id"):
|
278
|
+
# Convert ObjectSummary to Object to get the version_id.
|
279
|
+
obj = self._s3.Object(obj.bucket_name, obj.key) # type: ignore[union-attr]
|
280
|
+
if hasattr(obj, "version_id") and obj.version_id and obj.version_id != "null":
|
276
281
|
extra["versionID"] = obj.version_id
|
277
282
|
return extra
|
278
283
|
|
wandb/sdk/data_types/image.py
CHANGED
@@ -69,7 +69,7 @@ class Image(BatchableMedia):
|
|
69
69
|
image data, or a PIL image. The class attempts to infer
|
70
70
|
the data format and converts it.
|
71
71
|
mode: (string) The PIL mode for an image. Most common are "L", "RGB",
|
72
|
-
"RGBA". Full explanation at https://pillow.readthedocs.io/en/
|
72
|
+
"RGBA". Full explanation at https://pillow.readthedocs.io/en/stable/handbook/concepts.html#modes.
|
73
73
|
caption: (string) Label for display of image.
|
74
74
|
|
75
75
|
Note : When logging a `torch.Tensor` as a `wandb.Image`, images are normalized. If you do not want to normalize your images, please convert your tensors to a PIL Image.
|
@@ -341,6 +341,7 @@ class FileStreamApi:
|
|
341
341
|
self._client.auth = api.client.transport.session.auth
|
342
342
|
self._client.headers.update(api.client.transport.headers or {})
|
343
343
|
self._client.cookies.update(api.client.transport.cookies or {}) # type: ignore[no-untyped-call]
|
344
|
+
self._client.proxies.update(api.client.transport.session.proxies or {})
|
344
345
|
self._file_policies: Dict[str, DefaultFilePolicy] = {}
|
345
346
|
self._dropped_chunks: int = 0
|
346
347
|
self._queue: queue.Queue = queue.Queue()
|
@@ -500,7 +501,7 @@ class FileStreamApi:
|
|
500
501
|
wandb.termerror(
|
501
502
|
"Dropped streaming file chunk (see wandb/debug-internal.log)"
|
502
503
|
)
|
503
|
-
|
504
|
+
logger.exception("dropped chunk %s" % response)
|
504
505
|
self._dropped_chunks += 1
|
505
506
|
else:
|
506
507
|
parsed: Optional[dict] = None
|
wandb/sdk/internal/handler.py
CHANGED
@@ -235,7 +235,7 @@ class HandleManager:
|
|
235
235
|
record = Record(summary=summary)
|
236
236
|
self._dispatch_record(record)
|
237
237
|
elif not self._settings._offline:
|
238
|
-
# Send this summary update as a request since we
|
238
|
+
# Send this summary update as a request since we aren't persisting every update
|
239
239
|
summary_record = SummaryRecordRequest(summary=summary)
|
240
240
|
request_record = self._interface._make_request(
|
241
241
|
summary_record=summary_record
|
@@ -358,7 +358,7 @@ class HandleManager:
|
|
358
358
|
) -> bool:
|
359
359
|
metric_key = ".".join([k.replace(".", "\\.") for k in kl])
|
360
360
|
d = self._metric_defines.get(metric_key, d)
|
361
|
-
# if the dict has _type key,
|
361
|
+
# if the dict has _type key, it's a wandb table object
|
362
362
|
if isinstance(v, dict) and not handler_util.metric_is_wandb_dict(v):
|
363
363
|
updated = False
|
364
364
|
for nk, nv in v.items():
|
@@ -387,17 +387,17 @@ class HandleManager:
|
|
387
387
|
v[nk] = nv
|
388
388
|
return v
|
389
389
|
|
390
|
-
def _update_summary(self, history_dict: Dict[str, Any]) ->
|
390
|
+
def _update_summary(self, history_dict: Dict[str, Any]) -> List[str]:
|
391
391
|
# keep old behavior fast path if no define metrics have been used
|
392
392
|
if not self._metric_defines:
|
393
393
|
history_dict = self._update_summary_media_objects(history_dict)
|
394
394
|
self._consolidated_summary.update(history_dict)
|
395
|
-
return
|
396
|
-
|
395
|
+
return list(history_dict.keys())
|
396
|
+
updated_keys = []
|
397
397
|
for k, v in history_dict.items():
|
398
398
|
if self._update_summary_list(kl=[k], v=v):
|
399
|
-
|
400
|
-
return
|
399
|
+
updated_keys.append(k)
|
400
|
+
return updated_keys
|
401
401
|
|
402
402
|
def _history_assign_step(
|
403
403
|
self,
|
@@ -511,24 +511,28 @@ class HandleManager:
|
|
511
511
|
self._history_update(record.history, history_dict)
|
512
512
|
self._dispatch_record(record)
|
513
513
|
self._save_history(record.history)
|
514
|
-
|
515
|
-
|
516
|
-
|
514
|
+
# update summary from history
|
515
|
+
updated_keys = self._update_summary(history_dict)
|
516
|
+
if updated_keys:
|
517
|
+
updated_items = {k: self._consolidated_summary[k] for k in updated_keys}
|
518
|
+
self._save_summary(updated_items)
|
517
519
|
|
518
520
|
def _flush_partial_history(
|
519
521
|
self,
|
520
522
|
step: Optional[int] = None,
|
521
523
|
) -> None:
|
522
|
-
if self._partial_history:
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
524
|
+
if not self._partial_history:
|
525
|
+
return
|
526
|
+
|
527
|
+
history = HistoryRecord()
|
528
|
+
for k, v in self._partial_history.items():
|
529
|
+
item = history.item.add()
|
530
|
+
item.key = k
|
531
|
+
item.value_json = json.dumps(v)
|
532
|
+
if step is not None:
|
533
|
+
history.step.num = step
|
534
|
+
self.handle_history(Record(history=history))
|
535
|
+
self._partial_history = {}
|
532
536
|
|
533
537
|
def handle_request_sender_mark_report(self, record: Record) -> None:
|
534
538
|
self._dispatch_record(record, always_send=True)
|
@@ -115,6 +115,7 @@ if TYPE_CHECKING:
|
|
115
115
|
entity: Optional[str]
|
116
116
|
project: Optional[str]
|
117
117
|
_extra_http_headers: Optional[Mapping[str, str]]
|
118
|
+
_proxies: Optional[Mapping[str, str]]
|
118
119
|
|
119
120
|
_Response = MutableMapping
|
120
121
|
SweepState = Literal["RUNNING", "PAUSED", "CANCELED", "FINISHED"]
|
@@ -234,6 +235,7 @@ class Api:
|
|
234
235
|
"entity": None,
|
235
236
|
"project": None,
|
236
237
|
"_extra_http_headers": None,
|
238
|
+
"_proxies": None,
|
237
239
|
}
|
238
240
|
self.retry_timedelta = retry_timedelta
|
239
241
|
# todo: Old Settings do not follow the SupportsKeysAndGetItem Protocol
|
@@ -252,11 +254,14 @@ class Api:
|
|
252
254
|
"heartbeat_seconds": 30,
|
253
255
|
}
|
254
256
|
|
255
|
-
# todo: remove
|
257
|
+
# todo: remove these hacky hacks after settings refactor is complete
|
256
258
|
# keeping this code here to limit scope and so that it is easy to remove later
|
257
259
|
extra_http_headers = self.settings("_extra_http_headers") or json.loads(
|
258
260
|
self._environ.get("WANDB__EXTRA_HTTP_HEADERS", "{}")
|
259
261
|
)
|
262
|
+
proxies = self.settings("_proxies") or json.loads(
|
263
|
+
self._environ.get("WANDB__PROXIES", "{}")
|
264
|
+
)
|
260
265
|
|
261
266
|
auth = None
|
262
267
|
if _thread_local_api_settings.cookies is None:
|
@@ -277,6 +282,7 @@ class Api:
|
|
277
282
|
auth=auth,
|
278
283
|
url=f"{self.settings('base_url')}/graphql",
|
279
284
|
cookies=_thread_local_api_settings.cookies,
|
285
|
+
proxies=proxies,
|
280
286
|
)
|
281
287
|
)
|
282
288
|
|
@@ -300,6 +306,8 @@ class Api:
|
|
300
306
|
self._upload_file_session.put,
|
301
307
|
timeout=self.FILE_PUSHER_TIMEOUT,
|
302
308
|
)
|
309
|
+
if proxies:
|
310
|
+
self._upload_file_session.proxies.update(proxies)
|
303
311
|
# This Retry class is initialized once for each Api instance, so this
|
304
312
|
# defaults to retrying 1 million times per process or 7 days
|
305
313
|
self.upload_file_retry = normalize_exceptions(
|
wandb/sdk/internal/sender.py
CHANGED
@@ -268,6 +268,7 @@ class SendManager:
|
|
268
268
|
self._cached_summary: Dict[str, Any] = dict()
|
269
269
|
self._config_metric_index_dict: Dict[str, int] = {}
|
270
270
|
self._config_metric_dict: Dict[str, wandb_internal_pb2.MetricRecord] = {}
|
271
|
+
self._consolidated_summary: Dict[str, Any] = dict()
|
271
272
|
|
272
273
|
self._cached_server_info = dict()
|
273
274
|
self._cached_viewer = dict()
|
@@ -1149,7 +1150,9 @@ class SendManager:
|
|
1149
1150
|
summary_dict.pop("_wandb", None)
|
1150
1151
|
if self._metadata_summary:
|
1151
1152
|
summary_dict["_wandb"] = self._metadata_summary
|
1152
|
-
|
1153
|
+
# merge with consolidated summary
|
1154
|
+
self._consolidated_summary.update(summary_dict)
|
1155
|
+
json_summary = json.dumps(self._consolidated_summary)
|
1153
1156
|
if self._fs:
|
1154
1157
|
self._fs.push(filenames.SUMMARY_FNAME, json_summary)
|
1155
1158
|
# TODO(jhr): we should only write this at the end of the script
|
@@ -88,7 +88,7 @@ class SystemInfo:
|
|
88
88
|
|
89
89
|
def _save_code(self) -> None:
|
90
90
|
logger.debug("Saving code")
|
91
|
-
if self.settings.program_relpath
|
91
|
+
if not self.settings.program_relpath:
|
92
92
|
logger.warning("unable to save code -- program entry not found")
|
93
93
|
return None
|
94
94
|
|
@@ -215,7 +215,7 @@ class SystemInfo:
|
|
215
215
|
# of code execution, even when in a git repo
|
216
216
|
data["codePathLocal"] = _get_program_relpath(self.settings.program)
|
217
217
|
if not self.settings.disable_code:
|
218
|
-
if self.settings.program_relpath
|
218
|
+
if self.settings.program_relpath:
|
219
219
|
data["codePath"] = self.settings.program_relpath
|
220
220
|
elif self.settings._jupyter:
|
221
221
|
if self.settings.notebook_name:
|
wandb/sdk/launch/__init__.py
CHANGED
@@ -124,24 +124,28 @@ def create_and_run_agent(
|
|
124
124
|
agent.loop()
|
125
125
|
|
126
126
|
|
127
|
-
def
|
128
|
-
uri: Optional[str],
|
129
|
-
job: Optional[str],
|
130
|
-
name: Optional[str],
|
131
|
-
project: Optional[str],
|
132
|
-
entity: Optional[str],
|
133
|
-
docker_image: Optional[str],
|
134
|
-
entry_point: Optional[List[str]],
|
135
|
-
version: Optional[str],
|
136
|
-
resource: str,
|
137
|
-
resource_args: Optional[Dict[str, Any]],
|
138
|
-
launch_config: Optional[Dict[str, Any]],
|
139
|
-
synchronous: Optional[bool],
|
127
|
+
def _launch(
|
140
128
|
api: Api,
|
141
|
-
|
142
|
-
|
129
|
+
uri: Optional[str] = None,
|
130
|
+
job: Optional[str] = None,
|
131
|
+
name: Optional[str] = None,
|
132
|
+
project: Optional[str] = None,
|
133
|
+
entity: Optional[str] = None,
|
134
|
+
docker_image: Optional[str] = None,
|
135
|
+
entry_point: Optional[List[str]] = None,
|
136
|
+
version: Optional[str] = None,
|
137
|
+
resource: Optional[str] = None,
|
138
|
+
resource_args: Optional[Dict[str, Any]] = None,
|
139
|
+
launch_config: Optional[Dict[str, Any]] = None,
|
140
|
+
synchronous: Optional[bool] = None,
|
141
|
+
run_id: Optional[str] = None,
|
142
|
+
repository: Optional[str] = None,
|
143
143
|
) -> AbstractRun:
|
144
144
|
"""Helper that delegates to the project-running method corresponding to the passed-in backend."""
|
145
|
+
if launch_config is None:
|
146
|
+
launch_config = {}
|
147
|
+
if resource is None:
|
148
|
+
resource = "local-container"
|
145
149
|
launch_spec = construct_launch_spec(
|
146
150
|
uri,
|
147
151
|
job,
|
@@ -193,9 +197,8 @@ def _run(
|
|
193
197
|
)
|
194
198
|
|
195
199
|
|
196
|
-
def
|
200
|
+
def launch(
|
197
201
|
api: Api,
|
198
|
-
uri: Optional[str] = None,
|
199
202
|
job: Optional[str] = None,
|
200
203
|
entry_point: Optional[List[str]] = None,
|
201
204
|
version: Optional[str] = None,
|
@@ -210,41 +213,43 @@ def run(
|
|
210
213
|
run_id: Optional[str] = None,
|
211
214
|
repository: Optional[str] = None,
|
212
215
|
) -> AbstractRun:
|
213
|
-
"""
|
216
|
+
"""Launch a W&B launch experiment.
|
214
217
|
|
215
218
|
Arguments:
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
repository: string name of repository path for remote registry
|
219
|
+
job: string reference to a wandb.Job eg: wandb/test/my-job:latest
|
220
|
+
api: An instance of a wandb Api from wandb.apis.internal.
|
221
|
+
entry_point: Entry point to run within the project. Defaults to using the entry point used
|
222
|
+
in the original run for wandb URIs, or main.py for git repository URIs.
|
223
|
+
version: For Git-based projects, either a commit hash or a branch name.
|
224
|
+
name: Name run under which to launch the run.
|
225
|
+
resource: Execution backend for the run.
|
226
|
+
resource_args: Resource related arguments for launching runs onto a remote backend.
|
227
|
+
Will be stored on the constructed launch config under ``resource_args``.
|
228
|
+
project: Target project to send launched run to
|
229
|
+
entity: Target entity to send launched run to
|
230
|
+
config: A dictionary containing the configuration for the run. May also contain
|
231
|
+
resource specific arguments under the key "resource_args".
|
232
|
+
synchronous: Whether to block while waiting for a run to complete. Defaults to True.
|
233
|
+
Note that if ``synchronous`` is False and ``backend`` is "local-container", this
|
234
|
+
method will return, but the current process will block when exiting until
|
235
|
+
the local run completes. If the current process is interrupted, any
|
236
|
+
asynchronous runs launched via this method will be terminated. If
|
237
|
+
``synchronous`` is True and the run fails, the current process will
|
238
|
+
error out as well.
|
239
|
+
run_id: ID for the run (To ultimately replace the :name: field)
|
240
|
+
repository: string name of repository path for remote registry
|
239
241
|
|
240
242
|
Example:
|
241
|
-
|
242
|
-
|
243
|
-
|
243
|
+
```python
|
244
|
+
from wandb.sdk.launch import launch
|
245
|
+
|
246
|
+
job = "wandb/jobs/Hello World:latest"
|
247
|
+
params = {"epochs": 5}
|
244
248
|
# Run W&B project and create a reproducible docker environment
|
245
249
|
# on a local host
|
246
250
|
api = wandb.apis.internal.Api()
|
247
|
-
|
251
|
+
launch(api, job, parameters=params)
|
252
|
+
```
|
248
253
|
|
249
254
|
|
250
255
|
Returns:
|
@@ -255,15 +260,9 @@ def run(
|
|
255
260
|
`wandb.exceptions.ExecutionError` If a run launched in blocking mode
|
256
261
|
is unsuccessful.
|
257
262
|
"""
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
# default to local container for runs without a queue
|
262
|
-
if resource is None:
|
263
|
-
resource = "local-container"
|
264
|
-
|
265
|
-
submitted_run_obj = _run(
|
266
|
-
uri=uri,
|
263
|
+
submitted_run_obj = _launch(
|
264
|
+
# TODO: fully deprecate URI path
|
265
|
+
uri=None,
|
267
266
|
job=job,
|
268
267
|
name=name,
|
269
268
|
project=project,
|