py2docfx 0.1.9.dev1897554__py3-none-any.whl → 0.1.9.dev1917798__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/convert_prepare/environment.py +25 -6
- py2docfx/convert_prepare/tests/test_generate_document.py +4 -4
- py2docfx/convert_prepare/tests/test_get_source.py +6 -6
- py2docfx/convert_prepare/tests/test_params.py +1 -1
- py2docfx/convert_prepare/tests/test_sphinx_caller.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +23 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +13 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +17 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +55 -78
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +29 -30
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +9 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +48 -45
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +25 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +280 -220
- py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
- py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
- py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
- py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +1 -7
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
- py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +23 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +13 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +17 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +55 -78
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +29 -30
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +9 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +48 -45
- py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +25 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +280 -220
- py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/RECORD +307 -367
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/top_level.txt +0 -0
@@ -52,7 +52,11 @@ from ..._enum_meta import CaseInsensitiveEnumMeta
|
|
52
52
|
|
53
53
|
HTTPResponseType = TypeVar("HTTPResponseType", HttpResponse, LegacyHttpResponse)
|
54
54
|
AllHttpResponseType = TypeVar(
|
55
|
-
"AllHttpResponseType",
|
55
|
+
"AllHttpResponseType",
|
56
|
+
HttpResponse,
|
57
|
+
LegacyHttpResponse,
|
58
|
+
AsyncHttpResponse,
|
59
|
+
LegacyAsyncHttpResponse,
|
56
60
|
)
|
57
61
|
HTTPRequestType = TypeVar("HTTPRequestType", HttpRequest, LegacyHttpRequest)
|
58
62
|
ClsRetryPolicy = TypeVar("ClsRetryPolicy", bound="RetryPolicyBase")
|
@@ -203,7 +207,9 @@ class RetryPolicyBase:
|
|
203
207
|
return True
|
204
208
|
|
205
209
|
def is_retry(
|
206
|
-
self,
|
210
|
+
self,
|
211
|
+
settings: Dict[str, Any],
|
212
|
+
response: PipelineResponse[HTTPRequestType, AllHttpResponseType],
|
207
213
|
) -> bool:
|
208
214
|
"""Checks if method/status code is retryable.
|
209
215
|
|
@@ -257,7 +263,10 @@ class RetryPolicyBase:
|
|
257
263
|
self,
|
258
264
|
settings: Dict[str, Any],
|
259
265
|
response: Optional[
|
260
|
-
Union[
|
266
|
+
Union[
|
267
|
+
PipelineRequest[HTTPRequestType],
|
268
|
+
PipelineResponse[HTTPRequestType, AllHttpResponseType],
|
269
|
+
]
|
261
270
|
] = None,
|
262
271
|
error: Optional[Exception] = None,
|
263
272
|
) -> bool:
|
@@ -276,7 +285,11 @@ class RetryPolicyBase:
|
|
276
285
|
"""
|
277
286
|
# FIXME This code is not None safe: https://github.com/Azure/azure-sdk-for-python/issues/31528
|
278
287
|
response = cast(
|
279
|
-
Union[
|
288
|
+
Union[
|
289
|
+
PipelineRequest[HTTPRequestType],
|
290
|
+
PipelineResponse[HTTPRequestType, AllHttpResponseType],
|
291
|
+
],
|
292
|
+
response,
|
280
293
|
)
|
281
294
|
|
282
295
|
settings["total"] -= 1
|
@@ -343,7 +356,10 @@ class RetryPolicyBase:
|
|
343
356
|
context["history"] = retry_settings["history"]
|
344
357
|
|
345
358
|
def _configure_timeout(
|
346
|
-
self,
|
359
|
+
self,
|
360
|
+
request: PipelineRequest[HTTPRequestType],
|
361
|
+
absolute_timeout: float,
|
362
|
+
is_response_error: bool,
|
347
363
|
) -> None:
|
348
364
|
if absolute_timeout <= 0:
|
349
365
|
if is_response_error:
|
@@ -461,7 +477,9 @@ class RetryPolicy(RetryPolicyBase, HTTPPolicy[HTTPRequestType, HTTPResponseType]
|
|
461
477
|
return False
|
462
478
|
|
463
479
|
def _sleep_backoff(
|
464
|
-
self,
|
480
|
+
self,
|
481
|
+
settings: Dict[str, Any],
|
482
|
+
transport: HttpTransport[HTTPRequestType, HTTPResponseType],
|
465
483
|
) -> None:
|
466
484
|
"""Sleep using exponential backoff. Immediately returns if backoff is 0.
|
467
485
|
|
@@ -524,7 +542,8 @@ class RetryPolicy(RetryPolicyBase, HTTPPolicy[HTTPRequestType, HTTPResponseType]
|
|
524
542
|
# The correct fix is to make PipelineContext generic, but that's a breaking change and a lot of
|
525
543
|
# generic to update in Pipeline, PipelineClient, PipelineRequest, PipelineResponse, etc.
|
526
544
|
transport: HttpTransport[HTTPRequestType, HTTPResponseType] = cast(
|
527
|
-
HttpTransport[HTTPRequestType, HTTPResponseType],
|
545
|
+
HttpTransport[HTTPRequestType, HTTPResponseType],
|
546
|
+
request.context.transport,
|
528
547
|
)
|
529
548
|
try:
|
530
549
|
self._configure_timeout(request, absolute_timeout, is_response_error)
|
@@ -537,7 +556,7 @@ class RetryPolicy(RetryPolicyBase, HTTPPolicy[HTTPRequestType, HTTPResponseType]
|
|
537
556
|
is_response_error = True
|
538
557
|
continue
|
539
558
|
break
|
540
|
-
except ClientAuthenticationError:
|
559
|
+
except ClientAuthenticationError:
|
541
560
|
# the authentication policy failed such that the client's request can't
|
542
561
|
# succeed--we'll never have a response to it, so propagate the exception
|
543
562
|
raise
|
@@ -107,7 +107,9 @@ class AsyncRetryPolicy(RetryPolicyBase, AsyncHTTPPolicy[HTTPRequestType, AsyncHT
|
|
107
107
|
return False
|
108
108
|
|
109
109
|
async def _sleep_backoff(
|
110
|
-
self,
|
110
|
+
self,
|
111
|
+
settings: Dict[str, Any],
|
112
|
+
transport: AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType],
|
111
113
|
) -> None:
|
112
114
|
"""Sleep using exponential backoff. Immediately returns if backoff is 0.
|
113
115
|
|
@@ -172,7 +174,8 @@ class AsyncRetryPolicy(RetryPolicyBase, AsyncHTTPPolicy[HTTPRequestType, AsyncHT
|
|
172
174
|
# The correct fix is to make PipelineContext generic, but that's a breaking change and a lot of
|
173
175
|
# generic to update in Pipeline, PipelineClient, PipelineRequest, PipelineResponse, etc.
|
174
176
|
transport: AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType] = cast(
|
175
|
-
AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType],
|
177
|
+
AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType],
|
178
|
+
request.context.transport,
|
176
179
|
)
|
177
180
|
try:
|
178
181
|
self._configure_timeout(request, absolute_timeout, is_response_error)
|
@@ -189,7 +192,7 @@ class AsyncRetryPolicy(RetryPolicyBase, AsyncHTTPPolicy[HTTPRequestType, AsyncHT
|
|
189
192
|
is_response_error = True
|
190
193
|
continue
|
191
194
|
break
|
192
|
-
except ClientAuthenticationError:
|
195
|
+
except ClientAuthenticationError:
|
193
196
|
# the authentication policy failed such that the client's request can't
|
194
197
|
# succeed--we'll never have a response to it, so propagate the exception
|
195
198
|
raise
|
@@ -25,7 +25,10 @@
|
|
25
25
|
# --------------------------------------------------------------------------
|
26
26
|
from typing import List, Optional, Any, TypeVar
|
27
27
|
from azure.core.pipeline import PipelineRequest
|
28
|
-
from azure.core.pipeline.transport import
|
28
|
+
from azure.core.pipeline.transport import (
|
29
|
+
HttpRequest as LegacyHttpRequest,
|
30
|
+
HttpResponse as LegacyHttpResponse,
|
31
|
+
)
|
29
32
|
from azure.core.rest import HttpRequest, HttpResponse
|
30
33
|
from ._base import SansIOHTTPPolicy
|
31
34
|
|
@@ -75,9 +75,7 @@ class HeadersPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
|
|
75
75
|
:caption: Configuring a headers policy.
|
76
76
|
"""
|
77
77
|
|
78
|
-
def __init__(
|
79
|
-
self, base_headers: Optional[Dict[str, str]] = None, **kwargs: Any
|
80
|
-
) -> None: # pylint: disable=super-init-not-called
|
78
|
+
def __init__(self, base_headers: Optional[Dict[str, str]] = None, **kwargs: Any) -> None:
|
81
79
|
self._headers: Dict[str, str] = base_headers or {}
|
82
80
|
self._headers.update(kwargs.pop("headers", {}))
|
83
81
|
|
@@ -205,9 +203,7 @@ class UserAgentPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
|
|
205
203
|
_USERAGENT = "User-Agent"
|
206
204
|
_ENV_ADDITIONAL_USER_AGENT = "AZURE_HTTP_USER_AGENT"
|
207
205
|
|
208
|
-
def __init__(
|
209
|
-
self, base_user_agent: Optional[str] = None, **kwargs: Any
|
210
|
-
) -> None: # pylint: disable=super-init-not-called
|
206
|
+
def __init__(self, base_user_agent: Optional[str] = None, **kwargs: Any) -> None:
|
211
207
|
self.overwrite: bool = kwargs.pop("user_agent_overwrite", False)
|
212
208
|
self.use_env: bool = kwargs.pop("user_agent_use_env", True)
|
213
209
|
application_id: Optional[str] = kwargs.pop("user_agent", None)
|
@@ -282,9 +278,7 @@ class NetworkTraceLoggingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTy
|
|
282
278
|
def __init__(self, logging_enable: bool = False, **kwargs: Any): # pylint: disable=unused-argument
|
283
279
|
self.enable_http_logger = logging_enable
|
284
280
|
|
285
|
-
def on_request(
|
286
|
-
self, request: PipelineRequest[HTTPRequestType]
|
287
|
-
) -> None: # pylint: disable=too-many-return-statements
|
281
|
+
def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
|
288
282
|
"""Logs HTTP request to the DEBUG logger.
|
289
283
|
|
290
284
|
:param request: The PipelineRequest object.
|
@@ -423,6 +417,8 @@ class HttpLoggingPolicy(
|
|
423
417
|
"Transfer-Encoding",
|
424
418
|
"User-Agent",
|
425
419
|
"WWW-Authenticate", # OAuth Challenge header.
|
420
|
+
"x-vss-e2eid", # Needed by Azure DevOps pipelines.
|
421
|
+
"x-msedge-ref", # Needed by Azure DevOps pipelines.
|
426
422
|
]
|
427
423
|
)
|
428
424
|
REDACTED_PLACEHOLDER: str = "REDACTED"
|
@@ -741,7 +737,7 @@ class ProxyPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
|
|
741
737
|
|
742
738
|
def __init__(
|
743
739
|
self, proxies: Optional[MutableMapping[str, str]] = None, **kwargs: Any
|
744
|
-
): # pylint: disable=unused-argument
|
740
|
+
): # pylint: disable=unused-argument
|
745
741
|
self.proxies = proxies
|
746
742
|
|
747
743
|
def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
|
@@ -25,7 +25,7 @@
|
|
25
25
|
# --------------------------------------------------------------------------
|
26
26
|
import datetime
|
27
27
|
import email.utils
|
28
|
-
from typing import Optional, cast, Union
|
28
|
+
from typing import Optional, cast, Union, Tuple
|
29
29
|
from urllib.parse import urlparse
|
30
30
|
|
31
31
|
from azure.core.pipeline.transport import (
|
@@ -102,3 +102,103 @@ def get_domain(url: str) -> str:
|
|
102
102
|
:return: The domain of the url.
|
103
103
|
"""
|
104
104
|
return str(urlparse(url).netloc).lower()
|
105
|
+
|
106
|
+
|
107
|
+
def get_challenge_parameter(headers, challenge_scheme: str, challenge_parameter: str) -> Optional[str]:
|
108
|
+
"""
|
109
|
+
Parses the specified parameter from a challenge header found in the response.
|
110
|
+
|
111
|
+
:param dict[str, str] headers: The response headers to parse.
|
112
|
+
:param str challenge_scheme: The challenge scheme containing the challenge parameter, e.g., "Bearer".
|
113
|
+
:param str challenge_parameter: The parameter key name to search for.
|
114
|
+
:return: The value of the parameter name if found.
|
115
|
+
:rtype: str or None
|
116
|
+
"""
|
117
|
+
header_value = headers.get("WWW-Authenticate")
|
118
|
+
if not header_value:
|
119
|
+
return None
|
120
|
+
|
121
|
+
scheme = challenge_scheme
|
122
|
+
parameter = challenge_parameter
|
123
|
+
header_span = header_value
|
124
|
+
|
125
|
+
# Iterate through each challenge value.
|
126
|
+
while True:
|
127
|
+
challenge = get_next_challenge(header_span)
|
128
|
+
if not challenge:
|
129
|
+
break
|
130
|
+
challenge_key, header_span = challenge
|
131
|
+
if challenge_key.lower() != scheme.lower():
|
132
|
+
continue
|
133
|
+
# Enumerate each key-value parameter until we find the parameter key on the specified scheme challenge.
|
134
|
+
while True:
|
135
|
+
parameters = get_next_parameter(header_span)
|
136
|
+
if not parameters:
|
137
|
+
break
|
138
|
+
key, value, header_span = parameters
|
139
|
+
if key.lower() == parameter.lower():
|
140
|
+
return value
|
141
|
+
|
142
|
+
return None
|
143
|
+
|
144
|
+
|
145
|
+
def get_next_challenge(header_value: str) -> Optional[Tuple[str, str]]:
|
146
|
+
"""
|
147
|
+
Iterates through the challenge schemes present in a challenge header.
|
148
|
+
|
149
|
+
:param str header_value: The header value which will be sliced to remove the first parsed challenge key.
|
150
|
+
:return: The parsed challenge scheme and the remaining header value.
|
151
|
+
:rtype: tuple[str, str] or None
|
152
|
+
"""
|
153
|
+
header_value = header_value.lstrip(" ")
|
154
|
+
end_of_challenge_key = header_value.find(" ")
|
155
|
+
|
156
|
+
if end_of_challenge_key < 0:
|
157
|
+
return None
|
158
|
+
|
159
|
+
challenge_key = header_value[:end_of_challenge_key]
|
160
|
+
header_value = header_value[end_of_challenge_key + 1 :]
|
161
|
+
|
162
|
+
return challenge_key, header_value
|
163
|
+
|
164
|
+
|
165
|
+
def get_next_parameter(header_value: str, separator: str = "=") -> Optional[Tuple[str, str, str]]:
|
166
|
+
"""
|
167
|
+
Iterates through a challenge header value to extract key-value parameters.
|
168
|
+
|
169
|
+
:param str header_value: The header value after being parsed by get_next_challenge.
|
170
|
+
:param str separator: The challenge parameter key-value pair separator, default is '='.
|
171
|
+
:return: The next available challenge parameter as a tuple (param_key, param_value, remaining header_value).
|
172
|
+
:rtype: tuple[str, str, str] or None
|
173
|
+
"""
|
174
|
+
space_or_comma = " ,"
|
175
|
+
header_value = header_value.lstrip(space_or_comma)
|
176
|
+
|
177
|
+
next_space = header_value.find(" ")
|
178
|
+
next_separator = header_value.find(separator)
|
179
|
+
|
180
|
+
if next_space < next_separator and next_space != -1:
|
181
|
+
return None
|
182
|
+
|
183
|
+
if next_separator < 0:
|
184
|
+
return None
|
185
|
+
|
186
|
+
param_key = header_value[:next_separator].strip()
|
187
|
+
header_value = header_value[next_separator + 1 :]
|
188
|
+
|
189
|
+
quote_index = header_value.find('"')
|
190
|
+
|
191
|
+
if quote_index >= 0:
|
192
|
+
header_value = header_value[quote_index + 1 :]
|
193
|
+
param_value = header_value[: header_value.find('"')]
|
194
|
+
else:
|
195
|
+
trailing_delimiter_index = header_value.find(" ")
|
196
|
+
if trailing_delimiter_index >= 0:
|
197
|
+
param_value = header_value[:trailing_delimiter_index]
|
198
|
+
else:
|
199
|
+
param_value = header_value
|
200
|
+
|
201
|
+
if header_value != param_value:
|
202
|
+
header_value = header_value[len(param_value) + 1 :]
|
203
|
+
|
204
|
+
return param_key, param_value, header_value
|
@@ -56,7 +56,10 @@ from azure.core.pipeline import AsyncPipeline
|
|
56
56
|
|
57
57
|
from ._base import HttpRequest
|
58
58
|
from ._base_async import AsyncHttpTransport, AsyncHttpResponse, _ResponseStopIteration
|
59
|
-
from ...utils._pipeline_transport_rest_shared import
|
59
|
+
from ...utils._pipeline_transport_rest_shared import (
|
60
|
+
_aiohttp_body_helper,
|
61
|
+
get_file_items,
|
62
|
+
)
|
60
63
|
from .._tools import is_rest as _is_rest
|
61
64
|
from .._tools_async import (
|
62
65
|
handle_no_stream_rest_response as _handle_no_stream_rest_response,
|
@@ -540,7 +543,11 @@ class AioHttpTransportResponse(AsyncHttpResponse):
|
|
540
543
|
raise ServiceRequestError(err, error=err) from err
|
541
544
|
|
542
545
|
def stream_download(
|
543
|
-
self,
|
546
|
+
self,
|
547
|
+
pipeline: AsyncPipeline[HttpRequest, AsyncHttpResponse],
|
548
|
+
*,
|
549
|
+
decompress: bool = True,
|
550
|
+
**kwargs,
|
544
551
|
) -> AsyncIteratorType[bytes]:
|
545
552
|
"""Generator for streaming response body data.
|
546
553
|
|
@@ -506,7 +506,7 @@ class _HttpResponseBase:
|
|
506
506
|
return "<{}: {} {}{}>".format(type(self).__name__, self.status_code, self.reason, content_type_str)
|
507
507
|
|
508
508
|
|
509
|
-
class HttpResponse(_HttpResponseBase):
|
509
|
+
class HttpResponse(_HttpResponseBase):
|
510
510
|
def stream_download(self, pipeline: Pipeline[HttpRequest, "HttpResponse"], **kwargs: Any) -> Iterator[bytes]:
|
511
511
|
"""Generator for streaming request body data.
|
512
512
|
|
@@ -71,14 +71,18 @@ def _iterate_response_content(iterator):
|
|
71
71
|
raise _ResponseStopIteration() # pylint: disable=raise-missing-from
|
72
72
|
|
73
73
|
|
74
|
-
class AsyncHttpResponse(_HttpResponseBase, AsyncContextManager["AsyncHttpResponse"]):
|
74
|
+
class AsyncHttpResponse(_HttpResponseBase, AsyncContextManager["AsyncHttpResponse"]):
|
75
75
|
"""An AsyncHttpResponse ABC.
|
76
76
|
|
77
77
|
Allows for the asynchronous streaming of data from the response.
|
78
78
|
"""
|
79
79
|
|
80
80
|
def stream_download(
|
81
|
-
self,
|
81
|
+
self,
|
82
|
+
pipeline: AsyncPipeline[HttpRequest, "AsyncHttpResponse"],
|
83
|
+
*,
|
84
|
+
decompress: bool = True,
|
85
|
+
**kwargs: Any,
|
82
86
|
) -> AsyncIteratorType[bytes]:
|
83
87
|
"""Generator for streaming response body data.
|
84
88
|
|
@@ -115,9 +119,7 @@ class AsyncHttpResponse(_HttpResponseBase, AsyncContextManager["AsyncHttpRespons
|
|
115
119
|
return None
|
116
120
|
|
117
121
|
|
118
|
-
class AsyncHttpClientTransportResponse(
|
119
|
-
_HttpClientTransportResponse, AsyncHttpResponse
|
120
|
-
):
|
122
|
+
class AsyncHttpClientTransportResponse(_HttpClientTransportResponse, AsyncHttpResponse):
|
121
123
|
"""Create a HTTPResponse from an http.client response.
|
122
124
|
|
123
125
|
Body will NOT be read by the constructor. Call "body()" to load the body in memory if necessary.
|
@@ -82,7 +82,6 @@ def _get_running_loop():
|
|
82
82
|
return asyncio.get_running_loop()
|
83
83
|
|
84
84
|
|
85
|
-
# pylint: disable=too-many-ancestors
|
86
85
|
class AsyncioRequestsTransport(RequestsAsyncTransportBase):
|
87
86
|
"""Identical implementation as the synchronous RequestsTransport wrapped in a class with
|
88
87
|
asynchronous methods. Uses the built-in asyncio event loop.
|
@@ -24,7 +24,15 @@
|
|
24
24
|
#
|
25
25
|
# --------------------------------------------------------------------------
|
26
26
|
import logging
|
27
|
-
from typing import
|
27
|
+
from typing import (
|
28
|
+
Iterator,
|
29
|
+
Optional,
|
30
|
+
Union,
|
31
|
+
TypeVar,
|
32
|
+
overload,
|
33
|
+
TYPE_CHECKING,
|
34
|
+
MutableMapping,
|
35
|
+
)
|
28
36
|
from urllib3.util.retry import Retry
|
29
37
|
from urllib3.exceptions import (
|
30
38
|
DecodeError as CoreDecodeError,
|
@@ -43,7 +51,7 @@ from azure.core.exceptions import (
|
|
43
51
|
HttpResponseError,
|
44
52
|
DecodeError,
|
45
53
|
)
|
46
|
-
from . import HttpRequest
|
54
|
+
from . import HttpRequest
|
47
55
|
|
48
56
|
from ._base import HttpTransport, HttpResponse, _HttpResponseBase
|
49
57
|
from ._bigger_block_size_http_adapters import BiggerBlockSizeHTTPAdapter
|
@@ -257,7 +265,7 @@ class RequestsTransport(HttpTransport):
|
|
257
265
|
self.open()
|
258
266
|
return self
|
259
267
|
|
260
|
-
def __exit__(self, *args):
|
268
|
+
def __exit__(self, *args):
|
261
269
|
self.close()
|
262
270
|
|
263
271
|
def _init_session(self, session: requests.Session) -> None:
|
@@ -26,7 +26,15 @@
|
|
26
26
|
from collections.abc import AsyncIterator
|
27
27
|
import functools
|
28
28
|
import logging
|
29
|
-
from typing import
|
29
|
+
from typing import (
|
30
|
+
Any,
|
31
|
+
Optional,
|
32
|
+
AsyncIterator as AsyncIteratorType,
|
33
|
+
TYPE_CHECKING,
|
34
|
+
overload,
|
35
|
+
Type,
|
36
|
+
MutableMapping,
|
37
|
+
)
|
30
38
|
from types import TracebackType
|
31
39
|
from urllib3.exceptions import (
|
32
40
|
ProtocolError,
|
@@ -110,7 +118,7 @@ class TrioStreamDownloadGenerator(AsyncIterator):
|
|
110
118
|
self.iter_content_func,
|
111
119
|
)
|
112
120
|
except AttributeError: # trio < 0.12.1
|
113
|
-
chunk = await trio.run_sync_in_worker_thread( # type: ignore
|
121
|
+
chunk = await trio.run_sync_in_worker_thread( # type: ignore # pylint:disable=no-member
|
114
122
|
_iterate_response_content,
|
115
123
|
self.iter_content_func,
|
116
124
|
)
|
@@ -244,7 +252,7 @@ class TrioRequestsTransport(RequestsAsyncTransportBase):
|
|
244
252
|
limiter=trio_limiter,
|
245
253
|
)
|
246
254
|
except AttributeError: # trio < 0.12.1
|
247
|
-
response = await trio.run_sync_in_worker_thread( # type: ignore # pylint:
|
255
|
+
response = await trio.run_sync_in_worker_thread( # type: ignore # pylint:disable=no-member
|
248
256
|
functools.partial(
|
249
257
|
self.session.request,
|
250
258
|
request.method,
|
@@ -40,7 +40,10 @@ class AsyncPollingMethod(Generic[PollingReturnType_co]):
|
|
40
40
|
"""ABC class for polling method."""
|
41
41
|
|
42
42
|
def initialize(
|
43
|
-
self,
|
43
|
+
self,
|
44
|
+
client: Any,
|
45
|
+
initial_response: Any,
|
46
|
+
deserialization_callback: DeserializationCallbackType,
|
44
47
|
) -> None:
|
45
48
|
raise NotImplementedError("This method needs to be implemented")
|
46
49
|
|
@@ -69,7 +72,7 @@ class AsyncPollingMethod(Generic[PollingReturnType_co]):
|
|
69
72
|
class AsyncNoPolling(_SansIONoPolling[PollingReturnType_co], AsyncPollingMethod[PollingReturnType_co]):
|
70
73
|
"""An empty async poller that returns the deserialized initial response."""
|
71
74
|
|
72
|
-
async def run(self) -> None:
|
75
|
+
async def run(self) -> None:
|
73
76
|
"""Empty run, no polling.
|
74
77
|
Just override initial run to add "async"
|
75
78
|
"""
|
@@ -43,7 +43,10 @@ class PollingMethod(Generic[PollingReturnType_co]):
|
|
43
43
|
"""ABC class for polling method."""
|
44
44
|
|
45
45
|
def initialize(
|
46
|
-
self,
|
46
|
+
self,
|
47
|
+
client: Any,
|
48
|
+
initial_response: Any,
|
49
|
+
deserialization_callback: DeserializationCallbackType,
|
47
50
|
) -> None:
|
48
51
|
raise NotImplementedError("This method needs to be implemented")
|
49
52
|
|
@@ -81,7 +81,9 @@ class AsyncLROBasePolling(
|
|
81
81
|
"""Store the latest received HTTP response, initialized by the first answer."""
|
82
82
|
|
83
83
|
@property
|
84
|
-
def _transport(
|
84
|
+
def _transport(
|
85
|
+
self,
|
86
|
+
) -> AsyncHttpTransport[HttpRequestTypeVar, AsyncHttpResponseTypeVar]:
|
85
87
|
return self._client._pipeline._transport # pylint: disable=protected-access
|
86
88
|
|
87
89
|
async def run(self) -> None:
|
@@ -274,7 +274,10 @@ class OperationResourcePolling(LongRunningOperation[HttpRequestTypeVar, AllHttpR
|
|
274
274
|
self._location_url = None
|
275
275
|
self._lro_options = lro_options or {}
|
276
276
|
|
277
|
-
def can_poll(
|
277
|
+
def can_poll(
|
278
|
+
self,
|
279
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
280
|
+
) -> bool:
|
278
281
|
"""Check if status monitor header (e.g. Operation-Location) is present.
|
279
282
|
|
280
283
|
:param pipeline_response: Initial REST call response.
|
@@ -296,7 +299,8 @@ class OperationResourcePolling(LongRunningOperation[HttpRequestTypeVar, AllHttpR
|
|
296
299
|
return self._async_url
|
297
300
|
|
298
301
|
def get_final_get_url(
|
299
|
-
self,
|
302
|
+
self,
|
303
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
300
304
|
) -> Optional[str]:
|
301
305
|
"""If a final GET is needed, returns the URL.
|
302
306
|
|
@@ -336,7 +340,8 @@ class OperationResourcePolling(LongRunningOperation[HttpRequestTypeVar, AllHttpR
|
|
336
340
|
return None
|
337
341
|
|
338
342
|
def set_initial_status(
|
339
|
-
self,
|
343
|
+
self,
|
344
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
340
345
|
) -> str:
|
341
346
|
"""Process first response after initiating long running operation.
|
342
347
|
|
@@ -367,7 +372,10 @@ class OperationResourcePolling(LongRunningOperation[HttpRequestTypeVar, AllHttpR
|
|
367
372
|
if location_url:
|
368
373
|
self._location_url = location_url
|
369
374
|
|
370
|
-
def get_status(
|
375
|
+
def get_status(
|
376
|
+
self,
|
377
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
378
|
+
) -> str:
|
371
379
|
"""Process the latest status update retrieved from an "Operation-Location" header.
|
372
380
|
|
373
381
|
:param pipeline_response: Initial REST call response.
|
@@ -393,7 +401,10 @@ class LocationPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpResponseTy
|
|
393
401
|
_location_url: str
|
394
402
|
"""Location header"""
|
395
403
|
|
396
|
-
def can_poll(
|
404
|
+
def can_poll(
|
405
|
+
self,
|
406
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
407
|
+
) -> bool:
|
397
408
|
"""True if contains a Location header
|
398
409
|
|
399
410
|
:param pipeline_response: Initial REST call response.
|
@@ -413,7 +424,8 @@ class LocationPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpResponseTy
|
|
413
424
|
return self._location_url
|
414
425
|
|
415
426
|
def get_final_get_url(
|
416
|
-
self,
|
427
|
+
self,
|
428
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
417
429
|
) -> Optional[str]:
|
418
430
|
"""If a final GET is needed, returns the URL.
|
419
431
|
|
@@ -427,7 +439,8 @@ class LocationPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpResponseTy
|
|
427
439
|
return None
|
428
440
|
|
429
441
|
def set_initial_status(
|
430
|
-
self,
|
442
|
+
self,
|
443
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
431
444
|
) -> str:
|
432
445
|
"""Process first response after initiating long running operation.
|
433
446
|
|
@@ -444,7 +457,10 @@ class LocationPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpResponseTy
|
|
444
457
|
return "InProgress"
|
445
458
|
raise OperationFailed("Operation failed or canceled")
|
446
459
|
|
447
|
-
def get_status(
|
460
|
+
def get_status(
|
461
|
+
self,
|
462
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
463
|
+
) -> str:
|
448
464
|
"""Return the status string extracted from this response.
|
449
465
|
|
450
466
|
For Location polling, it means the status monitor returns 202.
|
@@ -466,7 +482,10 @@ class StatusCheckPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpRespons
|
|
466
482
|
if not other polling are detected and status code is 2xx.
|
467
483
|
"""
|
468
484
|
|
469
|
-
def can_poll(
|
485
|
+
def can_poll(
|
486
|
+
self,
|
487
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
488
|
+
) -> bool:
|
470
489
|
"""Answer if this polling method could be used.
|
471
490
|
|
472
491
|
For this implementation, always True.
|
@@ -489,7 +508,8 @@ class StatusCheckPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpRespons
|
|
489
508
|
raise ValueError("This polling doesn't support polling url")
|
490
509
|
|
491
510
|
def set_initial_status(
|
492
|
-
self,
|
511
|
+
self,
|
512
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
493
513
|
) -> str:
|
494
514
|
"""Process first response after initiating long running operation.
|
495
515
|
|
@@ -502,7 +522,10 @@ class StatusCheckPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpRespons
|
|
502
522
|
"""
|
503
523
|
return "Succeeded"
|
504
524
|
|
505
|
-
def get_status(
|
525
|
+
def get_status(
|
526
|
+
self,
|
527
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
528
|
+
) -> str:
|
506
529
|
"""Return the status string extracted from this response.
|
507
530
|
|
508
531
|
Only possible status is success.
|
@@ -515,7 +538,8 @@ class StatusCheckPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpRespons
|
|
515
538
|
return "Succeeded"
|
516
539
|
|
517
540
|
def get_final_get_url(
|
518
|
-
self,
|
541
|
+
self,
|
542
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
519
543
|
) -> Optional[str]:
|
520
544
|
"""If a final GET is needed, returns the URL.
|
521
545
|
|
@@ -528,7 +552,12 @@ class StatusCheckPolling(LongRunningOperation[HttpRequestTypeVar, AllHttpRespons
|
|
528
552
|
|
529
553
|
|
530
554
|
class _SansIOLROBasePolling(
|
531
|
-
Generic[
|
555
|
+
Generic[
|
556
|
+
PollingReturnType_co,
|
557
|
+
PipelineClientType,
|
558
|
+
HttpRequestTypeVar,
|
559
|
+
AllHttpResponseTypeVar,
|
560
|
+
]
|
532
561
|
): # pylint: disable=too-many-instance-attributes
|
533
562
|
"""A base class that has no opinion on IO, to help mypy be accurate.
|
534
563
|
|
@@ -576,7 +605,8 @@ class _SansIOLROBasePolling(
|
|
576
605
|
client: PipelineClientType,
|
577
606
|
initial_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
578
607
|
deserialization_callback: Callable[
|
579
|
-
[PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar]],
|
608
|
+
[PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar]],
|
609
|
+
PollingReturnType_co,
|
580
610
|
],
|
581
611
|
) -> None:
|
582
612
|
"""Set the initial status of this LRO.
|
@@ -668,7 +698,8 @@ class _SansIOLROBasePolling(
|
|
668
698
|
return self._parse_resource(self._pipeline_response)
|
669
699
|
|
670
700
|
def _parse_resource(
|
671
|
-
self,
|
701
|
+
self,
|
702
|
+
pipeline_response: PipelineResponse[HttpRequestTypeVar, AllHttpResponseTypeVar],
|
672
703
|
) -> PollingReturnType_co:
|
673
704
|
"""Assuming this response is a resource, use the deserialization callback to parse it.
|
674
705
|
If body is empty, assuming no resource to return.
|
@@ -708,7 +739,7 @@ class LROBasePolling(
|
|
708
739
|
HttpResponseTypeVar,
|
709
740
|
],
|
710
741
|
PollingMethod[PollingReturnType_co],
|
711
|
-
):
|
742
|
+
):
|
712
743
|
"""A base LRO poller.
|
713
744
|
|
714
745
|
This assumes a basic flow:
|