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
@@ -5,6 +5,7 @@ from jaraco import path
5
5
 
6
6
  from setuptools.config.pyprojecttoml import apply_configuration
7
7
  from setuptools.dist import Distribution
8
+ from setuptools.warnings import SetuptoolsWarning
8
9
 
9
10
 
10
11
  def test_dynamic_dependencies(tmp_path):
@@ -77,23 +78,32 @@ def test_mixed_dynamic_optional_dependencies(tmp_path):
77
78
 
78
79
  [tool.setuptools.dynamic.optional-dependencies.images]
79
80
  file = ["requirements-images.txt"]
80
-
81
- [build-system]
82
- requires = ["setuptools", "wheel"]
83
- build-backend = "setuptools.build_meta"
84
81
  """
85
82
  ),
86
83
  }
87
84
 
88
85
  path.build(files, prefix=tmp_path)
89
-
90
- # Test that the mix-and-match doesn't currently validate.
91
86
  pyproject = tmp_path / "pyproject.toml"
92
87
  with pytest.raises(ValueError, match="project.optional-dependencies"):
93
88
  apply_configuration(Distribution(), pyproject)
94
89
 
95
- # Explicitly disable the validation and try again, to see that the mix-and-match
96
- # result would be correct.
97
- dist = Distribution()
98
- dist = apply_configuration(dist, pyproject, ignore_option_errors=True)
99
- assert dist.extras_require == {"docs": ["sphinx"], "images": ["pillow~=42.0"]}
90
+
91
+ def test_mixed_extras_require_optional_dependencies(tmp_path):
92
+ files = {
93
+ "pyproject.toml": cleandoc(
94
+ """
95
+ [project]
96
+ name = "myproj"
97
+ version = "1.0"
98
+ optional-dependencies.docs = ["sphinx"]
99
+ """
100
+ ),
101
+ }
102
+
103
+ path.build(files, prefix=tmp_path)
104
+ pyproject = tmp_path / "pyproject.toml"
105
+
106
+ with pytest.warns(SetuptoolsWarning, match=".extras_require. overwritten"):
107
+ dist = Distribution({"extras_require": {"hello": ["world"]}})
108
+ dist = apply_configuration(dist, pyproject)
109
+ assert dist.extras_require == {"docs": ["sphinx"]}
@@ -7,7 +7,7 @@ from unittest.mock import Mock, patch
7
7
  import pytest
8
8
  from packaging.requirements import InvalidRequirement
9
9
 
10
- from setuptools.config.setupcfg import ConfigHandler, read_configuration
10
+ from setuptools.config.setupcfg import ConfigHandler, Target, read_configuration
11
11
  from setuptools.dist import Distribution, _Distribution
12
12
  from setuptools.warnings import SetuptoolsDeprecationWarning
13
13
 
@@ -16,7 +16,7 @@ from ..textwrap import DALS
16
16
  from distutils.errors import DistutilsFileError, DistutilsOptionError
17
17
 
18
18
 
19
- class ErrConfigHandler(ConfigHandler):
19
+ class ErrConfigHandler(ConfigHandler[Target]):
20
20
  """Erroneous handler. Fails to implement required methods."""
21
21
 
22
22
  section_prefix = "**err**"
@@ -288,9 +288,7 @@ class TestMetadata:
288
288
  assert dist.metadata.version == '2016.11.26'
289
289
 
290
290
  def test_version_file(self, tmpdir):
291
- _, config = fake_env(
292
- tmpdir, '[metadata]\nversion = file: fake_package/version.txt\n'
293
- )
291
+ fake_env(tmpdir, '[metadata]\nversion = file: fake_package/version.txt\n')
294
292
  tmpdir.join('fake_package', 'version.txt').write('1.2.3\n')
295
293
 
296
294
  with get_dist(tmpdir) as dist:
@@ -302,7 +300,7 @@ class TestMetadata:
302
300
  dist.metadata.version
303
301
 
304
302
  def test_version_with_package_dir_simple(self, tmpdir):
305
- _, config = fake_env(
303
+ fake_env(
306
304
  tmpdir,
307
305
  '[metadata]\n'
308
306
  'version = attr: fake_package_simple.VERSION\n'
@@ -316,7 +314,7 @@ class TestMetadata:
316
314
  assert dist.metadata.version == '1.2.3'
317
315
 
318
316
  def test_version_with_package_dir_rename(self, tmpdir):
319
- _, config = fake_env(
317
+ fake_env(
320
318
  tmpdir,
321
319
  '[metadata]\n'
322
320
  'version = attr: fake_package_rename.VERSION\n'
@@ -330,7 +328,7 @@ class TestMetadata:
330
328
  assert dist.metadata.version == '1.2.3'
331
329
 
332
330
  def test_version_with_package_dir_complex(self, tmpdir):
333
- _, config = fake_env(
331
+ fake_env(
334
332
  tmpdir,
335
333
  '[metadata]\n'
336
334
  'version = attr: fake_package_complex.VERSION\n'
@@ -415,9 +413,7 @@ class TestMetadata:
415
413
  """
