py2docfx 0.1.9.dev1897607__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/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.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/RECORD +293 -353
- {py2docfx-0.1.9.dev1897607.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.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,6 @@
|
|
1
|
+
from typing import TYPE_CHECKING
|
1
2
|
from warnings import warn
|
2
3
|
|
3
|
-
from ._bdist_wheel import bdist_wheel as bdist_wheel
|
4
|
-
|
5
4
|
warn(
|
6
5
|
"The 'wheel' package is no longer the canonical location of the 'bdist_wheel' "
|
7
6
|
"command, and will be removed in a future release. Please update to setuptools "
|
@@ -9,3 +8,19 @@ warn(
|
|
9
8
|
DeprecationWarning,
|
10
9
|
stacklevel=1,
|
11
10
|
)
|
11
|
+
|
12
|
+
if TYPE_CHECKING:
|
13
|
+
from ._bdist_wheel import bdist_wheel as bdist_wheel
|
14
|
+
else:
|
15
|
+
try:
|
16
|
+
# Better integration/compatibility with setuptools:
|
17
|
+
# in the case new fixes or PEPs are implemented in setuptools
|
18
|
+
# there is no need to backport them to the deprecated code base.
|
19
|
+
# This is useful in the case of old packages in the ecosystem
|
20
|
+
# that are still used but have low maintenance.
|
21
|
+
from setuptools.command.bdist_wheel import bdist_wheel
|
22
|
+
except ImportError:
|
23
|
+
# Only used in the case of old setuptools versions.
|
24
|
+
# If the user wants to get the latest fixes/PEPs,
|
25
|
+
# they are encouraged to address the deprecation warning.
|
26
|
+
from ._bdist_wheel import bdist_wheel as bdist_wheel
|
@@ -2,21 +2,23 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import os.path
|
4
4
|
import re
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
5
|
+
from abc import ABCMeta, abstractmethod
|
6
|
+
from collections import defaultdict
|
7
|
+
from collections.abc import Iterator
|
8
|
+
from email.message import Message
|
9
|
+
from email.parser import Parser
|
10
|
+
from email.policy import EmailPolicy
|
8
11
|
from glob import iglob
|
12
|
+
from pathlib import Path
|
13
|
+
from textwrap import dedent
|
14
|
+
from zipfile import ZipFile
|
9
15
|
|
10
|
-
from ..
|
16
|
+
from .. import __version__
|
17
|
+
from ..metadata import generate_requirements
|
18
|
+
from ..vendored.packaging.tags import parse_tag
|
11
19
|
from ..wheelfile import WheelFile
|
12
|
-
from . import WheelError
|
13
20
|
|
14
|
-
|
15
|
-
from setuptools import Distribution
|
16
|
-
except ImportError:
|
17
|
-
from distutils.dist import Distribution
|
18
|
-
|
19
|
-
egg_info_re = re.compile(
|
21
|
+
egg_filename_re = re.compile(
|
20
22
|
r"""
|
21
23
|
(?P<name>.+?)-(?P<ver>.+?)
|
22
24
|
(-(?P<pyver>py\d\.\d+)
|
@@ -24,84 +26,168 @@ egg_info_re = re.compile(
|
|
24
26
|
)?.egg$""",
|
25
27
|
re.VERBOSE,
|
26
28
|
)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
29
|
+
egg_info_re = re.compile(
|
30
|
+
r"""
|
31
|
+
^(?P<name>.+?)-(?P<ver>.+?)
|
32
|
+
(-(?P<pyver>py\d\.\d+)
|
33
|
+
)?.egg-info/""",
|
34
|
+
re.VERBOSE,
|
35
|
+
)
|
36
|
+
wininst_re = re.compile(
|
37
|
+
r"\.(?P<platform>win32|win-amd64)(?:-(?P<pyver>py\d\.\d))?\.exe$"
|
38
|
+
)
|
39
|
+
pyd_re = re.compile(r"\.(?P<abi>[a-z0-9]+)-(?P<platform>win32|win_amd64)\.pyd$")
|
40
|
+
serialization_policy = EmailPolicy(
|
41
|
+
utf8=True,
|
42
|
+
mangle_from_=False,
|
43
|
+
max_line_length=0,
|
44
|
+
)
|
45
|
+
GENERATOR = f"wheel {__version__}"
|
46
|
+
|
47
|
+
|
48
|
+
def convert_requires(requires: str, metadata: Message) -> None:
|
49
|
+
extra: str | None = None
|
50
|
+
requirements: dict[str | None, list[str]] = defaultdict(list)
|
51
|
+
for line in requires.splitlines():
|
52
|
+
line = line.strip()
|
53
|
+
if not line:
|
54
|
+
continue
|
55
|
+
|
56
|
+
if line.startswith("[") and line.endswith("]"):
|
57
|
+
extra = line[1:-1]
|
58
|
+
continue
|
59
|
+
|
60
|
+
requirements[extra].append(line)
|
61
|
+
|
62
|
+
for key, value in generate_requirements(requirements):
|
63
|
+
metadata.add_header(key, value)
|
64
|
+
|
65
|
+
|
66
|
+
def convert_pkg_info(pkginfo: str, metadata: Message):
|
67
|
+
parsed_message = Parser().parsestr(pkginfo)
|
68
|
+
for key, value in parsed_message.items():
|
69
|
+
key_lower = key.lower()
|
70
|
+
if value == "UNKNOWN":
|
71
|
+
continue
|
72
|
+
|
73
|
+
if key_lower == "description":
|
74
|
+
description_lines = value.splitlines()
|
75
|
+
value = "\n".join(
|
76
|
+
(
|
77
|
+
description_lines[0].lstrip(),
|
78
|
+
dedent("\n".join(description_lines[1:])),
|
79
|
+
"\n",
|
80
|
+
)
|
81
|
+
)
|
82
|
+
metadata.set_payload(value)
|
83
|
+
elif key_lower == "home-page":
|
84
|
+
metadata.add_header("Project-URL", f"Homepage, {value}")
|
85
|
+
elif key_lower == "download-url":
|
86
|
+
metadata.add_header("Project-URL", f"Download, {value}")
|
41
87
|
else:
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
88
|
+
metadata.add_header(key, value)
|
89
|
+
|
90
|
+
metadata.replace_header("Metadata-Version", "2.4")
|
91
|
+
|
92
|
+
|
93
|
+
def normalize(name: str) -> str:
|
94
|
+
return re.sub(r"[-_.]+", "-", name).lower().replace("-", "_")
|
95
|
+
|
96
|
+
|
97
|
+
class ConvertSource(metaclass=ABCMeta):
|
98
|
+
name: str
|
99
|
+
version: str
|
100
|
+
pyver: str = "py2.py3"
|
101
|
+
abi: str = "none"
|
102
|
+
platform: str = "any"
|
103
|
+
metadata: Message
|
104
|
+
|
105
|
+
@property
|
106
|
+
def dist_info_dir(self) -> str:
|
107
|
+
return f"{self.name}-{self.version}.dist-info"
|
108
|
+
|
109
|
+
@abstractmethod
|
110
|
+
def generate_contents(self) -> Iterator[tuple[str, bytes]]:
|
111
|
+
pass
|
112
|
+
|
113
|
+
|
114
|
+
class EggFileSource(ConvertSource):
|
115
|
+
def __init__(self, path: Path):
|
116
|
+
if not (match := egg_filename_re.match(path.name)):
|
117
|
+
raise ValueError(f"Invalid egg file name: {path.name}")
|
118
|
+
|
119
|
+
# Binary wheels are assumed to be for CPython
|
120
|
+
self.path = path
|
121
|
+
self.name = normalize(match.group("name"))
|
122
|
+
self.version = match.group("ver")
|
123
|
+
if pyver := match.group("pyver"):
|
124
|
+
self.pyver = pyver.replace(".", "")
|
125
|
+
self.abi = self.pyver.replace("py", "cp")
|
126
|
+
if arch := match.group("arch"):
|
127
|
+
self.platform = normalize(arch)
|
128
|
+
|
129
|
+
self.metadata = Message()
|
130
|
+
|
131
|
+
def generate_contents(self) -> Iterator[tuple[str, bytes]]:
|
132
|
+
with ZipFile(self.path, "r") as zip_file:
|
133
|
+
for filename in sorted(zip_file.namelist()):
|
134
|
+
# Skip pure directory entries
|
135
|
+
if filename.endswith("/"):
|
136
|
+
continue
|
137
|
+
|
138
|
+
# Handle files in the egg-info directory specially, selectively moving
|
139
|
+
# them to the dist-info directory while converting as needed
|
140
|
+
if filename.startswith("EGG-INFO/"):
|
141
|
+
if filename == "EGG-INFO/requires.txt":
|
142
|
+
requires = zip_file.read(filename).decode("utf-8")
|
143
|
+
convert_requires(requires, self.metadata)
|
144
|
+
elif filename == "EGG-INFO/PKG-INFO":
|
145
|
+
pkginfo = zip_file.read(filename).decode("utf-8")
|
146
|
+
convert_pkg_info(pkginfo, self.metadata)
|
147
|
+
elif filename == "EGG-INFO/entry_points.txt":
|
148
|
+
yield (
|
149
|
+
f"{self.dist_info_dir}/entry_points.txt",
|
150
|
+
zip_file.read(filename),
|
151
|
+
)
|
152
|
+
|
153
|
+
continue
|
154
|
+
|
155
|
+
# For any other file, just pass it through
|
156
|
+
yield filename, zip_file.read(filename)
|
157
|
+
|
158
|
+
|
159
|
+
class EggDirectorySource(EggFileSource):
|
160
|
+
def generate_contents(self) -> Iterator[tuple[str, bytes]]:
|
161
|
+
for dirpath, _, filenames in os.walk(self.path):
|
162
|
+
for filename in sorted(filenames):
|
163
|
+
path = Path(dirpath, filename)
|
164
|
+
if path.parent.name == "EGG-INFO":
|
165
|
+
if path.name == "requires.txt":
|
166
|
+
requires = path.read_text("utf-8")
|
167
|
+
convert_requires(requires, self.metadata)
|
168
|
+
elif path.name == "PKG-INFO":
|
169
|
+
pkginfo = path.read_text("utf-8")
|
170
|
+
convert_pkg_info(pkginfo, self.metadata)
|
171
|
+
if name := self.metadata.get("Name"):
|
172
|
+
self.name = normalize(name)
|
173
|
+
|
174
|
+
if version := self.metadata.get("Version"):
|
175
|
+
self.version = version
|
176
|
+
elif path.name == "entry_points.txt":
|
177
|
+
yield (
|
178
|
+
f"{self.dist_info_dir}/entry_points.txt",
|
179
|
+
path.read_bytes(),
|
180
|
+
)
|
181
|
+
|
182
|
+
continue
|
183
|
+
|
184
|
+
# For any other file, just pass it through
|
185
|
+
yield str(path.relative_to(self.path)), path.read_bytes()
|
186
|
+
|
187
|
+
|
188
|
+
class WininstFileSource(ConvertSource):
|
189
|
+
"""
|
190
|
+
Handles distributions created with ``bdist_wininst``.
|
105
191
|
|
106
192
|
The egginfo filename has the format::
|
107
193
|
|
@@ -129,145 +215,119 @@ def parse_wininst_info(wininfo_name: str, egginfo_name: str | None):
|
|
129
215
|
should therefore ignore the architecture if the content is pure-python.
|
130
216
|
"""
|
131
217
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
# XXX grab wininst .ini - between .exe, padding, and first zip file.
|
196
|
-
members: list[str] = []
|
197
|
-
egginfo_name = ""
|
198
|
-
for zipinfo in bdw.infolist():
|
199
|
-
key, basename = zipinfo.filename.split("/", 1)
|
200
|
-
key = key.lower()
|
201
|
-
basepath = paths.get(key, None)
|
202
|
-
if basepath is None:
|
203
|
-
basepath = datadir + key.lower() + "/"
|
204
|
-
oldname = zipinfo.filename
|
205
|
-
newname = basepath + basename
|
206
|
-
zipinfo.filename = newname
|
207
|
-
del bdw.NameToInfo[oldname]
|
208
|
-
bdw.NameToInfo[newname] = zipinfo
|
209
|
-
# Collect member names, but omit '' (from an entry like "PLATLIB/"
|
210
|
-
if newname:
|
211
|
-
members.append(newname)
|
212
|
-
# Remember egg-info name for the egg2dist call below
|
213
|
-
if not egginfo_name:
|
214
|
-
if newname.endswith(".egg-info"):
|
215
|
-
egginfo_name = newname
|
216
|
-
elif ".egg-info/" in newname:
|
217
|
-
egginfo_name, sep, _ = newname.rpartition("/")
|
218
|
-
dir = tempfile.mkdtemp(suffix="_b2w")
|
219
|
-
bdw.extractall(dir, members)
|
220
|
-
|
221
|
-
# egg2wheel
|
222
|
-
abi = "none"
|
223
|
-
pyver = info["pyver"]
|
224
|
-
arch = (info["arch"] or "any").replace(".", "_").replace("-", "_")
|
225
|
-
# Wininst installers always have arch even if they are not
|
226
|
-
# architecture-specific (because the format itself is).
|
227
|
-
# So, assume the content is architecture-neutral if root is purelib.
|
228
|
-
if root_is_purelib:
|
229
|
-
arch = "any"
|
230
|
-
# If the installer is architecture-specific, it's almost certainly also
|
231
|
-
# CPython-specific.
|
232
|
-
if arch != "any":
|
233
|
-
pyver = pyver.replace("py", "cp")
|
234
|
-
wheel_name = "-".join((dist_info, pyver, abi, arch))
|
235
|
-
if root_is_purelib:
|
236
|
-
bw = bdist_wheel(Distribution())
|
237
|
-
else:
|
238
|
-
bw = _bdist_wheel_tag(Distribution())
|
239
|
-
|
240
|
-
bw.root_is_pure = root_is_purelib
|
241
|
-
bw.python_tag = pyver
|
242
|
-
bw.plat_name_supplied = True
|
243
|
-
bw.plat_name = info["arch"] or "any"
|
244
|
-
|
245
|
-
if not root_is_purelib:
|
246
|
-
bw.full_tag_supplied = True
|
247
|
-
bw.full_tag = (pyver, abi, arch)
|
248
|
-
|
249
|
-
dist_info_dir = os.path.join(dir, f"{dist_info}.dist-info")
|
250
|
-
bw.egg2dist(os.path.join(dir, egginfo_name), dist_info_dir)
|
251
|
-
bw.write_wheelfile(dist_info_dir, generator="wininst2wheel")
|
252
|
-
|
253
|
-
wheel_path = os.path.join(dest_dir, wheel_name)
|
254
|
-
with WheelFile(wheel_path, "w") as wf:
|
255
|
-
wf.write_files(dir)
|
256
|
-
|
257
|
-
shutil.rmtree(dir)
|
218
|
+
def __init__(self, path: Path):
|
219
|
+
self.path = path
|
220
|
+
self.metadata = Message()
|
221
|
+
|
222
|
+
# Determine the initial architecture and Python version from the file name
|
223
|
+
# (if possible)
|
224
|
+
if match := wininst_re.search(path.name):
|
225
|
+
self.platform = normalize(match.group("platform"))
|
226
|
+
if pyver := match.group("pyver"):
|
227
|
+
self.pyver = pyver.replace(".", "")
|
228
|
+
self.abi = pyver.replace("py", "cp")
|
229
|
+
|
230
|
+
# Look for an .egg-info directory and any .pyd files for more precise info
|
231
|
+
egg_info_found = pyd_found = False
|
232
|
+
with ZipFile(self.path) as zip_file:
|
233
|
+
for filename in zip_file.namelist():
|
234
|
+
prefix, filename = filename.split("/", 1)
|
235
|
+
if not egg_info_found and (match := egg_info_re.match(filename)):
|
236
|
+
egg_info_found = True
|
237
|
+
self.name = normalize(match.group("name"))
|
238
|
+
self.version = match.group("ver")
|
239
|
+
if pyver := match.group("pyver"):
|
240
|
+
self.pyver = pyver.replace(".", "")
|
241
|
+
elif not pyd_found and (match := pyd_re.search(filename)):
|
242
|
+
pyd_found = True
|
243
|
+
self.abi = match.group("abi")
|
244
|
+
self.platform = match.group("platform")
|
245
|
+
|
246
|
+
if egg_info_found and pyd_found:
|
247
|
+
break
|
248
|
+
|
249
|
+
def generate_contents(self) -> Iterator[tuple[str, bytes]]:
|
250
|
+
dist_info_dir = f"{self.name}-{self.version}.dist-info"
|
251
|
+
data_dir = f"{self.name}-{self.version}.data"
|
252
|
+
with ZipFile(self.path, "r") as zip_file:
|
253
|
+
for filename in sorted(zip_file.namelist()):
|
254
|
+
# Skip pure directory entries
|
255
|
+
if filename.endswith("/"):
|
256
|
+
continue
|
257
|
+
|
258
|
+
# Handle files in the egg-info directory specially, selectively moving
|
259
|
+
# them to the dist-info directory while converting as needed
|
260
|
+
prefix, target_filename = filename.split("/", 1)
|
261
|
+
if egg_info_re.search(target_filename):
|
262
|
+
basename = target_filename.rsplit("/", 1)[-1]
|
263
|
+
if basename == "requires.txt":
|
264
|
+
requires = zip_file.read(filename).decode("utf-8")
|
265
|
+
convert_requires(requires, self.metadata)
|
266
|
+
elif basename == "PKG-INFO":
|
267
|
+
pkginfo = zip_file.read(filename).decode("utf-8")
|
268
|
+
convert_pkg_info(pkginfo, self.metadata)
|
269
|
+
elif basename == "entry_points.txt":
|
270
|
+
yield (
|
271
|
+
f"{dist_info_dir}/entry_points.txt",
|
272
|
+
zip_file.read(filename),
|
273
|
+
)
|
274
|
+
|
275
|
+
continue
|
276
|
+
elif prefix == "SCRIPTS":
|
277
|
+
target_filename = f"{data_dir}/scripts/{target_filename}"
|
278
|
+
|
279
|
+
# For any other file, just pass it through
|
280
|
+
yield target_filename, zip_file.read(filename)
|
258
281
|
|
259
282
|
|
260
283
|
def convert(files: list[str], dest_dir: str, verbose: bool) -> None:
|
261
284
|
for pat in files:
|
262
|
-
for
|
263
|
-
|
264
|
-
|
285
|
+
for archive in iglob(pat):
|
286
|
+
path = Path(archive)
|
287
|
+
if path.suffix == ".egg":
|
288
|
+
if path.is_dir():
|
289
|
+
source: ConvertSource = EggDirectorySource(path)
|
290
|
+
else:
|
291
|
+
source = EggFileSource(path)
|
265
292
|
else:
|
266
|
-
|
293
|
+
source = WininstFileSource(path)
|
267
294
|
|
268
295
|
if verbose:
|
269
|
-
print(f"{
|
296
|
+
print(f"{archive}...", flush=True, end="")
|
297
|
+
|
298
|
+
dest_path = Path(dest_dir) / (
|
299
|
+
f"{source.name}-{source.version}-{source.pyver}-{source.abi}"
|
300
|
+
f"-{source.platform}.whl"
|
301
|
+
)
|
302
|
+
with WheelFile(dest_path, "w") as wheelfile:
|
303
|
+
for name_or_zinfo, contents in source.generate_contents():
|
304
|
+
wheelfile.writestr(name_or_zinfo, contents)
|
305
|
+
|
306
|
+
# Write the METADATA file
|
307
|
+
wheelfile.writestr(
|
308
|
+
f"{source.dist_info_dir}/METADATA",
|
309
|
+
source.metadata.as_string(policy=serialization_policy).encode(
|
310
|
+
"utf-8"
|
311
|
+
),
|
312
|
+
)
|
313
|
+
|
314
|
+
# Write the WHEEL file
|
315
|
+
wheel_message = Message()
|
316
|
+
wheel_message.add_header("Wheel-Version", "1.0")
|
317
|
+
wheel_message.add_header("Generator", GENERATOR)
|
318
|
+
wheel_message.add_header(
|
319
|
+
"Root-Is-Purelib", str(source.platform == "any").lower()
|
320
|
+
)
|
321
|
+
tags = parse_tag(f"{source.pyver}-{source.abi}-{source.platform}")
|
322
|
+
for tag in sorted(tags, key=lambda tag: tag.interpreter):
|
323
|
+
wheel_message.add_header("Tag", str(tag))
|
324
|
+
|
325
|
+
wheelfile.writestr(
|
326
|
+
f"{source.dist_info_dir}/WHEEL",
|
327
|
+
wheel_message.as_string(policy=serialization_policy).encode(
|
328
|
+
"utf-8"
|
329
|
+
),
|
330
|
+
)
|
270
331
|
|
271
|
-
conv(installer, dest_dir)
|
272
332
|
if verbose:
|
273
333
|
print("OK")
|
@@ -5,15 +5,6 @@ import logging
|
|
5
5
|
|
6
6
|
log = logging.getLogger("wheel")
|
7
7
|
|
8
|
-
# ensure Python logging is configured
|
9
|
-
try:
|
10
|
-
__import__("setuptools.logging")
|
11
|
-
except ImportError:
|
12
|
-
# setuptools < ??
|
13
|
-
from . import _setuptools_logging
|
14
|
-
|
15
|
-
_setuptools_logging.configure()
|
16
|
-
|
17
8
|
|
18
9
|
def urlsafe_b64encode(data: bytes) -> bytes:
|
19
10
|
"""urlsafe_b64encode without padding"""
|
@@ -3,8 +3,7 @@ import os
|
|
3
3
|
import sys
|
4
4
|
|
5
5
|
report_url = (
|
6
|
-
"https://github.com/pypa/setuptools/issues/new?"
|
7
|
-
"template=distutils-deprecation.yml"
|
6
|
+
"https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml"
|
8
7
|
)
|
9
8
|
|
10
9
|
|
@@ -91,7 +90,7 @@ def do_override():
|
|
91
90
|
|
92
91
|
|
93
92
|
class _TrivialRe:
|
94
|
-
def __init__(self, *patterns):
|
93
|
+
def __init__(self, *patterns) -> None:
|
95
94
|
self._patterns = patterns
|
96
95
|
|
97
96
|
def match(self, string):
|
@@ -45,7 +45,7 @@ class CaseInsensitiveEnumMeta(EnumMeta):
|
|
45
45
|
|
46
46
|
def __getitem__(cls, name: str) -> Any:
|
47
47
|
# disabling pylint bc of pylint bug https://github.com/PyCQA/astroid/issues/713
|
48
|
-
return super(CaseInsensitiveEnumMeta, cls).__getitem__(name.upper())
|
48
|
+
return super(CaseInsensitiveEnumMeta, cls).__getitem__(name.upper())
|
49
49
|
|
50
50
|
def __getattr__(cls, name: str) -> Enum:
|
51
51
|
"""Return the enum member matching `name`.
|
@@ -140,7 +140,7 @@ class PipelineClient(PipelineClientBase, Generic[HTTPRequestType, HTTPResponseTy
|
|
140
140
|
[
|
141
141
|
config.logging_policy,
|
142
142
|
DistributedTracingPolicy(**kwargs),
|
143
|
-
SensitiveHeaderCleanupPolicy(**kwargs) if config.redirect_policy else None,
|
143
|
+
(SensitiveHeaderCleanupPolicy(**kwargs) if config.redirect_policy else None),
|
144
144
|
config.http_logging_policy or HttpLoggingPolicy(**kwargs),
|
145
145
|
]
|
146
146
|
)
|
@@ -195,7 +195,7 @@ class PipelineClient(PipelineClientBase, Generic[HTTPRequestType, HTTPResponseTy
|
|
195
195
|
:rtype: ~azure.core.rest.HttpResponse
|
196
196
|
"""
|
197
197
|
return_pipeline_response = kwargs.pop("_return_pipeline_response", False)
|
198
|
-
pipeline_response = self._pipeline.run(request, stream=stream, **kwargs)
|
198
|
+
pipeline_response = self._pipeline.run(request, stream=stream, **kwargs)
|
199
199
|
if return_pipeline_response:
|
200
200
|
return pipeline_response # type: ignore # This is a private API we don't want to type in signature
|
201
201
|
return pipeline_response.http_response
|
@@ -165,7 +165,9 @@ class AsyncPipelineClient(
|
|
165
165
|
self._base_url = base_url
|
166
166
|
self._pipeline = pipeline or self._build_pipeline(self._config, **kwargs)
|
167
167
|
|
168
|
-
async def __aenter__(
|
168
|
+
async def __aenter__(
|
169
|
+
self,
|
170
|
+
) -> AsyncPipelineClient[HTTPRequestType, AsyncHTTPResponseType]:
|
169
171
|
await self._pipeline.__aenter__()
|
170
172
|
return self
|
171
173
|
|
@@ -223,7 +225,7 @@ class AsyncPipelineClient(
|
|
223
225
|
[
|
224
226
|
config.logging_policy,
|
225
227
|
DistributedTracingPolicy(**kwargs),
|
226
|
-
SensitiveHeaderCleanupPolicy(**kwargs) if config.redirect_policy else None,
|
228
|
+
(SensitiveHeaderCleanupPolicy(**kwargs) if config.redirect_policy else None),
|
227
229
|
config.http_logging_policy or HttpLoggingPolicy(**kwargs),
|
228
230
|
]
|
229
231
|
)
|
@@ -263,7 +265,7 @@ class AsyncPipelineClient(
|
|
263
265
|
|
264
266
|
async def _make_pipeline_call(self, request: HTTPRequestType, **kwargs) -> AsyncHTTPResponseType:
|
265
267
|
return_pipeline_response = kwargs.pop("_return_pipeline_response", False)
|
266
|
-
pipeline_response = await self._pipeline.run(request, **kwargs)
|
268
|
+
pipeline_response = await self._pipeline.run(request, **kwargs)
|
267
269
|
if return_pipeline_response:
|
268
270
|
return pipeline_response # type: ignore # This is a private API we don't want to type in signature
|
269
271
|
return pipeline_response.http_response
|