wandb 0.18.2__py3-none-musllinux_1_2_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.
- package_readme.md +89 -0
- wandb/__init__.py +245 -0
- wandb/__init__.pyi +1139 -0
- wandb/__main__.py +3 -0
- wandb/_globals.py +19 -0
- wandb/agents/__init__.py +0 -0
- wandb/agents/pyagent.py +363 -0
- wandb/analytics/__init__.py +3 -0
- wandb/analytics/sentry.py +266 -0
- wandb/apis/__init__.py +48 -0
- wandb/apis/attrs.py +40 -0
- wandb/apis/importers/__init__.py +1 -0
- wandb/apis/importers/internals/internal.py +385 -0
- wandb/apis/importers/internals/protocols.py +99 -0
- wandb/apis/importers/internals/util.py +78 -0
- wandb/apis/importers/mlflow.py +254 -0
- wandb/apis/importers/validation.py +108 -0
- wandb/apis/importers/wandb.py +1603 -0
- wandb/apis/internal.py +232 -0
- wandb/apis/normalize.py +89 -0
- wandb/apis/paginator.py +81 -0
- wandb/apis/public/__init__.py +34 -0
- wandb/apis/public/api.py +1305 -0
- wandb/apis/public/artifacts.py +1090 -0
- wandb/apis/public/const.py +4 -0
- wandb/apis/public/files.py +195 -0
- wandb/apis/public/history.py +149 -0
- wandb/apis/public/jobs.py +659 -0
- wandb/apis/public/projects.py +154 -0
- wandb/apis/public/query_generator.py +166 -0
- wandb/apis/public/reports.py +469 -0
- wandb/apis/public/runs.py +914 -0
- wandb/apis/public/sweeps.py +240 -0
- wandb/apis/public/teams.py +198 -0
- wandb/apis/public/users.py +136 -0
- wandb/apis/reports/__init__.py +1 -0
- wandb/apis/reports/v1/__init__.py +8 -0
- wandb/apis/reports/v2/__init__.py +8 -0
- wandb/apis/workspaces/__init__.py +8 -0
- wandb/beta/workflows.py +288 -0
- wandb/bin/nvidia_gpu_stats +0 -0
- wandb/bin/wandb-core +0 -0
- wandb/cli/__init__.py +0 -0
- wandb/cli/cli.py +3004 -0
- wandb/data_types.py +63 -0
- wandb/docker/__init__.py +342 -0
- wandb/docker/auth.py +436 -0
- wandb/docker/wandb-entrypoint.sh +33 -0
- wandb/docker/www_authenticate.py +94 -0
- wandb/env.py +514 -0
- wandb/errors/__init__.py +17 -0
- wandb/errors/errors.py +37 -0
- wandb/errors/term.py +103 -0
- wandb/errors/util.py +57 -0
- wandb/errors/warnings.py +2 -0
- wandb/filesync/__init__.py +0 -0
- wandb/filesync/dir_watcher.py +403 -0
- wandb/filesync/stats.py +100 -0
- wandb/filesync/step_checksum.py +142 -0
- wandb/filesync/step_prepare.py +179 -0
- wandb/filesync/step_upload.py +290 -0
- wandb/filesync/upload_job.py +142 -0
- wandb/integration/__init__.py +0 -0
- wandb/integration/catboost/__init__.py +5 -0
- wandb/integration/catboost/catboost.py +178 -0
- wandb/integration/cohere/__init__.py +3 -0
- wandb/integration/cohere/cohere.py +21 -0
- wandb/integration/cohere/resolver.py +347 -0
- wandb/integration/diffusers/__init__.py +3 -0
- wandb/integration/diffusers/autologger.py +76 -0
- wandb/integration/diffusers/pipeline_resolver.py +50 -0
- wandb/integration/diffusers/resolvers/__init__.py +9 -0
- wandb/integration/diffusers/resolvers/multimodal.py +882 -0
- wandb/integration/diffusers/resolvers/utils.py +102 -0
- wandb/integration/fastai/__init__.py +249 -0
- wandb/integration/gym/__init__.py +105 -0
- wandb/integration/huggingface/__init__.py +3 -0
- wandb/integration/huggingface/huggingface.py +18 -0
- wandb/integration/huggingface/resolver.py +213 -0
- wandb/integration/keras/__init__.py +11 -0
- wandb/integration/keras/callbacks/__init__.py +5 -0
- wandb/integration/keras/callbacks/metrics_logger.py +136 -0
- wandb/integration/keras/callbacks/model_checkpoint.py +195 -0
- wandb/integration/keras/callbacks/tables_builder.py +226 -0
- wandb/integration/keras/keras.py +1091 -0
- wandb/integration/kfp/__init__.py +6 -0
- wandb/integration/kfp/helpers.py +28 -0
- wandb/integration/kfp/kfp_patch.py +324 -0
- wandb/integration/kfp/wandb_logging.py +182 -0
- wandb/integration/langchain/__init__.py +3 -0
- wandb/integration/langchain/wandb_tracer.py +48 -0
- wandb/integration/lightgbm/__init__.py +239 -0
- wandb/integration/lightning/__init__.py +0 -0
- wandb/integration/lightning/fabric/__init__.py +3 -0
- wandb/integration/lightning/fabric/logger.py +762 -0
- wandb/integration/magic.py +556 -0
- wandb/integration/metaflow/__init__.py +3 -0
- wandb/integration/metaflow/metaflow.py +383 -0
- wandb/integration/openai/__init__.py +3 -0
- wandb/integration/openai/fine_tuning.py +480 -0
- wandb/integration/openai/openai.py +22 -0
- wandb/integration/openai/resolver.py +240 -0
- wandb/integration/prodigy/__init__.py +3 -0
- wandb/integration/prodigy/prodigy.py +299 -0
- wandb/integration/sacred/__init__.py +117 -0
- wandb/integration/sagemaker/__init__.py +12 -0
- wandb/integration/sagemaker/auth.py +28 -0
- wandb/integration/sagemaker/config.py +49 -0
- wandb/integration/sagemaker/files.py +3 -0
- wandb/integration/sagemaker/resources.py +34 -0
- wandb/integration/sb3/__init__.py +3 -0
- wandb/integration/sb3/sb3.py +153 -0
- wandb/integration/sklearn/__init__.py +37 -0
- wandb/integration/sklearn/calculate/__init__.py +32 -0
- wandb/integration/sklearn/calculate/calibration_curves.py +125 -0
- wandb/integration/sklearn/calculate/class_proportions.py +68 -0
- wandb/integration/sklearn/calculate/confusion_matrix.py +93 -0
- wandb/integration/sklearn/calculate/decision_boundaries.py +40 -0
- wandb/integration/sklearn/calculate/elbow_curve.py +55 -0
- wandb/integration/sklearn/calculate/feature_importances.py +67 -0
- wandb/integration/sklearn/calculate/learning_curve.py +64 -0
- wandb/integration/sklearn/calculate/outlier_candidates.py +69 -0
- wandb/integration/sklearn/calculate/residuals.py +86 -0
- wandb/integration/sklearn/calculate/silhouette.py +118 -0
- wandb/integration/sklearn/calculate/summary_metrics.py +62 -0
- wandb/integration/sklearn/plot/__init__.py +35 -0
- wandb/integration/sklearn/plot/classifier.py +329 -0
- wandb/integration/sklearn/plot/clusterer.py +146 -0
- wandb/integration/sklearn/plot/regressor.py +121 -0
- wandb/integration/sklearn/plot/shared.py +91 -0
- wandb/integration/sklearn/utils.py +183 -0
- wandb/integration/tensorboard/__init__.py +10 -0
- wandb/integration/tensorboard/log.py +355 -0
- wandb/integration/tensorboard/monkeypatch.py +185 -0
- wandb/integration/tensorflow/__init__.py +5 -0
- wandb/integration/tensorflow/estimator_hook.py +54 -0
- wandb/integration/torch/__init__.py +0 -0
- wandb/integration/torch/wandb_torch.py +554 -0
- wandb/integration/ultralytics/__init__.py +11 -0
- wandb/integration/ultralytics/bbox_utils.py +208 -0
- wandb/integration/ultralytics/callback.py +524 -0
- wandb/integration/ultralytics/classification_utils.py +83 -0
- wandb/integration/ultralytics/mask_utils.py +202 -0
- wandb/integration/ultralytics/pose_utils.py +103 -0
- wandb/integration/xgboost/__init__.py +11 -0
- wandb/integration/xgboost/xgboost.py +189 -0
- wandb/integration/yolov8/__init__.py +0 -0
- wandb/integration/yolov8/yolov8.py +284 -0
- wandb/jupyter.py +515 -0
- wandb/magic.py +3 -0
- wandb/mpmain/__init__.py +0 -0
- wandb/mpmain/__main__.py +1 -0
- wandb/old/__init__.py +0 -0
- wandb/old/core.py +53 -0
- wandb/old/settings.py +173 -0
- wandb/old/summary.py +440 -0
- wandb/plot/__init__.py +19 -0
- wandb/plot/bar.py +45 -0
- wandb/plot/confusion_matrix.py +100 -0
- wandb/plot/histogram.py +39 -0
- wandb/plot/line.py +43 -0
- wandb/plot/line_series.py +88 -0
- wandb/plot/pr_curve.py +136 -0
- wandb/plot/roc_curve.py +118 -0
- wandb/plot/scatter.py +32 -0
- wandb/plot/utils.py +183 -0
- wandb/plot/viz.py +123 -0
- wandb/proto/__init__.py +0 -0
- wandb/proto/v3/__init__.py +0 -0
- wandb/proto/v3/wandb_base_pb2.py +55 -0
- wandb/proto/v3/wandb_internal_pb2.py +1608 -0
- wandb/proto/v3/wandb_server_pb2.py +208 -0
- wandb/proto/v3/wandb_settings_pb2.py +112 -0
- wandb/proto/v3/wandb_telemetry_pb2.py +106 -0
- wandb/proto/v4/__init__.py +0 -0
- wandb/proto/v4/wandb_base_pb2.py +30 -0
- wandb/proto/v4/wandb_internal_pb2.py +360 -0
- wandb/proto/v4/wandb_server_pb2.py +63 -0
- wandb/proto/v4/wandb_settings_pb2.py +45 -0
- wandb/proto/v4/wandb_telemetry_pb2.py +41 -0
- wandb/proto/v5/wandb_base_pb2.py +31 -0
- wandb/proto/v5/wandb_internal_pb2.py +361 -0
- wandb/proto/v5/wandb_server_pb2.py +64 -0
- wandb/proto/v5/wandb_settings_pb2.py +46 -0
- wandb/proto/v5/wandb_telemetry_pb2.py +42 -0
- wandb/proto/wandb_base_pb2.py +10 -0
- wandb/proto/wandb_deprecated.py +53 -0
- wandb/proto/wandb_generate_deprecated.py +34 -0
- wandb/proto/wandb_generate_proto.py +49 -0
- wandb/proto/wandb_internal_pb2.py +16 -0
- wandb/proto/wandb_server_pb2.py +10 -0
- wandb/proto/wandb_settings_pb2.py +10 -0
- wandb/proto/wandb_telemetry_pb2.py +10 -0
- wandb/py.typed +0 -0
- wandb/sdk/__init__.py +37 -0
- wandb/sdk/artifacts/__init__.py +0 -0
- wandb/sdk/artifacts/_validators.py +90 -0
- wandb/sdk/artifacts/artifact.py +2389 -0
- wandb/sdk/artifacts/artifact_download_logger.py +43 -0
- wandb/sdk/artifacts/artifact_file_cache.py +253 -0
- wandb/sdk/artifacts/artifact_instance_cache.py +17 -0
- wandb/sdk/artifacts/artifact_manifest.py +74 -0
- wandb/sdk/artifacts/artifact_manifest_entry.py +249 -0
- wandb/sdk/artifacts/artifact_manifests/__init__.py +0 -0
- wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py +92 -0
- wandb/sdk/artifacts/artifact_saver.py +269 -0
- wandb/sdk/artifacts/artifact_state.py +11 -0
- wandb/sdk/artifacts/artifact_ttl.py +7 -0
- wandb/sdk/artifacts/exceptions.py +57 -0
- wandb/sdk/artifacts/staging.py +25 -0
- wandb/sdk/artifacts/storage_handler.py +62 -0
- wandb/sdk/artifacts/storage_handlers/__init__.py +0 -0
- wandb/sdk/artifacts/storage_handlers/azure_handler.py +208 -0
- wandb/sdk/artifacts/storage_handlers/gcs_handler.py +228 -0
- wandb/sdk/artifacts/storage_handlers/http_handler.py +114 -0
- wandb/sdk/artifacts/storage_handlers/local_file_handler.py +141 -0
- wandb/sdk/artifacts/storage_handlers/multi_handler.py +56 -0
- wandb/sdk/artifacts/storage_handlers/s3_handler.py +300 -0
- wandb/sdk/artifacts/storage_handlers/tracking_handler.py +72 -0
- wandb/sdk/artifacts/storage_handlers/wb_artifact_handler.py +135 -0
- wandb/sdk/artifacts/storage_handlers/wb_local_artifact_handler.py +74 -0
- wandb/sdk/artifacts/storage_layout.py +6 -0
- wandb/sdk/artifacts/storage_policies/__init__.py +4 -0
- wandb/sdk/artifacts/storage_policies/register.py +1 -0
- wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +378 -0
- wandb/sdk/artifacts/storage_policy.py +72 -0
- wandb/sdk/backend/__init__.py +0 -0
- wandb/sdk/backend/backend.py +222 -0
- wandb/sdk/data_types/__init__.py +0 -0
- wandb/sdk/data_types/_dtypes.py +914 -0
- wandb/sdk/data_types/_private.py +10 -0
- wandb/sdk/data_types/audio.py +165 -0
- wandb/sdk/data_types/base_types/__init__.py +0 -0
- wandb/sdk/data_types/base_types/json_metadata.py +55 -0
- wandb/sdk/data_types/base_types/media.py +315 -0
- wandb/sdk/data_types/base_types/wb_value.py +272 -0
- wandb/sdk/data_types/bokeh.py +70 -0
- wandb/sdk/data_types/graph.py +405 -0
- wandb/sdk/data_types/helper_types/__init__.py +0 -0
- wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +295 -0
- wandb/sdk/data_types/helper_types/classes.py +159 -0
- wandb/sdk/data_types/helper_types/image_mask.py +235 -0
- wandb/sdk/data_types/histogram.py +96 -0
- wandb/sdk/data_types/html.py +115 -0
- wandb/sdk/data_types/image.py +845 -0
- wandb/sdk/data_types/molecule.py +241 -0
- wandb/sdk/data_types/object_3d.py +474 -0
- wandb/sdk/data_types/plotly.py +82 -0
- wandb/sdk/data_types/saved_model.py +446 -0
- wandb/sdk/data_types/table.py +1204 -0
- wandb/sdk/data_types/trace_tree.py +438 -0
- wandb/sdk/data_types/utils.py +229 -0
- wandb/sdk/data_types/video.py +247 -0
- wandb/sdk/integration_utils/__init__.py +0 -0
- wandb/sdk/integration_utils/auto_logging.py +239 -0
- wandb/sdk/integration_utils/data_logging.py +475 -0
- wandb/sdk/interface/__init__.py +0 -0
- wandb/sdk/interface/constants.py +4 -0
- wandb/sdk/interface/interface.py +972 -0
- wandb/sdk/interface/interface_queue.py +59 -0
- wandb/sdk/interface/interface_relay.py +53 -0
- wandb/sdk/interface/interface_shared.py +537 -0
- wandb/sdk/interface/interface_sock.py +61 -0
- wandb/sdk/interface/message_future.py +27 -0
- wandb/sdk/interface/message_future_poll.py +50 -0
- wandb/sdk/interface/router.py +118 -0
- wandb/sdk/interface/router_queue.py +44 -0
- wandb/sdk/interface/router_relay.py +39 -0
- wandb/sdk/interface/router_sock.py +36 -0
- wandb/sdk/interface/summary_record.py +67 -0
- wandb/sdk/internal/__init__.py +0 -0
- wandb/sdk/internal/context.py +89 -0
- wandb/sdk/internal/datastore.py +297 -0
- wandb/sdk/internal/file_pusher.py +181 -0
- wandb/sdk/internal/file_stream.py +695 -0
- wandb/sdk/internal/flow_control.py +263 -0
- wandb/sdk/internal/handler.py +901 -0
- wandb/sdk/internal/internal.py +417 -0
- wandb/sdk/internal/internal_api.py +4358 -0
- wandb/sdk/internal/internal_util.py +100 -0
- wandb/sdk/internal/job_builder.py +629 -0
- wandb/sdk/internal/profiler.py +78 -0
- wandb/sdk/internal/progress.py +83 -0
- wandb/sdk/internal/run.py +25 -0
- wandb/sdk/internal/sample.py +70 -0
- wandb/sdk/internal/sender.py +1686 -0
- wandb/sdk/internal/sender_config.py +197 -0
- wandb/sdk/internal/settings_static.py +90 -0
- wandb/sdk/internal/system/__init__.py +0 -0
- wandb/sdk/internal/system/assets/__init__.py +27 -0
- wandb/sdk/internal/system/assets/aggregators.py +37 -0
- wandb/sdk/internal/system/assets/asset_registry.py +20 -0
- wandb/sdk/internal/system/assets/cpu.py +163 -0
- wandb/sdk/internal/system/assets/disk.py +210 -0
- wandb/sdk/internal/system/assets/gpu.py +416 -0
- wandb/sdk/internal/system/assets/gpu_amd.py +239 -0
- wandb/sdk/internal/system/assets/gpu_apple.py +177 -0
- wandb/sdk/internal/system/assets/interfaces.py +207 -0
- wandb/sdk/internal/system/assets/ipu.py +177 -0
- wandb/sdk/internal/system/assets/memory.py +166 -0
- wandb/sdk/internal/system/assets/network.py +125 -0
- wandb/sdk/internal/system/assets/open_metrics.py +299 -0
- wandb/sdk/internal/system/assets/tpu.py +154 -0
- wandb/sdk/internal/system/assets/trainium.py +399 -0
- wandb/sdk/internal/system/env_probe_helpers.py +13 -0
- wandb/sdk/internal/system/system_info.py +249 -0
- wandb/sdk/internal/system/system_monitor.py +229 -0
- wandb/sdk/internal/tb_watcher.py +518 -0
- wandb/sdk/internal/thread_local_settings.py +18 -0
- wandb/sdk/internal/writer.py +206 -0
- wandb/sdk/launch/__init__.py +14 -0
- wandb/sdk/launch/_launch.py +330 -0
- wandb/sdk/launch/_launch_add.py +255 -0
- wandb/sdk/launch/_project_spec.py +566 -0
- wandb/sdk/launch/agent/__init__.py +5 -0
- wandb/sdk/launch/agent/agent.py +924 -0
- wandb/sdk/launch/agent/config.py +296 -0
- wandb/sdk/launch/agent/job_status_tracker.py +53 -0
- wandb/sdk/launch/agent/run_queue_item_file_saver.py +45 -0
- wandb/sdk/launch/builder/__init__.py +0 -0
- wandb/sdk/launch/builder/abstract.py +156 -0
- wandb/sdk/launch/builder/build.py +297 -0
- wandb/sdk/launch/builder/context_manager.py +235 -0
- wandb/sdk/launch/builder/docker_builder.py +177 -0
- wandb/sdk/launch/builder/kaniko_builder.py +595 -0
- wandb/sdk/launch/builder/noop.py +58 -0
- wandb/sdk/launch/builder/templates/_wandb_bootstrap.py +188 -0
- wandb/sdk/launch/builder/templates/dockerfile.py +92 -0
- wandb/sdk/launch/create_job.py +528 -0
- wandb/sdk/launch/environment/abstract.py +29 -0
- wandb/sdk/launch/environment/aws_environment.py +322 -0
- wandb/sdk/launch/environment/azure_environment.py +105 -0
- wandb/sdk/launch/environment/gcp_environment.py +335 -0
- wandb/sdk/launch/environment/local_environment.py +66 -0
- wandb/sdk/launch/errors.py +19 -0
- wandb/sdk/launch/git_reference.py +109 -0
- wandb/sdk/launch/inputs/files.py +148 -0
- wandb/sdk/launch/inputs/internal.py +315 -0
- wandb/sdk/launch/inputs/manage.py +113 -0
- wandb/sdk/launch/inputs/schema.py +39 -0
- wandb/sdk/launch/loader.py +249 -0
- wandb/sdk/launch/registry/abstract.py +48 -0
- wandb/sdk/launch/registry/anon.py +29 -0
- wandb/sdk/launch/registry/azure_container_registry.py +124 -0
- wandb/sdk/launch/registry/elastic_container_registry.py +192 -0
- wandb/sdk/launch/registry/google_artifact_registry.py +219 -0
- wandb/sdk/launch/registry/local_registry.py +67 -0
- wandb/sdk/launch/runner/__init__.py +0 -0
- wandb/sdk/launch/runner/abstract.py +195 -0
- wandb/sdk/launch/runner/kubernetes_monitor.py +474 -0
- wandb/sdk/launch/runner/kubernetes_runner.py +963 -0
- wandb/sdk/launch/runner/local_container.py +301 -0
- wandb/sdk/launch/runner/local_process.py +78 -0
- wandb/sdk/launch/runner/sagemaker_runner.py +426 -0
- wandb/sdk/launch/runner/vertex_runner.py +230 -0
- wandb/sdk/launch/sweeps/__init__.py +39 -0
- wandb/sdk/launch/sweeps/scheduler.py +742 -0
- wandb/sdk/launch/sweeps/scheduler_sweep.py +91 -0
- wandb/sdk/launch/sweeps/utils.py +316 -0
- wandb/sdk/launch/utils.py +746 -0
- wandb/sdk/launch/wandb_reference.py +138 -0
- wandb/sdk/lib/__init__.py +5 -0
- wandb/sdk/lib/_settings_toposort_generate.py +159 -0
- wandb/sdk/lib/_settings_toposort_generated.py +250 -0
- wandb/sdk/lib/_wburls_generate.py +25 -0
- wandb/sdk/lib/_wburls_generated.py +22 -0
- wandb/sdk/lib/apikey.py +273 -0
- wandb/sdk/lib/capped_dict.py +26 -0
- wandb/sdk/lib/config_util.py +101 -0
- wandb/sdk/lib/credentials.py +141 -0
- wandb/sdk/lib/deprecate.py +42 -0
- wandb/sdk/lib/disabled.py +29 -0
- wandb/sdk/lib/exit_hooks.py +54 -0
- wandb/sdk/lib/file_stream_utils.py +118 -0
- wandb/sdk/lib/filenames.py +64 -0
- wandb/sdk/lib/filesystem.py +372 -0
- wandb/sdk/lib/fsm.py +174 -0
- wandb/sdk/lib/gitlib.py +239 -0
- wandb/sdk/lib/gql_request.py +65 -0
- wandb/sdk/lib/handler_util.py +21 -0
- wandb/sdk/lib/hashutil.py +84 -0
- wandb/sdk/lib/import_hooks.py +275 -0
- wandb/sdk/lib/ipython.py +146 -0
- wandb/sdk/lib/json_util.py +80 -0
- wandb/sdk/lib/lazyloader.py +63 -0
- wandb/sdk/lib/mailbox.py +460 -0
- wandb/sdk/lib/module.py +69 -0
- wandb/sdk/lib/paths.py +106 -0
- wandb/sdk/lib/preinit.py +42 -0
- wandb/sdk/lib/printer.py +313 -0
- wandb/sdk/lib/proto_util.py +90 -0
- wandb/sdk/lib/redirect.py +845 -0
- wandb/sdk/lib/reporting.py +99 -0
- wandb/sdk/lib/retry.py +289 -0
- wandb/sdk/lib/run_moment.py +78 -0
- wandb/sdk/lib/runid.py +12 -0
- wandb/sdk/lib/server.py +52 -0
- wandb/sdk/lib/service_connection.py +216 -0
- wandb/sdk/lib/service_token.py +94 -0
- wandb/sdk/lib/sock_client.py +295 -0
- wandb/sdk/lib/sparkline.py +45 -0
- wandb/sdk/lib/telemetry.py +100 -0
- wandb/sdk/lib/timed_input.py +133 -0
- wandb/sdk/lib/timer.py +19 -0
- wandb/sdk/lib/tracelog.py +255 -0
- wandb/sdk/lib/wburls.py +46 -0
- wandb/sdk/service/__init__.py +0 -0
- wandb/sdk/service/_startup_debug.py +22 -0
- wandb/sdk/service/port_file.py +53 -0
- wandb/sdk/service/server.py +116 -0
- wandb/sdk/service/server_sock.py +276 -0
- wandb/sdk/service/service.py +242 -0
- wandb/sdk/service/streams.py +417 -0
- wandb/sdk/verify/__init__.py +0 -0
- wandb/sdk/verify/verify.py +501 -0
- wandb/sdk/wandb_alerts.py +12 -0
- wandb/sdk/wandb_config.py +322 -0
- wandb/sdk/wandb_helper.py +54 -0
- wandb/sdk/wandb_init.py +1266 -0
- wandb/sdk/wandb_login.py +349 -0
- wandb/sdk/wandb_metric.py +110 -0
- wandb/sdk/wandb_require.py +97 -0
- wandb/sdk/wandb_require_helpers.py +44 -0
- wandb/sdk/wandb_run.py +4236 -0
- wandb/sdk/wandb_settings.py +2001 -0
- wandb/sdk/wandb_setup.py +409 -0
- wandb/sdk/wandb_summary.py +150 -0
- wandb/sdk/wandb_sweep.py +119 -0
- wandb/sdk/wandb_sync.py +81 -0
- wandb/sdk/wandb_watch.py +144 -0
- wandb/sklearn.py +35 -0
- wandb/sync/__init__.py +3 -0
- wandb/sync/sync.py +443 -0
- wandb/trigger.py +29 -0
- wandb/util.py +1956 -0
- wandb/vendor/__init__.py +0 -0
- wandb/vendor/gql-0.2.0/setup.py +40 -0
- wandb/vendor/gql-0.2.0/tests/__init__.py +0 -0
- wandb/vendor/gql-0.2.0/tests/starwars/__init__.py +0 -0
- wandb/vendor/gql-0.2.0/tests/starwars/fixtures.py +96 -0
- wandb/vendor/gql-0.2.0/tests/starwars/schema.py +146 -0
- wandb/vendor/gql-0.2.0/tests/starwars/test_dsl.py +293 -0
- wandb/vendor/gql-0.2.0/tests/starwars/test_query.py +355 -0
- wandb/vendor/gql-0.2.0/tests/starwars/test_validation.py +171 -0
- wandb/vendor/gql-0.2.0/tests/test_client.py +31 -0
- wandb/vendor/gql-0.2.0/tests/test_transport.py +89 -0
- wandb/vendor/gql-0.2.0/wandb_gql/__init__.py +4 -0
- wandb/vendor/gql-0.2.0/wandb_gql/client.py +75 -0
- wandb/vendor/gql-0.2.0/wandb_gql/dsl.py +152 -0
- wandb/vendor/gql-0.2.0/wandb_gql/gql.py +10 -0
- wandb/vendor/gql-0.2.0/wandb_gql/transport/__init__.py +0 -0
- wandb/vendor/gql-0.2.0/wandb_gql/transport/http.py +6 -0
- wandb/vendor/gql-0.2.0/wandb_gql/transport/local_schema.py +15 -0
- wandb/vendor/gql-0.2.0/wandb_gql/transport/requests.py +46 -0
- wandb/vendor/gql-0.2.0/wandb_gql/utils.py +21 -0
- wandb/vendor/graphql-core-1.1/setup.py +86 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/__init__.py +287 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/error/__init__.py +6 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/error/base.py +42 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/error/format_error.py +11 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/error/located_error.py +29 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/error/syntax_error.py +36 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/__init__.py +26 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/base.py +311 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executor.py +398 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/__init__.py +0 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/asyncio.py +53 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/gevent.py +22 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/process.py +32 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/sync.py +7 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/thread.py +35 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/executors/utils.py +6 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/__init__.py +0 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/executor.py +66 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/fragment.py +252 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/resolver.py +151 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/experimental/utils.py +7 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/middleware.py +57 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/execution/values.py +145 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/graphql.py +60 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/__init__.py +0 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/ast.py +1349 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/base.py +19 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/lexer.py +435 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/location.py +30 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/parser.py +779 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/printer.py +193 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/source.py +18 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/visitor.py +222 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/language/visitor_meta.py +82 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/__init__.py +0 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/cached_property.py +17 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/contain_subset.py +28 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/default_ordered_dict.py +40 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/ordereddict.py +8 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/pair_set.py +43 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/pyutils/version.py +78 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/__init__.py +67 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/definition.py +619 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/directives.py +132 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/introspection.py +440 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/scalars.py +131 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/schema.py +100 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/type/typemap.py +145 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/__init__.py +0 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/assert_valid_name.py +9 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_from_value.py +65 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_to_code.py +49 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/ast_to_dict.py +24 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/base.py +75 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/build_ast_schema.py +291 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/build_client_schema.py +250 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/concat_ast.py +9 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/extend_schema.py +357 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/get_field_def.py +27 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/get_operation_ast.py +21 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/introspection_query.py +90 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/is_valid_literal_value.py +67 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/is_valid_value.py +66 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/quoted_or_list.py +21 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/schema_printer.py +168 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/suggestion_list.py +56 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_comparators.py +69 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_from_ast.py +21 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/type_info.py +149 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/utils/value_from_ast.py +69 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/__init__.py +4 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/__init__.py +79 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/arguments_of_correct_type.py +24 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/base.py +8 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/default_values_of_correct_type.py +44 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/fields_on_correct_type.py +113 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/fragments_on_composite_types.py +33 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_argument_names.py +70 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_directives.py +97 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_fragment_names.py +19 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/known_type_names.py +43 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/lone_anonymous_operation.py +23 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_fragment_cycles.py +59 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_undefined_variables.py +36 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_unused_fragments.py +38 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_unused_variables.py +37 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/overlapping_fields_can_be_merged.py +529 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/possible_fragment_spreads.py +44 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/provided_non_null_arguments.py +46 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/scalar_leafs.py +33 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_argument_names.py +32 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_fragment_names.py +28 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_input_field_names.py +33 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_operation_names.py +31 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/unique_variable_names.py +27 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/variables_are_input_types.py +21 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/variables_in_allowed_position.py +53 -0
- wandb/vendor/graphql-core-1.1/wandb_graphql/validation/validation.py +158 -0
- wandb/vendor/promise-2.3.0/conftest.py +30 -0
- wandb/vendor/promise-2.3.0/setup.py +64 -0
- wandb/vendor/promise-2.3.0/tests/__init__.py +0 -0
- wandb/vendor/promise-2.3.0/tests/conftest.py +8 -0
- wandb/vendor/promise-2.3.0/tests/test_awaitable.py +32 -0
- wandb/vendor/promise-2.3.0/tests/test_awaitable_35.py +47 -0
- wandb/vendor/promise-2.3.0/tests/test_benchmark.py +116 -0
- wandb/vendor/promise-2.3.0/tests/test_complex_threads.py +23 -0
- wandb/vendor/promise-2.3.0/tests/test_dataloader.py +452 -0
- wandb/vendor/promise-2.3.0/tests/test_dataloader_awaitable_35.py +99 -0
- wandb/vendor/promise-2.3.0/tests/test_dataloader_extra.py +65 -0
- wandb/vendor/promise-2.3.0/tests/test_extra.py +670 -0
- wandb/vendor/promise-2.3.0/tests/test_issues.py +132 -0
- wandb/vendor/promise-2.3.0/tests/test_promise_list.py +70 -0
- wandb/vendor/promise-2.3.0/tests/test_spec.py +584 -0
- wandb/vendor/promise-2.3.0/tests/test_thread_safety.py +115 -0
- wandb/vendor/promise-2.3.0/tests/utils.py +3 -0
- wandb/vendor/promise-2.3.0/wandb_promise/__init__.py +38 -0
- wandb/vendor/promise-2.3.0/wandb_promise/async_.py +135 -0
- wandb/vendor/promise-2.3.0/wandb_promise/compat.py +32 -0
- wandb/vendor/promise-2.3.0/wandb_promise/dataloader.py +326 -0
- wandb/vendor/promise-2.3.0/wandb_promise/iterate_promise.py +12 -0
- wandb/vendor/promise-2.3.0/wandb_promise/promise.py +848 -0
- wandb/vendor/promise-2.3.0/wandb_promise/promise_list.py +151 -0
- wandb/vendor/promise-2.3.0/wandb_promise/pyutils/__init__.py +0 -0
- wandb/vendor/promise-2.3.0/wandb_promise/pyutils/version.py +83 -0
- wandb/vendor/promise-2.3.0/wandb_promise/schedulers/__init__.py +0 -0
- wandb/vendor/promise-2.3.0/wandb_promise/schedulers/asyncio.py +22 -0
- wandb/vendor/promise-2.3.0/wandb_promise/schedulers/gevent.py +21 -0
- wandb/vendor/promise-2.3.0/wandb_promise/schedulers/immediate.py +27 -0
- wandb/vendor/promise-2.3.0/wandb_promise/schedulers/thread.py +18 -0
- wandb/vendor/promise-2.3.0/wandb_promise/utils.py +56 -0
- wandb/vendor/pygments/__init__.py +90 -0
- wandb/vendor/pygments/cmdline.py +568 -0
- wandb/vendor/pygments/console.py +74 -0
- wandb/vendor/pygments/filter.py +74 -0
- wandb/vendor/pygments/filters/__init__.py +350 -0
- wandb/vendor/pygments/formatter.py +95 -0
- wandb/vendor/pygments/formatters/__init__.py +153 -0
- wandb/vendor/pygments/formatters/_mapping.py +85 -0
- wandb/vendor/pygments/formatters/bbcode.py +109 -0
- wandb/vendor/pygments/formatters/html.py +851 -0
- wandb/vendor/pygments/formatters/img.py +600 -0
- wandb/vendor/pygments/formatters/irc.py +182 -0
- wandb/vendor/pygments/formatters/latex.py +482 -0
- wandb/vendor/pygments/formatters/other.py +160 -0
- wandb/vendor/pygments/formatters/rtf.py +147 -0
- wandb/vendor/pygments/formatters/svg.py +153 -0
- wandb/vendor/pygments/formatters/terminal.py +136 -0
- wandb/vendor/pygments/formatters/terminal256.py +309 -0
- wandb/vendor/pygments/lexer.py +871 -0
- wandb/vendor/pygments/lexers/__init__.py +329 -0
- wandb/vendor/pygments/lexers/_asy_builtins.py +1645 -0
- wandb/vendor/pygments/lexers/_cl_builtins.py +232 -0
- wandb/vendor/pygments/lexers/_cocoa_builtins.py +72 -0
- wandb/vendor/pygments/lexers/_csound_builtins.py +1346 -0
- wandb/vendor/pygments/lexers/_lasso_builtins.py +5327 -0
- wandb/vendor/pygments/lexers/_lua_builtins.py +295 -0
- wandb/vendor/pygments/lexers/_mapping.py +500 -0
- wandb/vendor/pygments/lexers/_mql_builtins.py +1172 -0
- wandb/vendor/pygments/lexers/_openedge_builtins.py +2547 -0
- wandb/vendor/pygments/lexers/_php_builtins.py +4756 -0
- wandb/vendor/pygments/lexers/_postgres_builtins.py +621 -0
- wandb/vendor/pygments/lexers/_scilab_builtins.py +3094 -0
- wandb/vendor/pygments/lexers/_sourcemod_builtins.py +1163 -0
- wandb/vendor/pygments/lexers/_stan_builtins.py +532 -0
- wandb/vendor/pygments/lexers/_stata_builtins.py +419 -0
- wandb/vendor/pygments/lexers/_tsql_builtins.py +1004 -0
- wandb/vendor/pygments/lexers/_vim_builtins.py +1939 -0
- wandb/vendor/pygments/lexers/actionscript.py +240 -0
- wandb/vendor/pygments/lexers/agile.py +24 -0
- wandb/vendor/pygments/lexers/algebra.py +221 -0
- wandb/vendor/pygments/lexers/ambient.py +76 -0
- wandb/vendor/pygments/lexers/ampl.py +87 -0
- wandb/vendor/pygments/lexers/apl.py +101 -0
- wandb/vendor/pygments/lexers/archetype.py +318 -0
- wandb/vendor/pygments/lexers/asm.py +641 -0
- wandb/vendor/pygments/lexers/automation.py +374 -0
- wandb/vendor/pygments/lexers/basic.py +500 -0
- wandb/vendor/pygments/lexers/bibtex.py +160 -0
- wandb/vendor/pygments/lexers/business.py +612 -0
- wandb/vendor/pygments/lexers/c_cpp.py +252 -0
- wandb/vendor/pygments/lexers/c_like.py +541 -0
- wandb/vendor/pygments/lexers/capnproto.py +78 -0
- wandb/vendor/pygments/lexers/chapel.py +102 -0
- wandb/vendor/pygments/lexers/clean.py +288 -0
- wandb/vendor/pygments/lexers/compiled.py +34 -0
- wandb/vendor/pygments/lexers/configs.py +833 -0
- wandb/vendor/pygments/lexers/console.py +114 -0
- wandb/vendor/pygments/lexers/crystal.py +393 -0
- wandb/vendor/pygments/lexers/csound.py +366 -0
- wandb/vendor/pygments/lexers/css.py +689 -0
- wandb/vendor/pygments/lexers/d.py +251 -0
- wandb/vendor/pygments/lexers/dalvik.py +125 -0
- wandb/vendor/pygments/lexers/data.py +555 -0
- wandb/vendor/pygments/lexers/diff.py +165 -0
- wandb/vendor/pygments/lexers/dotnet.py +691 -0
- wandb/vendor/pygments/lexers/dsls.py +878 -0
- wandb/vendor/pygments/lexers/dylan.py +289 -0
- wandb/vendor/pygments/lexers/ecl.py +125 -0
- wandb/vendor/pygments/lexers/eiffel.py +65 -0
- wandb/vendor/pygments/lexers/elm.py +121 -0
- wandb/vendor/pygments/lexers/erlang.py +533 -0
- wandb/vendor/pygments/lexers/esoteric.py +277 -0
- wandb/vendor/pygments/lexers/ezhil.py +69 -0
- wandb/vendor/pygments/lexers/factor.py +344 -0
- wandb/vendor/pygments/lexers/fantom.py +250 -0
- wandb/vendor/pygments/lexers/felix.py +273 -0
- wandb/vendor/pygments/lexers/forth.py +177 -0
- wandb/vendor/pygments/lexers/fortran.py +205 -0
- wandb/vendor/pygments/lexers/foxpro.py +428 -0
- wandb/vendor/pygments/lexers/functional.py +21 -0
- wandb/vendor/pygments/lexers/go.py +101 -0
- wandb/vendor/pygments/lexers/grammar_notation.py +213 -0
- wandb/vendor/pygments/lexers/graph.py +80 -0
- wandb/vendor/pygments/lexers/graphics.py +553 -0
- wandb/vendor/pygments/lexers/haskell.py +843 -0
- wandb/vendor/pygments/lexers/haxe.py +936 -0
- wandb/vendor/pygments/lexers/hdl.py +382 -0
- wandb/vendor/pygments/lexers/hexdump.py +103 -0
- wandb/vendor/pygments/lexers/html.py +602 -0
- wandb/vendor/pygments/lexers/idl.py +270 -0
- wandb/vendor/pygments/lexers/igor.py +288 -0
- wandb/vendor/pygments/lexers/inferno.py +96 -0
- wandb/vendor/pygments/lexers/installers.py +322 -0
- wandb/vendor/pygments/lexers/int_fiction.py +1343 -0
- wandb/vendor/pygments/lexers/iolang.py +63 -0
- wandb/vendor/pygments/lexers/j.py +146 -0
- wandb/vendor/pygments/lexers/javascript.py +1525 -0
- wandb/vendor/pygments/lexers/julia.py +333 -0
- wandb/vendor/pygments/lexers/jvm.py +1573 -0
- wandb/vendor/pygments/lexers/lisp.py +2621 -0
- wandb/vendor/pygments/lexers/make.py +202 -0
- wandb/vendor/pygments/lexers/markup.py +595 -0
- wandb/vendor/pygments/lexers/math.py +21 -0
- wandb/vendor/pygments/lexers/matlab.py +663 -0
- wandb/vendor/pygments/lexers/ml.py +769 -0
- wandb/vendor/pygments/lexers/modeling.py +358 -0
- wandb/vendor/pygments/lexers/modula2.py +1561 -0
- wandb/vendor/pygments/lexers/monte.py +204 -0
- wandb/vendor/pygments/lexers/ncl.py +894 -0
- wandb/vendor/pygments/lexers/nimrod.py +159 -0
- wandb/vendor/pygments/lexers/nit.py +64 -0
- wandb/vendor/pygments/lexers/nix.py +136 -0
- wandb/vendor/pygments/lexers/oberon.py +105 -0
- wandb/vendor/pygments/lexers/objective.py +504 -0
- wandb/vendor/pygments/lexers/ooc.py +85 -0
- wandb/vendor/pygments/lexers/other.py +41 -0
- wandb/vendor/pygments/lexers/parasail.py +79 -0
- wandb/vendor/pygments/lexers/parsers.py +835 -0
- wandb/vendor/pygments/lexers/pascal.py +644 -0
- wandb/vendor/pygments/lexers/pawn.py +199 -0
- wandb/vendor/pygments/lexers/perl.py +620 -0
- wandb/vendor/pygments/lexers/php.py +267 -0
- wandb/vendor/pygments/lexers/praat.py +294 -0
- wandb/vendor/pygments/lexers/prolog.py +306 -0
- wandb/vendor/pygments/lexers/python.py +939 -0
- wandb/vendor/pygments/lexers/qvt.py +152 -0
- wandb/vendor/pygments/lexers/r.py +453 -0
- wandb/vendor/pygments/lexers/rdf.py +270 -0
- wandb/vendor/pygments/lexers/rebol.py +431 -0
- wandb/vendor/pygments/lexers/resource.py +85 -0
- wandb/vendor/pygments/lexers/rnc.py +67 -0
- wandb/vendor/pygments/lexers/roboconf.py +82 -0
- wandb/vendor/pygments/lexers/robotframework.py +560 -0
- wandb/vendor/pygments/lexers/ruby.py +519 -0
- wandb/vendor/pygments/lexers/rust.py +220 -0
- wandb/vendor/pygments/lexers/sas.py +228 -0
- wandb/vendor/pygments/lexers/scripting.py +1222 -0
- wandb/vendor/pygments/lexers/shell.py +794 -0
- wandb/vendor/pygments/lexers/smalltalk.py +195 -0
- wandb/vendor/pygments/lexers/smv.py +79 -0
- wandb/vendor/pygments/lexers/snobol.py +83 -0
- wandb/vendor/pygments/lexers/special.py +103 -0
- wandb/vendor/pygments/lexers/sql.py +681 -0
- wandb/vendor/pygments/lexers/stata.py +108 -0
- wandb/vendor/pygments/lexers/supercollider.py +90 -0
- wandb/vendor/pygments/lexers/tcl.py +145 -0
- wandb/vendor/pygments/lexers/templates.py +2283 -0
- wandb/vendor/pygments/lexers/testing.py +207 -0
- wandb/vendor/pygments/lexers/text.py +25 -0
- wandb/vendor/pygments/lexers/textedit.py +169 -0
- wandb/vendor/pygments/lexers/textfmts.py +297 -0
- wandb/vendor/pygments/lexers/theorem.py +458 -0
- wandb/vendor/pygments/lexers/trafficscript.py +54 -0
- wandb/vendor/pygments/lexers/typoscript.py +226 -0
- wandb/vendor/pygments/lexers/urbi.py +133 -0
- wandb/vendor/pygments/lexers/varnish.py +190 -0
- wandb/vendor/pygments/lexers/verification.py +111 -0
- wandb/vendor/pygments/lexers/web.py +24 -0
- wandb/vendor/pygments/lexers/webmisc.py +988 -0
- wandb/vendor/pygments/lexers/whiley.py +116 -0
- wandb/vendor/pygments/lexers/x10.py +69 -0
- wandb/vendor/pygments/modeline.py +44 -0
- wandb/vendor/pygments/plugin.py +68 -0
- wandb/vendor/pygments/regexopt.py +92 -0
- wandb/vendor/pygments/scanner.py +105 -0
- wandb/vendor/pygments/sphinxext.py +158 -0
- wandb/vendor/pygments/style.py +155 -0
- wandb/vendor/pygments/styles/__init__.py +80 -0
- wandb/vendor/pygments/styles/abap.py +29 -0
- wandb/vendor/pygments/styles/algol.py +63 -0
- wandb/vendor/pygments/styles/algol_nu.py +63 -0
- wandb/vendor/pygments/styles/arduino.py +98 -0
- wandb/vendor/pygments/styles/autumn.py +65 -0
- wandb/vendor/pygments/styles/borland.py +51 -0
- wandb/vendor/pygments/styles/bw.py +49 -0
- wandb/vendor/pygments/styles/colorful.py +81 -0
- wandb/vendor/pygments/styles/default.py +73 -0
- wandb/vendor/pygments/styles/emacs.py +72 -0
- wandb/vendor/pygments/styles/friendly.py +72 -0
- wandb/vendor/pygments/styles/fruity.py +42 -0
- wandb/vendor/pygments/styles/igor.py +29 -0
- wandb/vendor/pygments/styles/lovelace.py +97 -0
- wandb/vendor/pygments/styles/manni.py +75 -0
- wandb/vendor/pygments/styles/monokai.py +106 -0
- wandb/vendor/pygments/styles/murphy.py +80 -0
- wandb/vendor/pygments/styles/native.py +65 -0
- wandb/vendor/pygments/styles/paraiso_dark.py +125 -0
- wandb/vendor/pygments/styles/paraiso_light.py +125 -0
- wandb/vendor/pygments/styles/pastie.py +75 -0
- wandb/vendor/pygments/styles/perldoc.py +69 -0
- wandb/vendor/pygments/styles/rainbow_dash.py +89 -0
- wandb/vendor/pygments/styles/rrt.py +33 -0
- wandb/vendor/pygments/styles/sas.py +44 -0
- wandb/vendor/pygments/styles/stata.py +40 -0
- wandb/vendor/pygments/styles/tango.py +141 -0
- wandb/vendor/pygments/styles/trac.py +63 -0
- wandb/vendor/pygments/styles/vim.py +63 -0
- wandb/vendor/pygments/styles/vs.py +38 -0
- wandb/vendor/pygments/styles/xcode.py +51 -0
- wandb/vendor/pygments/token.py +213 -0
- wandb/vendor/pygments/unistring.py +217 -0
- wandb/vendor/pygments/util.py +388 -0
- wandb/vendor/pynvml/__init__.py +0 -0
- wandb/vendor/pynvml/pynvml.py +4779 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/__init__.py +17 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/events.py +615 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/__init__.py +98 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/api.py +369 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/fsevents.py +172 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/fsevents2.py +239 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify.py +218 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify_buffer.py +81 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/inotify_c.py +575 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/kqueue.py +730 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/polling.py +145 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/read_directory_changes.py +133 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/winapi.py +348 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/patterns.py +265 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/tricks/__init__.py +174 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/__init__.py +151 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/bricks.py +249 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/compat.py +29 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/decorators.py +198 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/delayed_queue.py +88 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/dirsnapshot.py +293 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/echo.py +157 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/event_backport.py +41 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/importlib2.py +40 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/platform.py +57 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/unicode_paths.py +64 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/utils/win32stat.py +123 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/version.py +28 -0
- wandb/vendor/watchdog_0_9_0/wandb_watchdog/watchmedo.py +577 -0
- wandb/wandb_agent.py +588 -0
- wandb/wandb_controller.py +721 -0
- wandb/wandb_run.py +9 -0
- wandb-0.18.2.dist-info/METADATA +213 -0
- wandb-0.18.2.dist-info/RECORD +827 -0
- wandb-0.18.2.dist-info/WHEEL +5 -0
- wandb-0.18.2.dist-info/entry_points.txt +3 -0
- wandb-0.18.2.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,619 @@
|
|
1
|
+
from collections.abc import Mapping, Hashable
|
2
|
+
import collections
|
3
|
+
import copy
|
4
|
+
|
5
|
+
from ..language import ast
|
6
|
+
from ..pyutils.cached_property import cached_property
|
7
|
+
from ..pyutils.ordereddict import OrderedDict
|
8
|
+
from ..utils.assert_valid_name import assert_valid_name
|
9
|
+
|
10
|
+
|
11
|
+
def is_type(type):
|
12
|
+
return isinstance(type, (
|
13
|
+
GraphQLScalarType,
|
14
|
+
GraphQLObjectType,
|
15
|
+
GraphQLInterfaceType,
|
16
|
+
GraphQLUnionType,
|
17
|
+
GraphQLEnumType,
|
18
|
+
GraphQLInputObjectType,
|
19
|
+
GraphQLList,
|
20
|
+
GraphQLNonNull
|
21
|
+
))
|
22
|
+
|
23
|
+
|
24
|
+
def is_input_type(type):
|
25
|
+
named_type = get_named_type(type)
|
26
|
+
return isinstance(named_type, (
|
27
|
+
GraphQLScalarType,
|
28
|
+
GraphQLEnumType,
|
29
|
+
GraphQLInputObjectType,
|
30
|
+
))
|
31
|
+
|
32
|
+
|
33
|
+
def is_output_type(type):
|
34
|
+
named_type = get_named_type(type)
|
35
|
+
return isinstance(named_type, (
|
36
|
+
GraphQLScalarType,
|
37
|
+
GraphQLObjectType,
|
38
|
+
GraphQLInterfaceType,
|
39
|
+
GraphQLUnionType,
|
40
|
+
GraphQLEnumType
|
41
|
+
))
|
42
|
+
|
43
|
+
|
44
|
+
def is_leaf_type(type):
|
45
|
+
return isinstance(type, (
|
46
|
+
GraphQLScalarType,
|
47
|
+
GraphQLEnumType,
|
48
|
+
))
|
49
|
+
|
50
|
+
|
51
|
+
def is_composite_type(type):
|
52
|
+
named_type = get_named_type(type)
|
53
|
+
return isinstance(named_type, (
|
54
|
+
GraphQLObjectType,
|
55
|
+
GraphQLInterfaceType,
|
56
|
+
GraphQLUnionType,
|
57
|
+
))
|
58
|
+
|
59
|
+
|
60
|
+
def is_abstract_type(type):
|
61
|
+
return isinstance(type, (
|
62
|
+
GraphQLInterfaceType,
|
63
|
+
GraphQLUnionType
|
64
|
+
))
|
65
|
+
|
66
|
+
|
67
|
+
def get_nullable_type(type):
|
68
|
+
if isinstance(type, GraphQLNonNull):
|
69
|
+
return type.of_type
|
70
|
+
return type
|
71
|
+
|
72
|
+
|
73
|
+
def get_named_type(type):
|
74
|
+
unmodified_type = type
|
75
|
+
while isinstance(unmodified_type, (GraphQLList, GraphQLNonNull)):
|
76
|
+
unmodified_type = unmodified_type.of_type
|
77
|
+
|
78
|
+
return unmodified_type
|
79
|
+
|
80
|
+
|
81
|
+
class GraphQLType(object):
|
82
|
+
__slots__ = 'name',
|
83
|
+
|
84
|
+
def __str__(self):
|
85
|
+
return self.name
|
86
|
+
|
87
|
+
def is_same_type(self, other):
|
88
|
+
return self.__class__ is other.__class__ and self.name == other.name
|
89
|
+
|
90
|
+
|
91
|
+
def none_func(x):
|
92
|
+
None
|
93
|
+
|
94
|
+
|
95
|
+
class GraphQLScalarType(GraphQLType):
|
96
|
+
"""Scalar Type Definition
|
97
|
+
|
98
|
+
The leaf values of any request and input values to arguments are
|
99
|
+
Scalars (or Enums) and are defined with a name and a series of coercion
|
100
|
+
functions used to ensure validity.
|
101
|
+
|
102
|
+
Example:
|
103
|
+
|
104
|
+
def coerce_odd(value):
|
105
|
+
if value % 2 == 1:
|
106
|
+
return value
|
107
|
+
return None
|
108
|
+
|
109
|
+
OddType = GraphQLScalarType(name='Odd', serialize=coerce_odd)
|
110
|
+
"""
|
111
|
+
|
112
|
+
__slots__ = 'name', 'description', 'serialize', 'parse_value', 'parse_literal'
|
113
|
+
|
114
|
+
def __init__(self, name, description=None, serialize=None, parse_value=None, parse_literal=None):
|
115
|
+
assert name, 'Type must be named.'
|
116
|
+
assert_valid_name(name)
|
117
|
+
self.name = name
|
118
|
+
self.description = description
|
119
|
+
|
120
|
+
assert callable(serialize), (
|
121
|
+
'{} must provide "serialize" function. If this custom Scalar is '
|
122
|
+
'also used as an input type, ensure "parse_value" and "parse_literal" '
|
123
|
+
'functions are also provided.'
|
124
|
+
).format(self)
|
125
|
+
|
126
|
+
if parse_value is not None or parse_literal is not None:
|
127
|
+
assert callable(parse_value) and callable(parse_literal), (
|
128
|
+
'{} must provide both "parse_value" and "parse_literal" functions.'.format(self)
|
129
|
+
)
|
130
|
+
|
131
|
+
self.serialize = serialize
|
132
|
+
self.parse_value = parse_value or none_func
|
133
|
+
self.parse_literal = parse_literal or none_func
|
134
|
+
|
135
|
+
def __str__(self):
|
136
|
+
return self.name
|
137
|
+
|
138
|
+
|
139
|
+
class GraphQLObjectType(GraphQLType):
|
140
|
+
"""Object Type Definition
|
141
|
+
|
142
|
+
Almost all of the GraphQL types you define will be object types.
|
143
|
+
Object types have a name, but most importantly describe their fields.
|
144
|
+
|
145
|
+
Example:
|
146
|
+
|
147
|
+
AddressType = GraphQLObjectType('Address', {
|
148
|
+
'street': GraphQLField(GraphQLString),
|
149
|
+
'number': GraphQLField(GraphQLInt),
|
150
|
+
'formatted': GraphQLField(GraphQLString,
|
151
|
+
resolver=lambda obj, args, context, info: obj.number + ' ' + obj.street),
|
152
|
+
})
|
153
|
+
|
154
|
+
When two types need to refer to each other, or a type needs to refer to
|
155
|
+
itself in a field, you can use a static method to supply the fields
|
156
|
+
lazily.
|
157
|
+
|
158
|
+
Example:
|
159
|
+
|
160
|
+
PersonType = GraphQLObjectType('Person', lambda: {
|
161
|
+
'name': GraphQLField(GraphQLString),
|
162
|
+
'bestFriend': GraphQLField(PersonType)
|
163
|
+
})
|
164
|
+
"""
|
165
|
+
def __init__(self, name, fields, interfaces=None, is_type_of=None, description=None):
|
166
|
+
assert name, 'Type must be named.'
|
167
|
+
assert_valid_name(name)
|
168
|
+
self.name = name
|
169
|
+
self.description = description
|
170
|
+
|
171
|
+
if is_type_of is not None:
|
172
|
+
assert callable(is_type_of), '{} must provide "is_type_of" as a function.'.format(self)
|
173
|
+
|
174
|
+
self.is_type_of = is_type_of
|
175
|
+
self._fields = fields
|
176
|
+
self._provided_interfaces = interfaces
|
177
|
+
self._interfaces = None
|
178
|
+
|
179
|
+
@cached_property
|
180
|
+
def fields(self):
|
181
|
+
return define_field_map(self, self._fields)
|
182
|
+
|
183
|
+
@cached_property
|
184
|
+
def interfaces(self):
|
185
|
+
return define_interfaces(self, self._provided_interfaces)
|
186
|
+
|
187
|
+
|
188
|
+
def define_field_map(type, field_map):
|
189
|
+
if callable(field_map):
|
190
|
+
field_map = field_map()
|
191
|
+
|
192
|
+
assert isinstance(field_map, Mapping) and len(field_map) > 0, (
|
193
|
+
'{} fields must be a mapping (dict / OrderedDict) with field names as keys or a '
|
194
|
+
'function which returns such a mapping.'
|
195
|
+
).format(type)
|
196
|
+
|
197
|
+
for field_name, field in field_map.items():
|
198
|
+
assert_valid_name(field_name)
|
199
|
+
field_args = getattr(field, 'args', None)
|
200
|
+
|
201
|
+
if field_args:
|
202
|
+
assert isinstance(field_args, Mapping), (
|
203
|
+
'{}.{} args must be a mapping (dict / OrderedDict) with argument names as keys.'.format(type,
|
204
|
+
field_name)
|
205
|
+
)
|
206
|
+
|
207
|
+
for arg_name, arg in field_args.items():
|
208
|
+
assert_valid_name(arg_name)
|
209
|
+
|
210
|
+
return OrderedDict(field_map)
|
211
|
+
|
212
|
+
|
213
|
+
def define_interfaces(type, interfaces):
|
214
|
+
if callable(interfaces):
|
215
|
+
interfaces = interfaces()
|
216
|
+
|
217
|
+
if interfaces is None:
|
218
|
+
interfaces = []
|
219
|
+
|
220
|
+
assert isinstance(interfaces, (list, tuple)), (
|
221
|
+
'{} interfaces must be a list/tuple or a function which returns a list/tuple.'.format(type)
|
222
|
+
)
|
223
|
+
|
224
|
+
for interface in interfaces:
|
225
|
+
assert isinstance(interface, GraphQLInterfaceType), (
|
226
|
+
'{} may only implement Interface types, it cannot implement: {}.'.format(type, interface)
|
227
|
+
)
|
228
|
+
|
229
|
+
if not callable(interface.resolve_type):
|
230
|
+
assert callable(type.is_type_of), (
|
231
|
+
'Interface Type {} does not provide a "resolve_type" function '
|
232
|
+
'and implementing Type {} does not provide a "is_type_of" '
|
233
|
+
'function. There is no way to resolve this implementing type '
|
234
|
+
'during execution.'
|
235
|
+
).format(interface, type)
|
236
|
+
|
237
|
+
return interfaces
|
238
|
+
|
239
|
+
|
240
|
+
class GraphQLField(object):
|
241
|
+
__slots__ = 'type', 'args', 'resolver', 'deprecation_reason', 'description'
|
242
|
+
|
243
|
+
def __init__(self, type, args=None, resolver=None, deprecation_reason=None, description=None):
|
244
|
+
self.type = type
|
245
|
+
self.args = args or OrderedDict()
|
246
|
+
self.resolver = resolver
|
247
|
+
self.deprecation_reason = deprecation_reason
|
248
|
+
self.description = description
|
249
|
+
|
250
|
+
def __eq__(self, other):
|
251
|
+
return (
|
252
|
+
self is other or (
|
253
|
+
isinstance(other, GraphQLField) and
|
254
|
+
self.type == other.type and
|
255
|
+
self.args == other.args and
|
256
|
+
self.resolver == other.resolver and
|
257
|
+
self.deprecation_reason == other.deprecation_reason and
|
258
|
+
self.description == other.description
|
259
|
+
)
|
260
|
+
)
|
261
|
+
|
262
|
+
def __hash__(self):
|
263
|
+
return id(self)
|
264
|
+
|
265
|
+
|
266
|
+
class GraphQLArgument(object):
|
267
|
+
__slots__ = 'type', 'default_value', 'description', 'out_name'
|
268
|
+
|
269
|
+
def __init__(self, type, default_value=None, description=None, out_name=None):
|
270
|
+
self.type = type
|
271
|
+
self.default_value = default_value
|
272
|
+
self.description = description
|
273
|
+
self.out_name = out_name
|
274
|
+
|
275
|
+
def __eq__(self, other):
|
276
|
+
return (
|
277
|
+
self is other or (
|
278
|
+
isinstance(other, GraphQLArgument) and
|
279
|
+
self.type == other.type and
|
280
|
+
self.default_value == other.default_value and
|
281
|
+
self.description == other.description and
|
282
|
+
self.out_name == other.out_name
|
283
|
+
)
|
284
|
+
)
|
285
|
+
|
286
|
+
def __hash__(self):
|
287
|
+
return id(self)
|
288
|
+
|
289
|
+
|
290
|
+
class GraphQLInterfaceType(GraphQLType):
|
291
|
+
"""Interface Type Definition
|
292
|
+
|
293
|
+
When a field can return one of a heterogeneous set of types, a Interface type is used to describe what types are possible,
|
294
|
+
what fields are in common across all types, as well as a function to determine which type is actually used when the field is resolved.
|
295
|
+
|
296
|
+
Example:
|
297
|
+
|
298
|
+
EntityType = GraphQLInterfaceType(
|
299
|
+
name='Entity',
|
300
|
+
fields={
|
301
|
+
'name': GraphQLField(GraphQLString),
|
302
|
+
})
|
303
|
+
"""
|
304
|
+
|
305
|
+
def __init__(self, name, fields=None, resolve_type=None, description=None):
|
306
|
+
assert name, 'Type must be named.'
|
307
|
+
assert_valid_name(name)
|
308
|
+
self.name = name
|
309
|
+
self.description = description
|
310
|
+
|
311
|
+
if resolve_type is not None:
|
312
|
+
assert callable(resolve_type), '{} must provide "resolve_type" as a function.'.format(self)
|
313
|
+
|
314
|
+
self.resolve_type = resolve_type
|
315
|
+
self._fields = fields
|
316
|
+
|
317
|
+
@cached_property
|
318
|
+
def fields(self):
|
319
|
+
return define_field_map(self, self._fields)
|
320
|
+
|
321
|
+
|
322
|
+
class GraphQLUnionType(GraphQLType):
|
323
|
+
"""Union Type Definition
|
324
|
+
|
325
|
+
When a field can return one of a heterogeneous set of types, a Union type is used to describe what types are possible
|
326
|
+
as well as providing a function to determine which type is actually used when the field is resolved.
|
327
|
+
|
328
|
+
Example:
|
329
|
+
|
330
|
+
class PetType(GraphQLUnionType):
|
331
|
+
name = 'Pet'
|
332
|
+
types = [DogType, CatType]
|
333
|
+
|
334
|
+
def resolve_type(self, value):
|
335
|
+
if isinstance(value, Dog):
|
336
|
+
return DogType()
|
337
|
+
if isinstance(value, Cat):
|
338
|
+
return CatType()
|
339
|
+
"""
|
340
|
+
|
341
|
+
def __init__(self, name, types=None, resolve_type=None, description=None):
|
342
|
+
assert name, 'Type must be named.'
|
343
|
+
assert_valid_name(name)
|
344
|
+
self.name = name
|
345
|
+
self.description = description
|
346
|
+
|
347
|
+
if resolve_type is not None:
|
348
|
+
assert callable(resolve_type), '{} must provide "resolve_type" as a function.'.format(self)
|
349
|
+
|
350
|
+
self.resolve_type = resolve_type
|
351
|
+
self._types = types
|
352
|
+
|
353
|
+
@cached_property
|
354
|
+
def types(self):
|
355
|
+
return define_types(self, self._types)
|
356
|
+
|
357
|
+
|
358
|
+
def define_types(union_type, types):
|
359
|
+
if callable(types):
|
360
|
+
types = types()
|
361
|
+
|
362
|
+
assert isinstance(types, (list, tuple)) and len(
|
363
|
+
types) > 0, 'Must provide types for Union {}.'.format(union_type.name)
|
364
|
+
has_resolve_type_fn = callable(union_type.resolve_type)
|
365
|
+
|
366
|
+
for type in types:
|
367
|
+
assert isinstance(type, GraphQLObjectType), (
|
368
|
+
'{} may only contain Object types, it cannot contain: {}.'.format(union_type, type)
|
369
|
+
)
|
370
|
+
|
371
|
+
if not has_resolve_type_fn:
|
372
|
+
assert callable(type.is_type_of), (
|
373
|
+
'Union Type {} does not provide a "resolve_type" function '
|
374
|
+
'and possible Type {} does not provide a "is_type_of" '
|
375
|
+
'function. There is no way to resolve this possible type '
|
376
|
+
'during execution.'
|
377
|
+
).format(union_type, type)
|
378
|
+
|
379
|
+
return types
|
380
|
+
|
381
|
+
|
382
|
+
class GraphQLEnumType(GraphQLType):
|
383
|
+
"""Enum Type Definition
|
384
|
+
|
385
|
+
Some leaf values of requests and input values are Enums. GraphQL serializes Enum values as strings,
|
386
|
+
however internally Enums can be represented by any kind of type, often integers.
|
387
|
+
|
388
|
+
Example:
|
389
|
+
|
390
|
+
RGBType = GraphQLEnumType(
|
391
|
+
name='RGB',
|
392
|
+
values=OrderedDict([
|
393
|
+
('RED', GraphQLEnumValue(0)),
|
394
|
+
('GREEN', GraphQLEnumValue(1)),
|
395
|
+
('BLUE', GraphQLEnumValue(2))
|
396
|
+
])
|
397
|
+
)
|
398
|
+
|
399
|
+
Note: If a value is not provided in a definition, the name of the enum value will be used as it's internal value.
|
400
|
+
"""
|
401
|
+
|
402
|
+
def __init__(self, name, values, description=None):
|
403
|
+
assert name, 'Type must provide name.'
|
404
|
+
assert_valid_name(name)
|
405
|
+
self.name = name
|
406
|
+
self.description = description
|
407
|
+
|
408
|
+
self.values = define_enum_values(self, values)
|
409
|
+
|
410
|
+
def serialize(self, value):
|
411
|
+
if isinstance(value, Hashable):
|
412
|
+
enum_value = self._value_lookup.get(value)
|
413
|
+
|
414
|
+
if enum_value:
|
415
|
+
return enum_value.name
|
416
|
+
|
417
|
+
return None
|
418
|
+
|
419
|
+
def parse_value(self, value):
|
420
|
+
if isinstance(value, Hashable):
|
421
|
+
enum_value = self._name_lookup.get(value)
|
422
|
+
|
423
|
+
if enum_value:
|
424
|
+
return enum_value.value
|
425
|
+
|
426
|
+
return None
|
427
|
+
|
428
|
+
def parse_literal(self, value_ast):
|
429
|
+
if isinstance(value_ast, ast.EnumValue):
|
430
|
+
enum_value = self._name_lookup.get(value_ast.value)
|
431
|
+
|
432
|
+
if enum_value:
|
433
|
+
return enum_value.value
|
434
|
+
|
435
|
+
@cached_property
|
436
|
+
def _value_lookup(self):
|
437
|
+
return {value.value: value for value in self.values}
|
438
|
+
|
439
|
+
@cached_property
|
440
|
+
def _name_lookup(self):
|
441
|
+
return {value.name: value for value in self.values}
|
442
|
+
|
443
|
+
|
444
|
+
def define_enum_values(type, value_map):
|
445
|
+
assert isinstance(value_map, Mapping) and len(value_map) > 0, (
|
446
|
+
'{} values must be a mapping (dict / OrderedDict) with value names as keys.'.format(type)
|
447
|
+
)
|
448
|
+
|
449
|
+
values = []
|
450
|
+
if not isinstance(value_map, (collections.OrderedDict, OrderedDict)):
|
451
|
+
value_map = OrderedDict(sorted(list(value_map.items())))
|
452
|
+
|
453
|
+
for value_name, value in value_map.items():
|
454
|
+
assert_valid_name(value_name)
|
455
|
+
assert isinstance(value, GraphQLEnumValue), (
|
456
|
+
'{}.{} must be an instance of GraphQLEnumValue, but got: {}'.format(type, value_name, value)
|
457
|
+
)
|
458
|
+
value = copy.copy(value)
|
459
|
+
value.name = value_name
|
460
|
+
if value.value is None:
|
461
|
+
value.value = value_name
|
462
|
+
|
463
|
+
values.append(value)
|
464
|
+
|
465
|
+
return values
|
466
|
+
|
467
|
+
|
468
|
+
class GraphQLEnumValue(object):
|
469
|
+
__slots__ = 'name', 'value', 'deprecation_reason', 'description'
|
470
|
+
|
471
|
+
def __init__(self, value=None, deprecation_reason=None, description=None, name=None):
|
472
|
+
self.name = name
|
473
|
+
self.value = value
|
474
|
+
self.deprecation_reason = deprecation_reason
|
475
|
+
self.description = description
|
476
|
+
|
477
|
+
def __eq__(self, other):
|
478
|
+
return (
|
479
|
+
self is other or (
|
480
|
+
isinstance(other, GraphQLEnumValue) and
|
481
|
+
self.name == other.name and
|
482
|
+
self.value == other.value and
|
483
|
+
self.deprecation_reason == other.deprecation_reason and
|
484
|
+
self.description == other.description
|
485
|
+
)
|
486
|
+
)
|
487
|
+
|
488
|
+
|
489
|
+
class GraphQLInputObjectType(GraphQLType):
|
490
|
+
"""Input Object Type Definition
|
491
|
+
|
492
|
+
An input object defines a structured collection of fields which may be
|
493
|
+
supplied to a field argument.
|
494
|
+
|
495
|
+
Using `NonNull` will ensure that a value must be provided by the query
|
496
|
+
|
497
|
+
Example:
|
498
|
+
|
499
|
+
NonNullFloat = GraphQLNonNull(GraphQLFloat())
|
500
|
+
|
501
|
+
class GeoPoint(GraphQLInputObjectType):
|
502
|
+
name = 'GeoPoint'
|
503
|
+
fields = {
|
504
|
+
'lat': GraphQLInputObjectField(NonNullFloat),
|
505
|
+
'lon': GraphQLInputObjectField(NonNullFloat),
|
506
|
+
'alt': GraphQLInputObjectField(GraphQLFloat(),
|
507
|
+
default_value=0)
|
508
|
+
}
|
509
|
+
"""
|
510
|
+
def __init__(self, name, fields, description=None):
|
511
|
+
assert name, 'Type must be named.'
|
512
|
+
self.name = name
|
513
|
+
self.description = description
|
514
|
+
|
515
|
+
self._fields = fields
|
516
|
+
|
517
|
+
@cached_property
|
518
|
+
def fields(self):
|
519
|
+
return self._define_field_map()
|
520
|
+
|
521
|
+
def _define_field_map(self):
|
522
|
+
fields = self._fields
|
523
|
+
if callable(fields):
|
524
|
+
fields = fields()
|
525
|
+
|
526
|
+
assert isinstance(fields, Mapping) and len(fields) > 0, (
|
527
|
+
'{} fields must be a mapping (dict / OrderedDict) with field names as keys or a '
|
528
|
+
'function which returns such a mapping.'
|
529
|
+
).format(self)
|
530
|
+
if not isinstance(fields, (collections.OrderedDict, OrderedDict)):
|
531
|
+
fields = OrderedDict(sorted(list(fields.items())))
|
532
|
+
|
533
|
+
for field_name, field in fields.items():
|
534
|
+
assert_valid_name(field_name)
|
535
|
+
|
536
|
+
return fields
|
537
|
+
|
538
|
+
|
539
|
+
class GraphQLInputObjectField(object):
|
540
|
+
__slots__ = 'type', 'default_value', 'description', 'out_name'
|
541
|
+
|
542
|
+
def __init__(self, type, default_value=None, description=None, out_name=None):
|
543
|
+
self.type = type
|
544
|
+
self.default_value = default_value
|
545
|
+
self.description = description
|
546
|
+
self.out_name = out_name
|
547
|
+
|
548
|
+
def __eq__(self, other):
|
549
|
+
return (
|
550
|
+
self is other or (
|
551
|
+
isinstance(other, GraphQLInputObjectField) and
|
552
|
+
self.type == other.type and
|
553
|
+
self.description == other.description and
|
554
|
+
self.out_name == other.out_name
|
555
|
+
)
|
556
|
+
)
|
557
|
+
|
558
|
+
|
559
|
+
class GraphQLList(GraphQLType):
|
560
|
+
"""List Modifier
|
561
|
+
|
562
|
+
A list is a kind of type marker, a wrapping type which points to another
|
563
|
+
type. Lists are often created within the context of defining the fields
|
564
|
+
of an object type.
|
565
|
+
|
566
|
+
Example:
|
567
|
+
|
568
|
+
class PersonType(GraphQLObjectType):
|
569
|
+
name = 'Person'
|
570
|
+
|
571
|
+
def get_fields(self):
|
572
|
+
return {
|
573
|
+
'parents': GraphQLField(GraphQLList(PersonType())),
|
574
|
+
'children': GraphQLField(GraphQLList(PersonType())),
|
575
|
+
}
|
576
|
+
"""
|
577
|
+
__slots__ = 'of_type',
|
578
|
+
|
579
|
+
def __init__(self, type):
|
580
|
+
assert is_type(type), 'Can only create List of a GraphQLType but got: {}.'.format(type)
|
581
|
+
self.of_type = type
|
582
|
+
|
583
|
+
def __str__(self):
|
584
|
+
return '[' + str(self.of_type) + ']'
|
585
|
+
|
586
|
+
def is_same_type(self, other):
|
587
|
+
return isinstance(other, GraphQLList) and self.of_type.is_same_type(other.of_type)
|
588
|
+
|
589
|
+
|
590
|
+
class GraphQLNonNull(GraphQLType):
|
591
|
+
"""Non-Null Modifier
|
592
|
+
|
593
|
+
A non-null is a kind of type marker, a wrapping type which points to another type. Non-null types enforce that their values are never null
|
594
|
+
and can ensure an error is raised if this ever occurs during a request. It is useful for fields which you can make a strong guarantee on
|
595
|
+
non-nullability, for example usually the id field of a database row will never be null.
|
596
|
+
|
597
|
+
Example:
|
598
|
+
|
599
|
+
class RowType(GraphQLObjectType):
|
600
|
+
name = 'Row'
|
601
|
+
fields = {
|
602
|
+
'id': GraphQLField(type=GraphQLNonNull(GraphQLString()))
|
603
|
+
}
|
604
|
+
|
605
|
+
Note: the enforcement of non-nullability occurs within the executor.
|
606
|
+
"""
|
607
|
+
__slots__ = 'of_type',
|
608
|
+
|
609
|
+
def __init__(self, type):
|
610
|
+
assert is_type(type) and not isinstance(type, GraphQLNonNull), (
|
611
|
+
'Can only create NonNull of a Nullable GraphQLType but got: {}.'.format(type)
|
612
|
+
)
|
613
|
+
self.of_type = type
|
614
|
+
|
615
|
+
def __str__(self):
|
616
|
+
return str(self.of_type) + '!'
|
617
|
+
|
618
|
+
def is_same_type(self, other):
|
619
|
+
return isinstance(other, GraphQLNonNull) and self.of_type.is_same_type(other.of_type)
|