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,357 @@
|
|
1
|
+
from collections import defaultdict
|
2
|
+
|
3
|
+
from ..error import GraphQLError
|
4
|
+
from ..language import ast
|
5
|
+
from ..pyutils.ordereddict import OrderedDict
|
6
|
+
from ..type.definition import (GraphQLArgument, GraphQLEnumType,
|
7
|
+
GraphQLEnumValue, GraphQLField,
|
8
|
+
GraphQLInputObjectField, GraphQLInputObjectType,
|
9
|
+
GraphQLInterfaceType, GraphQLList,
|
10
|
+
GraphQLNonNull, GraphQLObjectType,
|
11
|
+
GraphQLScalarType, GraphQLUnionType)
|
12
|
+
from ..type.introspection import (__Directive, __DirectiveLocation,
|
13
|
+
__EnumValue, __Field, __InputValue, __Schema,
|
14
|
+
__Type, __TypeKind)
|
15
|
+
from ..type.scalars import (GraphQLBoolean, GraphQLFloat, GraphQLID,
|
16
|
+
GraphQLInt, GraphQLString)
|
17
|
+
from ..type.schema import GraphQLSchema
|
18
|
+
from .value_from_ast import value_from_ast
|
19
|
+
|
20
|
+
|
21
|
+
def extend_schema(schema, documentAST=None):
|
22
|
+
"""Produces a new schema given an existing schema and a document which may
|
23
|
+
contain GraphQL type extensions and definitions. The original schema will
|
24
|
+
remain unaltered.
|
25
|
+
|
26
|
+
Because a schema represents a graph of references, a schema cannot be
|
27
|
+
extended without effectively making an entire copy. We do not know until it's
|
28
|
+
too late if subgraphs remain unchanged.
|
29
|
+
|
30
|
+
This algorithm copies the provided schema, applying extensions while
|
31
|
+
producing the copy. The original schema remains unaltered."""
|
32
|
+
|
33
|
+
assert isinstance(
|
34
|
+
schema, GraphQLSchema), 'Must provide valid GraphQLSchema'
|
35
|
+
assert documentAST and isinstance(
|
36
|
+
documentAST, ast.Document), 'Must provide valid Document AST'
|
37
|
+
|
38
|
+
# Collect the type definitions and extensions found in the document.
|
39
|
+
type_definition_map = {}
|
40
|
+
type_extensions_map = defaultdict(list)
|
41
|
+
|
42
|
+
for _def in documentAST.definitions:
|
43
|
+
if isinstance(_def, (
|
44
|
+
ast.ObjectTypeDefinition,
|
45
|
+
ast.InterfaceTypeDefinition,
|
46
|
+
ast.EnumTypeDefinition,
|
47
|
+
ast.UnionTypeDefinition,
|
48
|
+
ast.ScalarTypeDefinition,
|
49
|
+
ast.InputObjectTypeDefinition,
|
50
|
+
)):
|
51
|
+
# Sanity check that none of the defined types conflict with the
|
52
|
+
# schema's existing types.
|
53
|
+
type_name = _def.name.value
|
54
|
+
if schema.get_type(type_name):
|
55
|
+
raise GraphQLError(
|
56
|
+
('Type "{}" already exists in the schema. It cannot also ' +
|
57
|
+
'be defined in this type definition.').format(type_name),
|
58
|
+
[_def]
|
59
|
+
)
|
60
|
+
|
61
|
+
type_definition_map[type_name] = _def
|
62
|
+
elif isinstance(_def, ast.TypeExtensionDefinition):
|
63
|
+
# Sanity check that this type extension exists within the
|
64
|
+
# schema's existing types.
|
65
|
+
extended_type_name = _def.definition.name.value
|
66
|
+
existing_type = schema.get_type(extended_type_name)
|
67
|
+
if not existing_type:
|
68
|
+
raise GraphQLError(
|
69
|
+
('Cannot extend type "{}" because it does not ' +
|
70
|
+
'exist in the existing schema.').format(extended_type_name),
|
71
|
+
[_def.definition]
|
72
|
+
)
|
73
|
+
if not isinstance(existing_type, GraphQLObjectType):
|
74
|
+
raise GraphQLError(
|
75
|
+
'Cannot extend non-object type "{}".'.format(
|
76
|
+
extended_type_name),
|
77
|
+
[_def.definition]
|
78
|
+
)
|
79
|
+
|
80
|
+
type_extensions_map[extended_type_name].append(_def)
|
81
|
+
|
82
|
+
# Below are functions used for producing this schema that have closed over
|
83
|
+
# this scope and have access to the schema, cache, and newly defined types.
|
84
|
+
|
85
|
+
def get_type_from_def(type_def):
|
86
|
+
type = _get_named_type(type_def.name)
|
87
|
+
assert type, 'Invalid schema'
|
88
|
+
return type
|
89
|
+
|
90
|
+
def get_type_from_AST(astNode):
|
91
|
+
type = _get_named_type(astNode.name.value)
|
92
|
+
if not type:
|
93
|
+
raise GraphQLError(
|
94
|
+
('Unknown type: "{}". Ensure that this type exists ' +
|
95
|
+
'either in the original schema, or is added in a type definition.').format(
|
96
|
+
astNode.name.value),
|
97
|
+
[astNode]
|
98
|
+
)
|
99
|
+
return type
|
100
|
+
|
101
|
+
# Given a name, returns a type from either the existing schema or an
|
102
|
+
# added type.
|
103
|
+
def _get_named_type(typeName):
|
104
|
+
cached_type_def = type_def_cache.get(typeName)
|
105
|
+
if cached_type_def:
|
106
|
+
return cached_type_def
|
107
|
+
|
108
|
+
existing_type = schema.get_type(typeName)
|
109
|
+
if existing_type:
|
110
|
+
type_def = extend_type(existing_type)
|
111
|
+
type_def_cache[typeName] = type_def
|
112
|
+
return type_def
|
113
|
+
|
114
|
+
type_ast = type_definition_map.get(typeName)
|
115
|
+
if type_ast:
|
116
|
+
type_def = build_type(type_ast)
|
117
|
+
type_def_cache[typeName] = type_def
|
118
|
+
return type_def
|
119
|
+
|
120
|
+
# Given a type's introspection result, construct the correct
|
121
|
+
# GraphQLType instance.
|
122
|
+
def extend_type(type):
|
123
|
+
if isinstance(type, GraphQLObjectType):
|
124
|
+
return extend_object_type(type)
|
125
|
+
if isinstance(type, GraphQLInterfaceType):
|
126
|
+
return extend_interface_type(type)
|
127
|
+
if isinstance(type, GraphQLUnionType):
|
128
|
+
return extend_union_type(type)
|
129
|
+
return type
|
130
|
+
|
131
|
+
def extend_object_type(type):
|
132
|
+
return GraphQLObjectType(
|
133
|
+
name=type.name,
|
134
|
+
description=type.description,
|
135
|
+
interfaces=lambda: extend_implemented_interfaces(type),
|
136
|
+
fields=lambda: extend_field_map(type),
|
137
|
+
)
|
138
|
+
|
139
|
+
def extend_interface_type(type):
|
140
|
+
return GraphQLInterfaceType(
|
141
|
+
name=type.name,
|
142
|
+
description=type.description,
|
143
|
+
fields=lambda: extend_field_map(type),
|
144
|
+
resolve_type=cannot_execute_client_schema,
|
145
|
+
)
|
146
|
+
|
147
|
+
def extend_union_type(type):
|
148
|
+
return GraphQLUnionType(
|
149
|
+
name=type.name,
|
150
|
+
description=type.description,
|
151
|
+
types=list(map(get_type_from_def, type.types)),
|
152
|
+
resolve_type=cannot_execute_client_schema,
|
153
|
+
)
|
154
|
+
|
155
|
+
def extend_implemented_interfaces(type):
|
156
|
+
interfaces = list(map(get_type_from_def, type.interfaces))
|
157
|
+
|
158
|
+
# If there are any extensions to the interfaces, apply those here.
|
159
|
+
extensions = type_extensions_map[type.name]
|
160
|
+
for extension in extensions:
|
161
|
+
for namedType in extension.definition.interfaces:
|
162
|
+
interface_name = namedType.name.value
|
163
|
+
if any([_def.name == interface_name for _def in interfaces]):
|
164
|
+
raise GraphQLError(
|
165
|
+
('Type "{}" already implements "{}". ' +
|
166
|
+
'It cannot also be implemented in this type extension.').format(
|
167
|
+
type.name, interface_name),
|
168
|
+
[namedType]
|
169
|
+
)
|
170
|
+
interfaces.append(get_type_from_AST(namedType))
|
171
|
+
|
172
|
+
return interfaces
|
173
|
+
|
174
|
+
def extend_field_map(type):
|
175
|
+
new_field_map = OrderedDict()
|
176
|
+
old_field_map = type.fields
|
177
|
+
for field_name, field in old_field_map.items():
|
178
|
+
new_field_map[field_name] = GraphQLField(
|
179
|
+
extend_field_type(field.type),
|
180
|
+
description=field.description,
|
181
|
+
deprecation_reason=field.deprecation_reason,
|
182
|
+
args=field.args,
|
183
|
+
resolver=cannot_execute_client_schema,
|
184
|
+
)
|
185
|
+
|
186
|
+
# If there are any extensions to the fields, apply those here.
|
187
|
+
extensions = type_extensions_map[type.name]
|
188
|
+
for extension in extensions:
|
189
|
+
for field in extension.definition.fields:
|
190
|
+
field_name = field.name.value
|
191
|
+
if field_name in old_field_map:
|
192
|
+
raise GraphQLError(
|
193
|
+
('Field "{}.{}" already exists in the ' +
|
194
|
+
'schema. It cannot also be defined in this type extension.').format(
|
195
|
+
type.name, field_name),
|
196
|
+
[field]
|
197
|
+
)
|
198
|
+
new_field_map[field_name] = GraphQLField(
|
199
|
+
build_field_type(field.type),
|
200
|
+
args=build_input_values(field.arguments),
|
201
|
+
resolver=cannot_execute_client_schema,
|
202
|
+
)
|
203
|
+
|
204
|
+
return new_field_map
|
205
|
+
|
206
|
+
def extend_field_type(type):
|
207
|
+
if isinstance(type, GraphQLList):
|
208
|
+
return GraphQLList(extend_field_type(type.of_type))
|
209
|
+
if isinstance(type, GraphQLNonNull):
|
210
|
+
return GraphQLNonNull(extend_field_type(type.of_type))
|
211
|
+
return get_type_from_def(type)
|
212
|
+
|
213
|
+
def build_type(type_ast):
|
214
|
+
_type_build = {
|
215
|
+
ast.ObjectTypeDefinition: build_object_type,
|
216
|
+
ast.InterfaceTypeDefinition: build_interface_type,
|
217
|
+
ast.UnionTypeDefinition: build_union_type,
|
218
|
+
ast.ScalarTypeDefinition: build_scalar_type,
|
219
|
+
ast.EnumTypeDefinition: build_enum_type,
|
220
|
+
ast.InputObjectTypeDefinition: build_input_object_type
|
221
|
+
}
|
222
|
+
func = _type_build.get(type(type_ast))
|
223
|
+
if func:
|
224
|
+
return func(type_ast)
|
225
|
+
|
226
|
+
def build_object_type(type_ast):
|
227
|
+
return GraphQLObjectType(
|
228
|
+
type_ast.name.value,
|
229
|
+
interfaces=lambda: build_implemented_interfaces(type_ast),
|
230
|
+
fields=lambda: build_field_map(type_ast),
|
231
|
+
)
|
232
|
+
|
233
|
+
def build_interface_type(type_ast):
|
234
|
+
return GraphQLInterfaceType(
|
235
|
+
type_ast.name.value,
|
236
|
+
fields=lambda: build_field_map(type_ast),
|
237
|
+
resolve_type=cannot_execute_client_schema,
|
238
|
+
)
|
239
|
+
|
240
|
+
def build_union_type(type_ast):
|
241
|
+
return GraphQLUnionType(
|
242
|
+
type_ast.name.value,
|
243
|
+
types=list(map(get_type_from_AST, type_ast.types)),
|
244
|
+
resolve_type=cannot_execute_client_schema,
|
245
|
+
)
|
246
|
+
|
247
|
+
def build_scalar_type(type_ast):
|
248
|
+
return GraphQLScalarType(
|
249
|
+
type_ast.name.value,
|
250
|
+
serialize=lambda *args, **kwargs: None,
|
251
|
+
# Note: validation calls the parse functions to determine if a
|
252
|
+
# literal value is correct. Returning null would cause use of custom
|
253
|
+
# scalars to always fail validation. Returning false causes them to
|
254
|
+
# always pass validation.
|
255
|
+
parse_value=lambda *args, **kwargs: False,
|
256
|
+
parse_literal=lambda *args, **kwargs: False,
|
257
|
+
)
|
258
|
+
|
259
|
+
def build_enum_type(type_ast):
|
260
|
+
return GraphQLEnumType(
|
261
|
+
type_ast.name.value,
|
262
|
+
values={v.name.value: GraphQLEnumValue() for v in type_ast.values},
|
263
|
+
)
|
264
|
+
|
265
|
+
def build_input_object_type(type_ast):
|
266
|
+
return GraphQLInputObjectType(
|
267
|
+
type_ast.name.value,
|
268
|
+
fields=lambda: build_input_values(
|
269
|
+
type_ast.fields, GraphQLInputObjectField),
|
270
|
+
)
|
271
|
+
|
272
|
+
def build_implemented_interfaces(type_ast):
|
273
|
+
return list(map(get_type_from_AST, type_ast.interfaces))
|
274
|
+
|
275
|
+
def build_field_map(type_ast):
|
276
|
+
return {
|
277
|
+
field.name.value: GraphQLField(
|
278
|
+
build_field_type(field.type),
|
279
|
+
args=build_input_values(field.arguments),
|
280
|
+
resolver=cannot_execute_client_schema,
|
281
|
+
) for field in type_ast.fields
|
282
|
+
}
|
283
|
+
|
284
|
+
def build_input_values(values, input_type=GraphQLArgument):
|
285
|
+
input_values = OrderedDict()
|
286
|
+
for value in values:
|
287
|
+
type = build_field_type(value.type)
|
288
|
+
input_values[value.name.value] = input_type(
|
289
|
+
type,
|
290
|
+
default_value=value_from_ast(value.default_value, type)
|
291
|
+
)
|
292
|
+
return input_values
|
293
|
+
|
294
|
+
def build_field_type(type_ast):
|
295
|
+
if isinstance(type_ast, ast.ListType):
|
296
|
+
return GraphQLList(build_field_type(type_ast.type))
|
297
|
+
if isinstance(type_ast, ast.NonNullType):
|
298
|
+
return GraphQLNonNull(build_field_type(type_ast.type))
|
299
|
+
return get_type_from_AST(type_ast)
|
300
|
+
|
301
|
+
# If this document contains no new types, then return the same unmodified
|
302
|
+
# GraphQLSchema instance.
|
303
|
+
if not type_extensions_map and not type_definition_map:
|
304
|
+
return schema
|
305
|
+
|
306
|
+
# A cache to use to store the actual GraphQLType definition objects by name.
|
307
|
+
# Initialize to the GraphQL built in scalars and introspection types. All
|
308
|
+
# functions below are inline so that this type def cache is within the scope
|
309
|
+
# of the closure.
|
310
|
+
|
311
|
+
type_def_cache = {
|
312
|
+
'String': GraphQLString,
|
313
|
+
'Int': GraphQLInt,
|
314
|
+
'Float': GraphQLFloat,
|
315
|
+
'Boolean': GraphQLBoolean,
|
316
|
+
'ID': GraphQLID,
|
317
|
+
'__Schema': __Schema,
|
318
|
+
'__Directive': __Directive,
|
319
|
+
'__DirectiveLocation': __DirectiveLocation,
|
320
|
+
'__Type': __Type,
|
321
|
+
'__Field': __Field,
|
322
|
+
'__InputValue': __InputValue,
|
323
|
+
'__EnumValue': __EnumValue,
|
324
|
+
'__TypeKind': __TypeKind,
|
325
|
+
}
|
326
|
+
|
327
|
+
# Get the root Query, Mutation, and Subscription types.
|
328
|
+
query_type = get_type_from_def(schema.get_query_type())
|
329
|
+
|
330
|
+
existing_mutation_type = schema.get_mutation_type()
|
331
|
+
mutationType = existing_mutation_type and get_type_from_def(
|
332
|
+
existing_mutation_type) or None
|
333
|
+
|
334
|
+
existing_subscription_type = schema.get_subscription_type()
|
335
|
+
subscription_type = existing_subscription_type and get_type_from_def(
|
336
|
+
existing_subscription_type) or None
|
337
|
+
|
338
|
+
# Iterate through all types, getting the type definition for each, ensuring
|
339
|
+
# that any type not directly referenced by a field will get created.
|
340
|
+
types = [get_type_from_def(_def) for _def in schema.get_type_map().values()]
|
341
|
+
|
342
|
+
# Do the same with new types, appending to the list of defined types.
|
343
|
+
types += [get_type_from_AST(_def) for _def in type_definition_map.values()]
|
344
|
+
|
345
|
+
# Then produce and return a Schema with these types.
|
346
|
+
return GraphQLSchema(
|
347
|
+
query=query_type,
|
348
|
+
mutation=mutationType,
|
349
|
+
subscription=subscription_type,
|
350
|
+
# Copy directives.
|
351
|
+
directives=schema.get_directives(),
|
352
|
+
types=types
|
353
|
+
)
|
354
|
+
|
355
|
+
|
356
|
+
def cannot_execute_client_schema(*args, **kwargs):
|
357
|
+
raise Exception('Client Schema cannot be used for execution.')
|
@@ -0,0 +1,27 @@
|
|
1
|
+
from ..type.definition import (GraphQLInterfaceType, GraphQLObjectType,
|
2
|
+
GraphQLUnionType)
|
3
|
+
from ..type.introspection import (SchemaMetaFieldDef, TypeMetaFieldDef,
|
4
|
+
TypeNameMetaFieldDef)
|
5
|
+
|
6
|
+
|
7
|
+
def get_field_def(schema, parent_type, field_ast):
|
8
|
+
"""Not exactly the same as the executor's definition of get_field_def, in this
|
9
|
+
statically evaluated environment we do not always have an Object type,
|
10
|
+
and need to handle Interface and Union types."""
|
11
|
+
name = field_ast.name.value
|
12
|
+
if name == '__schema' and schema.get_query_type() == parent_type:
|
13
|
+
return SchemaMetaFieldDef
|
14
|
+
|
15
|
+
elif name == '__type' and schema.get_query_type() == parent_type:
|
16
|
+
return TypeMetaFieldDef
|
17
|
+
|
18
|
+
elif name == '__typename' and \
|
19
|
+
isinstance(parent_type, (
|
20
|
+
GraphQLObjectType,
|
21
|
+
GraphQLInterfaceType,
|
22
|
+
GraphQLUnionType,
|
23
|
+
)):
|
24
|
+
return TypeNameMetaFieldDef
|
25
|
+
|
26
|
+
elif isinstance(parent_type, (GraphQLObjectType, GraphQLInterfaceType)):
|
27
|
+
return parent_type.fields.get(name)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
from ..language import ast
|
2
|
+
|
3
|
+
|
4
|
+
def get_operation_ast(document_ast, operation_name=None):
|
5
|
+
operation = None
|
6
|
+
|
7
|
+
for definition in document_ast.definitions:
|
8
|
+
if isinstance(definition, ast.OperationDefinition):
|
9
|
+
if not operation_name:
|
10
|
+
# If no operation name is provided, only return an Operation if it is the only one present in the
|
11
|
+
# document. This means that if we've encountered a second operation as we were iterating over the
|
12
|
+
# definitions in the document, there are more than one Operation defined, and we should return None.
|
13
|
+
if operation:
|
14
|
+
return None
|
15
|
+
|
16
|
+
operation = definition
|
17
|
+
|
18
|
+
elif definition.name and definition.name.value == operation_name:
|
19
|
+
return definition
|
20
|
+
|
21
|
+
return operation
|
@@ -0,0 +1,90 @@
|
|
1
|
+
introspection_query = '''
|
2
|
+
query IntrospectionQuery {
|
3
|
+
__schema {
|
4
|
+
queryType { name }
|
5
|
+
mutationType { name }
|
6
|
+
subscriptionType { name }
|
7
|
+
types {
|
8
|
+
...FullType
|
9
|
+
}
|
10
|
+
directives {
|
11
|
+
name
|
12
|
+
description
|
13
|
+
locations
|
14
|
+
args {
|
15
|
+
...InputValue
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
fragment FullType on __Type {
|
21
|
+
kind
|
22
|
+
name
|
23
|
+
description
|
24
|
+
fields(includeDeprecated: true) {
|
25
|
+
name
|
26
|
+
description
|
27
|
+
args {
|
28
|
+
...InputValue
|
29
|
+
}
|
30
|
+
type {
|
31
|
+
...TypeRef
|
32
|
+
}
|
33
|
+
isDeprecated
|
34
|
+
deprecationReason
|
35
|
+
}
|
36
|
+
inputFields {
|
37
|
+
...InputValue
|
38
|
+
}
|
39
|
+
interfaces {
|
40
|
+
...TypeRef
|
41
|
+
}
|
42
|
+
enumValues(includeDeprecated: true) {
|
43
|
+
name
|
44
|
+
description
|
45
|
+
isDeprecated
|
46
|
+
deprecationReason
|
47
|
+
}
|
48
|
+
possibleTypes {
|
49
|
+
...TypeRef
|
50
|
+
}
|
51
|
+
}
|
52
|
+
fragment InputValue on __InputValue {
|
53
|
+
name
|
54
|
+
description
|
55
|
+
type { ...TypeRef }
|
56
|
+
defaultValue
|
57
|
+
}
|
58
|
+
fragment TypeRef on __Type {
|
59
|
+
kind
|
60
|
+
name
|
61
|
+
ofType {
|
62
|
+
kind
|
63
|
+
name
|
64
|
+
ofType {
|
65
|
+
kind
|
66
|
+
name
|
67
|
+
ofType {
|
68
|
+
kind
|
69
|
+
name
|
70
|
+
ofType {
|
71
|
+
kind
|
72
|
+
name
|
73
|
+
ofType {
|
74
|
+
kind
|
75
|
+
name
|
76
|
+
ofType {
|
77
|
+
kind
|
78
|
+
name
|
79
|
+
ofType {
|
80
|
+
kind
|
81
|
+
name
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
'''
|
@@ -0,0 +1,67 @@
|
|
1
|
+
from ..language import ast
|
2
|
+
from ..language.printer import print_ast
|
3
|
+
from ..type.definition import (GraphQLEnumType, GraphQLInputObjectType,
|
4
|
+
GraphQLList, GraphQLNonNull, GraphQLScalarType)
|
5
|
+
|
6
|
+
_empty_list = []
|
7
|
+
|
8
|
+
|
9
|
+
def is_valid_literal_value(type, value_ast):
|
10
|
+
if isinstance(type, GraphQLNonNull):
|
11
|
+
of_type = type.of_type
|
12
|
+
if not value_ast:
|
13
|
+
return [u'Expected "{}", found null.'.format(type)]
|
14
|
+
|
15
|
+
return is_valid_literal_value(of_type, value_ast)
|
16
|
+
|
17
|
+
if not value_ast:
|
18
|
+
return _empty_list
|
19
|
+
|
20
|
+
if isinstance(value_ast, ast.Variable):
|
21
|
+
return _empty_list
|
22
|
+
|
23
|
+
if isinstance(type, GraphQLList):
|
24
|
+
item_type = type.of_type
|
25
|
+
if isinstance(value_ast, ast.ListValue):
|
26
|
+
errors = []
|
27
|
+
|
28
|
+
for i, item_ast in enumerate(value_ast.values):
|
29
|
+
item_errors = is_valid_literal_value(item_type, item_ast)
|
30
|
+
for error in item_errors:
|
31
|
+
errors.append(u'In element #{}: {}'.format(i, error))
|
32
|
+
|
33
|
+
return errors
|
34
|
+
|
35
|
+
return is_valid_literal_value(item_type, value_ast)
|
36
|
+
|
37
|
+
if isinstance(type, GraphQLInputObjectType):
|
38
|
+
if not isinstance(value_ast, ast.ObjectValue):
|
39
|
+
return [u'Expected "{}", found not an object.'.format(type)]
|
40
|
+
|
41
|
+
fields = type.fields
|
42
|
+
field_asts = value_ast.fields
|
43
|
+
|
44
|
+
errors = []
|
45
|
+
for provided_field_ast in field_asts:
|
46
|
+
if provided_field_ast.name.value not in fields:
|
47
|
+
errors.append(u'In field "{}": Unknown field.'.format(provided_field_ast.name.value))
|
48
|
+
|
49
|
+
field_ast_map = {field_ast.name.value: field_ast for field_ast in field_asts}
|
50
|
+
|
51
|
+
def get_field_ast_value(field_name):
|
52
|
+
if field_name in field_ast_map:
|
53
|
+
return field_ast_map[field_name].value
|
54
|
+
|
55
|
+
for field_name, field in fields.items():
|
56
|
+
subfield_errors = is_valid_literal_value(field.type, get_field_ast_value(field_name))
|
57
|
+
errors.extend(u'In field "{}": {}'.format(field_name, e) for e in subfield_errors)
|
58
|
+
|
59
|
+
return errors
|
60
|
+
|
61
|
+
assert isinstance(type, (GraphQLScalarType, GraphQLEnumType)), 'Must be input type'
|
62
|
+
|
63
|
+
parse_result = type.parse_literal(value_ast)
|
64
|
+
if parse_result is None:
|
65
|
+
return [u'Expected type "{}", found {}.'.format(type.name, print_ast(value_ast))]
|
66
|
+
|
67
|
+
return _empty_list
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"""
|
2
|
+
Implementation of isValidJSValue from graphql.s
|
3
|
+
"""
|
4
|
+
|
5
|
+
from collections.abc import Iterable, Mapping
|
6
|
+
import json
|
7
|
+
|
8
|
+
from ..type import (GraphQLEnumType, GraphQLInputObjectType, GraphQLList,
|
9
|
+
GraphQLNonNull, GraphQLScalarType)
|
10
|
+
|
11
|
+
_empty_list = []
|
12
|
+
|
13
|
+
|
14
|
+
def is_valid_value(value, type):
|
15
|
+
"""Given a type and any value, return True if that value is valid."""
|
16
|
+
if isinstance(type, GraphQLNonNull):
|
17
|
+
of_type = type.of_type
|
18
|
+
if value is None:
|
19
|
+
return [u'Expected "{}", found null.'.format(type)]
|
20
|
+
|
21
|
+
return is_valid_value(value, of_type)
|
22
|
+
|
23
|
+
if value is None:
|
24
|
+
return _empty_list
|
25
|
+
|
26
|
+
if isinstance(type, GraphQLList):
|
27
|
+
item_type = type.of_type
|
28
|
+
if not isinstance(value, str) and isinstance(value, Iterable):
|
29
|
+
errors = []
|
30
|
+
for i, item in enumerate(value):
|
31
|
+
item_errors = is_valid_value(item, item_type)
|
32
|
+
for error in item_errors:
|
33
|
+
errors.append(u'In element #{}: {}'.format(i, error))
|
34
|
+
|
35
|
+
return errors
|
36
|
+
|
37
|
+
else:
|
38
|
+
return is_valid_value(value, item_type)
|
39
|
+
|
40
|
+
if isinstance(type, GraphQLInputObjectType):
|
41
|
+
if not isinstance(value, Mapping):
|
42
|
+
return [u'Expected "{}", found not an object.'.format(type)]
|
43
|
+
|
44
|
+
fields = type.fields
|
45
|
+
errors = []
|
46
|
+
|
47
|
+
for provided_field in sorted(value.keys()):
|
48
|
+
if provided_field not in fields:
|
49
|
+
errors.append(u'In field "{}": Unknown field.'.format(provided_field))
|
50
|
+
|
51
|
+
for field_name, field in fields.items():
|
52
|
+
subfield_errors = is_valid_value(value.get(field_name), field.type)
|
53
|
+
errors.extend(u'In field "{}": {}'.format(field_name, e) for e in subfield_errors)
|
54
|
+
|
55
|
+
return errors
|
56
|
+
|
57
|
+
assert isinstance(type, (GraphQLScalarType, GraphQLEnumType)), \
|
58
|
+
'Must be input type'
|
59
|
+
|
60
|
+
# Scalar/Enum input checks to ensure the type can parse the value to
|
61
|
+
# a non-null value.
|
62
|
+
parse_result = type.parse_value(value)
|
63
|
+
if parse_result is None:
|
64
|
+
return [u'Expected type "{}", found {}.'.format(type, json.dumps(value))]
|
65
|
+
|
66
|
+
return _empty_list
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import functools
|
2
|
+
|
3
|
+
MAX_LENGTH = 5
|
4
|
+
|
5
|
+
|
6
|
+
def quoted_or_list(items):
|
7
|
+
'''Given [ A, B, C ] return '"A", "B" or "C"'.'''
|
8
|
+
selected = items[:MAX_LENGTH]
|
9
|
+
quoted_items = ('"{}"'.format(t) for t in selected)
|
10
|
+
|
11
|
+
def quoted_or_text(text, quoted_and_index):
|
12
|
+
index = quoted_and_index[0]
|
13
|
+
quoted_item = quoted_and_index[1]
|
14
|
+
text += ((', ' if len(selected) > 2 and not index == len(selected) - 1 else ' ') +
|
15
|
+
('or ' if index == len(selected) - 1 else '') +
|
16
|
+
quoted_item)
|
17
|
+
return text
|
18
|
+
|
19
|
+
enumerated_items = enumerate(quoted_items)
|
20
|
+
first_item = next(enumerated_items)[1]
|
21
|
+
return functools.reduce(quoted_or_text, enumerated_items, first_item)
|