py2docfx 0.1.9.dev1897607__py3-none-any.whl → 0.1.9.dev1926139__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. py2docfx/__main__.py +77 -22
  2. py2docfx/convert_prepare/environment.py +59 -19
  3. py2docfx/convert_prepare/generate_document.py +12 -5
  4. py2docfx/convert_prepare/get_source.py +5 -1
  5. py2docfx/convert_prepare/git.py +24 -20
  6. py2docfx/convert_prepare/package_info.py +15 -9
  7. py2docfx/convert_prepare/pip_utils.py +29 -8
  8. py2docfx/convert_prepare/post_process/merge_toc.py +5 -1
  9. py2docfx/convert_prepare/sphinx_caller.py +31 -14
  10. py2docfx/convert_prepare/tests/test_generate_document.py +6 -4
  11. py2docfx/convert_prepare/tests/test_get_source.py +6 -6
  12. py2docfx/convert_prepare/tests/test_params.py +1 -1
  13. py2docfx/convert_prepare/tests/test_sphinx_caller.py +5 -3
  14. py2docfx/convert_prepare/tests/utils.py +11 -0
  15. py2docfx/docfx_yaml/build_finished.py +11 -3
  16. py2docfx/docfx_yaml/convert_class.py +4 -2
  17. py2docfx/docfx_yaml/convert_enum.py +4 -2
  18. py2docfx/docfx_yaml/convert_module.py +4 -2
  19. py2docfx/docfx_yaml/convert_package.py +4 -2
  20. py2docfx/docfx_yaml/logger.py +68 -0
  21. py2docfx/docfx_yaml/process_doctree.py +6 -4
  22. py2docfx/docfx_yaml/translator.py +5 -7
  23. py2docfx/docfx_yaml/writer.py +10 -4
  24. py2docfx/docfx_yaml/yaml_builder.py +0 -1
  25. py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  26. py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
  27. py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
  28. py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
  29. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
  33. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
  34. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
  35. py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
  36. py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
  37. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
  38. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  39. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  40. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -19
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +15 -14
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +26 -30
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +57 -80
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
  76. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +32 -32
  77. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
  78. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
  79. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  80. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  81. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
  82. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/saveopts.py +2 -2
  83. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +11 -10
  84. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +3 -3
  85. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  86. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
  87. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
  88. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  89. py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
  90. py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
  91. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +51 -47
  92. py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
  93. py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
  94. py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
  95. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
  96. py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
  97. py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
  98. py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
  99. py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +5 -5
  100. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +35 -24
  101. py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
  102. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
  103. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
  104. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  105. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  106. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  107. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
  108. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  109. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  110. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  111. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  112. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  113. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  114. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  115. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  116. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  117. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
  118. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  119. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  120. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  121. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  122. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  123. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  124. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  125. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  126. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  127. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  128. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  129. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  130. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  131. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  132. py2docfx/venv/basevenv/Lib/site-packages/setuptools/unicode_utils.py +3 -3
  133. py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
  134. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
  135. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  136. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  137. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  138. py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +279 -220
  139. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
  140. py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  141. py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
  142. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
  143. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
  144. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  145. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
  146. py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
  147. py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
  148. py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
  149. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
  150. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
  151. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
  152. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
  153. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
  154. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
  155. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
  156. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
  157. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
  158. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
  159. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
  160. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
  161. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
  162. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
  163. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
  164. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
  165. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
  166. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
  167. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
  168. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
  169. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
  170. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
  171. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
  172. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
  173. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
  174. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
  175. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
  176. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
  177. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
  178. py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
  179. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
  180. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
  181. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
  182. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
  183. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
  184. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
  185. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
  186. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
  187. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
  188. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
  189. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
  190. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
  191. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
  192. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
  193. py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
  194. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  195. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
  196. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
  197. py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
  198. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
  199. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
  200. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
  201. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  202. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
  203. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
  204. py2docfx/venv/venv1/Lib/site-packages/jwt/__init__.py +3 -2
  205. py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +31 -16
  206. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +19 -8
  207. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +75 -19
  208. py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +8 -0
  209. py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +4 -1
  210. py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +4 -2
  211. py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +7 -10
  212. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -1
  213. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -3
  214. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
  215. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  216. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  217. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  218. py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
  219. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
  220. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
  221. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
  222. py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
  223. py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  233. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  234. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  235. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  236. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  237. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  238. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  239. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  240. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  241. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  242. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  243. py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
  244. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -19
  245. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
  246. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  247. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
  248. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  249. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  250. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
  251. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
  252. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  253. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +15 -14
  254. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +26 -30
  255. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
  256. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  257. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +57 -80
  258. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
  259. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +32 -32
  260. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
  261. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
  262. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  263. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  264. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
  265. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/saveopts.py +2 -2
  266. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +11 -10
  267. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +3 -3
  268. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  269. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
  270. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
  271. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  272. py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
  273. py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
  274. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +51 -47
  275. py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
  276. py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
  277. py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
  278. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
  279. py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
  280. py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
  281. py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
  282. py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +5 -5
  283. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +35 -24
  284. py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
  285. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
  286. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
  287. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  288. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  289. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  290. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
  291. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  292. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  293. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  294. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  295. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  296. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  297. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  298. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  299. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  300. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
  301. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  302. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  303. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  304. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  305. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  306. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  307. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  308. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  309. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  310. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  311. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  312. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  313. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  314. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  315. py2docfx/venv/venv1/Lib/site-packages/setuptools/unicode_utils.py +3 -3
  316. py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
  317. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
  318. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  319. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  320. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  321. py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +279 -220
  322. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
  323. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/METADATA +1 -1
  324. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/RECORD +327 -385
  325. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/WHEEL +1 -1
  326. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  327. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  328. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  329. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  330. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  331. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  332. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  333. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  334. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  335. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  336. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  337. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  338. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  339. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  340. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  341. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  342. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  343. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  344. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  345. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  346. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  347. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  348. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  349. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  350. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  351. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  352. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  353. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  354. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  355. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  356. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  357. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  358. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  359. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  360. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  361. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  362. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  363. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  364. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  365. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  366. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  367. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  368. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  369. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  370. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  371. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  372. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  373. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  374. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  375. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  376. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  377. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  378. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  379. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  380. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  381. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  382. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  383. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  384. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  385. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  386. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  387. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  388. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  389. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  390. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  391. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  392. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  393. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  394. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  395. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  396. /py2docfx/convert_prepare/conf_templates/{master_doc.rst_t → root_doc.rst_t} +0 -0
  397. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/top_level.txt +0 -0
