py2docfx 0.1.16.dev2051338__py3-none-any.whl → 0.1.16.dev2064350__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 +3 -1
- py2docfx/convert_prepare/get_source.py +6 -1
- py2docfx/convert_prepare/package_info.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/babel/py.typed +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_speedups.pyi +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/markupsafe/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/pip/py.typed +4 -0
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/sphinx/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/applehelp/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/htmlhelp/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/qthelp/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/serializinghtml/py.typed +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +9 -4
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/exceptions.py +12 -4
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/http2/connection.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/py.typed +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +21 -1
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/__main__.py +7 -5
- py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
- py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
- py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_metadata.py +184 -0
- py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +12 -23
- py2docfx/venv/basevenv/Lib/site-packages/wheel/macosx_libfile.py +4 -0
- py2docfx/venv/basevenv/Lib/site-packages/wheel/metadata.py +17 -183
- py2docfx/venv/basevenv/Lib/site-packages/wheel/wheelfile.py +30 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/instrumentation.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +152 -29
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +3 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +3 -8
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +27 -21
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +3 -7
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +2 -35
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_models.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +12 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +66 -13
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +62 -23
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +244 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/certifi/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +28 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi +8 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi +7 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi +17 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +117 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +72 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +103 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +38 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi +18 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi +51 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi +41 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi +52 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +19 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +21 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +43 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +33 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +13 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi +55 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +46 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +49 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +22 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +246 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.pyi +24 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.pyi +120 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.pyi +102 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.pyi +50 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.pyi +405 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.pyi +65 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.pyi +62 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.pyi +60 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.pyi +43 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.pyi +144 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.pyi +86 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.pyi +41 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.pyi +90 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.pyi +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.pyi +60 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.pyi +94 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.pyi +41 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.pyi +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.pyi +40 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.pyi +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.pyi +57 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.pyi +186 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.pyi +104 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.pyi +57 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.pyi +57 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.pyi +116 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.pyi +93 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.pyi +49 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.pyi +170 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.pyi +34 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.pyi +60 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.pyi +55 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.pyi +56 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/py.typed +2 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/py.typed +2 -0
- py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.pyi +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.pyi +96 -0
- py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.pyi +118 -0
- py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.pyi +91 -0
- py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.pyi +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.pyi +126 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/py.typed +2 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.pyi +58 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.pyi +309 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.pyi +51 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +207 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.pyi +71 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.pyi +41 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.pyi +40 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.pyi +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.pyi +36 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.pyi +77 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.pyi +40 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.pyi +27 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.pyi +39 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.pyi +31 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.pyi +36 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.pyi +31 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.pyi +31 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.pyi +36 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.pyi +50 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.pyi +48 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.pyi +74 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.pyi +39 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.pyi +39 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_elffile.py +9 -7
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_manylinux.py +12 -9
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_musllinux.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_parser.py +11 -13
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_tokenizer.py +10 -8
- py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/markers.py +103 -25
- py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +863 -0
- py2docfx/venv/venv1/Lib/site-packages/packaging/py.typed +0 -0
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/requirements.py +5 -4
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/specifiers.py +40 -31
- py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/tags.py +96 -50
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/utils.py +39 -48
- py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/version.py +53 -32
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pip/py.typed +4 -0
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
- py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +30 -12
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +9 -4
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +12 -4
- py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/urllib3/py.typed +2 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +21 -1
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/wheel/__main__.py +7 -5
- py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
- py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
- py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/wheel/_metadata.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +12 -23
- py2docfx/venv/venv1/Lib/site-packages/wheel/macosx_libfile.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/metadata.py +17 -183
- py2docfx/venv/venv1/Lib/site-packages/wheel/wheelfile.py +30 -16
- {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/METADATA +2 -3
- {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/RECORD +263 -104
- {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
- py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -17
- py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -108
- py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -356
- py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -253
- py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -571
- py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
- py2docfx/venv/venv1/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
- py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -17
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -260
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -83
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -61
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -192
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -90
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -1011
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -172
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/version.py +0 -561
- /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/__init__.py → certifi/py.typed} +0 -0
- /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/packaging/__init__.py → charset_normalizer/py.typed} +0 -0
- /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/__init__.py → basevenv/Lib/site-packages/idna/py.typed} +0 -0
- /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py → basevenv/Lib/site-packages/jinja2/py.typed} +0 -0
- /py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
- /py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_structures.py +0 -0
- /py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
- {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,184 @@
|
|
1
|
+
"""
|
2
|
+
Tools for converting old- to new-style metadata.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from __future__ import annotations
|
6
|
+
|
7
|
+
import functools
|
8
|
+
import itertools
|
9
|
+
import os.path
|
10
|
+
import re
|
11
|
+
import textwrap
|
12
|
+
from collections.abc import Generator, Iterable, Iterator
|
13
|
+
from email.message import Message
|
14
|
+
from email.parser import Parser
|
15
|
+
from typing import Literal
|
16
|
+
|
17
|
+
from packaging.requirements import Requirement
|
18
|
+
|
19
|
+
|
20
|
+
def _nonblank(str: str) -> bool | Literal[""]:
|
21
|
+
return str and not str.startswith("#")
|
22
|
+
|
23
|
+
|
24
|
+
@functools.singledispatch
|
25
|
+
def yield_lines(iterable: Iterable[str]) -> Iterator[str]:
|
26
|
+
r"""
|
27
|
+
Yield valid lines of a string or iterable.
|
28
|
+
>>> list(yield_lines(''))
|
29
|
+
[]
|
30
|
+
>>> list(yield_lines(['foo', 'bar']))
|
31
|
+
['foo', 'bar']
|
32
|
+
>>> list(yield_lines('foo\nbar'))
|
33
|
+
['foo', 'bar']
|
34
|
+
>>> list(yield_lines('\nfoo\n#bar\nbaz #comment'))
|
35
|
+
['foo', 'baz #comment']
|
36
|
+
>>> list(yield_lines(['foo\nbar', 'baz', 'bing\n\n\n']))
|
37
|
+
['foo', 'bar', 'baz', 'bing']
|
38
|
+
"""
|
39
|
+
return itertools.chain.from_iterable(map(yield_lines, iterable))
|
40
|
+
|
41
|
+
|
42
|
+
@yield_lines.register(str)
|
43
|
+
def _(text: str) -> Iterator[str]:
|
44
|
+
return filter(_nonblank, map(str.strip, text.splitlines()))
|
45
|
+
|
46
|
+
|
47
|
+
def split_sections(
|
48
|
+
s: str | Iterator[str],
|
49
|
+
) -> Generator[tuple[str | None, list[str]], None, None]:
|
50
|
+
"""Split a string or iterable thereof into (section, content) pairs
|
51
|
+
Each ``section`` is a stripped version of the section header ("[section]")
|
52
|
+
and each ``content`` is a list of stripped lines excluding blank lines and
|
53
|
+
comment-only lines. If there are any such lines before the first section
|
54
|
+
header, they're returned in a first ``section`` of ``None``.
|
55
|
+
"""
|
56
|
+
section = None
|
57
|
+
content: list[str] = []
|
58
|
+
for line in yield_lines(s):
|
59
|
+
if line.startswith("["):
|
60
|
+
if line.endswith("]"):
|
61
|
+
if section or content:
|
62
|
+
yield section, content
|
63
|
+
section = line[1:-1].strip()
|
64
|
+
content = []
|
65
|
+
else:
|
66
|
+
raise ValueError("Invalid section heading", line)
|
67
|
+
else:
|
68
|
+
content.append(line)
|
69
|
+
|
70
|
+
# wrap up last segment
|
71
|
+
yield section, content
|
72
|
+
|
73
|
+
|
74
|
+
def safe_extra(extra: str) -> str:
|
75
|
+
"""Convert an arbitrary string to a standard 'extra' name
|
76
|
+
Any runs of non-alphanumeric characters are replaced with a single '_',
|
77
|
+
and the result is always lowercased.
|
78
|
+
"""
|
79
|
+
return re.sub("[^A-Za-z0-9.-]+", "_", extra).lower()
|
80
|
+
|
81
|
+
|
82
|
+
def safe_name(name: str) -> str:
|
83
|
+
"""Convert an arbitrary string to a standard distribution name
|
84
|
+
Any runs of non-alphanumeric/. characters are replaced with a single '-'.
|
85
|
+
"""
|
86
|
+
return re.sub("[^A-Za-z0-9.]+", "-", name)
|
87
|
+
|
88
|
+
|
89
|
+
def requires_to_requires_dist(requirement: Requirement) -> str:
|
90
|
+
"""Return the version specifier for a requirement in PEP 345/566 fashion."""
|
91
|
+
if requirement.url:
|
92
|
+
return " @ " + requirement.url
|
93
|
+
|
94
|
+
requires_dist: list[str] = []
|
95
|
+
for spec in requirement.specifier:
|
96
|
+
requires_dist.append(spec.operator + spec.version)
|
97
|
+
|
98
|
+
if requires_dist:
|
99
|
+
return " " + ",".join(sorted(requires_dist))
|
100
|
+
else:
|
101
|
+
return ""
|
102
|
+
|
103
|
+
|
104
|
+
def convert_requirements(requirements: list[str]) -> Iterator[str]:
|
105
|
+
"""Yield Requires-Dist: strings for parsed requirements strings."""
|
106
|
+
for req in requirements:
|
107
|
+
parsed_requirement = Requirement(req)
|
108
|
+
spec = requires_to_requires_dist(parsed_requirement)
|
109
|
+
extras = ",".join(sorted(safe_extra(e) for e in parsed_requirement.extras))
|
110
|
+
if extras:
|
111
|
+
extras = f"[{extras}]"
|
112
|
+
|
113
|
+
yield safe_name(parsed_requirement.name) + extras + spec
|
114
|
+
|
115
|
+
|
116
|
+
def generate_requirements(
|
117
|
+
extras_require: dict[str | None, list[str]],
|
118
|
+
) -> Iterator[tuple[str, str]]:
|
119
|
+
"""
|
120
|
+
Convert requirements from a setup()-style dictionary to
|
121
|
+
('Requires-Dist', 'requirement') and ('Provides-Extra', 'extra') tuples.
|
122
|
+
|
123
|
+
extras_require is a dictionary of {extra: [requirements]} as passed to setup(),
|
124
|
+
using the empty extra {'': [requirements]} to hold install_requires.
|
125
|
+
"""
|
126
|
+
for extra, depends in extras_require.items():
|
127
|
+
condition = ""
|
128
|
+
extra = extra or ""
|
129
|
+
if ":" in extra: # setuptools extra:condition syntax
|
130
|
+
extra, condition = extra.split(":", 1)
|
131
|
+
|
132
|
+
extra = safe_extra(extra)
|
133
|
+
if extra:
|
134
|
+
yield "Provides-Extra", extra
|
135
|
+
if condition:
|
136
|
+
condition = "(" + condition + ") and "
|
137
|
+
condition += f"extra == '{extra}'"
|
138
|
+
|
139
|
+
if condition:
|
140
|
+
condition = " ; " + condition
|
141
|
+
|
142
|
+
for new_req in convert_requirements(depends):
|
143
|
+
canonical_req = str(Requirement(new_req + condition))
|
144
|
+
yield "Requires-Dist", canonical_req
|
145
|
+
|
146
|
+
|
147
|
+
def pkginfo_to_metadata(egg_info_path: str, pkginfo_path: str) -> Message:
|
148
|
+
"""
|
149
|
+
Convert .egg-info directory with PKG-INFO to the Metadata 2.1 format
|
150
|
+
"""
|
151
|
+
with open(pkginfo_path, encoding="utf-8") as headers:
|
152
|
+
pkg_info = Parser().parse(headers)
|
153
|
+
|
154
|
+
pkg_info.replace_header("Metadata-Version", "2.1")
|
155
|
+
# Those will be regenerated from `requires.txt`.
|
156
|
+
del pkg_info["Provides-Extra"]
|
157
|
+
del pkg_info["Requires-Dist"]
|
158
|
+
requires_path = os.path.join(egg_info_path, "requires.txt")
|
159
|
+
if os.path.exists(requires_path):
|
160
|
+
with open(requires_path, encoding="utf-8") as requires_file:
|
161
|
+
requires = requires_file.read()
|
162
|
+
|
163
|
+
parsed_requirements = sorted(split_sections(requires), key=lambda x: x[0] or "")
|
164
|
+
for extra, reqs in parsed_requirements:
|
165
|
+
for key, value in generate_requirements({extra: reqs}):
|
166
|
+
if (key, value) not in pkg_info.items():
|
167
|
+
pkg_info[key] = value
|
168
|
+
|
169
|
+
description = pkg_info["Description"]
|
170
|
+
if description:
|
171
|
+
description_lines = pkg_info["Description"].splitlines()
|
172
|
+
dedented_description = "\n".join(
|
173
|
+
# if the first line of long_description is blank,
|
174
|
+
# the first line here will be indented.
|
175
|
+
(
|
176
|
+
description_lines[0].lstrip(),
|
177
|
+
textwrap.dedent("\n".join(description_lines[1:])),
|
178
|
+
"\n",
|
179
|
+
)
|
180
|
+
)
|
181
|
+
pkg_info.set_payload(dedented_description)
|
182
|
+
del pkg_info["Description"]
|
183
|
+
|
184
|
+
return pkg_info
|
@@ -1,26 +1,15 @@
|
|
1
|
-
from typing import TYPE_CHECKING
|
2
1
|
from warnings import warn
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
)
|
3
|
+
ERROR = """\
|
4
|
+
The 'wheel.bdist_wheel' module has been removed.
|
5
|
+
Please update your setuptools to v70.1 or later.
|
6
|
+
If you're explicitly importing 'wheel.bdist_wheel', please update your import to point \
|
7
|
+
to 'setuptools.command.bdist_wheel' instead.
|
8
|
+
"""
|
11
9
|
|
12
|
-
|
13
|
-
from .
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# there is no need to backport them to the deprecated code base.
|
19
|
-
# This is useful in the case of old packages in the ecosystem
|
20
|
-
# that are still used but have low maintenance.
|
21
|
-
from setuptools.command.bdist_wheel import bdist_wheel
|
22
|
-
except ImportError:
|
23
|
-
# Only used in the case of old setuptools versions.
|
24
|
-
# If the user wants to get the latest fixes/PEPs,
|
25
|
-
# they are encouraged to address the deprecation warning.
|
26
|
-
from ._bdist_wheel import bdist_wheel as bdist_wheel
|
10
|
+
try:
|
11
|
+
from setuptools.command.bdist_wheel import bdist_wheel as bdist_wheel
|
12
|
+
except ModuleNotFoundError as exc:
|
13
|
+
raise ImportError(ERROR) from exc
|
14
|
+
|
15
|
+
warn(ERROR, DeprecationWarning, stacklevel=2)
|
@@ -1,183 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
from
|
6
|
-
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
def _nonblank(str: str) -> bool | Literal[""]:
|
20
|
-
return str and not str.startswith("#")
|
21
|
-
|
22
|
-
|
23
|
-
@functools.singledispatch
|
24
|
-
def yield_lines(iterable: Iterable[str]) -> Iterator[str]:
|
25
|
-
r"""
|
26
|
-
Yield valid lines of a string or iterable.
|
27
|
-
>>> list(yield_lines(''))
|
28
|
-
[]
|
29
|
-
>>> list(yield_lines(['foo', 'bar']))
|
30
|
-
['foo', 'bar']
|
31
|
-
>>> list(yield_lines('foo\nbar'))
|
32
|
-
['foo', 'bar']
|
33
|
-
>>> list(yield_lines('\nfoo\n#bar\nbaz #comment'))
|
34
|
-
['foo', 'baz #comment']
|
35
|
-
>>> list(yield_lines(['foo\nbar', 'baz', 'bing\n\n\n']))
|
36
|
-
['foo', 'bar', 'baz', 'bing']
|
37
|
-
"""
|
38
|
-
return itertools.chain.from_iterable(map(yield_lines, iterable))
|
39
|
-
|
40
|
-
|
41
|
-
@yield_lines.register(str)
|
42
|
-
def _(text: str) -> Iterator[str]:
|
43
|
-
return filter(_nonblank, map(str.strip, text.splitlines()))
|
44
|
-
|
45
|
-
|
46
|
-
def split_sections(
|
47
|
-
s: str | Iterator[str],
|
48
|
-
) -> Generator[tuple[str | None, list[str]], None, None]:
|
49
|
-
"""Split a string or iterable thereof into (section, content) pairs
|
50
|
-
Each ``section`` is a stripped version of the section header ("[section]")
|
51
|
-
and each ``content`` is a list of stripped lines excluding blank lines and
|
52
|
-
comment-only lines. If there are any such lines before the first section
|
53
|
-
header, they're returned in a first ``section`` of ``None``.
|
54
|
-
"""
|
55
|
-
section = None
|
56
|
-
content: list[str] = []
|
57
|
-
for line in yield_lines(s):
|
58
|
-
if line.startswith("["):
|
59
|
-
if line.endswith("]"):
|
60
|
-
if section or content:
|
61
|
-
yield section, content
|
62
|
-
section = line[1:-1].strip()
|
63
|
-
content = []
|
64
|
-
else:
|
65
|
-
raise ValueError("Invalid section heading", line)
|
66
|
-
else:
|
67
|
-
content.append(line)
|
68
|
-
|
69
|
-
# wrap up last segment
|
70
|
-
yield section, content
|
71
|
-
|
72
|
-
|
73
|
-
def safe_extra(extra: str) -> str:
|
74
|
-
"""Convert an arbitrary string to a standard 'extra' name
|
75
|
-
Any runs of non-alphanumeric characters are replaced with a single '_',
|
76
|
-
and the result is always lowercased.
|
77
|
-
"""
|
78
|
-
return re.sub("[^A-Za-z0-9.-]+", "_", extra).lower()
|
79
|
-
|
80
|
-
|
81
|
-
def safe_name(name: str) -> str:
|
82
|
-
"""Convert an arbitrary string to a standard distribution name
|
83
|
-
Any runs of non-alphanumeric/. characters are replaced with a single '-'.
|
84
|
-
"""
|
85
|
-
return re.sub("[^A-Za-z0-9.]+", "-", name)
|
86
|
-
|
87
|
-
|
88
|
-
def requires_to_requires_dist(requirement: Requirement) -> str:
|
89
|
-
"""Return the version specifier for a requirement in PEP 345/566 fashion."""
|
90
|
-
if requirement.url:
|
91
|
-
return " @ " + requirement.url
|
92
|
-
|
93
|
-
requires_dist: list[str] = []
|
94
|
-
for spec in requirement.specifier:
|
95
|
-
requires_dist.append(spec.operator + spec.version)
|
96
|
-
|
97
|
-
if requires_dist:
|
98
|
-
return " " + ",".join(sorted(requires_dist))
|
99
|
-
else:
|
100
|
-
return ""
|
101
|
-
|
102
|
-
|
103
|
-
def convert_requirements(requirements: list[str]) -> Iterator[str]:
|
104
|
-
"""Yield Requires-Dist: strings for parsed requirements strings."""
|
105
|
-
for req in requirements:
|
106
|
-
parsed_requirement = Requirement(req)
|
107
|
-
spec = requires_to_requires_dist(parsed_requirement)
|
108
|
-
extras = ",".join(sorted(safe_extra(e) for e in parsed_requirement.extras))
|
109
|
-
if extras:
|
110
|
-
extras = f"[{extras}]"
|
111
|
-
|
112
|
-
yield safe_name(parsed_requirement.name) + extras + spec
|
113
|
-
|
114
|
-
|
115
|
-
def generate_requirements(
|
116
|
-
extras_require: dict[str | None, list[str]],
|
117
|
-
) -> Iterator[tuple[str, str]]:
|
118
|
-
"""
|
119
|
-
Convert requirements from a setup()-style dictionary to
|
120
|
-
('Requires-Dist', 'requirement') and ('Provides-Extra', 'extra') tuples.
|
121
|
-
|
122
|
-
extras_require is a dictionary of {extra: [requirements]} as passed to setup(),
|
123
|
-
using the empty extra {'': [requirements]} to hold install_requires.
|
124
|
-
"""
|
125
|
-
for extra, depends in extras_require.items():
|
126
|
-
condition = ""
|
127
|
-
extra = extra or ""
|
128
|
-
if ":" in extra: # setuptools extra:condition syntax
|
129
|
-
extra, condition = extra.split(":", 1)
|
130
|
-
|
131
|
-
extra = safe_extra(extra)
|
132
|
-
if extra:
|
133
|
-
yield "Provides-Extra", extra
|
134
|
-
if condition:
|
135
|
-
condition = "(" + condition + ") and "
|
136
|
-
condition += f"extra == '{extra}'"
|
137
|
-
|
138
|
-
if condition:
|
139
|
-
condition = " ; " + condition
|
140
|
-
|
141
|
-
for new_req in convert_requirements(depends):
|
142
|
-
canonical_req = str(Requirement(new_req + condition))
|
143
|
-
yield "Requires-Dist", canonical_req
|
144
|
-
|
145
|
-
|
146
|
-
def pkginfo_to_metadata(egg_info_path: str, pkginfo_path: str) -> Message:
|
147
|
-
"""
|
148
|
-
Convert .egg-info directory with PKG-INFO to the Metadata 2.1 format
|
149
|
-
"""
|
150
|
-
with open(pkginfo_path, encoding="utf-8") as headers:
|
151
|
-
pkg_info = Parser().parse(headers)
|
152
|
-
|
153
|
-
pkg_info.replace_header("Metadata-Version", "2.1")
|
154
|
-
# Those will be regenerated from `requires.txt`.
|
155
|
-
del pkg_info["Provides-Extra"]
|
156
|
-
del pkg_info["Requires-Dist"]
|
157
|
-
requires_path = os.path.join(egg_info_path, "requires.txt")
|
158
|
-
if os.path.exists(requires_path):
|
159
|
-
with open(requires_path, encoding="utf-8") as requires_file:
|
160
|
-
requires = requires_file.read()
|
161
|
-
|
162
|
-
parsed_requirements = sorted(split_sections(requires), key=lambda x: x[0] or "")
|
163
|
-
for extra, reqs in parsed_requirements:
|
164
|
-
for key, value in generate_requirements({extra: reqs}):
|
165
|
-
if (key, value) not in pkg_info.items():
|
166
|
-
pkg_info[key] = value
|
167
|
-
|
168
|
-
description = pkg_info["Description"]
|
169
|
-
if description:
|
170
|
-
description_lines = pkg_info["Description"].splitlines()
|
171
|
-
dedented_description = "\n".join(
|
172
|
-
# if the first line of long_description is blank,
|
173
|
-
# the first line here will be indented.
|
174
|
-
(
|
175
|
-
description_lines[0].lstrip(),
|
176
|
-
textwrap.dedent("\n".join(description_lines[1:])),
|
177
|
-
"\n",
|
178
|
-
)
|
179
|
-
)
|
180
|
-
pkg_info.set_payload(dedented_description)
|
181
|
-
del pkg_info["Description"]
|
182
|
-
|
183
|
-
return pkg_info
|
1
|
+
from warnings import warn
|
2
|
+
|
3
|
+
from ._metadata import convert_requirements as convert_requirements
|
4
|
+
from ._metadata import generate_requirements as generate_requirements
|
5
|
+
from ._metadata import pkginfo_to_metadata as pkginfo_to_metadata
|
6
|
+
from ._metadata import requires_to_requires_dist as requires_to_requires_dist
|
7
|
+
from ._metadata import safe_extra as safe_extra
|
8
|
+
from ._metadata import safe_name as safe_name
|
9
|
+
from ._metadata import split_sections as split_sections
|
10
|
+
|
11
|
+
warn(
|
12
|
+
f"The {__name__!r} package has been made private and should no longer be imported. "
|
13
|
+
f"Please either copy the code or find an alternative library to import it from, as "
|
14
|
+
f"this warning will be removed in a future version of 'wheel'.",
|
15
|
+
DeprecationWarning,
|
16
|
+
stacklevel=2,
|
17
|
+
)
|
@@ -1,7 +1,11 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
__all__ = ["WHEEL_INFO_RE", "WheelFile", "WheelError"]
|
4
|
+
|
5
|
+
import base64
|
3
6
|
import csv
|
4
7
|
import hashlib
|
8
|
+
import logging
|
5
9
|
import os.path
|
6
10
|
import re
|
7
11
|
import stat
|
@@ -10,17 +14,8 @@ from io import StringIO, TextIOWrapper
|
|
10
14
|
from typing import IO, TYPE_CHECKING, Literal
|
11
15
|
from zipfile import ZIP_DEFLATED, ZipFile, ZipInfo
|
12
16
|
|
13
|
-
from wheel.cli import WheelError
|
14
|
-
from wheel.util import log, urlsafe_b64decode, urlsafe_b64encode
|
15
|
-
|
16
17
|
if TYPE_CHECKING:
|
17
|
-
from
|
18
|
-
|
19
|
-
from typing_extensions import Buffer
|
20
|
-
|
21
|
-
StrPath = Union[str, os.PathLike[str]]
|
22
|
-
|
23
|
-
class SizedBuffer(Sized, Buffer, Protocol): ...
|
18
|
+
from _typeshed import SizedBuffer, StrPath
|
24
19
|
|
25
20
|
|
26
21
|
# Non-greedy matching of an optional build number may be too clever (more
|
@@ -32,8 +27,27 @@ WHEEL_INFO_RE = re.compile(
|
|
32
27
|
)
|
33
28
|
MINIMUM_TIMESTAMP = 315532800 # 1980-01-01 00:00:00 UTC
|
34
29
|
|
30
|
+
log = logging.getLogger("wheel")
|
31
|
+
|
32
|
+
|
33
|
+
class WheelError(Exception):
|
34
|
+
pass
|
35
35
|
|
36
|
-
|
36
|
+
|
37
|
+
def urlsafe_b64encode(data: bytes) -> bytes:
|
38
|
+
"""urlsafe_b64encode without padding"""
|
39
|
+
return base64.urlsafe_b64encode(data).rstrip(b"=")
|
40
|
+
|
41
|
+
|
42
|
+
def urlsafe_b64decode(data: bytes) -> bytes:
|
43
|
+
"""urlsafe_b64decode without padding"""
|
44
|
+
pad = b"=" * (4 - (len(data) & 3))
|
45
|
+
return base64.urlsafe_b64decode(data + pad)
|
46
|
+
|
47
|
+
|
48
|
+
def get_zipinfo_datetime(
|
49
|
+
timestamp: float | None = None,
|
50
|
+
) -> tuple[int, int, int, int, int]:
|
37
51
|
# Some applications need reproducible .whl files, but they can't do this without
|
38
52
|
# forcing the timestamp of the individual ZipInfo objects. See issue #143.
|
39
53
|
timestamp = int(os.environ.get("SOURCE_DATE_EPOCH", timestamp or time.time()))
|
@@ -140,8 +154,8 @@ class WheelFile(ZipFile):
|
|
140
154
|
|
141
155
|
return ef
|
142
156
|
|
143
|
-
def write_files(self, base_dir: str):
|
144
|
-
log.info(
|
157
|
+
def write_files(self, base_dir: str) -> None:
|
158
|
+
log.info("creating %r and adding %r to it", self.filename, base_dir)
|
145
159
|
deferred: list[tuple[str, str]] = []
|
146
160
|
for root, dirnames, filenames in os.walk(base_dir):
|
147
161
|
# Sort the directory names so that `os.walk` will walk them in a
|
@@ -184,7 +198,7 @@ class WheelFile(ZipFile):
|
|
184
198
|
zinfo_or_arcname: str | ZipInfo,
|
185
199
|
data: SizedBuffer | str,
|
186
200
|
compress_type: int | None = None,
|
187
|
-
):
|
201
|
+
) -> None:
|
188
202
|
if isinstance(zinfo_or_arcname, str):
|
189
203
|
zinfo_or_arcname = ZipInfo(
|
190
204
|
zinfo_or_arcname, date_time=get_zipinfo_datetime()
|
@@ -201,7 +215,7 @@ class WheelFile(ZipFile):
|
|
201
215
|
if isinstance(zinfo_or_arcname, ZipInfo)
|
202
216
|
else zinfo_or_arcname
|
203
217
|
)
|
204
|
-
log.info(
|
218
|
+
log.info("adding %r", fname)
|
205
219
|
if fname != self.record_path:
|
206
220
|
hash_ = self._default_algorithm(data)
|
207
221
|
self._file_hashes[fname] = (
|
@@ -210,7 +224,7 @@ class WheelFile(ZipFile):
|
|
210
224
|
)
|
211
225
|
self._file_sizes[fname] = len(data)
|
212
226
|
|
213
|
-
def close(self):
|
227
|
+
def close(self) -> None:
|
214
228
|
# Write RECORD
|
215
229
|
if self.fp is not None and self.mode == "w" and self._file_hashes:
|
216
230
|
data = StringIO()
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: py2docfx
|
3
|
-
Version: 0.1.16.
|
3
|
+
Version: 0.1.16.dev2064350
|
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
|
@@ -12,4 +12,3 @@ Requires-Python: >=3.9
|
|
12
12
|
Requires-Dist: sphinx==6.1.3
|
13
13
|
Requires-Dist: pyyaml
|
14
14
|
Requires-Dist: wheel
|
15
|
-
|