py2docfx 0.1.16.dev2064350__py3-none-any.whl → 0.1.17__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 (388) hide show
  1. py2docfx/convert_prepare/environment.py +1 -3
  2. py2docfx/convert_prepare/get_source.py +1 -6
  3. py2docfx/convert_prepare/package_info.py +1 -1
  4. py2docfx/docfx_yaml/miss_reference.py +1 -1
  5. py2docfx/docfx_yaml/parameter_utils.py +58 -6
  6. py2docfx/docfx_yaml/tests/roots/test-translator-typing/code_with_typing.py +14 -0
  7. py2docfx/docfx_yaml/tests/roots/test-translator-typing/conf.py +18 -0
  8. py2docfx/docfx_yaml/tests/test_translator_typing.py +39 -0
  9. py2docfx/docfx_yaml/utils.py +2 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/certifi/__init__.py +1 -1
  11. py2docfx/venv/basevenv/Lib/site-packages/certifi/core.py +1 -32
  12. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
  13. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/constant.py +17 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/legacy.py +1 -3
  15. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/md.py +19 -14
  16. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/utils.py +6 -0
  17. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/version.py +1 -1
  18. py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +1 -1
  19. py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +1 -2
  20. py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -2
  21. py2docfx/venv/basevenv/Lib/site-packages/packaging/_parser.py +1 -2
  22. py2docfx/venv/basevenv/Lib/site-packages/packaging/_tokenizer.py +5 -4
  23. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +53 -22
  25. py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +1 -2
  26. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +1 -2
  27. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +39 -0
  28. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +6 -7
  29. py2docfx/venv/basevenv/Lib/site-packages/pygments/__init__.py +1 -1
  30. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/_sql_builtins.py +106 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/scripting.py +5 -3
  32. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/sql.py +24 -118
  33. py2docfx/venv/basevenv/Lib/site-packages/requests/__version__.py +2 -2
  34. py2docfx/venv/basevenv/Lib/site-packages/requests/compat.py +12 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/requests/models.py +3 -1
  36. py2docfx/venv/basevenv/Lib/site-packages/requests/utils.py +6 -16
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +0 -38
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_discovery.py +33 -0
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_entry_points.py +4 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +0 -2
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +12 -3
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +1 -1
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_scripts.py +361 -0
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +6 -0
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -37
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +29 -28
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +39 -179
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +0 -2
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +3 -55
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +1 -1
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/compat/py310.py +11 -0
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +10 -12
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +34 -29
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/contexts.py +0 -14
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +49 -24
  76. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/__init__.py +6 -0
  77. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/arabic_stemmer.py +798 -797
  78. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/armenian_stemmer.py +212 -213
  79. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basestemmer.py +20 -54
  80. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basque_stemmer.py +202 -228
  81. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/catalan_stemmer.py +370 -375
  82. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/danish_stemmer.py +63 -61
  83. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_porter_stemmer.py +466 -0
  84. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_stemmer.py +1217 -343
  85. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/english_stemmer.py +295 -264
  86. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/esperanto_stemmer.py +588 -0
  87. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/estonian_stemmer.py +850 -0
  88. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/finnish_stemmer.py +144 -143
  89. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/french_stemmer.py +308 -246
  90. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/german_stemmer.py +224 -167
  91. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/greek_stemmer.py +1314 -1313
  92. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hindi_stemmer.py +39 -38
  93. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +231 -256
  94. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +61 -64
  95. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/irish_stemmer.py +101 -106
  96. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/italian_stemmer.py +272 -272
  97. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +233 -240
  98. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/nepali_stemmer.py +108 -134
  99. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +108 -63
  100. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/porter_stemmer.py +101 -108
  101. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +241 -250
  102. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/romanian_stemmer.py +332 -296
  103. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/russian_stemmer.py +178 -179
  104. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/serbian_stemmer.py +2331 -2332
  105. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/spanish_stemmer.py +254 -259
  106. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/swedish_stemmer.py +143 -70
  107. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/tamil_stemmer.py +638 -1491
  108. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/turkish_stemmer.py +326 -292
  109. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +245 -246
  110. py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +2 -2
  111. py2docfx/venv/basevenv/Lib/site-packages/urllib3/connection.py +87 -38
  112. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
  113. py2docfx/venv/basevenv/Lib/site-packages/urllib3/poolmanager.py +17 -1
  114. py2docfx/venv/basevenv/Lib/site-packages/urllib3/response.py +53 -24
  115. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/request.py +12 -4
  116. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +1 -1
  117. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  118. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +1 -1
  119. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +1 -1
  120. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +2 -1
  121. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +1 -1
  122. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +2 -2
  123. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +1 -1
  124. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +13 -1
  125. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +2 -1
  126. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
  127. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +1 -0
  128. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +23 -2
  129. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +12 -16
  130. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +22 -1
  131. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +10 -6
  132. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +13 -4
  133. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +3 -5
  134. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +2 -1
  135. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +3 -2
  136. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +1 -1
  137. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +1 -1
  138. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +1 -1
  139. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +1 -1
  140. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +1 -1
  141. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +22 -2
  142. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +2 -2
  143. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +17 -1
  144. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +4 -4
  145. py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +1 -1
  146. py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +1 -32
  147. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
  148. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +17 -0
  149. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +1 -3
  150. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +19 -14
  151. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +6 -0
  152. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +1 -1
  153. py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +2 -2
  154. py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +2 -2
  155. py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +2 -1
  156. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +35 -2
  157. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +33 -10
  158. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +14 -5
  159. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +2 -2
  160. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +3 -0
  161. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +49 -45
  162. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +2 -2
  163. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +2 -1
  164. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +2 -1
  165. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +10 -1
  166. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +3 -2
  167. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +8 -2
  168. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +3 -2
  169. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +6 -4
  170. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +2 -1
  171. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +2 -1
  172. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +9 -3
  173. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +7 -6
  174. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +2 -1
  175. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +79 -12
  176. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +9 -1
  177. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +2 -1
  178. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +5 -0
  179. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +4 -2
  180. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +1 -2
  181. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +12 -0
  182. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +16 -3
  183. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +47 -3
  184. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +16 -3
  185. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +16 -3
  186. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +14 -0
  187. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +14 -1
  188. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +14 -1
  189. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +6 -6
  190. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +5 -4
  191. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +18 -18
  192. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +5 -1
  193. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +5 -4
  194. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +4 -4
  195. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +7 -4
  196. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +1 -1
  197. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +1 -1
  198. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +7 -121
  199. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +2 -0
  200. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +21 -1
  201. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +48 -6
  202. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +68 -18
  203. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +3 -2
  204. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +2 -1
  205. py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +15 -3
  206. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +3 -0
  207. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +39 -6
  208. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +100 -49
  209. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +27 -15
  210. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +60 -25
  211. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +2 -0
  212. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +6 -0
  213. py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +17 -4
  214. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +6 -0
  215. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +1 -0
  216. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +13 -4
  217. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +7 -6
  218. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +8 -5
  219. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +7 -6
  220. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +7 -6
  221. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  222. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +2 -36
  223. py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +240 -0
  224. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/_helpers.py +62 -0
  225. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +6 -0
  226. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +5 -1
  227. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +2 -1
  228. py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +91 -2
  229. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +75 -0
  230. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +1 -0
  231. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +8 -1
  232. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +3 -1
  233. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +4 -1
  234. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +15 -5
  235. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  236. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +12 -0
  237. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +1 -1
  238. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  239. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any.py +15 -1
  240. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +3 -3
  241. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +3 -3
  242. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +3 -3
  243. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +15 -2
  244. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +258 -113
  245. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +22 -8
  246. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +3 -3
  247. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +3 -3
  248. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +3 -3
  249. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +106 -23
  250. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +3 -1
  251. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  252. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +21 -18
  253. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +8 -2
  254. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +60 -43
  255. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +4 -5
  256. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +16 -0
  257. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +2 -2
  258. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +3 -3
  259. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +3 -3
  260. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +11 -7
  261. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +3 -3
  262. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +3 -3
  263. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +3 -3
  264. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +29 -23
  265. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +41 -2
  266. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -0
  267. py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +9 -5
  268. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +4 -5
  269. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +1 -1
  270. py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +58 -30
  271. py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -1
  272. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -1
  273. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -1
  274. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -138
  275. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -93
  276. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -63
  277. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -206
  278. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -205
  279. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +355 -355
  280. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -79
  281. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -15
  282. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -314
  283. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -190
  284. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -62
  285. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -50
  286. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -176
  287. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -42
  288. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -87
  289. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -1
  290. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -50
  291. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -100
  292. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -480
  293. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -236
  294. py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +1 -1
  295. py2docfx/venv/venv1/Lib/site-packages/packaging/_elffile.py +1 -2
  296. py2docfx/venv/venv1/Lib/site-packages/packaging/_manylinux.py +1 -2
  297. py2docfx/venv/venv1/Lib/site-packages/packaging/_parser.py +1 -2
  298. py2docfx/venv/venv1/Lib/site-packages/packaging/_tokenizer.py +5 -4
  299. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +1 -1
  300. py2docfx/venv/venv1/Lib/site-packages/packaging/markers.py +53 -22
  301. py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +1 -2
  302. py2docfx/venv/venv1/Lib/site-packages/packaging/specifiers.py +1 -2
  303. py2docfx/venv/venv1/Lib/site-packages/packaging/tags.py +39 -0
  304. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +6 -7
  305. py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +2 -2
  306. py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +12 -0
  307. py2docfx/venv/venv1/Lib/site-packages/requests/models.py +3 -1
  308. py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +6 -16
  309. py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +2 -2
  310. py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -52
  311. py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -321
  312. py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -184
  313. py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -53
  314. py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -858
  315. py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -96
  316. py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -134
  317. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -485
  318. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -100
  319. py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -198
  320. py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -1
  321. py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -95
  322. py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -72
  323. py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -97
  324. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +0 -38
  325. py2docfx/venv/venv1/Lib/site-packages/setuptools/_discovery.py +33 -0
  326. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
  327. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  328. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
  329. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
  330. py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py +4 -0
  331. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +0 -2
  332. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +12 -3
  333. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +1 -1
  334. py2docfx/venv/venv1/Lib/site-packages/setuptools/_scripts.py +361 -0
  335. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +6 -0
  336. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -37
  337. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
  338. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
  339. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +29 -28
  340. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +39 -179
  341. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
  342. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
  343. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +0 -2
  344. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +3 -55
  345. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
  346. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +1 -1
  347. py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/py310.py +11 -0
  348. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +10 -12
  349. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +34 -29
  350. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/contexts.py +0 -14
  351. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
  352. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
  353. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
  354. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
  355. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  356. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
  357. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
  358. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
  359. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
  360. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
  361. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
  362. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +49 -24
  363. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +357 -703
  364. py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +2 -2
  365. py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +87 -38
  366. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
  367. py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +17 -1
  368. py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +53 -24
  369. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +12 -4
  370. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +1 -1
  371. {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/METADATA +1 -1
  372. {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/RECORD +374 -372
  373. {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/WHEEL +1 -1
  374. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +0 -1137
  375. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +0 -536
  376. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/server.py +0 -86
  377. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
  378. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
  379. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
  380. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +0 -119
  381. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +0 -121
  382. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +0 -1137
  383. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +0 -536
  384. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py +0 -86
  385. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
  386. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
  387. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
  388. {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,361 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import re
5
+ import shlex
6
+ import shutil
7
+ import struct
8
+ import subprocess
9
+ import sys
10
+ import textwrap
11
+ from collections.abc import Iterable
12
+ from typing import TYPE_CHECKING, TypedDict
13
+
14
+ from ._importlib import metadata, resources
15
+
16
+ if TYPE_CHECKING:
17
+ from typing_extensions import Self
18
+
19
+ from .warnings import SetuptoolsWarning
20
+
21
+ from distutils.command.build_scripts import first_line_re
22
+ from distutils.util import get_platform
23
+
24
+
25
+ class _SplitArgs(TypedDict, total=False):
26
+ comments: bool
27
+ posix: bool
28
+
29
+
30
+ class CommandSpec(list):
31
+ """
32
+ A command spec for a #! header, specified as a list of arguments akin to
33
+ those passed to Popen.
34
+ """
35
+
36
+ options: list[str] = []
37
+ split_args = _SplitArgs()
38
+
39
+ @classmethod
40
+ def best(cls):
41
+ """
42
+ Choose the best CommandSpec class based on environmental conditions.
43
+ """
44
+ return cls
45
+
46
+ @classmethod
47
+ def _sys_executable(cls):
48
+ _default = os.path.normpath(sys.executable)
49
+ return os.environ.get('__PYVENV_LAUNCHER__', _default)
50
+
51
+ @classmethod
52
+ def from_param(cls, param: Self | str | Iterable[str] | None) -> Self:
53
+ """
54
+ Construct a CommandSpec from a parameter to build_scripts, which may
55
+ be None.
56
+ """
57
+ if isinstance(param, cls):
58
+ return param
59
+ if isinstance(param, str):
60
+ return cls.from_string(param)
61
+ if isinstance(param, Iterable):
62
+ return cls(param)
63
+ if param is None:
64
+ return cls.from_environment()
65
+ raise TypeError(f"Argument has an unsupported type {type(param)}")
66
+
67
+ @classmethod
68
+ def from_environment(cls):
69
+ return cls([cls._sys_executable()])
70
+
71
+ @classmethod
72
+ def from_string(cls, string: str) -> Self:
73
+ """
74
+ Construct a command spec from a simple string representing a command
75
+ line parseable by shlex.split.
76
+ """
77
+ items = shlex.split(string, **cls.split_args)
78
+ return cls(items)
79
+
80
+ def install_options(self, script_text: str):
81
+ self.options = shlex.split(self._extract_options(script_text))
82
+ cmdline = subprocess.list2cmdline(self)
83
+ if not isascii(cmdline):
84
+ self.options[:0] = ['-x']
85
+
86
+ @staticmethod
87
+ def _extract_options(orig_script):
88
+ """
89
+ Extract any options from the first line of the script.
90
+ """
91
+ first = (orig_script + '\n').splitlines()[0]
92
+ match = _first_line_re().match(first)
93
+ options = match.group(1) or '' if match else ''
94
+ return options.strip()
95
+
96
+ def as_header(self):
97
+ return self._render(self + list(self.options))
98
+
99
+ @staticmethod
100
+ def _strip_quotes(item):
101
+ _QUOTES = '"\''
102
+ for q in _QUOTES:
103
+ if item.startswith(q) and item.endswith(q):
104
+ return item[1:-1]
105
+ return item
106
+
107
+ @staticmethod
108
+ def _render(items):
109
+ cmdline = subprocess.list2cmdline(
110
+ CommandSpec._strip_quotes(item.strip()) for item in items
111
+ )
112
+ return '#!' + cmdline + '\n'
113
+
114
+
115
+ class WindowsCommandSpec(CommandSpec):
116
+ split_args = _SplitArgs(posix=False)
117
+
118
+
119
+ class ScriptWriter:
120
+ """
121
+ Encapsulates behavior around writing entry point scripts for console and
122
+ gui apps.
123
+ """
124
+
125
+ template = textwrap.dedent(
126
+ r"""
127
+ # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r
128
+ import re
129
+ import sys
130
+
131
+ # for compatibility with easy_install; see #2198
132
+ __requires__ = %(spec)r
133
+
134
+ try:
135
+ from importlib.metadata import distribution
136
+ except ImportError:
137
+ try:
138
+ from importlib_metadata import distribution
139
+ except ImportError:
140
+ from pkg_resources import load_entry_point
141
+
142
+
143
+ def importlib_load_entry_point(spec, group, name):
144
+ dist_name, _, _ = spec.partition('==')
145
+ matches = (
146
+ entry_point
147
+ for entry_point in distribution(dist_name).entry_points
148
+ if entry_point.group == group and entry_point.name == name
149
+ )
150
+ return next(matches).load()
151
+
152
+
153
+ globals().setdefault('load_entry_point', importlib_load_entry_point)
154
+
155
+
156
+ if __name__ == '__main__':
157
+ sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
158
+ sys.exit(load_entry_point(%(spec)r, %(group)r, %(name)r)())
159
+ """
160
+ ).lstrip()
161
+
162
+ command_spec_class = CommandSpec
163
+
164
+ @classmethod
165
+ def get_args(cls, dist, header=None):
166
+ """
167
+ Yield write_script() argument tuples for a distribution's
168
+ console_scripts and gui_scripts entry points.
169
+ """
170
+
171
+ # If distribution is not an importlib.metadata.Distribution, assume
172
+ # it's a pkg_resources.Distribution and transform it.
173
+ if not hasattr(dist, 'entry_points'):
174
+ SetuptoolsWarning.emit("Unsupported distribution encountered.")
175
+ dist = metadata.Distribution.at(dist.egg_info)
176
+
177
+ if header is None:
178
+ header = cls.get_header()
179
+ spec = f'{dist.name}=={dist.version}'
180
+ for type_ in 'console', 'gui':
181
+ group = f'{type_}_scripts'
182
+ for ep in dist.entry_points.select(group=group):
183
+ name = ep.name
184
+ cls._ensure_safe_name(ep.name)
185
+ script_text = cls.template % locals()
186
+ args = cls._get_script_args(type_, ep.name, header, script_text)
187
+ yield from args
188
+
189
+ @staticmethod
190
+ def _ensure_safe_name(name):
191
+ """
192
+ Prevent paths in *_scripts entry point names.
193
+ """
194
+ has_path_sep = re.search(r'[\\/]', name)
195
+ if has_path_sep:
196
+ raise ValueError("Path separators not allowed in script names")
197
+
198
+ @classmethod
199
+ def best(cls):
200
+ """
201
+ Select the best ScriptWriter for this environment.
202
+ """
203
+ if sys.platform == 'win32' or (os.name == 'java' and os._name == 'nt'):
204
+ return WindowsScriptWriter.best()
205
+ else:
206
+ return cls
207
+
208
+ @classmethod
209
+ def _get_script_args(cls, type_, name, header, script_text):
210
+ # Simply write the stub with no extension.
211
+ yield (name, header + script_text)
212
+
213
+ @classmethod
214
+ def get_header(
215
+ cls,
216
+ script_text: str = "",
217
+ executable: str | CommandSpec | Iterable[str] | None = None,
218
+ ) -> str:
219
+ """Create a #! line, getting options (if any) from script_text"""
220
+ cmd = cls.command_spec_class.best().from_param(executable)
221
+ cmd.install_options(script_text)
222
+ return cmd.as_header()
223
+
224
+
225
+ class WindowsScriptWriter(ScriptWriter):
226
+ command_spec_class = WindowsCommandSpec
227
+
228
+ @classmethod
229
+ def best(cls):
230
+ """
231
+ Select the best ScriptWriter suitable for Windows
232
+ """
233
+ writer_lookup = dict(
234
+ executable=WindowsExecutableLauncherWriter,
235
+ natural=cls,
236
+ )
237
+ # for compatibility, use the executable launcher by default
238
+ launcher = os.environ.get('SETUPTOOLS_LAUNCHER', 'executable')
239
+ return writer_lookup[launcher]
240
+
241
+ @classmethod
242
+ def _get_script_args(cls, type_, name, header, script_text):
243
+ "For Windows, add a .py extension"
244
+ ext = dict(console='.pya', gui='.pyw')[type_]
245
+ if ext not in os.environ['PATHEXT'].lower().split(';'):
246
+ msg = (
247
+ "{ext} not listed in PATHEXT; scripts will not be "
248
+ "recognized as executables."
249
+ ).format(**locals())
250
+ SetuptoolsWarning.emit(msg)
251
+ old = ['.pya', '.py', '-script.py', '.pyc', '.pyo', '.pyw', '.exe']
252
+ old.remove(ext)
253
+ header = cls._adjust_header(type_, header)
254
+ blockers = [name + x for x in old]
255
+ yield name + ext, header + script_text, 't', blockers
256
+
257
+ @classmethod
258
+ def _adjust_header(cls, type_, orig_header):
259
+ """
260
+ Make sure 'pythonw' is used for gui and 'python' is used for
261
+ console (regardless of what sys.executable is).
262
+ """
263
+ pattern = 'pythonw.exe'
264
+ repl = 'python.exe'
265
+ if type_ == 'gui':
266
+ pattern, repl = repl, pattern
267
+ pattern_ob = re.compile(re.escape(pattern), re.IGNORECASE)
268
+ new_header = pattern_ob.sub(string=orig_header, repl=repl)
269
+ return new_header if cls._use_header(new_header) else orig_header
270
+
271
+ @staticmethod
272
+ def _use_header(new_header):
273
+ """
274
+ Should _adjust_header use the replaced header?
275
+
276
+ On non-windows systems, always use. On
277
+ Windows systems, only use the replaced header if it resolves
278
+ to an executable on the system.
279
+ """
280
+ clean_header = new_header[2:-1].strip('"')
281
+ return sys.platform != 'win32' or shutil.which(clean_header)
282
+
283
+
284
+ class WindowsExecutableLauncherWriter(WindowsScriptWriter):
285
+ @classmethod
286
+ def _get_script_args(cls, type_, name, header, script_text):
287
+ """
288
+ For Windows, add a .py extension and an .exe launcher
289
+ """
290
+ if type_ == 'gui':
291
+ launcher_type = 'gui'
292
+ ext = '-script.pyw'
293
+ old = ['.pyw']
294
+ else:
295
+ launcher_type = 'cli'
296
+ ext = '-script.py'
297
+ old = ['.py', '.pyc', '.pyo']
298
+ hdr = cls._adjust_header(type_, header)
299
+ blockers = [name + x for x in old]
300
+ yield (name + ext, hdr + script_text, 't', blockers)
301
+ yield (
302
+ name + '.exe',
303
+ get_win_launcher(launcher_type),
304
+ 'b', # write in binary mode
305
+ )
306
+ if not is_64bit():
307
+ # install a manifest for the launcher to prevent Windows
308
+ # from detecting it as an installer (which it will for
309
+ # launchers like easy_install.exe). Consider only
310
+ # adding a manifest for launchers detected as installers.
311
+ # See Distribute #143 for details.
312
+ m_name = name + '.exe.manifest'
313
+ yield (m_name, load_launcher_manifest(name), 't')
314
+
315
+
316
+ def get_win_launcher(type):
317
+ """
318
+ Load the Windows launcher (executable) suitable for launching a script.
319
+
320
+ `type` should be either 'cli' or 'gui'
321
+
322
+ Returns the executable as a byte string.
323
+ """
324
+ launcher_fn = f'{type}.exe'
325
+ if is_64bit():
326
+ if get_platform() == "win-arm64":
327
+ launcher_fn = launcher_fn.replace(".", "-arm64.")
328
+ else:
329
+ launcher_fn = launcher_fn.replace(".", "-64.")
330
+ else:
331
+ launcher_fn = launcher_fn.replace(".", "-32.")
332
+ return resources.files('setuptools').joinpath(launcher_fn).read_bytes()
333
+
334
+
335
+ def load_launcher_manifest(name):
336
+ res = resources.files(__name__).joinpath('launcher manifest.xml')
337
+ return res.read_text(encoding='utf-8') % vars()
338
+
339
+
340
+ def _first_line_re():
341
+ """
342
+ Return a regular expression based on first_line_re suitable for matching
343
+ strings.
344
+ """
345
+ if isinstance(first_line_re.pattern, str):
346
+ return first_line_re
347
+
348
+ # first_line_re in Python >=3.1.4 and >=3.2.1 is a bytes pattern.
349
+ return re.compile(first_line_re.pattern.decode())
350
+
351
+
352
+ def is_64bit():
353
+ return struct.calcsize("P") == 8
354
+
355
+
356
+ def isascii(s):
357
+ try:
358
+ s.encode('ascii')
359
+ except UnicodeError:
360
+ return False
361
+ return True
@@ -51,3 +51,9 @@ def rmtree(path, ignore_errors=False, onexc=_auto_chmod):
51
51
  def rmdir(path, **opts):
52
52
  if os.path.isdir(path):
53
53
  rmtree(path, **opts)
54
+
55
+
56
+ def current_umask():
57
+ tmp = os.umask(0o022)
58
+ os.umask(tmp)
59
+ return tmp
@@ -67,9 +67,6 @@ __all__ = [
67
67
  'SetupRequirementsError',
68
68
  ]
69
69
 
70
- SETUPTOOLS_ENABLE_FEATURES = os.getenv("SETUPTOOLS_ENABLE_FEATURES", "").lower()
71
- LEGACY_EDITABLE = "legacy-editable" in SETUPTOOLS_ENABLE_FEATURES.replace("_", "-")
72
-
73
70
 
74
71
  class SetupRequirementsError(BaseException):
75
72
  def __init__(self, specifiers) -> None:
@@ -457,37 +454,30 @@ class _BuildMetaBackend(_ConfigSettingsTranslator):
457
454
  assert len(dist_info_candidates) <= 1
458
455
  return str(dist_info_candidates[0]) if dist_info_candidates else None
459
456
 
460
- if not LEGACY_EDITABLE:
461
- # PEP660 hooks:
462
- # build_editable
463
- # get_requires_for_build_editable
464
- # prepare_metadata_for_build_editable
465
- def build_editable(
466
- self,
467
- wheel_directory: StrPath,
468
- config_settings: _ConfigSettings = None,
469
- metadata_directory: StrPath | None = None,
470
- ):
471
- # XXX can or should we hide our editable_wheel command normally?
472
- info_dir = self._get_dist_info_dir(metadata_directory)
473
- opts = ["--dist-info-dir", info_dir] if info_dir else []
474
- cmd = ["editable_wheel", *opts, *self._editable_args(config_settings)]
475
- with suppress_known_deprecation():
476
- return self._build_with_temp_dir(
477
- cmd, ".whl", wheel_directory, config_settings
478
- )
457
+ def build_editable(
458
+ self,
459
+ wheel_directory: StrPath,
460
+ config_settings: _ConfigSettings = None,
461
+ metadata_directory: StrPath | None = None,
462
+ ):
463
+ # XXX can or should we hide our editable_wheel command normally?
464
+ info_dir = self._get_dist_info_dir(metadata_directory)
465
+ opts = ["--dist-info-dir", info_dir] if info_dir else []
466
+ cmd = ["editable_wheel", *opts, *self._editable_args(config_settings)]
467
+ with suppress_known_deprecation():
468
+ return self._build_with_temp_dir(
469
+ cmd, ".whl", wheel_directory, config_settings
470
+ )
479
471
 
480
- def get_requires_for_build_editable(
481
- self, config_settings: _ConfigSettings = None
482
- ):
483
- return self.get_requires_for_build_wheel(config_settings)
472
+ def get_requires_for_build_editable(self, config_settings: _ConfigSettings = None):
473
+ return self.get_requires_for_build_wheel(config_settings)
484
474
 
485
- def prepare_metadata_for_build_editable(
486
- self, metadata_directory: StrPath, config_settings: _ConfigSettings = None
487
- ):
488
- return self.prepare_metadata_for_build_wheel(
489
- metadata_directory, config_settings
490
- )
475
+ def prepare_metadata_for_build_editable(
476
+ self, metadata_directory: StrPath, config_settings: _ConfigSettings = None
477
+ ):
478
+ return self.prepare_metadata_for_build_wheel(
479
+ metadata_directory, config_settings
480
+ )
491
481
 
492
482
 
493
483
  class _BuildMetaLegacyBackend(_BuildMetaBackend):
@@ -549,11 +539,9 @@ get_requires_for_build_sdist = _BACKEND.get_requires_for_build_sdist
549
539
  prepare_metadata_for_build_wheel = _BACKEND.prepare_metadata_for_build_wheel
550
540
  build_wheel = _BACKEND.build_wheel
551
541
  build_sdist = _BACKEND.build_sdist
552
-
553
- if not LEGACY_EDITABLE:
554
- get_requires_for_build_editable = _BACKEND.get_requires_for_build_editable
555
- prepare_metadata_for_build_editable = _BACKEND.prepare_metadata_for_build_editable
556
- build_editable = _BACKEND.build_editable
542
+ get_requires_for_build_editable = _BACKEND.get_requires_for_build_editable
543
+ prepare_metadata_for_build_editable = _BACKEND.prepare_metadata_for_build_editable
544
+ build_editable = _BACKEND.build_editable
557
545
 
558
546
 
559
547
  # The legacy backend
@@ -9,7 +9,7 @@ import os
9
9
  import re
10
10
  import sys
11
11
  import textwrap
12
- from sysconfig import get_path, get_python_version
12
+ from sysconfig import get_path, get_platform, get_python_version
13
13
  from types import CodeType
14
14
  from typing import TYPE_CHECKING, Literal
15
15
 
@@ -55,12 +55,12 @@ def write_stub(resource, pyfile) -> None:
55
55
  """
56
56
  def __bootstrap__():
57
57
  global __bootstrap__, __loader__, __file__
58
- import sys, pkg_resources, importlib.util
59
- __file__ = pkg_resources.resource_filename(__name__, %r)
60
- __loader__ = None; del __bootstrap__, __loader__
61
- spec = importlib.util.spec_from_file_location(__name__,__file__)
62
- mod = importlib.util.module_from_spec(spec)
63
- spec.loader.exec_module(mod)
58
+ import sys, importlib.resources as irs, importlib.util
59
+ with irs.as_file(irs.files(__name__).joinpath(%r)) as __file__:
60
+ __loader__ = None; del __bootstrap__, __loader__
61
+ spec = importlib.util.spec_from_file_location(__name__,__file__)
62
+ mod = importlib.util.module_from_spec(spec)
63
+ spec.loader.exec_module(mod)
64
64
  __bootstrap__()
65
65
  """
66
66
  ).lstrip()
@@ -77,7 +77,7 @@ class bdist_egg(Command):
77
77
  'plat-name=',
78
78
  'p',
79
79
  "platform name to embed in generated filenames "
80
- "(by default uses `pkg_resources.get_build_platform()`)",
80
+ "(by default uses `sysconfig.get_platform()`)",
81
81
  ),
82
82
  ('exclude-source-files', None, "remove all .py files from the generated egg"),
83
83
  (
@@ -110,9 +110,7 @@ class bdist_egg(Command):
110
110
  self.bdist_dir = os.path.join(bdist_base, 'egg')
111
111
 
112
112
  if self.plat_name is None:
113
- from pkg_resources import get_build_platform
114
-
115
- self.plat_name = get_build_platform()
113
+ self.plat_name = get_platform()
116
114
 
117
115
  self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'))
118
116
 
@@ -285,7 +285,7 @@ class bdist_wheel(Command):
285
285
  raise ValueError(
286
286
  f"`py_limited_api={self.py_limited_api!r}` not supported. "
287
287
  "`Py_LIMITED_API` is currently incompatible with "
288
- "`Py_GIL_DISABLED`."
288
+ "`Py_GIL_DISABLED`. "
289
289
  "See https://github.com/python/cpython/issues/111506."
290
290
  )
291
291
 
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import itertools
4
4
  import os
5
5
  import sys
6
+ import textwrap
6
7
  from collections.abc import Iterator
7
8
  from importlib.machinery import EXTENSION_SUFFIXES
8
9
  from importlib.util import cache_from_source as _compiled_file_name
@@ -74,10 +75,6 @@ elif os.name != 'nt':
74
75
  pass
75
76
 
76
77
 
77
- def if_dl(s):
78
- return s if have_rtld else ''
79
-
80
-
81
78
  def get_abi3_suffix():
82
79
  """Return the file extension for an abi3-compliant Extension()"""
83
80
  for suffix in EXTENSION_SUFFIXES:
@@ -355,30 +352,34 @@ class build_ext(_build_ext):
355
352
  raise BaseError(stub_file + " already exists! Please delete.")
356
353
  if not self.dry_run:
357
354
  with open(stub_file, 'w', encoding="utf-8") as f:
358
- content = '\n'.join([
359
- "def __bootstrap__():",
360
- " global __bootstrap__, __file__, __loader__",
361
- " import sys, os, pkg_resources, importlib.util" + if_dl(", dl"),
362
- " __file__ = pkg_resources.resource_filename"
363
- f"(__name__,{os.path.basename(ext._file_name)!r})",
364
- " del __bootstrap__",
365
- " if '__loader__' in globals():",
366
- " del __loader__",
367
- if_dl(" old_flags = sys.getdlopenflags()"),
368
- " old_dir = os.getcwd()",
369
- " try:",
370
- " os.chdir(os.path.dirname(__file__))",
371
- if_dl(" sys.setdlopenflags(dl.RTLD_NOW)"),
372
- " spec = importlib.util.spec_from_file_location(",
373
- " __name__, __file__)",
374
- " mod = importlib.util.module_from_spec(spec)",
375
- " spec.loader.exec_module(mod)",
376
- " finally:",
377
- if_dl(" sys.setdlopenflags(old_flags)"),
378
- " os.chdir(old_dir)",
379
- "__bootstrap__()",
380
- "", # terminal \n
381
- ])
355
+ content = (
356
+ textwrap.dedent(f"""
357
+ def __bootstrap__():
358
+ global __bootstrap__, __file__, __loader__
359
+ import sys, os, importlib.resources as irs, importlib.util
360
+ #rtld import dl
361
+ with irs.files(__name__).joinpath(
362
+ {os.path.basename(ext._file_name)!r}) as __file__:
363
+ del __bootstrap__
364
+ if '__loader__' in globals():
365
+ del __loader__
366
+ #rtld old_flags = sys.getdlopenflags()
367
+ old_dir = os.getcwd()
368
+ try:
369
+ os.chdir(os.path.dirname(__file__))
370
+ #rtld sys.setdlopenflags(dl.RTLD_NOW)
371
+ spec = importlib.util.spec_from_file_location(
372
+ __name__, __file__)
373
+ mod = importlib.util.module_from_spec(spec)
374
+ spec.loader.exec_module(mod)
375
+ finally:
376
+ #rtld sys.setdlopenflags(old_flags)
377
+ os.chdir(old_dir)
378
+ __bootstrap__()
379
+ """)
380
+ .lstrip()
381
+ .replace('#rtld', '#rtld' * (not have_rtld))
382
+ )
382
383
  f.write(content)
383
384
  if compile:
384
385
  self._compile_and_remove_stub(stub_file)