@@ -9,31 +9,25 @@ from __future__ import annotations
9
9
  import os
10
10
  import re
11
11
  import shutil
12
- import stat
13
12
  import struct
14
13
  import sys
15
14
  import sysconfig
16
15
  import warnings
17
- from email.generator import BytesGenerator, Generator
18
- from email.policy import EmailPolicy
16
+ from collections.abc import Iterable, Sequence
17
+ from email.generator import BytesGenerator
19
18
  from glob import iglob
20
- from shutil import rmtree
21
- from typing import TYPE_CHECKING, Callable, Iterable, Literal, Sequence, cast
19
+ from typing import Literal, cast
22
20
  from zipfile import ZIP_DEFLATED, ZIP_STORED
23
21
 
24
22
  from packaging import tags, version as _packaging_version
25
- from wheel.metadata import pkginfo_to_metadata
26
23
  from wheel.wheelfile import WheelFile
27
24
 
28
- from .. import Command, __version__
25
+ from .. import Command, __version__, _shutil
29
26
  from ..warnings import SetuptoolsDeprecationWarning
30
27
  from .egg_info import egg_info as egg_info_cls
31
28
 
32
29
  from distutils import log
33
30
 
34
- if TYPE_CHECKING:
35
- from _typeshed import ExcInfo
36
-
37
31
 
38
32
  def safe_name(name: str) -> str:
