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,74 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.filter
|
4
|
+
~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Module that implements the default filter.
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
|
13
|
+
def apply_filters(stream, filters, lexer=None):
|
14
|
+
"""
|
15
|
+
Use this method to apply an iterable of filters to
|
16
|
+
a stream. If lexer is given it's forwarded to the
|
17
|
+
filter, otherwise the filter receives `None`.
|
18
|
+
"""
|
19
|
+
def _apply(filter_, stream):
|
20
|
+
for token in filter_.filter(lexer, stream):
|
21
|
+
yield token
|
22
|
+
for filter_ in filters:
|
23
|
+
stream = _apply(filter_, stream)
|
24
|
+
return stream
|
25
|
+
|
26
|
+
|
27
|
+
def simplefilter(f):
|
28
|
+
"""
|
29
|
+
Decorator that converts a function into a filter::
|
30
|
+
|
31
|
+
@simplefilter
|
32
|
+
def lowercase(self, lexer, stream, options):
|
33
|
+
for ttype, value in stream:
|
34
|
+
yield ttype, value.lower()
|
35
|
+
"""
|
36
|
+
return type(f.__name__, (FunctionFilter,), {
|
37
|
+
'__module__': getattr(f, '__module__'),
|
38
|
+
'__doc__': f.__doc__,
|
39
|
+
'function': f,
|
40
|
+
})
|
41
|
+
|
42
|
+
|
43
|
+
class Filter(object):
|
44
|
+
"""
|
45
|
+
Default filter. Subclass this class or use the `simplefilter`
|
46
|
+
decorator to create own filters.
|
47
|
+
"""
|
48
|
+
|
49
|
+
def __init__(self, **options):
|
50
|
+
self.options = options
|
51
|
+
|
52
|
+
def filter(self, lexer, stream):
|
53
|
+
raise NotImplementedError
|
54
|
+
|
55
|
+
|
56
|
+
class FunctionFilter(Filter):
|
57
|
+
"""
|
58
|
+
Abstract class used by `simplefilter` to create simple
|
59
|
+
function filters on the fly. The `simplefilter` decorator
|
60
|
+
automatically creates subclasses of this class for
|
61
|
+
functions passed to it.
|
62
|
+
"""
|
63
|
+
function = None
|
64
|
+
|
65
|
+
def __init__(self, **options):
|
66
|
+
if not hasattr(self, 'function'):
|
67
|
+
raise TypeError('%r used without bound function' %
|
68
|
+
self.__class__.__name__)
|
69
|
+
Filter.__init__(self, **options)
|
70
|
+
|
71
|
+
def filter(self, lexer, stream):
|
72
|
+
# pylint: disable=not-callable
|
73
|
+
for ttype, value in self.function(lexer, stream, self.options):
|
74
|
+
yield ttype, value
|
@@ -0,0 +1,350 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.filters
|
4
|
+
~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Module containing filter lookup functions and default
|
7
|
+
filters.
|
8
|
+
|
9
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
10
|
+
:license: BSD, see LICENSE for details.
|
11
|
+
"""
|
12
|
+
|
13
|
+
import re
|
14
|
+
|
15
|
+
from pygments.token import String, Comment, Keyword, Name, Error, Whitespace, \
|
16
|
+
string_to_tokentype
|
17
|
+
from pygments.filter import Filter
|
18
|
+
from pygments.util import get_list_opt, get_int_opt, get_bool_opt, \
|
19
|
+
get_choice_opt, ClassNotFound, OptionError, text_type, string_types
|
20
|
+
from pygments.plugin import find_plugin_filters
|
21
|
+
|
22
|
+
|
23
|
+
def find_filter_class(filtername):
|
24
|
+
"""Lookup a filter by name. Return None if not found."""
|
25
|
+
if filtername in FILTERS:
|
26
|
+
return FILTERS[filtername]
|
27
|
+
for name, cls in find_plugin_filters():
|
28
|
+
if name == filtername:
|
29
|
+
return cls
|
30
|
+
return None
|
31
|
+
|
32
|
+
|
33
|
+
def get_filter_by_name(filtername, **options):
|
34
|
+
"""Return an instantiated filter.
|
35
|
+
|
36
|
+
Options are passed to the filter initializer if wanted.
|
37
|
+
Raise a ClassNotFound if not found.
|
38
|
+
"""
|
39
|
+
cls = find_filter_class(filtername)
|
40
|
+
if cls:
|
41
|
+
return cls(**options)
|
42
|
+
else:
|
43
|
+
raise ClassNotFound('filter %r not found' % filtername)
|
44
|
+
|
45
|
+
|
46
|
+
def get_all_filters():
|
47
|
+
"""Return a generator of all filter names."""
|
48
|
+
for name in FILTERS:
|
49
|
+
yield name
|
50
|
+
for name, _ in find_plugin_filters():
|
51
|
+
yield name
|
52
|
+
|
53
|
+
|
54
|
+
def _replace_special(ttype, value, regex, specialttype,
|
55
|
+
replacefunc=lambda x: x):
|
56
|
+
last = 0
|
57
|
+
for match in regex.finditer(value):
|
58
|
+
start, end = match.start(), match.end()
|
59
|
+
if start != last:
|
60
|
+
yield ttype, value[last:start]
|
61
|
+
yield specialttype, replacefunc(value[start:end])
|
62
|
+
last = end
|
63
|
+
if last != len(value):
|
64
|
+
yield ttype, value[last:]
|
65
|
+
|
66
|
+
|
67
|
+
class CodeTagFilter(Filter):
|
68
|
+
"""Highlight special code tags in comments and docstrings.
|
69
|
+
|
70
|
+
Options accepted:
|
71
|
+
|
72
|
+
`codetags` : list of strings
|
73
|
+
A list of strings that are flagged as code tags. The default is to
|
74
|
+
highlight ``XXX``, ``TODO``, ``BUG`` and ``NOTE``.
|
75
|
+
"""
|
76
|
+
|
77
|
+
def __init__(self, **options):
|
78
|
+
Filter.__init__(self, **options)
|
79
|
+
tags = get_list_opt(options, 'codetags',
|
80
|
+
['XXX', 'TODO', 'BUG', 'NOTE'])
|
81
|
+
self.tag_re = re.compile(r'\b(%s)\b' % '|'.join([
|
82
|
+
re.escape(tag) for tag in tags if tag
|
83
|
+
]))
|
84
|
+
|
85
|
+
def filter(self, lexer, stream):
|
86
|
+
regex = self.tag_re
|
87
|
+
for ttype, value in stream:
|
88
|
+
if ttype in String.Doc or \
|
89
|
+
ttype in Comment and \
|
90
|
+
ttype not in Comment.Preproc:
|
91
|
+
for sttype, svalue in _replace_special(ttype, value, regex,
|
92
|
+
Comment.Special):
|
93
|
+
yield sttype, svalue
|
94
|
+
else:
|
95
|
+
yield ttype, value
|
96
|
+
|
97
|
+
|
98
|
+
class KeywordCaseFilter(Filter):
|
99
|
+
"""Convert keywords to lowercase or uppercase or capitalize them, which
|
100
|
+
means first letter uppercase, rest lowercase.
|
101
|
+
|
102
|
+
This can be useful e.g. if you highlight Pascal code and want to adapt the
|
103
|
+
code to your styleguide.
|
104
|
+
|
105
|
+
Options accepted:
|
106
|
+
|
107
|
+
`case` : string
|
108
|
+
The casing to convert keywords to. Must be one of ``'lower'``,
|
109
|
+
``'upper'`` or ``'capitalize'``. The default is ``'lower'``.
|
110
|
+
"""
|
111
|
+
|
112
|
+
def __init__(self, **options):
|
113
|
+
Filter.__init__(self, **options)
|
114
|
+
case = get_choice_opt(options, 'case',
|
115
|
+
['lower', 'upper', 'capitalize'], 'lower')
|
116
|
+
self.convert = getattr(text_type, case)
|
117
|
+
|
118
|
+
def filter(self, lexer, stream):
|
119
|
+
for ttype, value in stream:
|
120
|
+
if ttype in Keyword:
|
121
|
+
yield ttype, self.convert(value)
|
122
|
+
else:
|
123
|
+
yield ttype, value
|
124
|
+
|
125
|
+
|
126
|
+
class NameHighlightFilter(Filter):
|
127
|
+
"""Highlight a normal Name (and Name.*) token with a different token type.
|
128
|
+
|
129
|
+
Example::
|
130
|
+
|
131
|
+
filter = NameHighlightFilter(
|
132
|
+
names=['foo', 'bar', 'baz'],
|
133
|
+
tokentype=Name.Function,
|
134
|
+
)
|
135
|
+
|
136
|
+
This would highlight the names "foo", "bar" and "baz"
|
137
|
+
as functions. `Name.Function` is the default token type.
|
138
|
+
|
139
|
+
Options accepted:
|
140
|
+
|
141
|
+
`names` : list of strings
|
142
|
+
A list of names that should be given the different token type.
|
143
|
+
There is no default.
|
144
|
+
`tokentype` : TokenType or string
|
145
|
+
A token type or a string containing a token type name that is
|
146
|
+
used for highlighting the strings in `names`. The default is
|
147
|
+
`Name.Function`.
|
148
|
+
"""
|
149
|
+
|
150
|
+
def __init__(self, **options):
|
151
|
+
Filter.__init__(self, **options)
|
152
|
+
self.names = set(get_list_opt(options, 'names', []))
|
153
|
+
tokentype = options.get('tokentype')
|
154
|
+
if tokentype:
|
155
|
+
self.tokentype = string_to_tokentype(tokentype)
|
156
|
+
else:
|
157
|
+
self.tokentype = Name.Function
|
158
|
+
|
159
|
+
def filter(self, lexer, stream):
|
160
|
+
for ttype, value in stream:
|
161
|
+
if ttype in Name and value in self.names:
|
162
|
+
yield self.tokentype, value
|
163
|
+
else:
|
164
|
+
yield ttype, value
|
165
|
+
|
166
|
+
|
167
|
+
class ErrorToken(Exception):
|
168
|
+
pass
|
169
|
+
|
170
|
+
|
171
|
+
class RaiseOnErrorTokenFilter(Filter):
|
172
|
+
"""Raise an exception when the lexer generates an error token.
|
173
|
+
|
174
|
+
Options accepted:
|
175
|
+
|
176
|
+
`excclass` : Exception class
|
177
|
+
The exception class to raise.
|
178
|
+
The default is `pygments.filters.ErrorToken`.
|
179
|
+
|
180
|
+
.. versionadded:: 0.8
|
181
|
+
"""
|
182
|
+
|
183
|
+
def __init__(self, **options):
|
184
|
+
Filter.__init__(self, **options)
|
185
|
+
self.exception = options.get('excclass', ErrorToken)
|
186
|
+
try:
|
187
|
+
# issubclass() will raise TypeError if first argument is not a class
|
188
|
+
if not issubclass(self.exception, Exception):
|
189
|
+
raise TypeError
|
190
|
+
except TypeError:
|
191
|
+
raise OptionError('excclass option is not an exception class')
|
192
|
+
|
193
|
+
def filter(self, lexer, stream):
|
194
|
+
for ttype, value in stream:
|
195
|
+
if ttype is Error:
|
196
|
+
raise self.exception(value)
|
197
|
+
yield ttype, value
|
198
|
+
|
199
|
+
|
200
|
+
class VisibleWhitespaceFilter(Filter):
|
201
|
+
"""Convert tabs, newlines and/or spaces to visible characters.
|
202
|
+
|
203
|
+
Options accepted:
|
204
|
+
|
205
|
+
`spaces` : string or bool
|
206
|
+
If this is a one-character string, spaces will be replaces by this string.
|
207
|
+
If it is another true value, spaces will be replaced by ``·`` (unicode
|
208
|
+
MIDDLE DOT). If it is a false value, spaces will not be replaced. The
|
209
|
+
default is ``False``.
|
210
|
+
`tabs` : string or bool
|
211
|
+
The same as for `spaces`, but the default replacement character is ``»``
|
212
|
+
(unicode RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK). The default value
|
213
|
+
is ``False``. Note: this will not work if the `tabsize` option for the
|
214
|
+
lexer is nonzero, as tabs will already have been expanded then.
|
215
|
+
`tabsize` : int
|
216
|
+
If tabs are to be replaced by this filter (see the `tabs` option), this
|
217
|
+
is the total number of characters that a tab should be expanded to.
|
218
|
+
The default is ``8``.
|
219
|
+
`newlines` : string or bool
|
220
|
+
The same as for `spaces`, but the default replacement character is ``¶``
|
221
|
+
(unicode PILCROW SIGN). The default value is ``False``.
|
222
|
+
`wstokentype` : bool
|
223
|
+
If true, give whitespace the special `Whitespace` token type. This allows
|
224
|
+
styling the visible whitespace differently (e.g. greyed out), but it can
|
225
|
+
disrupt background colors. The default is ``True``.
|
226
|
+
|
227
|
+
.. versionadded:: 0.8
|
228
|
+
"""
|
229
|
+
|
230
|
+
def __init__(self, **options):
|
231
|
+
Filter.__init__(self, **options)
|
232
|
+
for name, default in [('spaces', u'·'),
|
233
|
+
('tabs', u'»'),
|
234
|
+
('newlines', u'¶')]:
|
235
|
+
opt = options.get(name, False)
|
236
|
+
if isinstance(opt, string_types) and len(opt) == 1:
|
237
|
+
setattr(self, name, opt)
|
238
|
+
else:
|
239
|
+
setattr(self, name, (opt and default or ''))
|
240
|
+
tabsize = get_int_opt(options, 'tabsize', 8)
|
241
|
+
if self.tabs:
|
242
|
+
self.tabs += ' ' * (tabsize - 1)
|
243
|
+
if self.newlines:
|
244
|
+
self.newlines += '\n'
|
245
|
+
self.wstt = get_bool_opt(options, 'wstokentype', True)
|
246
|
+
|
247
|
+
def filter(self, lexer, stream):
|
248
|
+
if self.wstt:
|
249
|
+
spaces = self.spaces or u' '
|
250
|
+
tabs = self.tabs or u'\t'
|
251
|
+
newlines = self.newlines or u'\n'
|
252
|
+
regex = re.compile(r'\s')
|
253
|
+
def replacefunc(wschar):
|
254
|
+
if wschar == ' ':
|
255
|
+
return spaces
|
256
|
+
elif wschar == '\t':
|
257
|
+
return tabs
|
258
|
+
elif wschar == '\n':
|
259
|
+
return newlines
|
260
|
+
return wschar
|
261
|
+
|
262
|
+
for ttype, value in stream:
|
263
|
+
for sttype, svalue in _replace_special(ttype, value, regex,
|
264
|
+
Whitespace, replacefunc):
|
265
|
+
yield sttype, svalue
|
266
|
+
else:
|
267
|
+
spaces, tabs, newlines = self.spaces, self.tabs, self.newlines
|
268
|
+
# simpler processing
|
269
|
+
for ttype, value in stream:
|
270
|
+
if spaces:
|
271
|
+
value = value.replace(' ', spaces)
|
272
|
+
if tabs:
|
273
|
+
value = value.replace('\t', tabs)
|
274
|
+
if newlines:
|
275
|
+
value = value.replace('\n', newlines)
|
276
|
+
yield ttype, value
|
277
|
+
|
278
|
+
|
279
|
+
class GobbleFilter(Filter):
|
280
|
+
"""Gobbles source code lines (eats initial characters).
|
281
|
+
|
282
|
+
This filter drops the first ``n`` characters off every line of code. This
|
283
|
+
may be useful when the source code fed to the lexer is indented by a fixed
|
284
|
+
amount of space that isn't desired in the output.
|
285
|
+
|
286
|
+
Options accepted:
|
287
|
+
|
288
|
+
`n` : int
|
289
|
+
The number of characters to gobble.
|
290
|
+
|
291
|
+
.. versionadded:: 1.2
|
292
|
+
"""
|
293
|
+
def __init__(self, **options):
|
294
|
+
Filter.__init__(self, **options)
|
295
|
+
self.n = get_int_opt(options, 'n', 0)
|
296
|
+
|
297
|
+
def gobble(self, value, left):
|
298
|
+
if left < len(value):
|
299
|
+
return value[left:], 0
|
300
|
+
else:
|
301
|
+
return u'', left - len(value)
|
302
|
+
|
303
|
+
def filter(self, lexer, stream):
|
304
|
+
n = self.n
|
305
|
+
left = n # How many characters left to gobble.
|
306
|
+
for ttype, value in stream:
|
307
|
+
# Remove ``left`` tokens from first line, ``n`` from all others.
|
308
|
+
parts = value.split('\n')
|
309
|
+
(parts[0], left) = self.gobble(parts[0], left)
|
310
|
+
for i in range(1, len(parts)):
|
311
|
+
(parts[i], left) = self.gobble(parts[i], n)
|
312
|
+
value = u'\n'.join(parts)
|
313
|
+
|
314
|
+
if value != '':
|
315
|
+
yield ttype, value
|
316
|
+
|
317
|
+
|
318
|
+
class TokenMergeFilter(Filter):
|
319
|
+
"""Merges consecutive tokens with the same token type in the output
|
320
|
+
stream of a lexer.
|
321
|
+
|
322
|
+
.. versionadded:: 1.2
|
323
|
+
"""
|
324
|
+
def __init__(self, **options):
|
325
|
+
Filter.__init__(self, **options)
|
326
|
+
|
327
|
+
def filter(self, lexer, stream):
|
328
|
+
current_type = None
|
329
|
+
current_value = None
|
330
|
+
for ttype, value in stream:
|
331
|
+
if ttype is current_type:
|
332
|
+
current_value += value
|
333
|
+
else:
|
334
|
+
if current_type is not None:
|
335
|
+
yield current_type, current_value
|
336
|
+
current_type = ttype
|
337
|
+
current_value = value
|
338
|
+
if current_type is not None:
|
339
|
+
yield current_type, current_value
|
340
|
+
|
341
|
+
|
342
|
+
FILTERS = {
|
343
|
+
'codetagify': CodeTagFilter,
|
344
|
+
'keywordcase': KeywordCaseFilter,
|
345
|
+
'highlight': NameHighlightFilter,
|
346
|
+
'raiseonerror': RaiseOnErrorTokenFilter,
|
347
|
+
'whitespace': VisibleWhitespaceFilter,
|
348
|
+
'gobble': GobbleFilter,
|
349
|
+
'tokenmerge': TokenMergeFilter,
|
350
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.formatter
|
4
|
+
~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Base formatter class.
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
import codecs
|
13
|
+
|
14
|
+
from pygments.util import get_bool_opt, string_types
|
15
|
+
from pygments.styles import get_style_by_name
|
16
|
+
|
17
|
+
__all__ = ['Formatter']
|
18
|
+
|
19
|
+
|
20
|
+
def _lookup_style(style):
|
21
|
+
if isinstance(style, string_types):
|
22
|
+
return get_style_by_name(style)
|
23
|
+
return style
|
24
|
+
|
25
|
+
|
26
|
+
class Formatter(object):
|
27
|
+
"""
|
28
|
+
Converts a token stream to text.
|
29
|
+
|
30
|
+
Options accepted:
|
31
|
+
|
32
|
+
``style``
|
33
|
+
The style to use, can be a string or a Style subclass
|
34
|
+
(default: "default"). Not used by e.g. the
|
35
|
+
TerminalFormatter.
|
36
|
+
``full``
|
37
|
+
Tells the formatter to output a "full" document, i.e.
|
38
|
+
a complete self-contained document. This doesn't have
|
39
|
+
any effect for some formatters (default: false).
|
40
|
+
``title``
|
41
|
+
If ``full`` is true, the title that should be used to
|
42
|
+
caption the document (default: '').
|
43
|
+
``encoding``
|
44
|
+
If given, must be an encoding name. This will be used to
|
45
|
+
convert the Unicode token strings to byte strings in the
|
46
|
+
output. If it is "" or None, Unicode strings will be written
|
47
|
+
to the output file, which most file-like objects do not
|
48
|
+
support (default: None).
|
49
|
+
``outencoding``
|
50
|
+
Overrides ``encoding`` if given.
|
51
|
+
"""
|
52
|
+
|
53
|
+
#: Name of the formatter
|
54
|
+
name = None
|
55
|
+
|
56
|
+
#: Shortcuts for the formatter
|
57
|
+
aliases = []
|
58
|
+
|
59
|
+
#: fn match rules
|
60
|
+
filenames = []
|
61
|
+
|
62
|
+
#: If True, this formatter outputs Unicode strings when no encoding
|
63
|
+
#: option is given.
|
64
|
+
unicodeoutput = True
|
65
|
+
|
66
|
+
def __init__(self, **options):
|
67
|
+
self.style = _lookup_style(options.get('style', 'default'))
|
68
|
+
self.full = get_bool_opt(options, 'full', False)
|
69
|
+
self.title = options.get('title', '')
|
70
|
+
self.encoding = options.get('encoding', None) or None
|
71
|
+
if self.encoding in ('guess', 'chardet'):
|
72
|
+
# can happen for e.g. pygmentize -O encoding=guess
|
73
|
+
self.encoding = 'utf-8'
|
74
|
+
self.encoding = options.get('outencoding') or self.encoding
|
75
|
+
self.options = options
|
76
|
+
|
77
|
+
def get_style_defs(self, arg=''):
|
78
|
+
"""
|
79
|
+
Return the style definitions for the current style as a string.
|
80
|
+
|
81
|
+
``arg`` is an additional argument whose meaning depends on the
|
82
|
+
formatter used. Note that ``arg`` can also be a list or tuple
|
83
|
+
for some formatters like the html formatter.
|
84
|
+
"""
|
85
|
+
return ''
|
86
|
+
|
87
|
+
def format(self, tokensource, outfile):
|
88
|
+
"""
|
89
|
+
Format ``tokensource``, an iterable of ``(tokentype, tokenstring)``
|
90
|
+
tuples and write it into ``outfile``.
|
91
|
+
"""
|
92
|
+
if self.encoding:
|
93
|
+
# wrap the outfile in a StreamWriter
|
94
|
+
outfile = codecs.lookup(self.encoding)[3](outfile)
|
95
|
+
return self.format_unencoded(tokensource, outfile)
|
@@ -0,0 +1,153 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.formatters
|
4
|
+
~~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Pygments formatters.
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
import re
|
13
|
+
import sys
|
14
|
+
import types
|
15
|
+
import fnmatch
|
16
|
+
from os.path import basename
|
17
|
+
|
18
|
+
from pygments.formatters._mapping import FORMATTERS
|
19
|
+
from pygments.plugin import find_plugin_formatters
|
20
|
+
from pygments.util import ClassNotFound, itervalues
|
21
|
+
|
22
|
+
__all__ = ['get_formatter_by_name', 'get_formatter_for_filename',
|
23
|
+
'get_all_formatters', 'load_formatter_from_file'] + list(FORMATTERS)
|
24
|
+
|
25
|
+
_formatter_cache = {} # classes by name
|
26
|
+
_pattern_cache = {}
|
27
|
+
|
28
|
+
|
29
|
+
def _fn_matches(fn, glob):
|
30
|
+
"""Return whether the supplied file name fn matches pattern filename."""
|
31
|
+
if glob not in _pattern_cache:
|
32
|
+
pattern = _pattern_cache[glob] = re.compile(fnmatch.translate(glob))
|
33
|
+
return pattern.match(fn)
|
34
|
+
return _pattern_cache[glob].match(fn)
|
35
|
+
|
36
|
+
|
37
|
+
def _load_formatters(module_name):
|
38
|
+
"""Load a formatter (and all others in the module too)."""
|
39
|
+
mod = __import__(module_name, None, None, ['__all__'])
|
40
|
+
for formatter_name in mod.__all__:
|
41
|
+
cls = getattr(mod, formatter_name)
|
42
|
+
_formatter_cache[cls.name] = cls
|
43
|
+
|
44
|
+
|
45
|
+
def get_all_formatters():
|
46
|
+
"""Return a generator for all formatter classes."""
|
47
|
+
# NB: this returns formatter classes, not info like get_all_lexers().
|
48
|
+
for info in itervalues(FORMATTERS):
|
49
|
+
if info[1] not in _formatter_cache:
|
50
|
+
_load_formatters(info[0])
|
51
|
+
yield _formatter_cache[info[1]]
|
52
|
+
for _, formatter in find_plugin_formatters():
|
53
|
+
yield formatter
|
54
|
+
|
55
|
+
|
56
|
+
def find_formatter_class(alias):
|
57
|
+
"""Lookup a formatter by alias.
|
58
|
+
|
59
|
+
Returns None if not found.
|
60
|
+
"""
|
61
|
+
for module_name, name, aliases, _, _ in itervalues(FORMATTERS):
|
62
|
+
if alias in aliases:
|
63
|
+
if name not in _formatter_cache:
|
64
|
+
_load_formatters(module_name)
|
65
|
+
return _formatter_cache[name]
|
66
|
+
for _, cls in find_plugin_formatters():
|
67
|
+
if alias in cls.aliases:
|
68
|
+
return cls
|
69
|
+
|
70
|
+
|
71
|
+
def get_formatter_by_name(_alias, **options):
|
72
|
+
"""Lookup and instantiate a formatter by alias.
|
73
|
+
|
74
|
+
Raises ClassNotFound if not found.
|
75
|
+
"""
|
76
|
+
cls = find_formatter_class(_alias)
|
77
|
+
if cls is None:
|
78
|
+
raise ClassNotFound("no formatter found for name %r" % _alias)
|
79
|
+
return cls(**options)
|
80
|
+
|
81
|
+
|
82
|
+
def load_formatter_from_file(filename, formattername="CustomFormatter",
|
83
|
+
**options):
|
84
|
+
"""Load a formatter from a file.
|
85
|
+
|
86
|
+
This method expects a file located relative to the current working
|
87
|
+
directory, which contains a class named CustomFormatter. By default,
|
88
|
+
it expects the Formatter to be named CustomFormatter; you can specify
|
89
|
+
your own class name as the second argument to this function.
|
90
|
+
|
91
|
+
Users should be very careful with the input, because this method
|
92
|
+
is equivalent to running eval on the input file.
|
93
|
+
|
94
|
+
Raises ClassNotFound if there are any problems importing the Formatter.
|
95
|
+
|
96
|
+
.. versionadded:: 2.2
|
97
|
+
"""
|
98
|
+
try:
|
99
|
+
# This empty dict will contain the namespace for the exec'd file
|
100
|
+
custom_namespace = {}
|
101
|
+
exec(open(filename, 'rb').read(), custom_namespace)
|
102
|
+
# Retrieve the class `formattername` from that namespace
|
103
|
+
if formattername not in custom_namespace:
|
104
|
+
raise ClassNotFound('no valid %s class found in %s' %
|
105
|
+
(formattername, filename))
|
106
|
+
formatter_class = custom_namespace[formattername]
|
107
|
+
# And finally instantiate it with the options
|
108
|
+
return formatter_class(**options)
|
109
|
+
except IOError as err:
|
110
|
+
raise ClassNotFound('cannot read %s' % filename)
|
111
|
+
except ClassNotFound as err:
|
112
|
+
raise
|
113
|
+
except Exception as err:
|
114
|
+
raise ClassNotFound('error when loading custom formatter: %s' % err)
|
115
|
+
|
116
|
+
|
117
|
+
def get_formatter_for_filename(fn, **options):
|
118
|
+
"""Lookup and instantiate a formatter by filename pattern.
|
119
|
+
|
120
|
+
Raises ClassNotFound if not found.
|
121
|
+
"""
|
122
|
+
fn = basename(fn)
|
123
|
+
for modname, name, _, filenames, _ in itervalues(FORMATTERS):
|
124
|
+
for filename in filenames:
|
125
|
+
if _fn_matches(fn, filename):
|
126
|
+
if name not in _formatter_cache:
|
127
|
+
_load_formatters(modname)
|
128
|
+
return _formatter_cache[name](**options)
|
129
|
+
for cls in find_plugin_formatters():
|
130
|
+
for filename in cls.filenames:
|
131
|
+
if _fn_matches(fn, filename):
|
132
|
+
return cls(**options)
|
133
|
+
raise ClassNotFound("no formatter found for file name %r" % fn)
|
134
|
+
|
135
|
+
|
136
|
+
class _automodule(types.ModuleType):
|
137
|
+
"""Automatically import formatters."""
|
138
|
+
|
139
|
+
def __getattr__(self, name):
|
140
|
+
info = FORMATTERS.get(name)
|
141
|
+
if info:
|
142
|
+
_load_formatters(info[0])
|
143
|
+
cls = _formatter_cache[info[1]]
|
144
|
+
setattr(self, name, cls)
|
145
|
+
return cls
|
146
|
+
raise AttributeError(name)
|
147
|
+
|
148
|
+
|
149
|
+
oldmod = sys.modules[__name__]
|
150
|
+
newmod = _automodule(__name__)
|
151
|
+
newmod.__dict__.update(oldmod.__dict__)
|
152
|
+
sys.modules[__name__] = newmod
|
153
|
+
del newmod.newmod, newmod.oldmod, newmod.sys, newmod.types
|