416
414
  fake_env(
417
415
  tmpdir,
418
- '# vim: set fileencoding=iso-8859-15 :\n'
419
- '[metadata]\n'
420
- 'description = éàïôñ\n',
416
+ '# vim: set fileencoding=iso-8859-15 :\n[metadata]\ndescription = éàïôñ\n',
421
417
  encoding='iso-8859-15',
422
418
  )
423
419
  with pytest.raises(UnicodeDecodeError):
@@ -587,8 +583,8 @@ class TestOptions:
587
583
  def test_find_directive(self, tmpdir):
588
584
  dir_package, config = fake_env(tmpdir, '[options]\npackages = find:\n')
589
585
 
590
- dir_sub_one, _ = make_package_dir('sub_one', dir_package)
591
- dir_sub_two, _ = make_package_dir('sub_two', dir_package)
586
+ make_package_dir('sub_one', dir_package)
587
+ make_package_dir('sub_two', dir_package)
592
588
 
593
589
  with get_dist(tmpdir) as dist:
594
590
  assert set(dist.packages) == set([
@@ -626,8 +622,8 @@ class TestOptions:
626
622
  tmpdir, '[options]\npackages = find_namespace:\n'
627
623
  )
628
624
 
629
- dir_sub_one, _ = make_package_dir('sub_one', dir_package)
630
- dir_sub_two, _ = make_package_dir('sub_two', dir_package, ns=True)
625
+ make_package_dir('sub_one', dir_package)
626
+ make_package_dir('sub_two', dir_package, ns=True)
631
627
 
632
628
  with get_dist(tmpdir) as dist:
633
629
  assert set(dist.packages) == {
@@ -781,7 +777,7 @@ class TestOptions:
781
777
  assert dist.entry_points == expected
782
778
 
783
779
  def test_case_sensitive_entry_points(self, tmpdir):
784
- _, config = fake_env(
780
+ fake_env(
785
781
  tmpdir,
786
782
  '[options.entry_points]\n'
787
783
  'GROUP1 = point1 = pack.module:func, '
@@ -104,26 +104,25 @@ def venv_python(tmp_path):
104
104
 
105
105
 
106
106
  @pytest.fixture(autouse=True)
107
- def _prepare(tmp_path, venv_python, monkeypatch, request):
107
+ def _prepare(tmp_path, venv_python, monkeypatch):
108
108
  download_path = os.getenv("DOWNLOAD_PATH", str(tmp_path))
109
109
  os.makedirs(download_path, exist_ok=True)
110
110
 
111
111
  # Environment vars used for building some of the packages
112
112
  monkeypatch.setenv("USE_MYPYC", "1")
113
113
 
114
- def _debug_info():
115
- # Let's provide the maximum amount of information possible in the case
116
- # it is necessary to debug the tests directly from the CI logs.
117
- print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
118
- print("Temporary directory:")
119
- map(print, tmp_path.glob("*"))
120
- print("Virtual environment:")
121
- run([venv_python, "-m", "pip", "freeze"])
114
+ yield
122
115
 
123
- request.addfinalizer(_debug_info)
116
+ # Let's provide the maximum amount of information possible in the case
117
+ # it is necessary to debug the tests directly from the CI logs.
118
+ print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
119
+ print("Temporary directory:")
120
+ map(print, tmp_path.glob("*"))
121
+ print("Virtual environment:")
122
+ run([venv_python, "-m", "pip", "freeze"])
124
123
 
125
124
 
126
- @pytest.mark.parametrize('package, version', EXAMPLES)
125
+ @pytest.mark.parametrize(("package", "version"), EXAMPLES)
127
126
  @pytest.mark.uses_network
128
127
  def test_install_sdist(package, version, tmp_path, venv_python, setuptools_wheel):
129
128
  venv_pip = (venv_python, "-m", "pip")
@@ -17,7 +17,7 @@ setup(py_modules=['hi'])
17
17
  """
18
18
 
19
19
 
20
- @pytest.fixture(scope='function')
20
+ @pytest.fixture
21
21
  def setup_context(tmpdir):
22
22
  with (tmpdir / 'setup.py').open('w') as f:
23
23
  f.write(SETUP_PY)
@@ -28,7 +28,9 @@ def setup_context(tmpdir):
28
28
 
29
29
 
30
30
  class Test:
31
- def test_bdist_egg(self, setup_context, user_override):
31
+ @pytest.mark.usefixtures("user_override")
32
+ @pytest.mark.usefixtures("setup_context")
33
+ def test_bdist_egg(self):
32
34
  dist = Distribution(
33
35
  dict(
34
36
  script_name='setup.py',
@@ -50,7 +52,9 @@ class Test:
50
52
  os.environ.get('PYTHONDONTWRITEBYTECODE', False),
51
53
  reason="Byte code disabled",
52
54
  )
53
- def test_exclude_source_files(self, setup_context, user_override):
55
+ @pytest.mark.usefixtures("user_override")
56
+ @pytest.mark.usefixtures("setup_context")
57
+ def test_exclude_source_files(self):
54
58
  dist = Distribution(
55
59
  dict(
56
60
  script_name='setup.py',
@@ -11,7 +11,6 @@ import sys
11
11
  import sysconfig
12
12
  from contextlib import suppress
13
13
  from inspect import cleandoc
14
- from unittest.mock import Mock
15
14
  from zipfile import ZipFile
16
15
 
17
16
  import jaraco.path
@@ -19,12 +18,7 @@ import pytest
19
18
  from packaging import tags
20
19
 
21
20
  import setuptools
22
- from setuptools.command.bdist_wheel import (
23
- bdist_wheel,
24
- get_abi_tag,
25
- remove_readonly,
26
- remove_readonly_exc,
27
- )
21
+ from setuptools.command.bdist_wheel import bdist_wheel, get_abi_tag
28
22
  from setuptools.dist import Distribution
29
23
  from setuptools.warnings import SetuptoolsDeprecationWarning
30
24
 
@@ -322,7 +316,7 @@ def test_licenses_deprecated(dummy_dist, monkeypatch, tmp_path):
322
316
 
323
317
 
324
318
  @pytest.mark.parametrize(
325
- "config_file, config",
319
+ ("config_file", "config"),
326
320
  [
327
321
  ("setup.cfg", "[metadata]\nlicense_files=licenses/*\n LICENSE"),
328
322
  ("setup.cfg", "[metadata]\nlicense_files=licenses/*, LICENSE"),
@@ -434,7 +428,7 @@ def test_build_from_readonly_tree(dummy_dist, monkeypatch, tmp_path):
434
428
 
435
429
 
436
430
  @pytest.mark.parametrize(
437
- "option, compress_type",
431
+ ("option", "compress_type"),
438
432
  list(bdist_wheel.supported_compressions.items()),
439
433
  ids=list(bdist_wheel.supported_compressions),
440
434
  )
@@ -470,6 +464,12 @@ def test_get_abi_tag_windows(monkeypatch):
470
464
  monkeypatch.setattr(tags, "interpreter_name", lambda: "cp")
471
465
  monkeypatch.setattr(sysconfig, "get_config_var", lambda x: "cp313-win_amd64")
472
466
  assert get_abi_tag() == "cp313"
467
+ monkeypatch.setattr(sys, "gettotalrefcount", lambda: 1, False)
468
+ assert get_abi_tag() == "cp313d"
469
+ monkeypatch.setattr(sysconfig, "get_config_var", lambda x: "cp313t-win_amd64")
470
+ assert get_abi_tag() == "cp313td"
471
+ monkeypatch.delattr(sys, "gettotalrefcount")
472
+ assert get_abi_tag() == "cp313t"
473
473
 
474
474
 
475
475
  def test_get_abi_tag_pypy_old(monkeypatch):
@@ -504,29 +504,6 @@ def test_platform_with_space(dummy_dist, monkeypatch):
504
504
  bdist_wheel_cmd(plat_name="isilon onefs").run()
505
505
 
506
506
 
507
- def test_rmtree_readonly(monkeypatch, tmp_path):
508
- """Verify onerr works as expected"""
509
-
510
- bdist_dir = tmp_path / "with_readonly"
511
- bdist_dir.mkdir()
512
- some_file = bdist_dir.joinpath("file.txt")
513
- some_file.touch()
514
- some_file.chmod(stat.S_IREAD)
515
-
516
- expected_count = 1 if sys.platform.startswith("win") else 0
517
-
518
- if sys.version_info < (3, 12):
519
- count_remove_readonly = Mock(side_effect=remove_readonly)
520
- shutil.rmtree(bdist_dir, onerror=count_remove_readonly)
521
- assert count_remove_readonly.call_count == expected_count
522
- else:
523
- count_remove_readonly_exc = Mock(side_effect=remove_readonly_exc)
524
- shutil.rmtree(bdist_dir, onexc=count_remove_readonly_exc)
525
- assert count_remove_readonly_exc.call_count == expected_count
526
-
527
- assert not bdist_dir.is_dir()
528
-
529
-
530
507
  def test_data_dir_with_tag_build(monkeypatch, tmp_path):
531
508
  """
532
509
  Setuptools allow authors to set PEP 440's local version segments
@@ -583,7 +560,7 @@ def test_data_dir_with_tag_build(monkeypatch, tmp_path):
583
560
 
584
561
 
585
562
  @pytest.mark.parametrize(
586
- "reported,expected",
563
+ ("reported", "expected"),
587
564
  [("linux-x86_64", "linux_i686"), ("linux-aarch64", "linux_armv7l")],
588
565
  )
589
566
  @pytest.mark.skipif(
@@ -178,12 +178,12 @@ class TestBuildExt:
178
178
 
179
179
 
180
180
  class TestBuildExtInplace:
181
- def get_build_ext_cmd(self, optional: bool, **opts):
181
+ def get_build_ext_cmd(self, optional: bool, **opts) -> build_ext:
182
182
  files = {
183
183
  "eggs.c": "#include missingheader.h\n",
184
184
  ".build": {"lib": {}, "tmp": {}},
185
185
  }
186
- path.build(files) # type: ignore[arg-type] # jaraco/path#232
186
+ path.build(files) # jaraco/path#232
187
187
  extension = Extension('spam.eggs', ['eggs.c'], optional=optional)
188
188
  dist = Distribution(dict(ext_modules=[extension]))
189
189
  dist.script_name = 'setup.py'
@@ -737,7 +737,7 @@ class TestBuildMetaBackend:
737
737
  self._assert_link_tree(next(Path("build").glob("__editable__.*")))
738
738
 
739
739
  @pytest.mark.parametrize(
740
- 'setup_literal, requirements',
740
+ ("setup_literal", "requirements"),
741
741
  [
742
742
  ("'foo'", ['foo']),
743
743
  ("['foo']", ['foo']),
@@ -55,9 +55,9 @@ def test_recursive_in_package_data_glob(tmpdir_cwd):
55
55
  dist.parse_command_line()
56
56
  dist.run_commands()
57
57
 
58
- assert stat.S_ISREG(
59
- os.stat('build/lib/path/subpath/subsubpath/data').st_mode
60
- ), "File is not included"
58
+ assert stat.S_ISREG(os.stat('build/lib/path/subpath/subsubpath/data').st_mode), (
59
+ "File is not included"
60
+ )
61
61
 
62
62
 
63
63
  def test_read_only(tmpdir_cwd):
@@ -116,9 +116,9 @@ def test_executable_data(tmpdir_cwd):
116
116
  dist.parse_command_line()
117
117
  dist.run_commands()
118
118
 
119
- assert (
120
- os.stat('build/lib/pkg/run-me').st_mode & stat.S_IEXEC
121
- ), "Script is not executable"
119
+ assert os.stat('build/lib/pkg/run-me').st_mode & stat.S_IEXEC, (
120
+ "Script is not executable"
121
+ )
122
122
 
123
123
 
124
124
  EXAMPLE_WITH_MANIFEST = {
@@ -161,7 +161,7 @@ class TestDiscoverPackagesAndPyModules:
161
161
  }
162
162
 
163
163
  @pytest.mark.parametrize(
164
- "config_file, param, circumstance",
164
+ ("config_file", "param", "circumstance"),
165
165
  product(
166
166
  ["setup.cfg", "setup.py", "pyproject.toml"],
167
167
  ["packages", "py_modules"],
@@ -191,7 +191,7 @@ class TestDiscoverPackagesAndPyModules:
191
191
  assert getattr(dist, other) is None
192
192
 
193
193
  @pytest.mark.parametrize(
194
- "extra_files, pkgs",
194
+ ("extra_files", "pkgs"),
195
195
  [
196
196
  (["venv/bin/simulate_venv"], {"pkg"}),
197
197
  (["pkg-stubs/__init__.pyi"], {"pkg", "pkg-stubs"}),
@@ -284,7 +284,7 @@ class TestNoConfig:
284
284
 
285
285
  class TestWithAttrDirective:
286
286
  @pytest.mark.parametrize(
287
- "folder, opts",
287
+ ("folder", "opts"),
288
288
  [
289
289
  ("src", {}),
290
290
  ("lib", {"packages": "find:", "packages.find": {"where": "lib"}}),
@@ -446,7 +446,7 @@ class TestWithPackageData:
446
446
  """
447
447
 
448
448
  @pytest.mark.parametrize(
449
- "src_root, files",
449
+ ("src_root", "files"),
450
450
  [
451
451
  (".", {"setup.cfg": DALS(EXAMPLE_SETUPCFG)}),
452
452
  (".", {"pyproject.toml": DALS(EXAMPLE_PYPROJECT)}),
@@ -23,7 +23,7 @@ EXAMPLE_BASE_INFO = dict(
23
23
 
24
24
 
25
25
  @pytest.mark.parametrize(
26
- 'content, result',
26
+ ("content", "result"),
27
27
  (
28
28
  pytest.param(
29
29
  "Just a single line",
@@ -154,7 +154,7 @@ def __read_test_cases():
154
154
  ]
155
155
 
156
156
 
157
- @pytest.mark.parametrize('name,attrs', __read_test_cases())
157
+ @pytest.mark.parametrize(("name", "attrs"), __read_test_cases())
158
158
  def test_read_metadata(name, attrs):
159
159
  dist = Distribution(attrs)
160
160
  metadata_out = dist.metadata
@@ -263,7 +263,7 @@ def __maintainer_test_cases():
263
263
  ]
264
264
 
265
265
 
266
- @pytest.mark.parametrize('name,attrs', __maintainer_test_cases())
266
+ @pytest.mark.parametrize(("name", "attrs"), __maintainer_test_cases())
267
267
  def test_maintainer_author(name, attrs, tmpdir):
268
268
  tested_keys = {
269
269
  'author': 'Author',
@@ -310,7 +310,6 @@ def test_parity_with_metadata_from_pypa_wheel(tmp_path):
310
310
  python_requires=">=3.8",
311
311
  install_requires="""
312
312
  packaging==23.2
313
- ordered-set==3.1.1
314
313
  more-itertools==8.8.0; extra == "other"
315
314
  jaraco.text==3.7.0
316
315
  importlib-resources==5.10.2; python_version<"3.8"
@@ -1,4 +1,3 @@
1
- import collections
2
1
  import os
3
2
  import re
4
3
  import urllib.parse
@@ -72,15 +71,10 @@ EXAMPLE_BASE_INFO = dict(
72
71
 
73
72
 
74
73
  def test_provides_extras_deterministic_order():
75
- extras = collections.OrderedDict()
76
- extras['a'] = ['foo']
77
- extras['b'] = ['bar']
78
- attrs = dict(extras_require=extras)
74
+ attrs = dict(extras_require=dict(a=['foo'], b=['bar']))
79
75
  dist = Distribution(attrs)
80
76
  assert list(dist.metadata.provides_extras) == ['a', 'b']
81
- attrs['extras_require'] = collections.OrderedDict(
82
- reversed(list(attrs['extras_require'].items()))
83
- )
77
+ attrs['extras_require'] = dict(reversed(attrs['extras_require'].items()))
84
78
  dist = Distribution(attrs)
85
79
  assert list(dist.metadata.provides_extras) == ['b', 'a']
86
80
 
@@ -135,7 +129,7 @@ CHECK_PACKAGE_DATA_TESTS = (
135
129
  )
136
130
 
137
131
 
138
- @pytest.mark.parametrize('package_data, expected_message', CHECK_PACKAGE_DATA_TESTS)
132
+ @pytest.mark.parametrize(('package_data', 'expected_message'), CHECK_PACKAGE_DATA_TESTS)
139
133
  def test_check_package_data(package_data, expected_message):
140
134
  if expected_message is None:
141
135
  assert check_package_data(None, 'package_data', package_data) is None
@@ -150,8 +144,12 @@ def test_check_specifier():
150
144
  dist = Distribution(attrs)
151
145
  check_specifier(dist, attrs, attrs['python_requires'])
152
146
 
153
- # invalid specifier value
154
147
  attrs = {'name': 'foo', 'python_requires': ['>=3.0', '!=3.1']}
148
+ dist = Distribution(attrs)
149
+ check_specifier(dist, attrs, attrs['python_requires'])
150
+
151
+ # invalid specifier value
152
+ attrs = {'name': 'foo', 'python_requires': '>=invalid-version'}
155
153
  with pytest.raises(DistutilsSetupError):
156
154
  dist = Distribution(attrs)
157
155
 
@@ -162,7 +160,7 @@ def test_metadata_name():
162
160
 
163
161
 
164
162
  @pytest.mark.parametrize(
165
- "dist_name, py_module",
163
+ ('dist_name', 'py_module'),
166
164
  [
167
165
  ("my.pkg", "my_pkg"),
168
166
  ("my-pkg", "my_pkg"),
@@ -193,7 +191,7 @@ def test_dist_default_py_modules(tmp_path, dist_name, py_module):
193
191
 
194
192
 
195
193
  @pytest.mark.parametrize(
196
- "dist_name, package_dir, package_files, packages",
194
+ ('dist_name', 'package_dir', 'package_files', 'packages'),
197
195
  [
198
196
  ("my.pkg", None, ["my_pkg/__init__.py", "my_pkg/mod.py"], ["my_pkg"]),
199
197
  ("my-pkg", None, ["my_pkg/__init__.py", "my_pkg/mod.py"], ["my_pkg"]),
@@ -247,7 +245,7 @@ def test_dist_default_packages(
247
245
 
248
246
 
249
247
  @pytest.mark.parametrize(
250
- "dist_name, package_dir, package_files",
248
+ ('dist_name', 'package_dir', 'package_files'),
251
249
  [
252
250
  ("my.pkg.nested", None, ["my/pkg/nested/__init__.py"]),
253
251
  ("my.pkg", None, ["my/pkg/__init__.py", "my/pkg/file.py"]),
@@ -169,7 +169,7 @@ class TestWheelCompatibility:
169
169
 
170
170
  @pytest.mark.parametrize("name", "my-proj my_proj my.proj My.Proj".split())
171
171
  @pytest.mark.parametrize("version", ["0.42.13"])
172
- @pytest.mark.parametrize("suffix, cfg", EGG_INFO_OPTS)
172
+ @pytest.mark.parametrize(("suffix", "cfg"), EGG_INFO_OPTS)
173
173
  def test_dist_info_is_the_same_as_in_wheel(
174
174
  self, name, version, tmp_path, suffix, cfg
175
175
  ):
@@ -114,8 +114,9 @@ print("success")
114
114
  """
115
115
 
116
116
 
117
+ @pytest.mark.usefixtures("tmpdir_cwd")
117
118
  @pytest.mark.parametrize(
118
- "distutils_version, imported_module",
119
+ ('distutils_version', 'imported_module'),
119
120
  [
120
121
  pytest.param("stdlib", "dir_util", marks=skip_without_stdlib_distutils),
121
122
  pytest.param("stdlib", "file_util", marks=skip_without_stdlib_distutils),
@@ -125,9 +126,7 @@ print("success")
125
126
  ("local", "archive_util"),
126
127
  ],
127
128
  )
128
- def test_modules_are_not_duplicated_on_import(
129
- distutils_version, imported_module, tmpdir_cwd, venv
130
- ):
129
+ def test_modules_are_not_duplicated_on_import(distutils_version, imported_module, venv):
131
130
  env = dict(SETUPTOOLS_USE_DISTUTILS=distutils_version)
132
131
  script = ENSURE_IMPORTS_ARE_NOT_DUPLICATED.format(imported_module=imported_module)
133
132
  cmd = ['python', '-c', script]
@@ -145,6 +144,7 @@ print("success")
145
144
  """
146
145
 
147
146
 
147
+ @pytest.mark.usefixtures("tmpdir_cwd")
148
148
  @pytest.mark.parametrize(
149
149
  "distutils_version",
150
150
  [
@@ -152,8 +152,47 @@ print("success")
152
152
  pytest.param("stdlib", marks=skip_without_stdlib_distutils),
153
153
  ],
154
154
  )
155
- def test_log_module_is_not_duplicated_on_import(distutils_version, tmpdir_cwd, venv):
155
+ def test_log_module_is_not_duplicated_on_import(distutils_version, venv):
156
156
  env = dict(SETUPTOOLS_USE_DISTUTILS=distutils_version)
157
157
  cmd = ['python', '-c', ENSURE_LOG_IMPORT_IS_NOT_DUPLICATED]
158
158
  output = venv.run(cmd, env=win_sr(env), **_TEXT_KWARGS).strip()
159
159
  assert output == "success"
160
+
161
+
162
+ ENSURE_CONSISTENT_ERROR_FROM_MODIFIED_PY = r"""
163
+ from setuptools.modified import newer
164
+ from {imported_module}.errors import DistutilsError
165
+
166
+ # Can't use pytest.raises in this context
167
+ try:
168
+ newer("", "")
169
+ except DistutilsError:
170
+ print("success")
171
+ else:
172
+ raise AssertionError("Expected to raise")
173
+ """
174
+
175
+
176
+ @pytest.mark.usefixtures("tmpdir_cwd")
177
+ @pytest.mark.parametrize(
178
+ ('distutils_version', 'imported_module'),
179
+ [
180
+ ("local", "distutils"),
181
+ # Unfortunately we still get ._distutils.errors.DistutilsError with SETUPTOOLS_USE_DISTUTILS=stdlib
182
+ # But that's a deprecated use-case we don't mind not fully supporting in newer code
183
+ pytest.param(
184
+ "stdlib", "setuptools._distutils", marks=skip_without_stdlib_distutils
185
+ ),
186
+ ],
187
+ )
188
+ def test_consistent_error_from_modified_py(distutils_version, imported_module, venv):
189
+ env = dict(SETUPTOOLS_USE_DISTUTILS=distutils_version)
190
+ cmd = [
191
+ 'python',
192
+ '-c',
193
+ ENSURE_CONSISTENT_ERROR_FROM_MODIFIED_PY.format(
194
+ imported_module=imported_module
195
+ ),
196
+ ]
197
+ output = venv.run(cmd, env=win_sr(env), **_TEXT_KWARGS).strip()
198
+ assert output == "success"