39
33
  """Convert an arbitrary string to a standard distribution name
@@ -64,7 +58,7 @@ def _is_32bit_interpreter() -> bool:
64
58
 
65
59
 
66
60
  def python_tag() -> str:
67
- return f"py{sys.version_info[0]}"
61
+ return f"py{sys.version_info.major}"
68
62
 
69
63
 
70
64
  def get_platform(archive_root: str | None) -> str:
@@ -110,25 +104,20 @@ def get_abi_tag() -> str | None:
110
104
  impl = tags.interpreter_name()
111
105
  if not soabi and impl in ("cp", "pp") and hasattr(sys, "maxunicode"):
112
106
  d = ""
113
- m = ""
114
107
  u = ""
115
108
  if get_flag("Py_DEBUG", hasattr(sys, "gettotalrefcount"), warn=(impl == "cp")):
116
109
  d = "d"
117
110
 
118
- if get_flag(
119
- "WITH_PYMALLOC",
120
- impl == "cp",
121
- warn=(impl == "cp" and sys.version_info < (3, 8)),
122
- ) and sys.version_info < (3, 8):
123
- m = "m"
124
-
125
- abi = f"{impl}{tags.interpreter_version()}{d}{m}{u}"
111
+ abi = f"{impl}{tags.interpreter_version()}{d}{u}"
126
112
  elif soabi and impl == "cp" and soabi.startswith("cpython"):
127
113
  # non-Windows
128
114
  abi = "cp" + soabi.split("-")[1]
129
115
  elif soabi and impl == "cp" and soabi.startswith("cp"):
130
116
  # Windows
131
117
  abi = soabi.split("-")[0]
118
+ if hasattr(sys, "gettotalrefcount"):
119
+ # using debug build; append "d" flag
120
+ abi += "d"
132
121
  elif soabi and impl == "pp":
133
122
  # we want something like pypy36-pp73
134
123
  abi = "-".join(soabi.split("-")[:2])
@@ -152,21 +141,6 @@ def safer_version(version: str) -> str:
152
141
  return safe_version(version).replace("-", "_")
153
142
 
154
143
 
155
- def remove_readonly(
156
- func: Callable[..., object],
157
- path: str,
158
- excinfo: ExcInfo,
159
- ) -> None:
160
- remove_readonly_exc(func, path, excinfo[1])
161
-
162
-
163
- def remove_readonly_exc(
164
- func: Callable[..., object], path: str, exc: BaseException
165
- ) -> None:
166
- os.chmod(path, stat.S_IWRITE)
167
- func(path)
168
-
169
-
170
144
  class bdist_wheel(Command):
171
145
  description = "create a wheel distribution"
172
146
 
@@ -244,7 +218,7 @@ class bdist_wheel(Command):
244
218
 
245
219
  def initialize_options(self) -> None:
246
220
  self.bdist_dir: str | None = None
247
- self.data_dir: str | None = None
221
+ self.data_dir = ""
248
222
  self.plat_name: str | None = None
249
223
  self.plat_tag: str | None = None
250
224
  self.format = "zip"
@@ -257,9 +231,9 @@ class bdist_wheel(Command):
257
231
  self.relative = False
258
232
  self.owner = None
259
233
  self.group = None
260
- self.universal: bool = False
261
- self.compression: int | str = "deflated"
262
- self.python_tag: str = python_tag()
234
+ self.universal = False
235
+ self.compression: str | int = "deflated"
236
+ self.python_tag = python_tag()
263
237
  self.build_number: str | None = None
264
238
  self.py_limited_api: str | Literal[False] = False
265
239
  self.plat_name_supplied = False
@@ -390,9 +364,9 @@ class bdist_wheel(Command):
390
364
  supported_tags = [
391
365
  (t.interpreter, t.abi, plat_name) for t in tags.sys_tags()
392
366
  ]
393
- assert (
394
- tag in supported_tags
395
- ), f"would build wheel with unsupported tag {tag}"
367
+ assert tag in supported_tags, (
368
+ f"would build wheel with unsupported tag {tag}"
369
+ )
396
370
  return tag
397
371
 
398
372
  def run(self):
@@ -462,7 +436,7 @@ class bdist_wheel(Command):
462
436
  shutil.copytree(self.dist_info_dir, distinfo_dir)
463
437
  # Egg info is still generated, so remove it now to avoid it getting
464
438
  # copied into the wheel.
465
- shutil.rmtree(self.egginfo_dir)
439
+ _shutil.rmtree(self.egginfo_dir)
466
440
  else:
467
441
  # Convert the generated egg-info into dist-info.
468
442
  self.egg2dist(self.egginfo_dir, distinfo_dir)
@@ -480,17 +454,14 @@ class bdist_wheel(Command):
480
454
  # Add to 'Distribution.dist_files' so that the "upload" command works
481
455
  getattr(self.distribution, "dist_files", []).append((
482
456
  "bdist_wheel",
483
- "{}.{}".format(*sys.version_info[:2]), # like 3.7
457
+ f"{sys.version_info.major}.{sys.version_info.minor}",
484
458
  wheel_path,
485
459
  ))
486
460
 
487
461
  if not self.keep_temp:
488
462
  log.info(f"removing {self.bdist_dir}")
489
463
  if not self.dry_run:
490
- if sys.version_info < (3, 12):
491
- rmtree(self.bdist_dir, onerror=remove_readonly)
492
- else:
493
- rmtree(self.bdist_dir, onexc=remove_readonly_exc)
464
+ _shutil.rmtree(self.bdist_dir)
494
465
 
495
466
  def write_wheelfile(
496
467
  self, wheelfile_base: str, generator: str = f"setuptools ({__version__})"
@@ -574,7 +545,7 @@ class bdist_wheel(Command):
574
545
  def adios(p: str) -> None:
575
546
  """Appropriately delete directory, file or link."""
576
547
  if os.path.exists(p) and not os.path.islink(p) and os.path.isdir(p):
577
- shutil.rmtree(p)
548
+ _shutil.rmtree(p)
578
549
  elif os.path.exists(p):
579
550
  os.unlink(p)
580
551
 
@@ -596,42 +567,30 @@ class bdist_wheel(Command):
596
567
 
597
568
  raise ValueError(err)
598
569
 
599
- if os.path.isfile(egginfo_path):
600
- # .egg-info is a single file
601
- pkg_info = pkginfo_to_metadata(egginfo_path, egginfo_path)
602
- os.mkdir(distinfo_path)
603
- else:
604
- # .egg-info is a directory
605
- pkginfo_path = os.path.join(egginfo_path, "PKG-INFO")
606
- pkg_info = pkginfo_to_metadata(egginfo_path, pkginfo_path)
607
-
608
- # ignore common egg metadata that is useless to wheel
609
- shutil.copytree(
610
- egginfo_path,
611
- distinfo_path,
612
- ignore=lambda x, y: {
613
- "PKG-INFO",
614
- "requires.txt",
615
- "SOURCES.txt",
616
- "not-zip-safe",
617
- },
618
- )
619
-
620
- # delete dependency_links if it is only whitespace
621
- dependency_links_path = os.path.join(distinfo_path, "dependency_links.txt")
622
- with open(dependency_links_path, encoding="utf-8") as dependency_links_file:
623
- dependency_links = dependency_links_file.read().strip()
624
- if not dependency_links:
625
- adios(dependency_links_path)
626
-
627
- pkg_info_path = os.path.join(distinfo_path, "METADATA")
628
- serialization_policy = EmailPolicy(
629
- utf8=True,
630
- mangle_from_=False,
631
- max_line_length=0,
570
+ # .egg-info is a directory
571
+ pkginfo_path = os.path.join(egginfo_path, "PKG-INFO")
572
+
573
+ # ignore common egg metadata that is useless to wheel
574
+ shutil.copytree(
575
+ egginfo_path,
576
+ distinfo_path,
577
+ ignore=lambda x, y: {
578
+ "PKG-INFO",
579
+ "requires.txt",
580
+ "SOURCES.txt",
581
+ "not-zip-safe",
582
+ },
632
583
  )
633
- with open(pkg_info_path, "w", encoding="utf-8") as out:
634
- Generator(out, policy=serialization_policy).flatten(pkg_info)
584
+
585
+ # delete dependency_links if it is only whitespace
586
+ dependency_links_path = os.path.join(distinfo_path, "dependency_links.txt")
587
+ with open(dependency_links_path, encoding="utf-8") as dependency_links_file:
588
+ dependency_links = dependency_links_file.read().strip()
589
+ if not dependency_links:
590
+ adios(dependency_links_path)
591
+
592
+ metadata_path = os.path.join(distinfo_path, "METADATA")
593
+ shutil.copy(pkginfo_path, metadata_path)
635
594
 
636
595
  for license_path in self.license_paths:
637
596
  filename = os.path.basename(license_path)
@@ -85,15 +85,15 @@ class SubCommand(Protocol):
85
85
  ...
86
86
  """
