py2docfx 0.1.9.dev1897607__py3-none-any.whl → 0.1.9.dev1926139__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/__main__.py +77 -22
- py2docfx/convert_prepare/environment.py +59 -19
- py2docfx/convert_prepare/generate_document.py +12 -5
- py2docfx/convert_prepare/get_source.py +5 -1
- py2docfx/convert_prepare/git.py +24 -20
- py2docfx/convert_prepare/package_info.py +15 -9
- py2docfx/convert_prepare/pip_utils.py +29 -8
- py2docfx/convert_prepare/post_process/merge_toc.py +5 -1
- py2docfx/convert_prepare/sphinx_caller.py +31 -14
- py2docfx/convert_prepare/tests/test_generate_document.py +6 -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 +5 -3
- py2docfx/convert_prepare/tests/utils.py +11 -0
- py2docfx/docfx_yaml/build_finished.py +11 -3
- py2docfx/docfx_yaml/convert_class.py +4 -2
- py2docfx/docfx_yaml/convert_enum.py +4 -2
- py2docfx/docfx_yaml/convert_module.py +4 -2
- py2docfx/docfx_yaml/convert_package.py +4 -2
- py2docfx/docfx_yaml/logger.py +68 -0
- py2docfx/docfx_yaml/process_doctree.py +6 -4
- py2docfx/docfx_yaml/translator.py +5 -7
- py2docfx/docfx_yaml/writer.py +10 -4
- py2docfx/docfx_yaml/yaml_builder.py +0 -1
- 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 +25 -19
- 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 +43 -84
- 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 +15 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +26 -30
- 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 +57 -80
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +32 -32
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
- 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/saveopts.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +11 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +3 -3
- 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 +12 -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 +51 -47
- 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 +5 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +35 -24
- 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 +2 -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 +171 -76
- 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/unicode_utils.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 +279 -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/jwt/__init__.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +31 -16
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +75 -19
- py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +4 -2
- py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +7 -10
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -3
- 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 +25 -19
- 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 +43 -84
- 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 +15 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +26 -30
- 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 +57 -80
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +32 -32
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
- 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/saveopts.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +11 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +3 -3
- 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 +12 -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 +51 -47
- 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 +5 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +35 -24
- 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 +2 -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 +171 -76
- 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/unicode_utils.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 +279 -220
- py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/RECORD +327 -385
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.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/convert_prepare/conf_templates/{master_doc.rst_t → root_doc.rst_t} +0 -0
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/top_level.txt +0 -0
@@ -4,11 +4,12 @@
|
|
4
4
|
|
5
5
|
from __future__ import annotations
|
6
6
|
|
7
|
+
import functools
|
7
8
|
import re
|
8
9
|
from typing import NewType, Tuple, Union, cast
|
9
10
|
|
10
11
|
from .tags import Tag, parse_tag
|
11
|
-
from .version import InvalidVersion, Version
|
12
|
+
from .version import InvalidVersion, Version, _TrimmedRelease
|
12
13
|
|
13
14
|
BuildTag = Union[Tuple[()], Tuple[int, str]]
|
14
15
|
NormalizedName = NewType("NormalizedName", str)
|
@@ -54,52 +55,40 @@ def is_normalized_name(name: str) -> bool:
|
|
54
55
|
return _normalized_regex.match(name) is not None
|
55
56
|
|
56
57
|
|
58
|
+
@functools.singledispatch
|
57
59
|
def canonicalize_version(
|
58
60
|
version: Version | str, *, strip_trailing_zero: bool = True
|
59
61
|
) -> str:
|
60
62
|
"""
|
61
|
-
|
62
|
-
with the way it handles the release segment.
|
63
|
-
"""
|
64
|
-
if isinstance(version, str):
|
65
|
-
try:
|
66
|
-
parsed = Version(version)
|
67
|
-
except InvalidVersion:
|
68
|
-
# Legacy versions cannot be normalized
|
69
|
-
return version
|
70
|
-
else:
|
71
|
-
parsed = version
|
72
|
-
|
73
|
-
parts = []
|
63
|
+
Return a canonical form of a version as a string.
|
74
64
|
|
75
|
-
|
76
|
-
|
77
|
-
parts.append(f"{parsed.epoch}!")
|
65
|
+
>>> canonicalize_version('1.0.1')
|
66
|
+
'1.0.1'
|
78
67
|
|
79
|
-
|
80
|
-
|
81
|
-
if strip_trailing_zero:
|
82
|
-
# NB: This strips trailing '.0's to normalize
|
83
|
-
release_segment = re.sub(r"(\.0)+$", "", release_segment)
|
84
|
-
parts.append(release_segment)
|
68
|
+
Per PEP 625, versions may have multiple canonical forms, differing
|
69
|
+
only by trailing zeros.
|
85
70
|
|
86
|
-
|
87
|
-
|
88
|
-
|
71
|
+
>>> canonicalize_version('1.0.0')
|
72
|
+
'1'
|
73
|
+
>>> canonicalize_version('1.0.0', strip_trailing_zero=False)
|
74
|
+
'1.0.0'
|
89
75
|
|
90
|
-
|
91
|
-
if parsed.post is not None:
|
92
|
-
parts.append(f".post{parsed.post}")
|
76
|
+
Invalid versions are returned unaltered.
|
93
77
|
|
94
|
-
|
95
|
-
|
96
|
-
|
78
|
+
>>> canonicalize_version('foo bar baz')
|
79
|
+
'foo bar baz'
|
80
|
+
"""
|
81
|
+
return str(_TrimmedRelease(str(version)) if strip_trailing_zero else version)
|
97
82
|
|
98
|
-
# Local version segment
|
99
|
-
if parsed.local is not None:
|
100
|
-
parts.append(f"+{parsed.local}")
|
101
83
|
|
102
|
-
|
84
|
+
@canonicalize_version.register
|
85
|
+
def _(version: str, *, strip_trailing_zero: bool = True) -> str:
|
86
|
+
try:
|
87
|
+
parsed = Version(version)
|
88
|
+
except InvalidVersion:
|
89
|
+
# Legacy versions cannot be normalized
|
90
|
+
return version
|
91
|
+
return canonicalize_version(parsed, strip_trailing_zero=strip_trailing_zero)
|
103
92
|
|
104
93
|
|
105
94
|
def parse_wheel_filename(
|
@@ -107,28 +96,28 @@ def parse_wheel_filename(
|
|
107
96
|
) -> tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]:
|
108
97
|
if not filename.endswith(".whl"):
|
109
98
|
raise InvalidWheelFilename(
|
110
|
-
f"Invalid wheel filename (extension must be '.whl'): {filename}"
|
99
|
+
f"Invalid wheel filename (extension must be '.whl'): {filename!r}"
|
111
100
|
)
|
112
101
|
|
113
102
|
filename = filename[:-4]
|
114
103
|
dashes = filename.count("-")
|
115
104
|
if dashes not in (4, 5):
|
116
105
|
raise InvalidWheelFilename(
|
117
|
-
f"Invalid wheel filename (wrong number of parts): {filename}"
|
106
|
+
f"Invalid wheel filename (wrong number of parts): {filename!r}"
|
118
107
|
)
|
119
108
|
|
120
109
|
parts = filename.split("-", dashes - 2)
|
121
110
|
name_part = parts[0]
|
122
111
|
# See PEP 427 for the rules on escaping the project name.
|
123
112
|
if "__" in name_part or re.match(r"^[\w\d._]*$", name_part, re.UNICODE) is None:
|
124
|
-
raise InvalidWheelFilename(f"Invalid project name: {filename}")
|
113
|
+
raise InvalidWheelFilename(f"Invalid project name: {filename!r}")
|
125
114
|
name = canonicalize_name(name_part)
|
126
115
|
|
127
116
|
try:
|
128
117
|
version = Version(parts[1])
|
129
118
|
except InvalidVersion as e:
|
130
119
|
raise InvalidWheelFilename(
|
131
|
-
f"Invalid wheel filename (invalid version): {filename}"
|
120
|
+
f"Invalid wheel filename (invalid version): {filename!r}"
|
132
121
|
) from e
|
133
122
|
|
134
123
|
if dashes == 5:
|
@@ -136,7 +125,7 @@ def parse_wheel_filename(
|
|
136
125
|
build_match = _build_tag_regex.match(build_part)
|
137
126
|
if build_match is None:
|
138
127
|
raise InvalidWheelFilename(
|
139
|
-
f"Invalid build number: {build_part} in
|
128
|
+
f"Invalid build number: {build_part} in {filename!r}"
|
140
129
|
)
|
141
130
|
build = cast(BuildTag, (int(build_match.group(1)), build_match.group(2)))
|
142
131
|
else:
|
@@ -153,14 +142,14 @@ def parse_sdist_filename(filename: str) -> tuple[NormalizedName, Version]:
|
|
153
142
|
else:
|
154
143
|
raise InvalidSdistFilename(
|
155
144
|
f"Invalid sdist filename (extension must be '.tar.gz' or '.zip'):"
|
156
|
-
f" {filename}"
|
145
|
+
f" {filename!r}"
|
157
146
|
)
|
158
147
|
|
159
148
|
# We are requiring a PEP 440 version, which cannot contain dashes,
|
160
149
|
# so we split on the last dash.
|
161
150
|
name_part, sep, version_part = file_stem.rpartition("-")
|
162
151
|
if not sep:
|
163
|
-
raise InvalidSdistFilename(f"Invalid sdist filename: {filename}")
|
152
|
+
raise InvalidSdistFilename(f"Invalid sdist filename: {filename!r}")
|
164
153
|
|
165
154
|
name = canonicalize_name(name_part)
|
166
155
|
|
@@ -168,7 +157,7 @@ def parse_sdist_filename(filename: str) -> tuple[NormalizedName, Version]:
|
|
168
157
|
version = Version(version_part)
|
169
158
|
except InvalidVersion as e:
|
170
159
|
raise InvalidSdistFilename(
|
171
|
-
f"Invalid sdist filename (invalid version): {filename}"
|
160
|
+
f"Invalid sdist filename (invalid version): {filename!r}"
|
172
161
|
) from e
|
173
162
|
|
174
163
|
return (name, version)
|
@@ -15,7 +15,7 @@ from typing import Any, Callable, NamedTuple, SupportsInt, Tuple, Union
|
|
15
15
|
|
16
16
|
from ._structures import Infinity, InfinityType, NegativeInfinity, NegativeInfinityType
|
17
17
|
|
18
|
-
__all__ = ["VERSION_PATTERN", "
|
18
|
+
__all__ = ["VERSION_PATTERN", "InvalidVersion", "Version", "parse"]
|
19
19
|
|
20
20
|
LocalType = Tuple[Union[int, str], ...]
|
21
21
|
|
@@ -199,7 +199,7 @@ class Version(_BaseVersion):
|
|
199
199
|
# Validate the version and parse it into pieces
|
200
200
|
match = self._regex.search(version)
|
201
201
|
if not match:
|
202
|
-
raise InvalidVersion(f"Invalid version:
|
202
|
+
raise InvalidVersion(f"Invalid version: {version!r}")
|
203
203
|
|
204
204
|
# Store the parsed out pieces of the version
|
205
205
|
self._version = _Version(
|
@@ -232,7 +232,7 @@ class Version(_BaseVersion):
|
|
232
232
|
return f"<Version('{self}')>"
|
233
233
|
|
234
234
|
def __str__(self) -> str:
|
235
|
-
"""A string representation of the version that can be
|
235
|
+
"""A string representation of the version that can be round-tripped.
|
236
236
|
|
237
237
|
>>> str(Version("1.0a5"))
|
238
238
|
'1.0a5'
|
@@ -350,8 +350,8 @@ class Version(_BaseVersion):
|
|
350
350
|
'1.2.3'
|
351
351
|
>>> Version("1.2.3+abc").public
|
352
352
|
'1.2.3'
|
353
|
-
>>> Version("1.2.
|
354
|
-
'1.2.3'
|
353
|
+
>>> Version("1!1.2.3dev1+abc").public
|
354
|
+
'1!1.2.3.dev1'
|
355
355
|
"""
|
356
356
|
return str(self).split("+", 1)[0]
|
357
357
|
|
@@ -363,7 +363,7 @@ class Version(_BaseVersion):
|
|
363
363
|
'1.2.3'
|
364
364
|
>>> Version("1.2.3+abc").base_version
|
365
365
|
'1.2.3'
|
366
|
-
>>> Version("1!1.2.
|
366
|
+
>>> Version("1!1.2.3dev1+abc").base_version
|
367
367
|
'1!1.2.3'
|
368
368
|
|
369
369
|
The "base version" is the public version of the project without any pre or post
|
@@ -451,6 +451,23 @@ class Version(_BaseVersion):
|
|
451
451
|
return self.release[2] if len(self.release) >= 3 else 0
|
452
452
|
|
453
453
|
|
454
|
+
class _TrimmedRelease(Version):
|
455
|
+
@property
|
456
|
+
def release(self) -> tuple[int, ...]:
|
457
|
+
"""
|
458
|
+
Release segment without any trailing zeros.
|
459
|
+
|
460
|
+
>>> _TrimmedRelease('1.0.0').release
|
461
|
+
(1,)
|
462
|
+
>>> _TrimmedRelease('0.0').release
|
463
|
+
(0,)
|
464
|
+
"""
|
465
|
+
rel = super().release
|
466
|
+
nonzeros = (index for index, val in enumerate(rel) if val)
|
467
|
+
last_nonzero = max(nonzeros, default=0)
|
468
|
+
return rel[: last_nonzero + 1]
|
469
|
+
|
470
|
+
|
454
471
|
def _parse_letter_version(
|
455
472
|
letter: str | None, number: str | bytes | SupportsInt | None
|
456
473
|
) -> tuple[str, int] | None:
|
@@ -476,7 +493,9 @@ def _parse_letter_version(
|
|
476
493
|
letter = "post"
|
477
494
|
|
478
495
|
return letter, int(number)
|
479
|
-
|
496
|
+
|
497
|
+
assert not letter
|
498
|
+
if number:
|
480
499
|
# We assume if we are given a number, but we are not given a letter
|
481
500
|
# then this is using the implicit post release syntax (e.g. 1.0-1)
|
482
501
|
letter = "post"
|
@@ -31,7 +31,9 @@ def default_filter(src, dst):
|
|
31
31
|
return dst
|
32
32
|
|
33
33
|
|
34
|
-
def unpack_archive(
|
34
|
+
def unpack_archive(
|
35
|
+
filename, extract_dir, progress_filter=default_filter, drivers=None
|
36
|
+
) -> None:
|
35
37
|
"""Unpack `filename` to `extract_dir`, or raise ``UnrecognizedFormat``
|
36
38
|
|
37
39
|
`progress_filter` is a function taking two arguments: a source path
|
@@ -63,7 +65,7 @@ def unpack_archive(filename, extract_dir, progress_filter=default_filter, driver
|
|
63
65
|
raise UnrecognizedFormat("Not a recognized archive type: %s" % filename)
|
64
66
|
|
65
67
|
|
66
|
-
def unpack_directory(filename, extract_dir, progress_filter=default_filter):
|
68
|
+
def unpack_directory(filename, extract_dir, progress_filter=default_filter) -> None:
|
67
69
|
""" "Unpack" a directory, using the same interface as for archives
|
68
70
|
|
69
71
|
Raises ``UnrecognizedFormat`` if `filename` is not a directory
|
@@ -90,7 +92,7 @@ def unpack_directory(filename, extract_dir, progress_filter=default_filter):
|
|
90
92
|
shutil.copystat(f, target)
|
91
93
|
|
92
94
|
|
93
|
-
def unpack_zipfile(filename, extract_dir, progress_filter=default_filter):
|
95
|
+
def unpack_zipfile(filename, extract_dir, progress_filter=default_filter) -> None:
|
94
96
|
"""Unpack zip `filename` to `extract_dir`
|
95
97
|
|
96
98
|
Raises ``UnrecognizedFormat`` if `filename` is not a zipfile (as determined
|
@@ -185,7 +187,7 @@ def _iter_open_tar(tar_obj, extract_dir, progress_filter):
|
|
185
187
|
yield member, final_dst
|
186
188
|
|
187
189
|
|
188
|
-
def unpack_tarfile(filename, extract_dir, progress_filter=default_filter):
|
190
|
+
def unpack_tarfile(filename, extract_dir, progress_filter=default_filter) -> bool:
|
189
191
|
"""Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir`
|
190
192
|
|
191
193
|
Raises ``UnrecognizedFormat`` if `filename` is not a tarfile (as determined
|
@@ -37,8 +37,9 @@ import sys
|
|
37
37
|
import tempfile
|
38
38
|
import tokenize
|
39
39
|
import warnings
|
40
|
+
from collections.abc import Iterable, Iterator, Mapping
|
40
41
|
from pathlib import Path
|
41
|
-
from typing import TYPE_CHECKING,
|
42
|
+
from typing import TYPE_CHECKING, Union
|
42
43
|
|
43
44
|
import setuptools
|
44
45
|
|
@@ -53,7 +54,6 @@ from distutils.util import strtobool
|
|
53
54
|
if TYPE_CHECKING:
|
54
55
|
from typing_extensions import TypeAlias
|
55
56
|
|
56
|
-
|
57
57
|
__all__ = [
|
58
58
|
'get_requires_for_build_sdist',
|
59
59
|
'get_requires_for_build_wheel',
|
@@ -72,7 +72,7 @@ LEGACY_EDITABLE = "legacy-editable" in SETUPTOOLS_ENABLE_FEATURES.replace("_", "
|
|
72
72
|
|
73
73
|
|
74
74
|
class SetupRequirementsError(BaseException):
|
75
|
-
def __init__(self, specifiers):
|
75
|
+
def __init__(self, specifiers) -> None:
|
76
76
|
self.specifiers = specifiers
|
77
77
|
|
78
78
|
|
@@ -91,11 +91,11 @@ class Distribution(setuptools.dist.Distribution):
|
|
91
91
|
for the duration of this context.
|
92
92
|
"""
|
93
93
|
orig = distutils.core.Distribution
|
94
|
-
distutils.core.Distribution = cls
|
94
|
+
distutils.core.Distribution = cls # type: ignore[misc] # monkeypatching
|
95
95
|
try:
|
96
96
|
yield
|
97
97
|
finally:
|
98
|
-
distutils.core.Distribution = orig
|
98
|
+
distutils.core.Distribution = orig # type: ignore[misc] # monkeypatching
|
99
99
|
|
100
100
|
|
101
101
|
@contextlib.contextmanager
|
@@ -147,7 +147,7 @@ def suppress_known_deprecation():
|
|
147
147
|
yield
|
148
148
|
|
149
149
|
|
150
|
-
_ConfigSettings: TypeAlias = Union[
|
150
|
+
_ConfigSettings: TypeAlias = Union[Mapping[str, Union[str, list[str], None]], None]
|
151
151
|
"""
|
152
152
|
Currently the user can run::
|
153
153
|
|
@@ -291,7 +291,9 @@ class _ConfigSettingsTranslator:
|
|
291
291
|
|
292
292
|
|
293
293
|
class _BuildMetaBackend(_ConfigSettingsTranslator):
|
294
|
-
def _get_build_requires(
|
294
|
+
def _get_build_requires(
|
295
|
+
self, config_settings: _ConfigSettings, requirements: list[str]
|
296
|
+
):
|
295
297
|
sys.argv = [
|
296
298
|
*sys.argv[:1],
|
297
299
|
*self._global_args(config_settings),
|
@@ -305,7 +307,7 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
305
307
|
|
306
308
|
return requirements
|
307
309
|
|
308
|
-
def run_setup(self, setup_script='setup.py'):
|
310
|
+
def run_setup(self, setup_script: str = 'setup.py'):
|
309
311
|
# Note that we can reuse our build directory between calls
|
310
312
|
# Correctness comes first, then optimization later
|
311
313
|
__file__ = os.path.abspath(setup_script)
|
@@ -328,13 +330,15 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
328
330
|
"setup-py-deprecated.html",
|
329
331
|
)
|
330
332
|
|
331
|
-
def get_requires_for_build_wheel(self, config_settings=None):
|
333
|
+
def get_requires_for_build_wheel(self, config_settings: _ConfigSettings = None):
|
332
334
|
return self._get_build_requires(config_settings, requirements=[])
|
333
335
|
|
334
|
-
def get_requires_for_build_sdist(self, config_settings=None):
|
336
|
+
def get_requires_for_build_sdist(self, config_settings: _ConfigSettings = None):
|
335
337
|
return self._get_build_requires(config_settings, requirements=[])
|
336
338
|
|
337
|
-
def _bubble_up_info_directory(
|
339
|
+
def _bubble_up_info_directory(
|
340
|
+
self, metadata_directory: StrPath, suffix: str
|
341
|
+
) -> str:
|
338
342
|
"""
|
339
343
|
PEP 517 requires that the .dist-info directory be placed in the
|
340
344
|
metadata_directory. To comply, we MUST copy the directory to the root.
|
@@ -347,7 +351,7 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
347
351
|
# PEP 517 allow other files and dirs to exist in metadata_directory
|
348
352
|
return info_dir.name
|
349
353
|
|
350
|
-
def _find_info_directory(self, metadata_directory:
|
354
|
+
def _find_info_directory(self, metadata_directory: StrPath, suffix: str) -> Path:
|
351
355
|
for parent, dirs, _ in os.walk(metadata_directory):
|
352
356
|
candidates = [f for f in dirs if f.endswith(suffix)]
|
353
357
|
|
@@ -359,14 +363,14 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
359
363
|
raise errors.InternalError(msg)
|
360
364
|
|
361
365
|
def prepare_metadata_for_build_wheel(
|
362
|
-
self, metadata_directory, config_settings=None
|
366
|
+
self, metadata_directory: StrPath, config_settings: _ConfigSettings = None
|
363
367
|
):
|
364
368
|
sys.argv = [
|
365
369
|
*sys.argv[:1],
|
366
370
|
*self._global_args(config_settings),
|
367
371
|
"dist_info",
|
368
372
|
"--output-dir",
|
369
|
-
metadata_directory,
|
373
|
+
str(metadata_directory),
|
370
374
|
"--keep-egg-info",
|
371
375
|
]
|
372
376
|
with no_install_setup_requires():
|
@@ -431,7 +435,7 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
431
435
|
return _build(['bdist_wheel'])
|
432
436
|
|
433
437
|
try:
|
434
|
-
return _build(['bdist_wheel', '--dist-info-dir', metadata_directory])
|
438
|
+
return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
|
435
439
|
except SystemExit as ex: # pragma: nocover
|
436
440
|
# pypa/setuptools#4683
|
437
441
|
if "--dist-info-dir not recognized" not in str(ex):
|
@@ -462,7 +466,7 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
462
466
|
self,
|
463
467
|
wheel_directory: StrPath,
|
464
468
|
config_settings: _ConfigSettings = None,
|
465
|
-
metadata_directory:
|
469
|
+
metadata_directory: StrPath | None = None,
|
466
470
|
):
|
467
471
|
# XXX can or should we hide our editable_wheel command normally?
|
468
472
|
info_dir = self._get_dist_info_dir(metadata_directory)
|
@@ -473,11 +477,13 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
|
|
473
477
|
cmd, ".whl", wheel_directory, config_settings
|
474
478
|
)
|
475
479
|
|
476
|
-
def get_requires_for_build_editable(
|
480
|
+
def get_requires_for_build_editable(
|
481
|
+
self, config_settings: _ConfigSettings = None
|
482
|
+
):
|
477
483
|
return self.get_requires_for_build_wheel(config_settings)
|
478
484
|
|
479
485
|
def prepare_metadata_for_build_editable(
|
480
|
-
self, metadata_directory, config_settings=None
|
486
|
+
self, metadata_directory: StrPath, config_settings: _ConfigSettings = None
|
481
487
|
):
|
482
488
|
return self.prepare_metadata_for_build_wheel(
|
483
489
|
metadata_directory, config_settings
|
@@ -496,7 +502,7 @@ class _BuildMetaLegacyBackend(_BuildMetaBackend):
|
|
496
502
|
and will eventually be removed.
|
497
503
|
"""
|
498
504
|
|
499
|
-
def run_setup(self, setup_script='setup.py'):
|
505
|
+
def run_setup(self, setup_script: str = 'setup.py'):
|
500
506
|
# In order to maintain compatibility with scripts assuming that
|
501
507
|
# the setup.py script is in a directory on the PYTHONPATH, inject
|
502
508
|
# '' into sys.path. (pypa/setuptools#1642)
|
@@ -1,12 +1,20 @@
|
|
1
|
+
# mypy: disable_error_code=call-overload
|
2
|
+
# pyright: reportCallIssue=false, reportArgumentType=false
|
3
|
+
# Can't disable on the exact line because distutils doesn't exists on Python 3.12
|
4
|
+
# and type-checkers aren't aware of distutils_hack,
|
5
|
+
# causing distutils.command.bdist.bdist.format_commands to be Any.
|
6
|
+
|
1
7
|
import sys
|
2
8
|
|
3
9
|
from distutils.command.bdist import bdist
|
4
10
|
|
5
11
|
if 'egg' not in bdist.format_commands:
|
6
12
|
try:
|
13
|
+
# format_commands is a dict in vendored distutils
|
14
|
+
# It used to be a list in older (stdlib) distutils
|
15
|
+
# We support both for backwards compatibility
|
7
16
|
bdist.format_commands['egg'] = ('bdist_egg', "Python .egg file")
|
8
17
|
except TypeError:
|
9
|
-
# For backward compatibility with older distutils (stdlib)
|
10
18
|
bdist.format_command['egg'] = ('bdist_egg', "Python .egg file")
|
11
19
|
bdist.format_commands.append('egg')
|
12
20
|
|
@@ -11,19 +11,19 @@ from __future__ import annotations
|
|
11
11
|
|
12
12
|
import io
|
13
13
|
from collections import defaultdict
|
14
|
+
from collections.abc import Mapping
|
14
15
|
from itertools import filterfalse
|
15
|
-
from typing import
|
16
|
+
from typing import TypeVar
|
16
17
|
|
17
18
|
from jaraco.text import yield_lines
|
18
19
|
from packaging.requirements import Requirement
|
19
20
|
|
20
21
|
from .. import _reqs
|
22
|
+
from .._reqs import _StrOrIter
|
21
23
|
|
22
24
|
# dict can work as an ordered set
|
23
25
|
_T = TypeVar("_T")
|
24
|
-
_Ordered =
|
25
|
-
_ordered = dict
|
26
|
-
_StrOrIter = _reqs._StrOrIter
|
26
|
+
_Ordered = dict[_T, None]
|
27
27
|
|
28
28
|
|
29
29
|
def _prepare(
|
@@ -30,15 +30,14 @@ class alias(option_base):
|
|
30
30
|
self.args = None
|
31
31
|
self.remove = None
|
32
32
|
|
33
|
-
def finalize_options(self):
|
33
|
+
def finalize_options(self) -> None:
|
34
34
|
option_base.finalize_options(self)
|
35
35
|
if self.remove and len(self.args) != 1:
|
36
36
|
raise DistutilsOptionError(
|
37
|
-
"Must specify exactly one argument (the alias name) when "
|
38
|
-
"using --remove"
|
37
|
+
"Must specify exactly one argument (the alias name) when using --remove"
|
39
38
|
)
|
40
39
|
|
41
|
-
def run(self):
|
40
|
+
def run(self) -> None:
|
42
41
|
aliases = self.distribution.get_option_dict('aliases')
|
43
42
|
|
44
43
|
if not self.args:
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Build .egg distributions"""
|
4
4
|
|
5
|
+
from __future__ import annotations
|
6
|
+
|
5
7
|
import marshal
|
6
8
|
import os
|
7
9
|
import re
|
@@ -9,15 +11,22 @@ import sys
|
|
9
11
|
import textwrap
|
10
12
|
from sysconfig import get_path, get_python_version
|
11
13
|
from types import CodeType
|
14
|
+
from typing import TYPE_CHECKING, Literal
|
12
15
|
|
13
16
|
from setuptools import Command
|
14
17
|
from setuptools.extension import Library
|
15
18
|
|
16
|
-
from .._path import ensure_directory
|
19
|
+
from .._path import StrPathT, ensure_directory
|
17
20
|
|
18
21
|
from distutils import log
|
19
22
|
from distutils.dir_util import mkpath, remove_tree
|
20
23
|
|
24
|
+
if TYPE_CHECKING:
|
25
|
+
from typing_extensions import TypeAlias
|
26
|
+
|
27
|
+
# Same as zipfile._ZipFileMode from typeshed
|
28
|
+
_ZipFileMode: TypeAlias = Literal["r", "w", "x", "a"]
|
29
|
+
|
21
30
|
|
22
31
|
def _get_purelib():
|
23
32
|
return get_path("purelib")
|
@@ -41,7 +50,7 @@ def sorted_walk(dir):
|
|
41
50
|
yield base, dirs, files
|
42
51
|
|
43
52
|
|
44
|
-
def write_stub(resource, pyfile):
|
53
|
+
def write_stub(resource, pyfile) -> None:
|
45
54
|
_stub_template = textwrap.dedent(
|
46
55
|
"""
|
47
56
|
def __bootstrap__():
|
@@ -92,7 +101,7 @@ class bdist_egg(Command):
|
|
92
101
|
self.egg_output = None
|
93
102
|
self.exclude_source_files = None
|
94
103
|
|
95
|
-
def finalize_options(self):
|
104
|
+
def finalize_options(self) -> None:
|
96
105
|
ei_cmd = self.ei_cmd = self.get_finalized_command("egg_info")
|
97
106
|
self.egg_info = ei_cmd.egg_info
|
98
107
|
|
@@ -116,7 +125,7 @@ class bdist_egg(Command):
|
|
116
125
|
|
117
126
|
self.egg_output = os.path.join(self.dist_dir, basename + '.egg')
|
118
127
|
|
119
|
-
def do_install_data(self):
|
128
|
+
def do_install_data(self) -> None:
|
120
129
|
# Hack for packages that install data to install's --install-lib
|
121
130
|
self.get_finalized_command('install').install_lib = self.bdist_dir
|
122
131
|
|
@@ -172,7 +181,7 @@ class bdist_egg(Command):
|
|
172
181
|
self.stubs = []
|
173
182
|
to_compile = []
|
174
183
|
for p, ext_name in enumerate(ext_outputs):
|
175
|
-
filename,
|
184
|
+
filename, _ext = os.path.splitext(ext_name)
|
176
185
|
pyfile = os.path.join(self.bdist_dir, strip_module(filename) + '.py')
|
177
186
|
self.stubs.append(pyfile)
|
178
187
|
log.info("creating stub loader for %s", ext_name)
|
@@ -268,10 +277,10 @@ class bdist_egg(Command):
|
|
268
277
|
log.warn("zip_safe flag not set; analyzing archive contents...")
|
269
278
|
return analyze_egg(self.bdist_dir, self.stubs)
|
270
279
|
|
271
|
-
def gen_header(self):
|
280
|
+
def gen_header(self) -> Literal["w"]:
|
272
281
|
return 'w'
|
273
282
|
|
274
|
-
def copy_metadata_to(self, target_dir):
|
283
|
+
def copy_metadata_to(self, target_dir) -> None:
|
275
284
|
"Copy metadata (egg info) to the target_dir"
|
276
285
|
# normalize the path (so that a forward-slash in egg_info will
|
277
286
|
# match using startswith below)
|
@@ -313,7 +322,7 @@ class bdist_egg(Command):
|
|
313
322
|
return all_outputs, ext_outputs
|
314
323
|
|
315
324
|
|
316
|
-
NATIVE_EXTENSIONS = dict.fromkeys('.dll .so .dylib .pyd'.split())
|
325
|
+
NATIVE_EXTENSIONS: dict[str, None] = dict.fromkeys('.dll .so .dylib .pyd'.split())
|
317
326
|
|
318
327
|
|
319
328
|
def walk_egg(egg_dir):
|
@@ -344,7 +353,7 @@ def analyze_egg(egg_dir, stubs):
|
|
344
353
|
return safe
|
345
354
|
|
346
355
|
|
347
|
-
def write_safety_flag(egg_dir, safe):
|
356
|
+
def write_safety_flag(egg_dir, safe) -> None:
|
348
357
|
# Write or remove zip safety flag file(s)
|
349
358
|
for flag, fn in safety_flags.items():
|
350
359
|
fn = os.path.join(egg_dir, fn)
|
@@ -412,7 +421,7 @@ def iter_symbols(code):
|
|
412
421
|
yield from iter_symbols(const)
|
413
422
|
|
414
423
|
|
415
|
-
def can_scan():
|
424
|
+
def can_scan() -> bool:
|
416
425
|
if not sys.platform.startswith('java') and sys.platform != 'cli':
|
417
426
|
# CPython, PyPy, etc.
|
418
427
|
return True
|
@@ -431,8 +440,13 @@ INSTALL_DIRECTORY_ATTRS = ['install_lib', 'install_dir', 'install_data', 'instal
|
|
431
440
|
|
432
441
|
|
433
442
|
def make_zipfile(
|
434
|
-
zip_filename
|
435
|
-
|
443
|
+
zip_filename: StrPathT,
|
444
|
+
base_dir,
|
445
|
+
verbose: bool = False,
|
446
|
+
dry_run: bool = False,
|
447
|
+
compress=True,
|
448
|
+
mode: _ZipFileMode = 'w',
|
449
|
+
) -> StrPathT:
|
436
450
|
"""Create a zip file from all the files under 'base_dir'. The output
|
437
451
|
zip file will be named 'base_dir' + ".zip". Uses either the "zipfile"
|
438
452
|
Python module (if available) or the InfoZIP "zip" utility (if installed
|
@@ -441,7 +455,7 @@ def make_zipfile(
|
|
441
455
|
"""
|
442
456
|
import zipfile
|
443
457
|
|
444
|
-
mkpath(os.path.dirname(zip_filename), dry_run=dry_run)
|
458
|
+
mkpath(os.path.dirname(zip_filename), dry_run=dry_run) # type: ignore[arg-type] # python/mypy#18075
|
445
459
|
log.info("creating '%s' and adding '%s' to it", zip_filename, base_dir)
|
446
460
|
|
447
461
|
def visit(z, dirname, names):
|