py2docfx 0.1.9.dev1897554__py3-none-any.whl → 0.1.9.dev1917798__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. py2docfx/convert_prepare/environment.py +25 -6
  2. py2docfx/convert_prepare/tests/test_generate_document.py +4 -4
  3. py2docfx/convert_prepare/tests/test_get_source.py +6 -6
  4. py2docfx/convert_prepare/tests/test_params.py +1 -1
  5. py2docfx/convert_prepare/tests/test_sphinx_caller.py +3 -3
  6. py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  7. py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
  8. py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
  9. py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
  10. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  11. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
  13. py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
  14. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
  15. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
  16. py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
  17. py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
  18. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
  19. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  20. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  21. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +23 -17
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +13 -12
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +17 -16
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +55 -78
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +29 -30
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +9 -8
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +2 -2
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +48 -45
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
  76. py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
  77. py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
  78. py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
  79. py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +2 -2
  80. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +25 -14
  81. py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
  82. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
  83. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
  84. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  85. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  86. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  87. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
  88. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  89. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  90. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  91. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  92. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  93. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  94. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  95. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  96. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  97. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
  98. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  99. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  100. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  101. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  102. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  103. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  104. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  105. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  106. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  107. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  108. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  109. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  110. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  111. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  112. py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
  113. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
  114. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  115. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  116. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  117. py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +280 -220
  118. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
  119. py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  120. py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
  121. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
  122. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
  123. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  124. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
  125. py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
  126. py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
  127. py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
  128. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
  129. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
  130. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
  131. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
  132. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
  133. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
  134. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
  135. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
  136. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
  137. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
  138. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
  139. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
  140. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
  141. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
  142. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
  143. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
  144. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
  145. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
  146. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
  147. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
  148. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
  149. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
  150. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
  151. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
  152. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
  153. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
  154. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
  155. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
  156. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
  157. py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
  158. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
  159. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
  160. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
  161. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
  162. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
  163. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
  164. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
  165. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
  166. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
  167. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
  168. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
  169. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
  170. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
  171. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
  172. py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
  173. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  174. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
  175. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
  176. py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
  177. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
  178. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
  179. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
  180. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  181. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
  182. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
  183. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  184. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +2 -2
  185. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +2 -2
  186. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +2 -2
  187. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +2 -2
  188. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +2 -2
  189. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +2 -2
  190. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +2 -2
  191. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +1 -7
  192. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +2 -2
  193. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +2 -2
  194. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +2 -2
  195. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +2 -2
  196. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +2 -2
  197. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
  198. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  199. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  200. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  201. py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
  202. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
  203. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
  204. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
  205. py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
  206. py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
  207. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
  208. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  209. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  210. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  211. py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
  212. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
  213. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
  214. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
  215. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  216. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  217. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  218. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  219. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  220. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  221. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  222. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  223. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +23 -17
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  233. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
  234. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
  235. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  236. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +13 -12
  237. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +17 -16
  238. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
  239. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  240. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +55 -78
  241. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
  242. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +29 -30
  243. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
  244. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
  245. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  246. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  247. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
  248. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +9 -8
  249. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +2 -2
  250. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  251. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
  252. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
  253. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  254. py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
  255. py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
  256. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +48 -45
  257. py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
  258. py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
  259. py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
  260. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
  261. py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
  262. py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
  263. py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
  264. py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +2 -2
  265. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +25 -14
  266. py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
  267. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
  268. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
  269. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  270. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  271. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  272. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
  273. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  274. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  275. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  276. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  277. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  278. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  279. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  280. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  281. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  282. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
  283. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  284. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  285. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  286. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  287. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  288. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  289. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  290. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  291. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  292. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  293. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  294. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  295. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  296. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  297. py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
  298. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
  299. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  300. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  301. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  302. py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +280 -220
  303. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
  304. {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/METADATA +1 -1
  305. {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/RECORD +307 -367
  306. {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/WHEEL +1 -1
  307. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  308. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  309. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  310. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  311. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  312. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  313. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  314. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  315. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  316. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  317. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  318. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  319. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  320. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  321. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  322. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  323. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  324. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  325. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  326. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  327. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  328. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  329. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  330. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  331. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  332. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  333. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  334. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  335. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  336. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  337. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  338. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  339. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  340. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  341. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  342. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  343. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  344. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  345. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  346. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  347. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  348. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  349. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  350. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  351. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  352. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  353. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  354. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  355. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  356. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  357. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  358. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  359. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  360. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  361. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  362. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  363. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  364. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  365. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  366. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  367. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  368. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  369. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  370. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  371. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  372. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  373. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  374. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  375. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  376. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  377. {py2docfx-0.1.9.dev1897554.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/top_level.txt +0 -0
@@ -481,7 +481,7 @@ class MessageMeta(type):
481
481
  `always_print_fields_with_no_presence` instead. An option that
482
482
  determines whether the default field values should be included in the results.
483
483
  This value must match `always_print_fields_with_no_presence`,
484
- if both arguments are explictly set.
484
+ if both arguments are explicitly set.
485
485
  preserving_proto_field_name (Optional(bool)): An option that
486
486
  determines whether field name representations preserve
487
487
  proto case (snake_case) or use lowerCamelCase. Default is False.
@@ -497,7 +497,7 @@ class MessageMeta(type):
497
497
  always be serialized. Any field that supports presence is not affected by
498
498
  this option (including singular message fields and oneof fields).
499
499
  This value must match `including_default_value_fields`,
500
- if both arguments are explictly set.
500
+ if both arguments are explicitly set.
501
501
  Returns:
502
502
  str: The json string representation of the protocol buffer.
503
503
  """
@@ -537,7 +537,7 @@ class MessageMeta(type):
537
537
  parse it into a message.
538
538
 
539
539
  Args:
540
- paylod: A json string representing a message.
540
+ payload: A json string representing a message.
541
541
  ignore_unknown_fields (Optional(bool)): If True, do not raise errors
542
542
  for unknown fields.
543
543
 
@@ -574,14 +574,14 @@ class MessageMeta(type):
574
574
  `always_print_fields_with_no_presence` instead. An option that
575
575
  determines whether the default field values should be included in the results.
576
576
  This value must match `always_print_fields_with_no_presence`,
577
- if both arguments are explictly set.
577
+ if both arguments are explicitly set.
578
578
  float_precision (Optional(int)): If set, use this to specify float field valid digits.
579
579
  Default is None.
580
580
  always_print_fields_with_no_presence (Optional(bool)): If True, fields without
581
581
  presence (implicit presence scalars, repeated fields, and map fields) will
582
582
  always be serialized. Any field that supports presence is not affected by
583
583
  this option (including singular message fields and oneof fields). This value
584
- must match `including_default_value_fields`, if both arguments are explictly set.
584
+ must match `including_default_value_fields`, if both arguments are explicitly set.
585
585
 
586
586
  Returns:
587
587
  dict: A representation of the protocol buffer using pythonic data structures.
@@ -725,36 +725,7 @@ class Message(metaclass=MessageMeta):
725
725
  "Unknown field for {}: {}".format(self.__class__.__name__, key)
726
726
  )
727
727
 
728
- try:
729
- pb_value = marshal.to_proto(pb_type, value)
730
- except ValueError:
731
- # Underscores may be appended to field names
732
- # that collide with python or proto-plus keywords.
733
- # In case a key only exists with a `_` suffix, coerce the key
734
- # to include the `_` suffix. It's not possible to
735
- # natively define the same field with a trailing underscore in protobuf.
736
- # See related issue
737
- # https://github.com/googleapis/python-api-core/issues/227
738
- if isinstance(value, dict):
739
- if _upb:
740
- # In UPB, pb_type is MessageMeta which doesn't expose attrs like it used to in Python/CPP.
741
- keys_to_update = [
742
- item
743
- for item in value
744
- if item not in pb_type.DESCRIPTOR.fields_by_name
745
- and f"{item}_" in pb_type.DESCRIPTOR.fields_by_name
746
- ]
747
- else:
748
- keys_to_update = [
749
- item
750
- for item in value
751
- if not hasattr(pb_type, item)
752
- and hasattr(pb_type, f"{item}_")
753
- ]
754
- for item in keys_to_update:
755
- value[f"{item}_"] = value.pop(item)
756
-
757
- pb_value = marshal.to_proto(pb_type, value)
728
+ pb_value = marshal.to_proto(pb_type, value)
758
729
 
759
730
  if pb_value is not None:
760
731
  params[key] = pb_value
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  #
15
- __version__ = "1.24.0"
15
+ __version__ = "1.25.0"
@@ -60,7 +60,7 @@ def _install_setup_requires(attrs):
60
60
  fetch_build_eggs interface.
61
61
  """
62
62
 
63
- def __init__(self, attrs: Mapping[str, object]):
63
+ def __init__(self, attrs: Mapping[str, object]) -> None:
64
64
  _incl = 'dependency_links', 'setup_requires'
65
65
  filtered = {k: attrs[k] for k in set(_incl) & set(attrs)}
66
66
  super().__init__(filtered)
@@ -70,7 +70,7 @@ def _install_setup_requires(attrs):
70
70
  def _get_project_config_files(self, filenames=None):
71
71
  """Ignore ``pyproject.toml``, they are not related to setup_requires"""
72
72
  try:
73
- cfg, toml = super()._split_standard_project_metadata(filenames)
73
+ cfg, _toml = super()._split_standard_project_metadata(filenames)
74
74
  except Exception:
75
75
  return filenames, ()
76
76
  return cfg, ()
@@ -89,7 +89,7 @@ def _install_setup_requires(attrs):
89
89
  _fetch_build_eggs(dist)
90
90
 
91
91
 
92
- def _fetch_build_eggs(dist):
92
+ def _fetch_build_eggs(dist: Distribution):
93
93
  try:
94
94
  dist.fetch_build_eggs(dist.setup_requires)
95
95
  except Exception as ex:
@@ -120,10 +120,8 @@ def setup(**attrs):
120
120
  setup.__doc__ = distutils.core.setup.__doc__
121
121
 
122
122
  if TYPE_CHECKING:
123
- from typing_extensions import TypeAlias
124
-
125
123
  # Work around a mypy issue where type[T] can't be used as a base: https://github.com/python/mypy/issues/10962
126
- _Command: TypeAlias = distutils.core.Command
124
+ from distutils.core import Command as _Command
127
125
  else:
128
126
  _Command = monkey.get_unpatched(distutils.core.Command)
129
127
 
@@ -169,7 +167,7 @@ class Command(_Command):
169
167
  command_consumes_arguments = False
170
168
  distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
171
169
 
172
- def __init__(self, dist: Distribution, **kw):
170
+ def __init__(self, dist: Distribution, **kw) -> None:
173
171
  """
174
172
  Construct the command for dist, updating
175
173
  vars(self) with any keyword parameters.
@@ -188,7 +186,7 @@ class Command(_Command):
188
186
  )
189
187
  return val
190
188
 
191
- def ensure_string_list(self, option):
189
+ def ensure_string_list(self, option: str) -> None:
192
190
  r"""Ensure that 'option' is a list of strings. If 'option' is
193
191
  currently a string, we split it either on /,\s*/ or /\s+/, so
194
192
  "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become
@@ -228,7 +226,7 @@ class Command(_Command):
228
226
  ) -> _Command:
229
227
  cmd = _Command.reinitialize_command(self, command, reinit_subcommands)
230
228
  vars(cmd).update(kw)
231
- return cmd
229
+ return cmd # pyright: ignore[reportReturnType] # pypa/distutils#307
232
230
 
233
231
  @abstractmethod
234
232
  def initialize_options(self) -> None:
@@ -26,7 +26,7 @@ else:
26
26
 
27
27
  def aix_platform(osname, version, release):
28
28
  try:
29
- import _aix_support # type: ignore
29
+ import _aix_support
30
30
 
31
31
  return _aix_support.aix_platform()
32
32
  except ImportError:
@@ -32,8 +32,9 @@ class SkipRepeatAbsolutePaths(set):
32
32
  def wrapper(path, *args, **kwargs):
33
33
  if path.absolute() in self:
34
34
  return
35
+ result = func(path, *args, **kwargs)
35
36
  self.add(path.absolute())
36
- return func(path, *args, **kwargs)
37
+ return result
37
38
 
38
39
  return wrapper
39
40
 
@@ -44,7 +45,7 @@ wrapper = SkipRepeatAbsolutePaths().wrap
44
45
 
45
46
  @functools.singledispatch
46
47
  @wrapper
47
- def mkpath(name: pathlib.Path, mode=0o777, verbose=True, dry_run=False):
48
+ def mkpath(name: pathlib.Path, mode=0o777, verbose=True, dry_run=False) -> None:
48
49
  """Create a directory and any missing ancestor directories.
49
50
 
50
51
  If the directory already exists (or if 'name' is the empty string, which
@@ -52,21 +53,15 @@ def mkpath(name: pathlib.Path, mode=0o777, verbose=True, dry_run=False):
52
53
  Raise DistutilsFileError if unable to create some directory along the way
53
54
  (eg. some sub-path exists, but is a file rather than a directory).
54
55
  If 'verbose' is true, log the directory created.
55
- Return the list of directories actually created.
56
56
  """
57
57
  if verbose and not name.is_dir():
58
58
  log.info("creating %s", name)
59
59
 
60
- ancestry = itertools.chain((name,), name.parents)
61
- missing = (path for path in ancestry if not path.is_dir())
62
-
63
60
  try:
64
61
  dry_run or name.mkdir(mode=mode, parents=True, exist_ok=True)
65
62
  except OSError as exc:
66
63
  raise DistutilsFileError(f"could not create '{name}': {exc.args[-1]}")
67
64
 
68
- return list(map(str, missing))
69
-
70
65
 
71
66
  @mkpath.register
72
67
  def _(name: str, *args, **kwargs):
@@ -1,6 +1,7 @@
1
1
  """Tests for distutils.dir_util."""
2
2
 
3
3
  import os
4
+ import pathlib
4
5
  import stat
5
6
  import unittest.mock as mock
6
7
  from distutils import dir_util, errors
@@ -110,3 +111,24 @@ class TestDirUtil(support.TempdirManager):
110
111
  ):
111
112
  src = self.tempdirs[-1]
112
113
  dir_util.copy_tree(src, None)
114
+
115
+ def test_mkpath_exception_uncached(self, monkeypatch, tmp_path):
116
+ """
117
+ Caching should not remember failed attempts.
118
+
119
+ pypa/distutils#304
120
+ """
121
+
122
+ class FailPath(pathlib.Path):
123
+ def mkdir(self, *args, **kwargs):
124
+ raise OSError("Failed to create directory")
125
+
126
+ target = tmp_path / 'foodir'
127
+
128
+ with pytest.raises(errors.DistutilsFileError):
129
+ mkpath(FailPath(target))
130
+
131
+ assert not target.exists()
132
+
133
+ mkpath(target)
134
+ assert target.exists()
@@ -6,7 +6,4 @@ else:
6
6
  import importlib.metadata as metadata # noqa: F401
7
7
 
8
8
 
9
- if sys.version_info < (3, 9):
10
- import importlib_resources as resources # pragma: no cover
11
- else:
12
- import importlib.resources as resources # noqa: F401
9
+ import importlib.resources as resources # noqa: F401
@@ -3,18 +3,15 @@ from __future__ import annotations
3
3
  import contextlib
4
4
  import os
5
5
  import sys
6
- from typing import TYPE_CHECKING, Union
6
+ from typing import TYPE_CHECKING, TypeVar, Union
7
+
8
+ from more_itertools import unique_everseen
7
9
 
8
10
  if TYPE_CHECKING:
9
11
  from typing_extensions import TypeAlias
10
12
 
11
-
12
- from more_itertools import unique_everseen
13
-
14
- if sys.version_info >= (3, 9):
15
- StrPath: TypeAlias = Union[str, os.PathLike[str]] # Same as _typeshed.StrPath
16
- else:
17
- StrPath: TypeAlias = Union[str, os.PathLike]
13
+ StrPath: TypeAlias = Union[str, os.PathLike[str]] # Same as _typeshed.StrPath
14
+ StrPathT = TypeVar("StrPathT", bound=Union[str, os.PathLike[str]])
18
15
 
19
16
 
20
17
  def ensure_directory(path):
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from collections.abc import Iterable, Iterator
3
4
  from functools import lru_cache
4
- from typing import TYPE_CHECKING, Callable, Iterable, Iterator, TypeVar, Union, overload
5
+ from typing import TYPE_CHECKING, Callable, TypeVar, Union, overload
5
6
 
6
7
  import jaraco.text as text
7
8
  from packaging.requirements import Requirement
@@ -0,0 +1,53 @@
1
+ """Convenience layer on top of stdlib's shutil and os"""
2
+
3
+ import os
4
+ import stat
5
+ from typing import Callable, TypeVar
6
+
7
+ from .compat import py311
8
+
9
+ from distutils import log
10
+
11
+ try:
12
+ from os import chmod # pyright: ignore[reportAssignmentType]
13
+ # Losing type-safety w/ pyright, but that's ok
14
+ except ImportError: # pragma: no cover
15
+ # Jython compatibility
16
+ def chmod(*args: object, **kwargs: object) -> None: # type: ignore[misc] # Mypy reuses the imported definition anyway
17
+ pass
18
+
19
+
20
+ _T = TypeVar("_T")
21
+
22
+
23
+ def attempt_chmod_verbose(path, mode):
24
+ log.debug("changing mode of %s to %o", path, mode)
25
+ try:
26
+ chmod(path, mode)
27
+ except OSError as e: # pragma: no cover
28
+ log.debug("chmod failed: %s", e)
29
+
30
+
31
+ # Must match shutil._OnExcCallback
32
+ def _auto_chmod(
33
+ func: Callable[..., _T], arg: str, exc: BaseException
34
+ ) -> _T: # pragma: no cover
35
+ """shutils onexc callback to automatically call chmod for certain functions."""
36
+ # Only retry for scenarios known to have an issue
37
+ if func in [os.unlink, os.remove] and os.name == 'nt':
38
+ attempt_chmod_verbose(arg, stat.S_IWRITE)
39
+ return func(arg)
40
+ raise exc
41
+
42
+
43
+ def rmtree(path, ignore_errors=False, onexc=_auto_chmod):
44
+ """
45
+ Similar to ``shutil.rmtree`` but automatically executes ``chmod``
46
+ for well know Windows failure scenarios.
47
+ """
48
+ return py311.shutil_rmtree(path, ignore_errors, onexc)
49
+
50
+
51
+ def rmdir(path, **opts):
52
+ if os.path.isdir(path):
53
+ rmtree(path, **opts)
@@ -6,10 +6,10 @@ __title__ = "packaging"
6
6
  __summary__ = "Core utilities for Python packages"
7
7
  __uri__ = "https://github.com/pypa/packaging"
8
8
 
9
- __version__ = "24.1"
9
+ __version__ = "24.2"
10
10
 
11
11
  __author__ = "Donald Stufft and individual contributors"
12
12
  __email__ = "donald@stufft.io"
13
13
 
14
14
  __license__ = "BSD-2-Clause or Apache-2.0"
15
- __copyright__ = "2014 %s" % __author__
15
+ __copyright__ = f"2014 {__author__}"
@@ -48,8 +48,8 @@ class ELFFile:
48
48
 
49
49
  try:
50
50
  ident = self._read("16B")
51
- except struct.error:
52
- raise ELFInvalid("unable to parse identification")
51
+ except struct.error as e:
52
+ raise ELFInvalid("unable to parse identification") from e
53
53
  magic = bytes(ident[:4])
54
54
  if magic != b"\x7fELF":
55
55
  raise ELFInvalid(f"invalid magic: {magic!r}")
@@ -67,11 +67,11 @@ class ELFFile:
67
67
  (2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
68
68
  (2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
69
69
  }[(self.capacity, self.encoding)]
70
- except KeyError:
70
+ except KeyError as e:
71
71
  raise ELFInvalid(
72
72
  f"unrecognized capacity ({self.capacity}) or "
73
73
  f"encoding ({self.encoding})"
74
- )
74
+ ) from e
75
75
 
76
76
  try:
77
77
  (
@@ -164,6 +164,7 @@ def _parse_glibc_version(version_str: str) -> tuple[int, int]:
164
164
  f"Expected glibc version with 2 components major.minor,"
165
165
  f" got: {version_str}",
166
166
  RuntimeWarning,
167
+ stacklevel=2,
167
168
  )
168
169
  return -1, -1
169
170
  return int(m.group("major")), int(m.group("minor"))
@@ -0,0 +1,145 @@
1
+ #######################################################################################
2
+ #
3
+ # Adapted from:
4
+ # https://github.com/pypa/hatch/blob/5352e44/backend/src/hatchling/licenses/parse.py
5
+ #
6
+ # MIT License
7
+ #
8
+ # Copyright (c) 2017-present Ofek Lev <oss@ofek.dev>
9
+ #
10
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this
11
+ # software and associated documentation files (the "Software"), to deal in the Software
12
+ # without restriction, including without limitation the rights to use, copy, modify,
13
+ # merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
14
+ # permit persons to whom the Software is furnished to do so, subject to the following
15
+ # conditions:
16
+ #
17
+ # The above copyright notice and this permission notice shall be included in all copies
18
+ # or substantial portions of the Software.
19
+ #
20
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
21
+ # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
22
+ # PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
24
+ # CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
25
+ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+ #
27
+ #
28
+ # With additional allowance of arbitrary `LicenseRef-` identifiers, not just
29
+ # `LicenseRef-Public-Domain` and `LicenseRef-Proprietary`.
30
+ #
31
+ #######################################################################################
32
+ from __future__ import annotations
33
+
34
+ import re
35
+ from typing import NewType, cast
36
+
37
+ from packaging.licenses._spdx import EXCEPTIONS, LICENSES
38
+
39
+ __all__ = [
40
+ "NormalizedLicenseExpression",
41
+ "InvalidLicenseExpression",
42
+ "canonicalize_license_expression",
43
+ ]
44
+
45
+ license_ref_allowed = re.compile("^[A-Za-z0-9.-]*$")
46
+
47
+ NormalizedLicenseExpression = NewType("NormalizedLicenseExpression", str)
48
+
49
+
50
+ class InvalidLicenseExpression(ValueError):
51
+ """Raised when a license-expression string is invalid
52
+
53
+ >>> canonicalize_license_expression("invalid")
54
+ Traceback (most recent call last):
55
+ ...
56
+ packaging.licenses.InvalidLicenseExpression: Invalid license expression: 'invalid'
57
+ """
58
+
59
+
60
+ def canonicalize_license_expression(
61
+ raw_license_expression: str,
62
+ ) -> NormalizedLicenseExpression:
63
+ if not raw_license_expression:
64
+ message = f"Invalid license expression: {raw_license_expression!r}"
65
+ raise InvalidLicenseExpression(message)
66
+
67
+ # Pad any parentheses so tokenization can be achieved by merely splitting on
68
+ # whitespace.
69
+ license_expression = raw_license_expression.replace("(", " ( ").replace(")", " ) ")
70
+ licenseref_prefix = "LicenseRef-"
71
+ license_refs = {
72
+ ref.lower(): "LicenseRef-" + ref[len(licenseref_prefix) :]
73
+ for ref in license_expression.split()
74
+ if ref.lower().startswith(licenseref_prefix.lower())
75
+ }
76
+
77
+ # Normalize to lower case so we can look up licenses/exceptions
78
+ # and so boolean operators are Python-compatible.
79
+ license_expression = license_expression.lower()
80
+
81
+ tokens = license_expression.split()
82
+
83
+ # Rather than implementing boolean logic, we create an expression that Python can
84
+ # parse. Everything that is not involved with the grammar itself is treated as
85
+ # `False` and the expression should evaluate as such.
86
+ python_tokens = []
87
+ for token in tokens:
88
+ if token not in {"or", "and", "with", "(", ")"}:
89
+ python_tokens.append("False")
90
+ elif token == "with":
91
+ python_tokens.append("or")
92
+ elif token == "(" and python_tokens and python_tokens[-1] not in {"or", "and"}:
93
+ message = f"Invalid license expression: {raw_license_expression!r}"
94
+ raise InvalidLicenseExpression(message)
95
+ else:
96
+ python_tokens.append(token)
97
+
98
+ python_expression = " ".join(python_tokens)
99
+ try:
100
+ invalid = eval(python_expression, globals(), locals())
101
+ except Exception:
102
+ invalid = True
103
+
104
+ if invalid is not False:
105
+ message = f"Invalid license expression: {raw_license_expression!r}"
106
+ raise InvalidLicenseExpression(message) from None
107
+
108
+ # Take a final pass to check for unknown licenses/exceptions.
109
+ normalized_tokens = []
110
+ for token in tokens:
111
+ if token in {"or", "and", "with", "(", ")"}:
112
+ normalized_tokens.append(token.upper())
113
+ continue
114
+
115
+ if normalized_tokens and normalized_tokens[-1] == "WITH":
116
+ if token not in EXCEPTIONS:
117
+ message = f"Unknown license exception: {token!r}"
118
+ raise InvalidLicenseExpression(message)
119
+
120
+ normalized_tokens.append(EXCEPTIONS[token]["id"])
121
+ else:
122
+ if token.endswith("+"):
123
+ final_token = token[:-1]
124
+ suffix = "+"
125
+ else:
126
+ final_token = token
127
+ suffix = ""
128
+
129
+ if final_token.startswith("licenseref-"):
130
+ if not license_ref_allowed.match(final_token):
131
+ message = f"Invalid licenseref: {final_token!r}"
132
+ raise InvalidLicenseExpression(message)
133
+ normalized_tokens.append(license_refs[final_token] + suffix)
134
+ else:
135
+ if final_token not in LICENSES:
136
+ message = f"Unknown license: {final_token!r}"
137
+ raise InvalidLicenseExpression(message)
138
+ normalized_tokens.append(LICENSES[final_token]["id"] + suffix)
139
+
140
+ normalized_expression = " ".join(normalized_tokens)
141
+
142
+ return cast(
143
+ NormalizedLicenseExpression,
144
+ normalized_expression.replace("( ", "(").replace(" )", ")"),
145
+ )