87
87
 
88
- def initialize_options(self):
88
+ def initialize_options(self) -> None:
89
89
  """(Required by the original :class:`setuptools.Command` interface)"""
90
90
  ...
91
91
 
92
- def finalize_options(self):
92
+ def finalize_options(self) -> None:
93
93
  """(Required by the original :class:`setuptools.Command` interface)"""
94
94
  ...
95
95
 
96
- def run(self):
96
+ def run(self) -> None:
97
97
  """(Required by the original :class:`setuptools.Command` interface)"""
98
98
  ...
99
99
 
@@ -1,17 +1,10 @@
1
1
  from ..dist import Distribution
2
+ from ..modified import newer_pairwise_group
2
3
 
3
4
  import distutils.command.build_clib as orig
4
5
  from distutils import log
5
6
  from distutils.errors import DistutilsSetupError
6
7
 
7
- try:
8
- from distutils._modified import ( # pyright: ignore[reportMissingImports]
9
- newer_pairwise_group,
10
- )
11
- except ImportError:
12
- # fallback for SETUPTOOLS_USE_DISTUTILS=stdlib
13
- from .._distutils._modified import newer_pairwise_group
14
-
15
8
 
16
9
  class build_clib(orig.build_clib):
17
10
  """
@@ -31,7 +24,7 @@ class build_clib(orig.build_clib):
31
24
 
32
25
  distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
33
26
 
34
- def build_libraries(self, libraries):
27
+ def build_libraries(self, libraries) -> None:
35
28
  for lib_name, build_info in libraries:
36
29
  sources = build_info.get('sources')
37
30
  if sources is None or not isinstance(sources, (list, tuple)):
@@ -3,10 +3,11 @@ from __future__ import annotations
3
3
  import itertools
4
4
  import os
5
5
  import sys
6
+ from collections.abc import Iterator
6
7
  from importlib.machinery import EXTENSION_SUFFIXES
7
8
  from importlib.util import cache_from_source as _compiled_file_name
8
9
  from pathlib import Path
9
- from typing import TYPE_CHECKING, Iterator
10
+ from typing import TYPE_CHECKING
10
11
 
11
12
  from setuptools.dist import Distribution
12
13
  from setuptools.errors import BaseError
@@ -89,12 +90,12 @@ def get_abi3_suffix():
89
90
 
90
91
  class build_ext(_build_ext):
91
92
  distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
92
- editable_mode: bool = False
93
- inplace: bool = False
93
+ editable_mode = False
94
+ inplace = False
94
95
 
95
96
  def run(self):
96
97
  """Build extensions in build directory, then copy if --inplace"""
97
- old_inplace, self.inplace = self.inplace, 0
98
+ old_inplace, self.inplace = self.inplace, False
98
99
  _build_ext.run(self)
99
100
  self.inplace = old_inplace
100
101
  if old_inplace:
@@ -110,7 +111,7 @@ class build_ext(_build_ext):
110
111
  regular_file = os.path.join(self.build_lib, filename)
111
112
  return (inplace_file, regular_file)
112
113
 
113
- def copy_extensions_to_source(self):
114
+ def copy_extensions_to_source(self) -> None:
114
115
  build_py = self.get_finalized_command('build_py')
115
116
  for ext in self.extensions:
116
117
  inplace_file, regular_file = self._get_inplace_equivalent(build_py, ext)
@@ -191,7 +192,7 @@ class build_ext(_build_ext):
191
192
  self.ext_map = {}
192
193
  self.editable_mode = False
193
194
 
194
- def finalize_options(self):
195
+ def finalize_options(self) -> None:
195
196
  _build_ext.finalize_options(self)
196
197
  self.extensions = self.extensions or []
197
198
  self.check_extensions_list(self.extensions)
@@ -247,14 +248,14 @@ class build_ext(_build_ext):
247
248
  compiler.set_link_objects(self.link_objects)
248
249
 
249
250
  # hack so distutils' build_extension() builds a library instead
250
- compiler.link_shared_object = link_shared_object.__get__(compiler)
251
+ compiler.link_shared_object = link_shared_object.__get__(compiler) # type: ignore[method-assign]
251
252
 
252
253
  def get_export_symbols(self, ext):
253
254
  if isinstance(ext, Library):
254
255
  return ext.export_symbols
255
256
  return _build_ext.get_export_symbols(self, ext)
256
257
 
257
- def build_extension(self, ext):
258
+ def build_extension(self, ext) -> None:
258
259
  ext._convert_pyx_sources_to_lang()
259
260
  _compiler = self.compiler
260
261
  try:
@@ -344,7 +345,7 @@ class build_ext(_build_ext):
344
345
  if self.get_finalized_command('build_py').optimize:
345
346
  yield '.pyo'
346
347
 
347
- def write_stub(self, output_dir, ext, compile=False):
348
+ def write_stub(self, output_dir, ext, compile=False) -> None:
348
349
  stub_file = os.path.join(output_dir, *ext._full_name.split('.')) + '.py'
349
350
  self._write_stub_file(stub_file, ext, compile)
350
351
 
@@ -410,12 +411,12 @@ if use_stubs or os.name == 'nt':
410
411
  library_dirs=None,
411
412
  runtime_library_dirs=None,
412
413
  export_symbols=None,
413
- debug=False,
414
+ debug: bool = False,
414
415
  extra_preargs=None,
415
416
  extra_postargs=None,
416
417
  build_temp=None,
417
418
  target_lang=None,
418
- ):
419
+ ) -> None:
419
420
  self.link(
420
421
  self.SHARED_LIBRARY,
421
422
  objects,
@@ -445,12 +446,12 @@ else:
445
446
  library_dirs=None,
446
447
  runtime_library_dirs=None,
447
448
  export_symbols=None,
448
- debug=False,
449
+ debug: bool = False,
449
450
  extra_preargs=None,
450
451
  extra_postargs=None,
451
452
  build_temp=None,
452
453
  target_lang=None,
453
- ):
454
+ ) -> None:
454
455
  # XXX we need to either disallow these attrs on Library instances,
455
456
  # or warn/abort here if set, or something...
456
457
  # libraries=None, library_dirs=None, runtime_library_dirs=None,
@@ -459,7 +460,7 @@ else:
459
460
 
460
461
  assert output_dir is None # distutils build_ext doesn't pass this
461
462
  output_dir, filename = os.path.split(output_libname)
462
- basename, ext = os.path.splitext(filename)
463
+ basename, _ext = os.path.splitext(filename)
463
464
  if self.library_filename("x").startswith('lib'):
464
465
  # strip 'lib' prefix; this is kludgy if some platform uses
465
466
  # a different prefix
@@ -5,13 +5,14 @@ import itertools
5
5
  import os
6
6
  import stat
7
7
  import textwrap
8
+ from collections.abc import Iterable, Iterator
8
9
  from functools import partial
9
10
  from glob import glob
10
11
  from pathlib import Path
11
- from typing import Iterable, Iterator
12
12
 
13
13
  from more_itertools import unique_everseen
14
14
 
15
+ from .._path import StrPath, StrPathT
15
16
  from ..dist import Distribution
16
17
  from ..warnings import SetuptoolsDeprecationWarning
17
18
 
@@ -22,7 +23,7 @@ from distutils.util import convert_path
22
23
  _IMPLICIT_DATA_FILES = ('*.pyi', 'py.typed')
23
24
 
24
25
 
25
- def make_writable(target):
26
+ def make_writable(target) -> None:
26
27
  os.chmod(target, os.stat(target).st_mode | stat.S_IWRITE)
27
28
 
28
29
 
@@ -38,7 +39,7 @@ class build_py(orig.build_py):
38
39
 
39
40
  distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
40
41
  editable_mode: bool = False
41
- existing_egg_info_dir: str | None = None #: Private API, internal use only.
42
+ existing_egg_info_dir: StrPath | None = None #: Private API, internal use only.
42
43
 
43
44
  def finalize_options(self):
44
45
  orig.build_py.finalize_options(self)
@@ -46,26 +47,25 @@ class build_py(orig.build_py):
46
47
  self.exclude_package_data = self.distribution.exclude_package_data or {}
47
48
  if 'data_files' in self.__dict__:
48
49
  del self.__dict__['data_files']
49
- self.__updated_files = []
50
50
 
51
- def copy_file(
51
+ def copy_file( # type: ignore[override] # No overload, no bytes support
52
52
  self,
53
- infile,
54
- outfile,
55
- preserve_mode=True,
56
- preserve_times=True,
57
- link=None,
58
- level=1,
59
- ):
53
+ infile: StrPath,
54
+ outfile: StrPathT,
55
+ preserve_mode: bool = True,
56
+ preserve_times: bool = True,
57
+ link: str | None = None,
58
+ level: object = 1,
59
+ ) -> tuple[StrPathT | str, bool]:
60
60
  # Overwrite base class to allow using links
61
61
  if link:
62
62
  infile = str(Path(infile).resolve())
63
- outfile = str(Path(outfile).resolve())
64
- return super().copy_file(
63
+ outfile = str(Path(outfile).resolve()) # type: ignore[assignment] # Re-assigning a str when outfile is StrPath is ok
64
+ return super().copy_file( # pyright: ignore[reportReturnType] # pypa/distutils#309
65
65
  infile, outfile, preserve_mode, preserve_times, link, level
66
66
  )
67
67
 
68
- def run(self):
68
+ def run(self) -> None:
69
69
  """Build modules, packages, and copy data files to build directory"""
70
70
  if not (self.py_modules or self.packages) or self.editable_mode:
71
71
  return
@@ -88,12 +88,6 @@ class build_py(orig.build_py):
88
88
  return self.data_files
89
89
  return orig.build_py.__getattr__(self, attr)
90
90
 
91
- def build_module(self, module, module_file, package):
92
- outfile, copied = orig.build_py.build_module(self, module, module_file, package)
93
- if copied:
94
- self.__updated_files.append(outfile)
95
- return outfile, copied
96
-
97
91
  def _get_data_files(self):
98
92
  """Generate list of '(package,src_dir,build_dir,filenames)' tuples"""
99
93
  self.analyze_manifest()
@@ -141,7 +135,7 @@ class build_py(orig.build_py):
141
135
  )
142
136
  return self.exclude_data_files(package, src_dir, files)
143
137
 
144
- def get_outputs(self, include_bytecode=True) -> list[str]:
138
+ def get_outputs(self, include_bytecode: bool = True) -> list[str]: # type: ignore[override] # Using a real boolean instead of 0|1
145
139
  """See :class:`setuptools.commands.build.SubCommand`"""
146
140
  if self.editable_mode:
147
141
  return list(self.get_output_mapping().keys())
@@ -170,24 +164,24 @@ class build_py(orig.build_py):
170
164
  srcfile = os.path.join(src_dir, filename)
171
165
  yield (target, srcfile)
172
166
 
173
- def build_package_data(self):
167
+ def build_package_data(self) -> None:
174
168
  """Copy data files into build directory"""
175
169
  for target, srcfile in self._get_package_data_output_mapping():
176
170
  self.mkpath(os.path.dirname(target))
177
171
  _outf, _copied = self.copy_file(srcfile, target)
178
172
  make_writable(target)
179
173
 
180
- def analyze_manifest(self):
181
- self.manifest_files = mf = {}
174
+ def analyze_manifest(self) -> None:
175
+ self.manifest_files: dict[str, list[str]] = {}
182
176
  if not self.distribution.include_package_data:
183
177
  return
184
- src_dirs = {}
178
+ src_dirs: dict[str, str] = {}
185
179
  for package in self.packages or ():
186
180
  # Locate package source directory
187
181
  src_dirs[assert_relative(self.get_package_dir(package))] = package
188
182
 
189
183
  if (
190
- getattr(self, 'existing_egg_info_dir', None)
184
+ self.existing_egg_info_dir
191
185
  and Path(self.existing_egg_info_dir, "SOURCES.txt").exists()
192
186
  ):
193
187
  egg_info_dir = self.existing_egg_info_dir
@@ -216,9 +210,11 @@ class build_py(orig.build_py):
216
210
  importable = check.importable_subpackage(src_dirs[d], f)
217
211
  if importable:
218
212
  check.warn(importable)
219
- mf.setdefault(src_dirs[d], []).append(path)
213
+ self.manifest_files.setdefault(src_dirs[d], []).append(path)
220
214
 
221
- def _filter_build_files(self, files: Iterable[str], egg_info: str) -> Iterator[str]:
215
+ def _filter_build_files(
216
+ self, files: Iterable[str], egg_info: StrPath
217
+ ) -> Iterator[str]:
222
218
  """
