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