py2docfx 0.1.9.dev1897554__py3-none-any.whl → 0.1.9.dev1917798__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/convert_prepare/environment.py +25 -6
- py2docfx/convert_prepare/tests/test_generate_document.py +4 -4
- py2docfx/convert_prepare/tests/test_get_source.py +6 -6
- py2docfx/convert_prepare/tests/test_params.py +1 -1
- py2docfx/convert_prepare/tests/test_sphinx_caller.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +23 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +13 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +17 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +55 -78
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +29 -30
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +9 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +48 -45
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +25 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +280 -220
- py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
- py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
- py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
- py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +1 -7
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
- py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +23 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +13 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +17 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +55 -78
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +29 -30
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +9 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +48 -45
- py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +25 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +280 -220
- py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/RECORD +307 -367
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/top_level.txt +0 -0
@@ -6,18 +6,10 @@ import numbers
|
|
6
6
|
import os
|
7
7
|
import re
|
8
8
|
import sys
|
9
|
+
from collections.abc import Iterable, MutableMapping, Sequence
|
9
10
|
from glob import iglob
|
10
11
|
from pathlib import Path
|
11
|
-
from typing import
|
12
|
-
TYPE_CHECKING,
|
13
|
-
Any,
|
14
|
-
List,
|
15
|
-
MutableMapping,
|
16
|
-
NoReturn,
|
17
|
-
Tuple,
|
18
|
-
Union,
|
19
|
-
overload,
|
20
|
-
)
|
12
|
+
from typing import TYPE_CHECKING, Any, Union
|
21
13
|
|
22
14
|
from more_itertools import partition, unique_everseen
|
23
15
|
from packaging.markers import InvalidMarker, Marker
|
@@ -30,6 +22,7 @@ from . import (
|
|
30
22
|
command as _, # noqa: F401 # imported for side-effects
|
31
23
|
)
|
32
24
|
from ._importlib import metadata
|
25
|
+
from ._path import StrPath
|
33
26
|
from ._reqs import _StrOrIter
|
34
27
|
from .config import pyprojecttoml, setupcfg
|
35
28
|
from .discovery import ConfigDiscovery
|
@@ -49,6 +42,9 @@ from distutils.util import strtobool
|
|
49
42
|
if TYPE_CHECKING:
|
50
43
|
from typing_extensions import TypeAlias
|
51
44
|
|
45
|
+
from pkg_resources import Distribution as _pkg_resources_Distribution
|
46
|
+
|
47
|
+
|
52
48
|
__all__ = ['Distribution']
|
53
49
|
|
54
50
|
_sequence = tuple, list
|
@@ -61,9 +57,15 @@ Supported iterable types that are known to be:
|
|
61
57
|
- not imply a nested type (like `dict`)
|
62
58
|
for use with `isinstance`.
|
63
59
|
"""
|
64
|
-
_Sequence: TypeAlias = Union[
|
60
|
+
_Sequence: TypeAlias = Union[tuple[str, ...], list[str]]
|
65
61
|
# This is how stringifying _Sequence would look in Python 3.10
|
66
|
-
|
62
|
+
_sequence_type_repr = "tuple[str, ...] | list[str]"
|
63
|
+
_OrderedStrSequence: TypeAlias = Union[str, dict[str, Any], Sequence[str]]
|
64
|
+
"""
|
65
|
+
:meta private:
|
66
|
+
Avoid single-use iterable. Disallow sets.
|
67
|
+
A poor approximation of an OrderedSequence (dict doesn't match a Sequence).
|
68
|
+
"""
|
67
69
|
|
68
70
|
|
69
71
|
def __getattr__(name: str) -> Any: # pragma: no cover
|
@@ -97,7 +99,7 @@ def assert_string_list(dist, attr: str, value: _Sequence) -> None:
|
|
97
99
|
assert ''.join(value) != value
|
98
100
|
except (TypeError, ValueError, AttributeError, AssertionError) as e:
|
99
101
|
raise DistutilsSetupError(
|
100
|
-
f"{attr!r} must be of type <{
|
102
|
+
f"{attr!r} must be of type <{_sequence_type_repr}> (got {value!r})"
|
101
103
|
) from e
|
102
104
|
|
103
105
|
|
@@ -111,7 +113,7 @@ def check_nsp(dist, attr, value):
|
|
111
113
|
"Distribution contains no modules or packages for "
|
112
114
|
+ "namespace package %r" % nsp
|
113
115
|
)
|
114
|
-
parent,
|
116
|
+
parent, _sep, _child = nsp.rpartition('.')
|
115
117
|
if parent and parent not in ns_packages:
|
116
118
|
distutils.log.warn(
|
117
119
|
"WARNING: %r is declared as a package namespace, but %r"
|
@@ -143,7 +145,7 @@ def check_extras(dist, attr, value):
|
|
143
145
|
|
144
146
|
|
145
147
|
def _check_extra(extra, reqs):
|
146
|
-
|
148
|
+
_name, _sep, marker = extra.partition(':')
|
147
149
|
try:
|
148
150
|
_check_marker(marker)
|
149
151
|
except InvalidMarker:
|
@@ -173,15 +175,11 @@ def invalid_unless_false(dist, attr, value):
|
|
173
175
|
raise DistutilsSetupError(f"{attr} is invalid.")
|
174
176
|
|
175
177
|
|
176
|
-
|
177
|
-
def check_requirements(dist, attr: str, value: set | dict) -> NoReturn: ...
|
178
|
-
@overload
|
179
|
-
def check_requirements(dist, attr: str, value: _StrOrIter) -> None: ...
|
180
|
-
def check_requirements(dist, attr: str, value: _StrOrIter) -> None:
|
178
|
+
def check_requirements(dist, attr: str, value: _OrderedStrSequence) -> None:
|
181
179
|
"""Verify that install_requires is a valid requirements list"""
|
182
180
|
try:
|
183
181
|
list(_reqs.parse(value))
|
184
|
-
if isinstance(value,
|
182
|
+
if isinstance(value, set):
|
185
183
|
raise TypeError("Unordered types are not allowed")
|
186
184
|
except (TypeError, ValueError) as error:
|
187
185
|
msg = (
|
@@ -234,10 +232,8 @@ def check_packages(dist, attr, value):
|
|
234
232
|
|
235
233
|
|
236
234
|
if TYPE_CHECKING:
|
237
|
-
from typing_extensions import TypeAlias
|
238
|
-
|
239
235
|
# Work around a mypy issue where type[T] can't be used as a base: https://github.com/python/mypy/issues/10962
|
240
|
-
|
236
|
+
from distutils.core import Distribution as _Distribution
|
241
237
|
else:
|
242
238
|
_Distribution = get_unpatched(distutils.core.Distribution)
|
243
239
|
|
@@ -301,7 +297,8 @@ class Distribution(_Distribution):
|
|
301
297
|
# Used by build_py, editable_wheel and install_lib commands for legacy namespaces
|
302
298
|
namespace_packages: list[str] #: :meta private: DEPRECATED
|
303
299
|
|
304
|
-
|
300
|
+
# Any: Dynamic assignment results in Incompatible types in assignment
|
301
|
+
def __init__(self, attrs: MutableMapping[str, Any] | None = None) -> None:
|
305
302
|
have_package_data = hasattr(self, "package_data")
|
306
303
|
if not have_package_data:
|
307
304
|
self.package_data: dict[str, list[str]] = {}
|
@@ -310,9 +307,9 @@ class Distribution(_Distribution):
|
|
310
307
|
self.include_package_data: bool | None = None
|
311
308
|
self.exclude_package_data: dict[str, list[str]] | None = None
|
312
309
|
# Filter-out setuptools' specific options.
|
313
|
-
self.src_root = attrs.pop("src_root", None)
|
314
|
-
self.dependency_links = attrs.pop('dependency_links', [])
|
315
|
-
self.setup_requires = attrs.pop('setup_requires', [])
|
310
|
+
self.src_root: str | None = attrs.pop("src_root", None)
|
311
|
+
self.dependency_links: list[str] = attrs.pop('dependency_links', [])
|
312
|
+
self.setup_requires: list[str] = attrs.pop('setup_requires', [])
|
316
313
|
for ep in metadata.entry_points(group='distutils.setup_keywords'):
|
317
314
|
vars(self).setdefault(ep.name, None)
|
318
315
|
|
@@ -514,7 +511,7 @@ class Distribution(_Distribution):
|
|
514
511
|
except ValueError as e:
|
515
512
|
raise DistutilsOptionError(e) from e
|
516
513
|
|
517
|
-
def warn_dash_deprecation(self, opt, section):
|
514
|
+
def warn_dash_deprecation(self, opt: str, section: str) -> str:
|
518
515
|
if section in (
|
519
516
|
'options.extras_require',
|
520
517
|
'options.data_files',
|
@@ -556,7 +553,7 @@ class Distribution(_Distribution):
|
|
556
553
|
# during bootstrapping, distribution doesn't exist
|
557
554
|
return []
|
558
555
|
|
559
|
-
def make_option_lowercase(self, opt, section):
|
556
|
+
def make_option_lowercase(self, opt: str, section: str) -> str:
|
560
557
|
if section != 'metadata' or opt.islower():
|
561
558
|
return opt
|
562
559
|
|
@@ -620,7 +617,7 @@ class Distribution(_Distribution):
|
|
620
617
|
except ValueError as e:
|
621
618
|
raise DistutilsOptionError(e) from e
|
622
619
|
|
623
|
-
def _get_project_config_files(self, filenames):
|
620
|
+
def _get_project_config_files(self, filenames: Iterable[StrPath] | None):
|
624
621
|
"""Add default file and split between INI and TOML"""
|
625
622
|
tomlfiles = []
|
626
623
|
standard_project_metadata = Path(self.src_root or os.curdir, "pyproject.toml")
|
@@ -632,7 +629,11 @@ class Distribution(_Distribution):
|
|
632
629
|
tomlfiles = [standard_project_metadata]
|
633
630
|
return filenames, tomlfiles
|
634
631
|
|
635
|
-
def parse_config_files(
|
632
|
+
def parse_config_files(
|
633
|
+
self,
|
634
|
+
filenames: Iterable[StrPath] | None = None,
|
635
|
+
ignore_option_errors: bool = False,
|
636
|
+
) -> None:
|
636
637
|
"""Parses configuration files from various levels
|
637
638
|
and loads configuration.
|
638
639
|
"""
|
@@ -649,13 +650,15 @@ class Distribution(_Distribution):
|
|
649
650
|
self._finalize_requires()
|
650
651
|
self._finalize_license_files()
|
651
652
|
|
652
|
-
def fetch_build_eggs(
|
653
|
+
def fetch_build_eggs(
|
654
|
+
self, requires: _StrOrIter
|
655
|
+
) -> list[_pkg_resources_Distribution]:
|
653
656
|
"""Resolve pre-setup requirements"""
|
654
657
|
from .installer import _fetch_build_eggs
|
655
658
|
|
656
659
|
return _fetch_build_eggs(self, requires)
|
657
660
|
|
658
|
-
def finalize_options(self):
|
661
|
+
def finalize_options(self) -> None:
|
659
662
|
"""
|
660
663
|
Allow plugins to apply arbitrary operations to the
|
661
664
|
distribution. Each hook may optionally define a 'order'
|
@@ -720,7 +723,7 @@ class Distribution(_Distribution):
|
|
720
723
|
|
721
724
|
return fetch_build_egg(self, req)
|
722
725
|
|
723
|
-
def get_command_class(self, command):
|
726
|
+
def get_command_class(self, command: str) -> type[distutils.cmd.Command]: # type: ignore[override] # Not doing complex overrides yet
|
724
727
|
"""Pluggable version of get_command_class()"""
|
725
728
|
if command in self.cmdclass:
|
726
729
|
return self.cmdclass[command]
|
@@ -752,7 +755,7 @@ class Distribution(_Distribution):
|
|
752
755
|
self.cmdclass[ep.name] = cmdclass
|
753
756
|
return _Distribution.get_command_list(self)
|
754
757
|
|
755
|
-
def include(self, **attrs):
|
758
|
+
def include(self, **attrs) -> None:
|
756
759
|
"""Add items to distribution that are named in keyword arguments
|
757
760
|
|
758
761
|
For example, 'dist.include(py_modules=["x"])' would add 'x' to
|
@@ -774,7 +777,7 @@ class Distribution(_Distribution):
|
|
774
777
|
else:
|
775
778
|
self._include_misc(k, v)
|
776
779
|
|
777
|
-
def exclude_package(self, package):
|
780
|
+
def exclude_package(self, package: str) -> None:
|
778
781
|
"""Remove packages, modules, and extensions in named package"""
|
779
782
|
|
780
783
|
pfx = package + '.'
|
@@ -795,7 +798,7 @@ class Distribution(_Distribution):
|
|
795
798
|
if p.name != package and not p.name.startswith(pfx)
|
796
799
|
]
|
797
800
|
|
798
|
-
def has_contents_for(self, package):
|
801
|
+
def has_contents_for(self, package: str) -> bool:
|
799
802
|
"""Return true if 'exclude_package(package)' would do something"""
|
800
803
|
|
801
804
|
pfx = package + '.'
|
@@ -810,7 +813,7 @@ class Distribution(_Distribution):
|
|
810
813
|
"""Handle 'exclude()' for list/tuple attrs without a special handler"""
|
811
814
|
if not isinstance(value, _sequence):
|
812
815
|
raise DistutilsSetupError(
|
813
|
-
f"{name}: setting must be of type <{
|
816
|
+
f"{name}: setting must be of type <{_sequence_type_repr}> (got {value!r})"
|
814
817
|
)
|
815
818
|
try:
|
816
819
|
old = getattr(self, name)
|
@@ -828,7 +831,7 @@ class Distribution(_Distribution):
|
|
828
831
|
|
829
832
|
if not isinstance(value, _sequence):
|
830
833
|
raise DistutilsSetupError(
|
831
|
-
f"{name}: setting must be of type <{
|
834
|
+
f"{name}: setting must be of type <{_sequence_type_repr}> (got {value!r})"
|
832
835
|
)
|
833
836
|
try:
|
834
837
|
old = getattr(self, name)
|
@@ -844,7 +847,7 @@ class Distribution(_Distribution):
|
|
844
847
|
new = [item for item in value if item not in old]
|
845
848
|
setattr(self, name, list(old) + new)
|
846
849
|
|
847
|
-
def exclude(self, **attrs):
|
850
|
+
def exclude(self, **attrs) -> None:
|
848
851
|
"""Remove items from distribution that are named in keyword arguments
|
849
852
|
|
850
853
|
For example, 'dist.exclude(py_modules=["x"])' would remove 'x' from
|
@@ -870,7 +873,7 @@ class Distribution(_Distribution):
|
|
870
873
|
def _exclude_packages(self, packages: _Sequence) -> None:
|
871
874
|
if not isinstance(packages, _sequence):
|
872
875
|
raise DistutilsSetupError(
|
873
|
-
f"packages: setting must be of type <{
|
876
|
+
f"packages: setting must be of type <{_sequence_type_repr}> (got {packages!r})"
|
874
877
|
)
|
875
878
|
list(map(self.exclude_package, packages))
|
876
879
|
|
@@ -883,7 +886,7 @@ class Distribution(_Distribution):
|
|
883
886
|
command = args[0]
|
884
887
|
aliases = self.get_option_dict('aliases')
|
885
888
|
while command in aliases:
|
886
|
-
|
889
|
+
_src, alias = aliases[command]
|
887
890
|
del aliases[command] # ensure each alias can expand only once!
|
888
891
|
import shlex
|
889
892
|
|
@@ -948,7 +951,7 @@ class Distribution(_Distribution):
|
|
948
951
|
|
949
952
|
for ext in self.ext_modules or ():
|
950
953
|
if isinstance(ext, tuple):
|
951
|
-
name,
|
954
|
+
name, _buildinfo = ext
|
952
955
|
else:
|
953
956
|
name = ext.name
|
954
957
|
if name.endswith('module'):
|
@@ -983,7 +986,7 @@ class Distribution(_Distribution):
|
|
983
986
|
finally:
|
984
987
|
sys.stdout.reconfigure(encoding=encoding)
|
985
988
|
|
986
|
-
def run_command(self, command):
|
989
|
+
def run_command(self, command) -> None:
|
987
990
|
self.set_defaults()
|
988
991
|
# Postpone defaults until all explicit configuration is considered
|
989
992
|
# (setup() args, config files, command line and plugins)
|
@@ -5,45 +5,40 @@ Provides exceptions used by setuptools modules.
|
|
5
5
|
|
6
6
|
from __future__ import annotations
|
7
7
|
|
8
|
-
from typing import TYPE_CHECKING
|
9
|
-
|
10
8
|
from distutils import errors as _distutils_errors
|
11
9
|
|
12
|
-
if TYPE_CHECKING:
|
13
|
-
from typing_extensions import TypeAlias
|
14
|
-
|
15
10
|
# Re-export errors from distutils to facilitate the migration to PEP632
|
16
11
|
|
17
|
-
ByteCompileError
|
18
|
-
CCompilerError
|
19
|
-
ClassError
|
20
|
-
CompileError
|
21
|
-
ExecError
|
22
|
-
FileError
|
23
|
-
InternalError
|
24
|
-
LibError
|
25
|
-
LinkError
|
26
|
-
ModuleError
|
27
|
-
OptionError
|
28
|
-
PlatformError
|
29
|
-
PreprocessError
|
30
|
-
SetupError
|
31
|
-
TemplateError
|
32
|
-
UnknownFileError
|
12
|
+
ByteCompileError = _distutils_errors.DistutilsByteCompileError
|
13
|
+
CCompilerError = _distutils_errors.CCompilerError
|
14
|
+
ClassError = _distutils_errors.DistutilsClassError
|
15
|
+
CompileError = _distutils_errors.CompileError
|
16
|
+
ExecError = _distutils_errors.DistutilsExecError
|
17
|
+
FileError = _distutils_errors.DistutilsFileError
|
18
|
+
InternalError = _distutils_errors.DistutilsInternalError
|
19
|
+
LibError = _distutils_errors.LibError
|
20
|
+
LinkError = _distutils_errors.LinkError
|
21
|
+
ModuleError = _distutils_errors.DistutilsModuleError
|
22
|
+
OptionError = _distutils_errors.DistutilsOptionError
|
23
|
+
PlatformError = _distutils_errors.DistutilsPlatformError
|
24
|
+
PreprocessError = _distutils_errors.PreprocessError
|
25
|
+
SetupError = _distutils_errors.DistutilsSetupError
|
26
|
+
TemplateError = _distutils_errors.DistutilsTemplateError
|
27
|
+
UnknownFileError = _distutils_errors.UnknownFileError
|
33
28
|
|
34
29
|
# The root error class in the hierarchy
|
35
|
-
BaseError
|
30
|
+
BaseError = _distutils_errors.DistutilsError
|
36
31
|
|
37
32
|
|
38
|
-
class InvalidConfigError(OptionError):
|
33
|
+
class InvalidConfigError(OptionError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
|
39
34
|
"""Error used for invalid configurations."""
|
40
35
|
|
41
36
|
|
42
|
-
class RemovedConfigError(OptionError):
|
37
|
+
class RemovedConfigError(OptionError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
|
43
38
|
"""Error used for configurations that were deprecated and removed."""
|
44
39
|
|
45
40
|
|
46
|
-
class RemovedCommandError(BaseError, RuntimeError):
|
41
|
+
class RemovedCommandError(BaseError, RuntimeError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
|
47
42
|
"""Error used for commands that have been removed in setuptools.
|
48
43
|
|
49
44
|
Since ``setuptools`` is built on ``distutils``, simply removing a command
|
@@ -53,7 +48,7 @@ class RemovedCommandError(BaseError, RuntimeError):
|
|
53
48
|
"""
|
54
49
|
|
55
50
|
|
56
|
-
class PackageDiscoveryError(BaseError, RuntimeError):
|
51
|
+
class PackageDiscoveryError(BaseError, RuntimeError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
|
57
52
|
"""Impossible to perform automatic discovery of packages and/or modules.
|
58
53
|
|
59
54
|
The current project layout or given discovery options can lead to problems when
|
@@ -4,6 +4,8 @@ import functools
|
|
4
4
|
import re
|
5
5
|
from typing import TYPE_CHECKING
|
6
6
|
|
7
|
+
from setuptools._path import StrPath
|
8
|
+
|
7
9
|
from .monkey import get_unpatched
|
8
10
|
|
9
11
|
import distutils.core
|
@@ -27,10 +29,8 @@ def _have_cython():
|
|
27
29
|
# for compatibility
|
28
30
|
have_pyrex = _have_cython
|
29
31
|
if TYPE_CHECKING:
|
30
|
-
from typing_extensions import TypeAlias
|
31
|
-
|
32
32
|
# Work around a mypy issue where type[T] can't be used as a base: https://github.com/python/mypy/issues/10962
|
33
|
-
|
33
|
+
from distutils.core import Extension as _Extension
|
34
34
|
else:
|
35
35
|
_Extension = get_unpatched(distutils.core.Extension)
|
36
36
|
|
@@ -52,7 +52,7 @@ class Extension(_Extension):
|
|
52
52
|
the full name of the extension, including any packages -- ie.
|
53
53
|
*not* a filename or pathname, but Python dotted name
|
54
54
|
|
55
|
-
:arg list[str] sources:
|
55
|
+
:arg list[str|os.PathLike[str]] sources:
|
56
56
|
list of source filenames, relative to the distribution root
|
57
57
|
(where the setup script lives), in Unix form (slash-separated)
|
58
58
|
for portability. Source files may be C, C++, SWIG (.i),
|
@@ -140,11 +140,23 @@ class Extension(_Extension):
|
|
140
140
|
_needs_stub: bool #: Private API, internal use only.
|
141
141
|
_file_name: str #: Private API, internal use only.
|
142
142
|
|
143
|
-
def __init__(
|
143
|
+
def __init__(
|
144
|
+
self,
|
145
|
+
name: str,
|
146
|
+
sources: list[StrPath],
|
147
|
+
*args,
|
148
|
+
py_limited_api: bool = False,
|
149
|
+
**kw,
|
150
|
+
) -> None:
|
144
151
|
# The *args is needed for compatibility as calls may use positional
|
145
152
|
# arguments. py_limited_api may be set only via keyword.
|
146
153
|
self.py_limited_api = py_limited_api
|
147
|
-
super().__init__(
|
154
|
+
super().__init__(
|
155
|
+
name,
|
156
|
+
sources, # type: ignore[arg-type] # Vendored version of setuptools supports PathLike
|
157
|
+
*args,
|
158
|
+
**kw,
|
159
|
+
)
|
148
160
|
|
149
161
|
def _convert_pyx_sources_to_lang(self):
|
150
162
|
"""
|
@@ -6,14 +6,21 @@ Changes include:
|
|
6
6
|
* Hidden files are not ignored.
|
7
7
|
"""
|
8
8
|
|
9
|
+
from __future__ import annotations
|
10
|
+
|
9
11
|
import fnmatch
|
10
12
|
import os
|
11
13
|
import re
|
14
|
+
from collections.abc import Iterable, Iterator
|
15
|
+
from typing import TYPE_CHECKING, AnyStr, overload
|
16
|
+
|
17
|
+
if TYPE_CHECKING:
|
18
|
+
from _typeshed import BytesPath, StrOrBytesPath, StrPath
|
12
19
|
|
13
20
|
__all__ = ["glob", "iglob", "escape"]
|
14
21
|
|
15
22
|
|
16
|
-
def glob(pathname, recursive=False):
|
23
|
+
def glob(pathname: AnyStr, recursive: bool = False) -> list[AnyStr]:
|
17
24
|
"""Return a list of paths matching a pathname pattern.
|
18
25
|
|
19
26
|
The pattern may contain simple shell-style wildcards a la
|
@@ -27,7 +34,7 @@ def glob(pathname, recursive=False):
|
|
27
34
|
return list(iglob(pathname, recursive=recursive))
|
28
35
|
|
29
36
|
|
30
|
-
def iglob(pathname, recursive=False):
|
37
|
+
def iglob(pathname: AnyStr, recursive: bool = False) -> Iterator[AnyStr]:
|
31
38
|
"""Return an iterator which yields the paths matching a pathname pattern.
|
32
39
|
|
33
40
|
The pattern may contain simple shell-style wildcards a la
|
@@ -45,7 +52,7 @@ def iglob(pathname, recursive=False):
|
|
45
52
|
return it
|
46
53
|
|
47
54
|
|
48
|
-
def _iglob(pathname, recursive):
|
55
|
+
def _iglob(pathname: AnyStr, recursive: bool) -> Iterator[AnyStr]:
|
49
56
|
dirname, basename = os.path.split(pathname)
|
50
57
|
glob_in_dir = glob2 if recursive and _isrecursive(basename) else glob1
|
51
58
|
|
@@ -66,7 +73,7 @@ def _iglob(pathname, recursive):
|
|
66
73
|
# drive or UNC path. Prevent an infinite recursion if a drive or UNC path
|
67
74
|
# contains magic characters (i.e. r'\\?\C:').
|
68
75
|
if dirname != pathname and has_magic(dirname):
|
69
|
-
dirs = _iglob(dirname, recursive)
|
76
|
+
dirs: Iterable[AnyStr] = _iglob(dirname, recursive)
|
70
77
|
else:
|
71
78
|
dirs = [dirname]
|
72
79
|
if not has_magic(basename):
|
@@ -81,7 +88,11 @@ def _iglob(pathname, recursive):
|
|
81
88
|
# takes a literal basename (so it only has to check for its existence).
|
82
89
|
|
83
90
|
|
84
|
-
|
91
|
+
@overload
|
92
|
+
def glob1(dirname: StrPath, pattern: str) -> list[str]: ...
|
93
|
+
@overload
|
94
|
+
def glob1(dirname: BytesPath, pattern: bytes) -> list[bytes]: ...
|
95
|
+
def glob1(dirname: StrOrBytesPath, pattern: str | bytes) -> list[str] | list[bytes]:
|
85
96
|
if not dirname:
|
86
97
|
if isinstance(pattern, bytes):
|
87
98
|
dirname = os.curdir.encode('ASCII')
|
@@ -91,7 +102,8 @@ def glob1(dirname, pattern):
|
|
91
102
|
names = os.listdir(dirname)
|
92
103
|
except OSError:
|
93
104
|
return []
|
94
|
-
|
105
|
+
# mypy false-positives: str or bytes type possibility is always kept in sync
|
106
|
+
return fnmatch.filter(names, pattern) # type: ignore[type-var, return-value]
|
95
107
|
|
96
108
|
|
97
109
|
def glob0(dirname, basename):
|
@@ -110,14 +122,22 @@ def glob0(dirname, basename):
|
|
110
122
|
# directory.
|
111
123
|
|
112
124
|
|
113
|
-
|
125
|
+
@overload
|
126
|
+
def glob2(dirname: StrPath, pattern: str) -> Iterator[str]: ...
|
127
|
+
@overload
|
128
|
+
def glob2(dirname: BytesPath, pattern: bytes) -> Iterator[bytes]: ...
|
129
|
+
def glob2(dirname: StrOrBytesPath, pattern: str | bytes) -> Iterator[str | bytes]:
|
114
130
|
assert _isrecursive(pattern)
|
115
131
|
yield pattern[:0]
|
116
132
|
yield from _rlistdir(dirname)
|
117
133
|
|
118
134
|
|
119
135
|
# Recursively yields relative pathnames inside a literal directory.
|
120
|
-
|
136
|
+
@overload
|
137
|
+
def _rlistdir(dirname: StrPath) -> Iterator[str]: ...
|
138
|
+
@overload
|
139
|
+
def _rlistdir(dirname: BytesPath) -> Iterator[bytes]: ...
|
140
|
+
def _rlistdir(dirname: StrOrBytesPath) -> Iterator[str | bytes]:
|
121
141
|
if not dirname:
|
122
142
|
if isinstance(dirname, bytes):
|
123
143
|
dirname = os.curdir.encode('ASCII')
|
@@ -129,24 +149,24 @@ def _rlistdir(dirname):
|
|
129
149
|
return
|
130
150
|
for x in names:
|
131
151
|
yield x
|
132
|
-
|
152
|
+
# mypy false-positives: str or bytes type possibility is always kept in sync
|
153
|
+
path = os.path.join(dirname, x) if dirname else x # type: ignore[arg-type]
|
133
154
|
for y in _rlistdir(path):
|
134
|
-
yield os.path.join(x, y)
|
155
|
+
yield os.path.join(x, y) # type: ignore[arg-type]
|
135
156
|
|
136
157
|
|
137
158
|
magic_check = re.compile('([*?[])')
|
138
159
|
magic_check_bytes = re.compile(b'([*?[])')
|
139
160
|
|
140
161
|
|
141
|
-
def has_magic(s):
|
162
|
+
def has_magic(s: str | bytes) -> bool:
|
142
163
|
if isinstance(s, bytes):
|
143
|
-
|
164
|
+
return magic_check_bytes.search(s) is not None
|
144
165
|
else:
|
145
|
-
|
146
|
-
return match is not None
|
166
|
+
return magic_check.search(s) is not None
|
147
167
|
|
148
168
|
|
149
|
-
def _isrecursive(pattern):
|
169
|
+
def _isrecursive(pattern: str | bytes) -> bool:
|
150
170
|
if isinstance(pattern, bytes):
|
151
171
|
return pattern == b'**'
|
152
172
|
else:
|
@@ -1,3 +1,5 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
import glob
|
2
4
|
import os
|
3
5
|
import subprocess
|
@@ -5,7 +7,10 @@ import sys
|
|
5
7
|
import tempfile
|
6
8
|
from functools import partial
|
7
9
|
|
10
|
+
from pkg_resources import Distribution
|
11
|
+
|
8
12
|
from . import _reqs
|
13
|
+
from ._reqs import _StrOrIter
|
9
14
|
from .warnings import SetuptoolsDeprecationWarning
|
10
15
|
from .wheel import Wheel
|
11
16
|
|
@@ -30,7 +35,7 @@ def fetch_build_egg(dist, req):
|
|
30
35
|
return _fetch_build_egg_no_warn(dist, req)
|
31
36
|
|
32
37
|
|
33
|
-
def _fetch_build_eggs(dist, requires):
|
38
|
+
def _fetch_build_eggs(dist, requires: _StrOrIter) -> list[Distribution]:
|
34
39
|
import pkg_resources # Delay import to avoid unnecessary side-effects
|
35
40
|
|
36
41
|
_DeprecatedInstaller.emit(stacklevel=3)
|
@@ -11,7 +11,7 @@ def _not_warning(record):
|
|
11
11
|
return record.levelno < logging.WARNING
|
12
12
|
|
13
13
|
|
14
|
-
def configure():
|
14
|
+
def configure() -> None:
|
15
15
|
"""
|
16
16
|
Configure logging to emit warning and above to stderr
|
17
17
|
and everything else to stdout. This behavior is provided
|
@@ -35,6 +35,6 @@ def configure():
|
|
35
35
|
distutils.dist.log = distutils.log
|
36
36
|
|
37
37
|
|
38
|
-
def set_threshold(level):
|
38
|
+
def set_threshold(level: int) -> int:
|
39
39
|
logging.root.setLevel(level * 10)
|
40
40
|
return set_threshold.unpatched(level)
|
@@ -1,8 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
try:
|
2
|
+
# Ensure a DistutilsError raised by these methods is the same as distutils.errors.DistutilsError
|
3
|
+
from distutils._modified import (
|
4
|
+
newer,
|
5
|
+
newer_group,
|
6
|
+
newer_pairwise,
|
7
|
+
newer_pairwise_group,
|
8
|
+
)
|
9
|
+
except ImportError:
|
10
|
+
# fallback for SETUPTOOLS_USE_DISTUTILS=stdlib, because _modified never existed in stdlib
|
11
|
+
from ._distutils._modified import (
|
12
|
+
newer,
|
13
|
+
newer_group,
|
14
|
+
newer_pairwise,
|
15
|
+
newer_pairwise_group,
|
16
|
+
)
|
7
17
|
|
8
18
|
__all__ = ['newer', 'newer_pairwise', 'newer_group', 'newer_pairwise_group']
|
@@ -8,7 +8,7 @@ import inspect
|
|
8
8
|
import platform
|
9
9
|
import sys
|
10
10
|
import types
|
11
|
-
from typing import
|
11
|
+
from typing import TypeVar, cast, overload
|
12
12
|
|
13
13
|
import distutils.filelist
|
14
14
|
|
@@ -58,7 +58,7 @@ def get_unpatched_class(cls: type[_T]) -> type[_T]:
|
|
58
58
|
first.
|
59
59
|
"""
|
60
60
|
external_bases = (
|
61
|
-
cast(
|
61
|
+
cast(type[_T], cls)
|
62
62
|
for cls in _get_mro(cls)
|
63
63
|
if not cls.__module__.startswith('setuptools')
|
64
64
|
)
|