223
219
  ``build_meta`` may try to create egg_info outside of the project directory,
224
220
  and this can be problematic for certain plugins (reported in issue #3500).
@@ -237,7 +233,7 @@ class build_py(orig.build_py):
237
233
  if not os.path.isabs(file) or all(d not in norm_path for d in norm_dirs):
238
234
  yield file
239
235
 
240
- def get_data_files(self):
236
+ def get_data_files(self) -> None:
241
237
  pass # Lazily compute data files in _get_data_files() function.
242
238
 
243
239
  def check_package(self, package, package_dir):
@@ -42,7 +42,7 @@ class develop(namespaces.DevelopInstaller, easy_install):
42
42
  self.setup_path = None
43
43
  self.always_copy_from = '.' # always copy eggs installed in curdir
44
44
 
45
- def finalize_options(self):
45
+ def finalize_options(self) -> None:
46
46
  import pkg_resources
47
47
 
48
48
  ei = self.get_finalized_command("egg_info")
@@ -104,7 +104,7 @@ class develop(namespaces.DevelopInstaller, easy_install):
104
104
  )
105
105
  return path_to_setup
106
106
 
107
- def install_for_development(self):
107
+ def install_for_development(self) -> None:
108
108
  self.run_command('egg_info')
109
109
 
110
110
  # Build extensions in-place
