py2docfx 0.1.16.dev2052678__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.
Files changed (281) hide show
  1. py2docfx/convert_prepare/environment.py +3 -1
  2. py2docfx/convert_prepare/get_source.py +6 -1
  3. py2docfx/convert_prepare/package_info.py +1 -1
  4. py2docfx/venv/basevenv/Lib/site-packages/babel/py.typed +1 -0
  5. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_speedups.pyi +1 -0
  6. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/py.typed +0 -0
  7. py2docfx/venv/basevenv/Lib/site-packages/packaging/py.typed +0 -0
  8. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  9. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  10. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  11. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  13. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  15. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  16. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  17. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  18. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  20. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/pip/py.typed +4 -0
  22. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/py.typed +0 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  36. py2docfx/venv/basevenv/Lib/site-packages/sphinx/py.typed +0 -0
  37. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/applehelp/py.typed +0 -0
  38. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/htmlhelp/py.typed +0 -0
  39. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/qthelp/py.typed +0 -0
  40. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/serializinghtml/py.typed +0 -0
  41. py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +9 -4
  42. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  43. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/urllib3/exceptions.py +12 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/urllib3/http2/connection.py +1 -1
  46. py2docfx/venv/basevenv/Lib/site-packages/urllib3/py.typed +2 -0
  47. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +21 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  49. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  50. py2docfx/venv/basevenv/Lib/site-packages/wheel/__main__.py +7 -5
  51. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
  52. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
  53. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
  54. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  55. py2docfx/venv/basevenv/Lib/site-packages/wheel/_metadata.py +184 -0
  56. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  57. py2docfx/venv/basevenv/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  58. py2docfx/venv/basevenv/Lib/site-packages/wheel/metadata.py +17 -183
  59. py2docfx/venv/basevenv/Lib/site-packages/wheel/wheelfile.py +30 -16
  60. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  61. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +5 -4
  62. py2docfx/venv/venv1/Lib/site-packages/azure/core/instrumentation.py +67 -0
  63. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +3 -1
  64. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +1 -1
  65. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +4 -4
  66. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +1 -2
  67. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +152 -29
  68. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +3 -2
  69. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +2 -2
  70. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +3 -10
  71. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +3 -8
  72. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +2 -0
  73. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +0 -1
  74. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +3 -3
  75. py2docfx/venv/venv1/Lib/site-packages/azure/core/py.typed +0 -0
  76. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +3 -0
  77. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +2 -2
  78. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +27 -21
  79. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +3 -7
  80. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +2 -35
  81. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_models.py +71 -0
  82. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +12 -4
  83. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +66 -13
  84. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +62 -23
  85. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/py.typed +0 -0
  86. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +244 -0
  87. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +1 -2
  88. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +1 -1
  89. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +1 -1
  90. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
  91. py2docfx/venv/venv1/Lib/site-packages/azure/identity/py.typed +0 -0
  92. py2docfx/venv/venv1/Lib/site-packages/certifi/py.typed +0 -0
  93. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/py.typed +0 -0
  94. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +28 -0
  95. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi +8 -0
  96. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi +7 -0
  97. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi +17 -0
  98. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +117 -0
  99. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +72 -0
  100. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +103 -0
  101. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +38 -0
  102. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi +18 -0
  103. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi +51 -0
  104. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi +41 -0
  105. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi +52 -0
  106. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +12 -0
  107. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +12 -0
  108. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +19 -0
  109. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +21 -0
  110. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +43 -0
  111. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +33 -0
  112. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +13 -0
  113. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi +55 -0
  114. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +12 -0
  115. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +12 -0
  116. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +46 -0
  117. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +49 -0
  118. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +22 -0
  119. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +246 -0
  120. py2docfx/venv/venv1/Lib/site-packages/cryptography/py.typed +0 -0
  121. py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.pyi +24 -0
  122. py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.pyi +120 -0
  123. py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.pyi +102 -0
  124. py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.pyi +50 -0
  125. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.pyi +405 -0
  126. py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.pyi +65 -0
  127. py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.pyi +62 -0
  128. py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.pyi +60 -0
  129. py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.pyi +43 -0
  130. py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.pyi +144 -0
  131. py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.pyi +86 -0
  132. py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.pyi +41 -0
  133. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.pyi +90 -0
  134. py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.pyi +45 -0
  135. py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.pyi +60 -0
  136. py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.pyi +94 -0
  137. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.pyi +41 -0
  138. py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.pyi +47 -0
  139. py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.pyi +40 -0
  140. py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.pyi +47 -0
  141. py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.pyi +57 -0
  142. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.pyi +186 -0
  143. py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.pyi +104 -0
  144. py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.pyi +57 -0
  145. py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.pyi +57 -0
  146. py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.pyi +116 -0
  147. py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.pyi +93 -0
  148. py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.pyi +49 -0
  149. py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.pyi +170 -0
  150. py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.pyi +34 -0
  151. py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.pyi +60 -0
  152. py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.pyi +55 -0
  153. py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.pyi +56 -0
  154. py2docfx/venv/venv1/Lib/site-packages/google/api_core/py.typed +2 -0
  155. py2docfx/venv/venv1/Lib/site-packages/google/auth/py.typed +2 -0
  156. py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.pyi +45 -0
  157. py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.pyi +96 -0
  158. py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.pyi +118 -0
  159. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.pyi +91 -0
  160. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.pyi +42 -0
  161. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.pyi +126 -0
  162. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/py.typed +2 -0
  163. py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.pyi +58 -0
  164. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.pyi +309 -0
  165. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.pyi +51 -0
  166. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +207 -0
  167. py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.pyi +71 -0
  168. py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.pyi +41 -0
  169. py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.pyi +40 -0
  170. py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.pyi +42 -0
  171. py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.pyi +36 -0
  172. py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.pyi +77 -0
  173. py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.pyi +40 -0
  174. py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.pyi +27 -0
  175. py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.pyi +39 -0
  176. py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.pyi +31 -0
  177. py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.pyi +36 -0
  178. py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.pyi +31 -0
  179. py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.pyi +31 -0
  180. py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.pyi +36 -0
  181. py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.pyi +50 -0
  182. py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.pyi +48 -0
  183. py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.pyi +74 -0
  184. py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.pyi +39 -0
  185. py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.pyi +39 -0
  186. py2docfx/venv/venv1/Lib/site-packages/idna/py.typed +0 -0
  187. py2docfx/venv/venv1/Lib/site-packages/jwt/py.typed +0 -0
  188. py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +15 -0
  189. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_elffile.py +9 -7
  190. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_manylinux.py +12 -9
  191. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_musllinux.py +5 -3
  192. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_parser.py +11 -13
  193. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_tokenizer.py +10 -8
  194. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  195. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  196. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/markers.py +103 -25
  197. py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +863 -0
  198. py2docfx/venv/venv1/Lib/site-packages/packaging/py.typed +0 -0
  199. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/requirements.py +5 -4
  200. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/specifiers.py +40 -31
  201. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/tags.py +96 -50
  202. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/utils.py +39 -48
  203. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/version.py +53 -32
  204. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  205. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  206. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  207. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  208. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  209. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  210. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  212. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  213. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  214. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  215. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  216. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pip/py.typed +4 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/py.typed +0 -0
  219. py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -0
  220. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  221. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  222. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  223. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  233. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +30 -12
  234. py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +9 -4
  235. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  236. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  237. py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +12 -4
  238. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +1 -1
  239. py2docfx/venv/venv1/Lib/site-packages/urllib3/py.typed +2 -0
  240. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +21 -1
  241. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  242. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  243. py2docfx/venv/venv1/Lib/site-packages/wheel/__main__.py +7 -5
  244. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
  245. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
  246. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
  247. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  248. py2docfx/venv/venv1/Lib/site-packages/wheel/_metadata.py +184 -0
  249. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  250. py2docfx/venv/venv1/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  251. py2docfx/venv/venv1/Lib/site-packages/wheel/metadata.py +17 -183
  252. py2docfx/venv/venv1/Lib/site-packages/wheel/wheelfile.py +30 -16
  253. {py2docfx-0.1.16.dev2052678.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/METADATA +2 -3
  254. {py2docfx-0.1.16.dev2052678.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/RECORD +263 -104
  255. {py2docfx-0.1.16.dev2052678.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/WHEEL +1 -1
  256. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  257. py2docfx/venv/basevenv/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  258. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -17
  259. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -108
  260. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -356
  261. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -253
  262. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -571
  263. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  264. py2docfx/venv/venv1/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  265. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -17
  266. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -260
  267. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -83
  268. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -61
  269. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -192
  270. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -90
  271. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -1011
  272. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -172
  273. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/version.py +0 -561
  274. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/__init__.py → certifi/py.typed} +0 -0
  275. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/packaging/__init__.py → charset_normalizer/py.typed} +0 -0
  276. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/__init__.py → basevenv/Lib/site-packages/idna/py.typed} +0 -0
  277. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py → basevenv/Lib/site-packages/jinja2/py.typed} +0 -0
  278. /py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  279. /py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_structures.py +0 -0
  280. /py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  281. {py2docfx-0.1.16.dev2052678.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,136 @@
1
+ """Stubs for more_itertools.recipes"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import (
6
+ Any,
7
+ Callable,
8
+ Iterable,
9
+ Iterator,
10
+ overload,
11
+ Sequence,
12
+ Type,
13
+ TypeVar,
14
+ )
15
+
16
+ # Type and type variable definitions
17
+ _T = TypeVar('_T')
18
+ _T1 = TypeVar('_T1')
19
+ _T2 = TypeVar('_T2')
20
+ _U = TypeVar('_U')
21
+
22
+ def take(n: int, iterable: Iterable[_T]) -> list[_T]: ...
23
+ def tabulate(
24
+ function: Callable[[int], _T], start: int = ...
25
+ ) -> Iterator[_T]: ...
26
+ def tail(n: int, iterable: Iterable[_T]) -> Iterator[_T]: ...
27
+ def consume(iterator: Iterable[_T], n: int | None = ...) -> None: ...
28
+ @overload
29
+ def nth(iterable: Iterable[_T], n: int) -> _T | None: ...
30
+ @overload
31
+ def nth(iterable: Iterable[_T], n: int, default: _U) -> _T | _U: ...
32
+ def all_equal(
33
+ iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...
34
+ ) -> bool: ...
35
+ def quantify(
36
+ iterable: Iterable[_T], pred: Callable[[_T], bool] = ...
37
+ ) -> int: ...
38
+ def pad_none(iterable: Iterable[_T]) -> Iterator[_T | None]: ...
39
+ def padnone(iterable: Iterable[_T]) -> Iterator[_T | None]: ...
40
+ def ncycles(iterable: Iterable[_T], n: int) -> Iterator[_T]: ...
41
+ def dotproduct(vec1: Iterable[_T1], vec2: Iterable[_T2]) -> Any: ...
42
+ def flatten(listOfLists: Iterable[Iterable[_T]]) -> Iterator[_T]: ...
43
+ def repeatfunc(
44
+ func: Callable[..., _U], times: int | None = ..., *args: Any
45
+ ) -> Iterator[_U]: ...
46
+ def pairwise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T]]: ...
47
+ def grouper(
48
+ iterable: Iterable[_T],
49
+ n: int,
50
+ incomplete: str = ...,
51
+ fillvalue: _U = ...,
52
+ ) -> Iterator[tuple[_T | _U, ...]]: ...
53
+ def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...
54
+ def partition(
55
+ pred: Callable[[_T], object] | None, iterable: Iterable[_T]
56
+ ) -> tuple[Iterator[_T], Iterator[_T]]: ...
57
+ def powerset(iterable: Iterable[_T]) -> Iterator[tuple[_T, ...]]: ...
58
+ def unique_everseen(
59
+ iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...
60
+ ) -> Iterator[_T]: ...
61
+ def unique_justseen(
62
+ iterable: Iterable[_T], key: Callable[[_T], object] | None = ...
63
+ ) -> Iterator[_T]: ...
64
+ def unique(
65
+ iterable: Iterable[_T],
66
+ key: Callable[[_T], object] | None = ...,
67
+ reverse: bool = False,
68
+ ) -> Iterator[_T]: ...
69
+ @overload
70
+ def iter_except(
71
+ func: Callable[[], _T],
72
+ exception: Type[BaseException] | tuple[Type[BaseException], ...],
73
+ first: None = ...,
74
+ ) -> Iterator[_T]: ...
75
+ @overload
76
+ def iter_except(
77
+ func: Callable[[], _T],
78
+ exception: Type[BaseException] | tuple[Type[BaseException], ...],
79
+ first: Callable[[], _U],
80
+ ) -> Iterator[_T | _U]: ...
81
+ @overload
82
+ def first_true(
83
+ iterable: Iterable[_T], *, pred: Callable[[_T], object] | None = ...
84
+ ) -> _T | None: ...
85
+ @overload
86
+ def first_true(
87
+ iterable: Iterable[_T],
88
+ default: _U,
89
+ pred: Callable[[_T], object] | None = ...,
90
+ ) -> _T | _U: ...
91
+ def random_product(
92
+ *args: Iterable[_T], repeat: int = ...
93
+ ) -> tuple[_T, ...]: ...
94
+ def random_permutation(
95
+ iterable: Iterable[_T], r: int | None = ...
96
+ ) -> tuple[_T, ...]: ...
97
+ def random_combination(iterable: Iterable[_T], r: int) -> tuple[_T, ...]: ...
98
+ def random_combination_with_replacement(
99
+ iterable: Iterable[_T], r: int
100
+ ) -> tuple[_T, ...]: ...
101
+ def nth_combination(
102
+ iterable: Iterable[_T], r: int, index: int
103
+ ) -> tuple[_T, ...]: ...
104
+ def prepend(value: _T, iterator: Iterable[_U]) -> Iterator[_T | _U]: ...
105
+ def convolve(signal: Iterable[_T], kernel: Iterable[_T]) -> Iterator[_T]: ...
106
+ def before_and_after(
107
+ predicate: Callable[[_T], bool], it: Iterable[_T]
108
+ ) -> tuple[Iterator[_T], Iterator[_T]]: ...
109
+ def triplewise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T, _T]]: ...
110
+ def sliding_window(
111
+ iterable: Iterable[_T], n: int
112
+ ) -> Iterator[tuple[_T, ...]]: ...
113
+ def subslices(iterable: Iterable[_T]) -> Iterator[list[_T]]: ...
114
+ def polynomial_from_roots(roots: Sequence[_T]) -> list[_T]: ...
115
+ def iter_index(
116
+ iterable: Iterable[_T],
117
+ value: Any,
118
+ start: int | None = ...,
119
+ stop: int | None = ...,
120
+ ) -> Iterator[int]: ...
121
+ def sieve(n: int) -> Iterator[int]: ...
122
+ def batched(
123
+ iterable: Iterable[_T], n: int, *, strict: bool = False
124
+ ) -> Iterator[tuple[_T]]: ...
125
+ def transpose(
126
+ it: Iterable[Iterable[_T]],
127
+ ) -> Iterator[tuple[_T, ...]]: ...
128
+ def reshape(
129
+ matrix: Iterable[Iterable[_T]], cols: int
130
+ ) -> Iterator[tuple[_T, ...]]: ...
131
+ def matmul(m1: Sequence[_T], m2: Sequence[_T]) -> Iterator[tuple[_T]]: ...
132
+ def factor(n: int) -> Iterator[int]: ...
133
+ def polynomial_eval(coefficients: Sequence[_T], x: _U) -> _U: ...
134
+ def sum_of_squares(it: Iterable[_T]) -> _T: ...
135
+ def polynomial_derivative(coefficients: Sequence[_T]) -> list[_T]: ...
136
+ def totient(n: int) -> int: ...
@@ -0,0 +1 @@
1
+ # Marker file for PEP 561
@@ -2072,7 +2072,7 @@ def _create_concatenate_alias(origin, parameters):
2072
2072
  if parameters[-1] is ... and sys.version_info < (3, 9, 2):
2073
2073
  # Hack: Arguments must be types, replace it with one.
2074
2074
  parameters = (*parameters[:-1], _EllipsisDummy)
2075
- if sys.version_info >= (3, 10, 2):
2075
+ if sys.version_info >= (3, 10, 3):
2076
2076
  concatenate = _ConcatenateGenericAlias(origin, parameters,
2077
2077
  _typevar_types=(TypeVar, ParamSpec),
2078
2078
  _paramspec_tvars=True)
@@ -3123,7 +3123,8 @@ else: # <=3.11
3123
3123
  return arg
3124
3124
 
3125
3125
 
3126
- if hasattr(warnings, "deprecated"):
3126
+ # Python 3.13.3+ contains a fix for the wrapped __new__
3127
+ if sys.version_info >= (3, 13, 3):
3127
3128
  deprecated = warnings.deprecated
3128
3129
  else:
3129
3130
  _T = typing.TypeVar("_T")
@@ -3203,7 +3204,7 @@ else:
3203
3204
  original_new = arg.__new__
3204
3205
 
3205
3206
  @functools.wraps(original_new)
3206
- def __new__(cls, *args, **kwargs):
3207
+ def __new__(cls, /, *args, **kwargs):
3207
3208
  if cls is arg:
3208
3209
  warnings.warn(msg, category=category, stacklevel=stacklevel + 1)
3209
3210
  if original_new is not object.__new__:
@@ -3827,14 +3828,27 @@ if sys.version_info >= (3, 14):
3827
3828
  TypeAliasType = typing.TypeAliasType
3828
3829
  # 3.8-3.13
3829
3830
  else:
3830
- def _is_unionable(obj):
3831
- """Corresponds to is_unionable() in unionobject.c in CPython."""
3832
- return obj is None or isinstance(obj, (
3833
- type,
3834
- _types.GenericAlias,
3835
- _types.UnionType,
3836
- TypeAliasType,
3837
- ))
3831
+ if sys.version_info >= (3, 12):
3832
+ # 3.12-3.14
3833
+ def _is_unionable(obj):
3834
+ """Corresponds to is_unionable() in unionobject.c in CPython."""
3835
+ return obj is None or isinstance(obj, (
3836
+ type,
3837
+ _types.GenericAlias,
3838
+ _types.UnionType,
3839
+ typing.TypeAliasType,
3840
+ TypeAliasType,
3841
+ ))
3842
+ else:
3843
+ # 3.8-3.11
3844
+ def _is_unionable(obj):
3845
+ """Corresponds to is_unionable() in unionobject.c in CPython."""
3846
+ return obj is None or isinstance(obj, (
3847
+ type,
3848
+ _types.GenericAlias,
3849
+ _types.UnionType,
3850
+ TypeAliasType,
3851
+ ))
3838
3852
 
3839
3853
  if sys.version_info < (3, 10):
3840
3854
  # Copied and pasted from https://github.com/python/cpython/blob/986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2/Objects/genericaliasobject.c#L568-L582,
@@ -4371,7 +4385,11 @@ else:
4371
4385
  A lax Python 3.11+ like version of typing._type_check
4372
4386
  """
4373
4387
  if hasattr(typing, "_type_convert"):
4374
- if _FORWARD_REF_HAS_CLASS:
4388
+ if (
4389
+ sys.version_info >= (3, 10, 3)
4390
+ or (3, 9, 10) < sys.version_info[:3] < (3, 10)
4391
+ ):
4392
+ # allow_special_forms introduced later cpython/#30926 (bpo-46539)
4375
4393
  type_ = typing._type_convert(
4376
4394
  value,
4377
4395
  module=module,
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '2.3.0'
16
- __version_tuple__ = version_tuple = (2, 3, 0)
20
+ __version__ = version = '2.4.0'
21
+ __version_tuple__ = version_tuple = (2, 4, 0)
@@ -160,26 +160,18 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
160
160
  # don't cache partial content
161
161
  cache_content = False
162
162
  data = self._response.body.read(amt)
163
- if self.length_remaining is not None:
164
- self.length_remaining = max(self.length_remaining - len(data), 0)
165
- if (self.length_is_certain and self.length_remaining == 0) or len(
166
- data
167
- ) < amt:
168
- # definitely finished reading, close response stream
169
- self._response.body.close()
170
- return typing.cast(bytes, data)
171
163
  else: # read all we can (and cache it)
172
164
  data = self._response.body.read()
173
165
  if cache_content:
174
166
  self._body = data
175
- if self.length_remaining is not None:
176
- self.length_remaining = max(self.length_remaining - len(data), 0)
177
- if len(data) == 0 or (
178
- self.length_is_certain and self.length_remaining == 0
179
- ):
180
- # definitely finished reading, close response stream
181
- self._response.body.close()
182
- return typing.cast(bytes, data)
167
+ if self.length_remaining is not None:
168
+ self.length_remaining = max(self.length_remaining - len(data), 0)
169
+ if len(data) == 0 or (
170
+ self.length_is_certain and self.length_remaining == 0
171
+ ):
172
+ # definitely finished reading, close response stream
173
+ self._response.body.close()
174
+ return typing.cast(bytes, data)
183
175
 
184
176
  def read_chunked(
185
177
  self,
@@ -424,6 +424,7 @@ class PyOpenSSLContext:
424
424
  self.check_hostname = False
425
425
  self._minimum_version: int = ssl.TLSVersion.MINIMUM_SUPPORTED
426
426
  self._maximum_version: int = ssl.TLSVersion.MAXIMUM_SUPPORTED
427
+ self._verify_flags: int = ssl.VERIFY_X509_TRUSTED_FIRST
427
428
 
428
429
  @property
429
430
  def options(self) -> int:
@@ -434,6 +435,15 @@ class PyOpenSSLContext:
434
435
  self._options = value
435
436
  self._set_ctx_options()
436
437
 
438
+ @property
439
+ def verify_flags(self) -> int:
440
+ return self._verify_flags
441
+
442
+ @verify_flags.setter
443
+ def verify_flags(self, value: int) -> None:
444
+ self._verify_flags = value
445
+ self._ctx.get_cert_store().set_flags(self._verify_flags)
446
+
437
447
  @property
438
448
  def verify_mode(self) -> int:
439
449
  return _openssl_to_stdlib_verify[self._ctx.get_verify_mode()]
@@ -31,11 +31,12 @@ class PoolError(HTTPError):
31
31
 
32
32
  def __init__(self, pool: ConnectionPool, message: str) -> None:
33
33
  self.pool = pool
34
+ self._message = message
34
35
  super().__init__(f"{pool}: {message}")
35
36
 
36
37
  def __reduce__(self) -> _TYPE_REDUCE_RESULT:
37
38
  # For pickling purposes.
38
- return self.__class__, (None, None)
39
+ return self.__class__, (None, self._message)
39
40
 
40
41
 
41
42
  class RequestError(PoolError):
@@ -47,7 +48,7 @@ class RequestError(PoolError):
47
48
 
48
49
  def __reduce__(self) -> _TYPE_REDUCE_RESULT:
49
50
  # For pickling purposes.
50
- return self.__class__, (None, self.url, None)
51
+ return self.__class__, (None, self.url, self._message)
51
52
 
52
53
 
53
54
  class SSLError(HTTPError):
@@ -100,6 +101,10 @@ class MaxRetryError(RequestError):
100
101
 
101
102
  super().__init__(pool, url, message)
102
103
 
104
+ def __reduce__(self) -> _TYPE_REDUCE_RESULT:
105
+ # For pickling purposes.
106
+ return self.__class__, (None, self.url, self.reason)
107
+
103
108
 
104
109
  class HostChangedError(RequestError):
105
110
  """Raised when an existing pool gets a request for a foreign host."""
@@ -139,11 +144,12 @@ class NewConnectionError(ConnectTimeoutError, HTTPError):
139
144
 
140
145
  def __init__(self, conn: HTTPConnection, message: str) -> None:
141
146
  self.conn = conn
147
+ self._message = message
142
148
  super().__init__(f"{conn}: {message}")
143
149
 
144
150
  def __reduce__(self) -> _TYPE_REDUCE_RESULT:
145
151
  # For pickling purposes.
146
- return self.__class__, (None, None)
152
+ return self.__class__, (None, self._message)
147
153
 
148
154
  @property
149
155
  def pool(self) -> HTTPConnection:
@@ -162,11 +168,13 @@ class NameResolutionError(NewConnectionError):
162
168
 
163
169
  def __init__(self, host: str, conn: HTTPConnection, reason: socket.gaierror):
164
170
  message = f"Failed to resolve '{host}' ({reason})"
171
+ self._host = host
172
+ self._reason = reason
165
173
  super().__init__(conn, message)
166
174
 
167
175
  def __reduce__(self) -> _TYPE_REDUCE_RESULT:
168
176
  # For pickling purposes.
169
- return self.__class__, (None, None, None)
177
+ return self.__class__, (self._host, None, self._reason)
170
178
 
171
179
 
172
180
  class EmptyPoolError(PoolError):
@@ -140,7 +140,7 @@ class HTTP2Connection(HTTPSConnection):
140
140
  with self._h2_conn as conn:
141
141
  self._h2_stream = conn.get_next_available_stream_id()
142
142
 
143
- def putheader(self, header: str | bytes, *values: str | bytes) -> None:
143
+ def putheader(self, header: str | bytes, *values: str | bytes) -> None: # type: ignore[override]
144
144
  # TODO SKIPPABLE_HEADERS from urllib3 are ignored.
145
145
  header = header.encode() if isinstance(header, str) else header
146
146
  header = header.lower() # A lot of upstream code uses capitalized headers.
@@ -0,0 +1,2 @@
1
+ # Instruct type checkers to look for inline type annotations in this package.
2
+ # See PEP 561.
@@ -101,6 +101,7 @@ try: # Do we have ssl at all?
101
101
  OPENSSL_VERSION_NUMBER,
102
102
  PROTOCOL_TLS,
103
103
  PROTOCOL_TLS_CLIENT,
104
+ VERIFY_X509_STRICT,
104
105
  OP_NO_SSLv2,
105
106
  OP_NO_SSLv3,
106
107
  SSLContext,
@@ -109,6 +110,9 @@ try: # Do we have ssl at all?
109
110
 
110
111
  PROTOCOL_SSLv23 = PROTOCOL_TLS
111
112
 
113
+ # Needed for Python 3.9 which does not define this
114
+ VERIFY_X509_PARTIAL_CHAIN = getattr(ssl, "VERIFY_X509_PARTIAL_CHAIN", 0x80000)
115
+
112
116
  # Setting SSLContext.hostname_checks_common_name = False didn't work before CPython
113
117
  # 3.9.3, and 3.10 (but OK on PyPy) or OpenSSL 1.1.1l+
114
118
  if HAS_NEVER_CHECK_COMMON_NAME and not _is_has_never_check_common_name_reliable(
@@ -117,7 +121,7 @@ try: # Do we have ssl at all?
117
121
  sys.implementation.name,
118
122
  sys.version_info,
119
123
  sys.pypy_version_info if sys.implementation.name == "pypy" else None, # type: ignore[attr-defined]
120
- ):
124
+ ): # Defensive: for Python < 3.9.3
121
125
  HAS_NEVER_CHECK_COMMON_NAME = False
122
126
 
123
127
  # Need to be careful here in case old TLS versions get
@@ -138,6 +142,8 @@ except ImportError:
138
142
  OP_NO_SSLv3 = 0x2000000 # type: ignore[assignment]
139
143
  PROTOCOL_SSLv23 = PROTOCOL_TLS = 2 # type: ignore[assignment]
140
144
  PROTOCOL_TLS_CLIENT = 16 # type: ignore[assignment]
145
+ VERIFY_X509_PARTIAL_CHAIN = 0x80000
146
+ VERIFY_X509_STRICT = 0x20 # type: ignore[assignment]
141
147
 
142
148
 
143
149
  _TYPE_PEER_CERT_RET = typing.Union["_TYPE_PEER_CERT_RET_DICT", bytes, None]
@@ -223,6 +229,7 @@ def create_urllib3_context(
223
229
  ciphers: str | None = None,
224
230
  ssl_minimum_version: int | None = None,
225
231
  ssl_maximum_version: int | None = None,
232
+ verify_flags: int | None = None,
226
233
  ) -> ssl.SSLContext:
227
234
  """Creates and configures an :class:`ssl.SSLContext` instance for use with urllib3.
228
235
 
@@ -247,6 +254,9 @@ def create_urllib3_context(
247
254
  :param ciphers:
248
255
  Which cipher suites to allow the server to select. Defaults to either system configured
249
256
  ciphers if OpenSSL 1.1.1+, otherwise uses a secure default set of ciphers.
257
+ :param verify_flags:
258
+ The flags for certificate verification operations. These default to
259
+ ``ssl.VERIFY_X509_PARTIAL_CHAIN`` and ``ssl.VERIFY_X509_STRICT`` for Python 3.13+.
250
260
  :returns:
251
261
  Constructed SSLContext object with specified options
252
262
  :rtype: SSLContext
@@ -320,6 +330,16 @@ def create_urllib3_context(
320
330
 
321
331
  context.options |= options
322
332
 
333
+ if verify_flags is None:
334
+ verify_flags = 0
335
+ # In Python 3.13+ ssl.create_default_context() sets VERIFY_X509_PARTIAL_CHAIN
336
+ # and VERIFY_X509_STRICT so we do the same
337
+ if sys.version_info >= (3, 13):
338
+ verify_flags |= VERIFY_X509_PARTIAL_CHAIN
339
+ verify_flags |= VERIFY_X509_STRICT
340
+
341
+ context.verify_flags |= verify_flags
342
+
323
343
  # Enable post-handshake authentication for TLS 1.3, see GH #1634. PHA is
324
344
  # necessary for conditional client cert authentication with TLS 1.3.
325
345
  # The attribute is None for OpenSSL <= 1.1.0 or does not exist when using
@@ -146,7 +146,7 @@ def match_hostname(
146
146
  if key == "commonName":
147
147
  if _dnsname_match(value, hostname):
148
148
  return
149
- dnsnames.append(value)
149
+ dnsnames.append(value) # Defensive: for Python < 3.9.3
150
150
 
151
151
  if len(dnsnames) > 1:
152
152
  raise CertificateError(
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.45.1"
3
+ __version__ = "0.46.1"
@@ -1,23 +1,25 @@
1
1
  """
2
- Wheel command line tool (enable python -m wheel syntax)
2
+ Wheel command line tool (enables the ``python -m wheel`` syntax)
3
3
  """
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
7
  import sys
8
+ from typing import NoReturn
8
9
 
9
10
 
10
- def main(): # needed for console script
11
+ def main() -> NoReturn: # needed for console script
11
12
  if __package__ == "":
12
13
  # To be able to run 'python wheel-0.9.whl/wheel':
13
14
  import os.path
14
15
 
15
16
  path = os.path.dirname(os.path.dirname(__file__))
16
17
  sys.path[0:0] = [path]
17
- import wheel.cli
18
18
 
19
- sys.exit(wheel.cli.main())
19
+ from ._commands import main as cli_main
20
+
21
+ sys.exit(cli_main())
20
22
 
21
23
 
22
24
  if __name__ == "__main__":
23
- sys.exit(main())
25
+ main()
@@ -9,9 +9,7 @@ import os
9
9
  import sys
10
10
  from argparse import ArgumentTypeError
11
11
 
12
-
13
- class WheelError(Exception):
14
- pass
12
+ from ..wheelfile import WheelError
15
13
 
16
14
 
17
15
  def unpack_f(args: argparse.Namespace) -> None:
@@ -75,7 +73,7 @@ output filename(s) will be displayed on stdout for further processing.
75
73
  """
76
74
 
77
75
 
78
- def parser():
76
+ def parser() -> argparse.ArgumentParser:
79
77
  p = argparse.ArgumentParser()
80
78
  s = p.add_subparsers(help="commands")
81
79
 
@@ -140,7 +138,7 @@ def parser():
140
138
  return p
141
139
 
142
140
 
143
- def main():
141
+ def main() -> int:
144
142
  p = parser()
145
143
  args = p.parse_args()
146
144
  if not hasattr(args, "func"):
@@ -13,9 +13,10 @@ from pathlib import Path
13
13
  from textwrap import dedent
14
14
  from zipfile import ZipFile
15
15
 
16
+ from packaging.tags import parse_tag
17
+
16
18
  from .. import __version__
17
- from ..metadata import generate_requirements
18
- from ..vendored.packaging.tags import parse_tag
19
+ from .._metadata import generate_requirements
19
20
  from ..wheelfile import WheelFile
20
21
 
21
22
  egg_filename_re = re.compile(
@@ -63,7 +64,7 @@ def convert_requires(requires: str, metadata: Message) -> None:
63
64
  metadata.add_header(key, value)
64
65
 
65
66
 
66
- def convert_pkg_info(pkginfo: str, metadata: Message):
67
+ def convert_pkg_info(pkginfo: str, metadata: Message) -> None:
67
68
  parsed_message = Parser().parsestr(pkginfo)
68
69
  for key, value in parsed_message.items():
69
70
  key_lower = key.lower()
@@ -72,13 +73,17 @@ def convert_pkg_info(pkginfo: str, metadata: Message):
72
73
 
73
74
  if key_lower == "description":
74
75
  description_lines = value.splitlines()
75
- value = "\n".join(
76
- (
77
- description_lines[0].lstrip(),
78
- dedent("\n".join(description_lines[1:])),
79
- "\n",
76
+ if description_lines:
77
+ value = "\n".join(
78
+ (
79
+ description_lines[0].lstrip(),
80
+ dedent("\n".join(description_lines[1:])),
81
+ "\n",
82
+ )
80
83
  )
81
- )
84
+ else:
85
+ value = "\n"
86
+
82
87
  metadata.set_payload(value)
83
88
  elif key_lower == "home-page":
84
89
  metadata.add_header("Project-URL", f"Homepage, {value}")
@@ -6,8 +6,7 @@ import re
6
6
  from email.generator import BytesGenerator
7
7
  from email.parser import BytesParser
8
8
 
9
- from wheel.cli import WheelError
10
- from wheel.wheelfile import WheelFile
9
+ from ..wheelfile import WheelError, WheelFile
11
10
 
12
11
  DIST_INFO_RE = re.compile(r"^(?P<namever>(?P<name>.+?)-(?P<ver>\d.*?))\.dist-info$")
13
12
 
@@ -119,9 +119,10 @@ def tags(
119
119
  )
120
120
  final_wheel_path = os.path.join(os.path.dirname(f.filename), final_wheel_name)
121
121
 
122
- with WheelFile(original_wheel_path, "r") as fin, WheelFile(
123
- final_wheel_path, "w"
124
- ) as fout:
122
+ with (
123
+ WheelFile(original_wheel_path, "r") as fin,
124
+ WheelFile(final_wheel_path, "w") as fout,
125
+ ):
125
126
  fout.comment = fin.comment # preserve the comment
126
127
  for item in fin.infolist():
127
128
  if item.is_dir():