@@ -126,7 +126,7 @@ class develop(namespaces.DevelopInstaller, easy_install):
126
126
  # and handling requirements
127
127
  self.process_distribution(None, self.dist, not self.no_deps)
128
128
 
129
- def uninstall_link(self):
129
+ def uninstall_link(self) -> None:
130
130
  if os.path.exists(self.egg_link):
131
131
  log.info("Removing %s (link to %s)", self.egg_link, self.egg_base)
132
132
 
@@ -185,7 +185,7 @@ class VersionlessRequirement:
185
185
  'foo'
186
186
  """
187
187
 
188
- def __init__(self, dist):
188
+ def __init__(self, dist) -> None:
189
189
  self.__dist = dist
190
190
 
191
191
  def __getattr__(self, name: str):
@@ -10,6 +10,7 @@ from pathlib import Path
10
10
  from typing import cast
11
11
 
12
12
  from .. import _normalization
13
+ from .._shutil import rmdir as _rm
13
14
  from .egg_info import egg_info as egg_info_cls
14
15
 
15
16
  from distutils import log
@@ -48,7 +49,7 @@ class dist_info(Command):
48
49
  self.tag_build = None
49
50
  self.keep_egg_info = False
50
51
 
51
- def finalize_options(self):
52
+ def finalize_options(self) -> None:
52
53
  dist = self.distribution
53
54
  project_dir = dist.src_root or os.curdir
54
55
  self.output_dir = Path(self.output_dir or project_dir)
@@ -88,7 +89,7 @@ class dist_info(Command):
88
89
  else:
89
90
  yield
90
91
 
91
- def run(self):
92
+ def run(self) -> None:
92
93
  self.output_dir.mkdir(parents=True, exist_ok=True)
93
94
  self.egg_info.run()
94
95
  egg_info_dir = self.egg_info.egg_info
@@ -100,8 +101,3 @@ class dist_info(Command):
100
101
  # TODO: if bdist_wheel if merged into setuptools, just add "keep_egg_info" there
101
102
  with self._maybe_bkp_dir(egg_info_dir, self.keep_egg_info):
102
103
  bdist_wheel.egg2dist(egg_info_dir, self.dist_info_dir)
103
-
104
-
105
- def _rm(dir_name, **opts):
106
- if os.path.isdir(dir_name):
107
- shutil.rmtree(dir_name, **opts)