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
@@ -1,13 +1,20 @@
1
1
  import contextlib
2
+ import io
2
3
  import os
3
4
  import subprocess
4
5
  import sys
6
+ import tarfile
7
+ import time
5
8
  from pathlib import Path
6
9
 
10
+ import jaraco.path
7
11
  import path
8
12
  import pytest
9
13
 
14
+ from setuptools._normalization import safer_name
15
+
10
16
  from . import contexts, environment
17
+ from .textwrap import DALS
11
18
 
12
19
 
13
20
  @pytest.fixture
@@ -60,6 +67,12 @@ def sample_project(tmp_path):
60
67
  return tmp_path / 'sampleproject'
61
68
 
62
69
 
70
+ @pytest.fixture
71
+ def sample_project_cwd(sample_project):
72
+ with path.Path(sample_project):
73
+ yield
74
+
75
+
63
76
  # sdist and wheel artifacts should be stable across a round of tests
64
77
  # so we can build them once per session and use the files as "readonly"
65
78
 
@@ -155,3 +168,225 @@ def bare_venv(tmp_path):
155
168
  env.create_opts = ['--no-setuptools', '--no-pip', '--no-wheel', '--no-seed']
156
169
  env.ensure_env()
157
170
  return env
171
+
172
+
173
+ def make_sdist(dist_path, files):
174
+ """
175
+ Create a simple sdist tarball at dist_path, containing the files
176
+ listed in ``files`` as ``(filename, content)`` tuples.
177
+ """
178
+
179
+ # Distributions with only one file don't play well with pip.
180
+ assert len(files) > 1
181
+ with tarfile.open(dist_path, 'w:gz') as dist:
182
+ for filename, content in files:
183
+ file_bytes = io.BytesIO(content.encode('utf-8'))
184
+ file_info = tarfile.TarInfo(name=filename)
185
+ file_info.size = len(file_bytes.getvalue())
186
+ file_info.mtime = int(time.time())
187
+ dist.addfile(file_info, fileobj=file_bytes)
188
+
189
+
190
+ def make_trivial_sdist(dist_path, distname, version):
191
+ """
192
+ Create a simple sdist tarball at dist_path, containing just a simple
193
+ setup.py.
194
+ """
195
+
196
+ make_sdist(
197
+ dist_path,
198
+ [
199
+ (
200
+ 'setup.py',
201
+ DALS(
202
+ f"""\
203
+ import setuptools
204
+ setuptools.setup(
205
+ name={distname!r},
206
+ version={version!r}
207
+ )
208
+ """
209
+ ),
210
+ ),
211
+ ('setup.cfg', ''),
212
+ ],
213
+ )
214
+
215
+
216
+ def make_nspkg_sdist(dist_path, distname, version):
217
+ """
218
+ Make an sdist tarball with distname and version which also contains one
219
+ package with the same name as distname. The top-level package is
220
+ designated a namespace package).
221
+ """
222
+ # Assert that the distname contains at least one period
223
+ assert '.' in distname
224
+
225
+ parts = distname.split('.')
226
+ nspackage = parts[0]
227
+
228
+ packages = ['.'.join(parts[:idx]) for idx in range(1, len(parts) + 1)]
229
+
230
+ setup_py = DALS(
231
+ f"""\
232
+ import setuptools
233
+ setuptools.setup(
234
+ name={distname!r},
235
+ version={version!r},
236
+ packages={packages!r},
237
+ namespace_packages=[{nspackage!r}]
238
+ )
239
+ """
240
+ )
241
+
242
+ init = "__import__('pkg_resources').declare_namespace(__name__)"
243
+
244
+ files = [('setup.py', setup_py), (os.path.join(nspackage, '__init__.py'), init)]
245
+ for package in packages[1:]:
246
+ filename = os.path.join(*(package.split('.') + ['__init__.py']))
247
+ files.append((filename, ''))
248
+
249
+ make_sdist(dist_path, files)
250
+
251
+
252
+ def make_python_requires_sdist(dist_path, distname, version, python_requires):
253
+ make_sdist(
254
+ dist_path,
255
+ [
256
+ (
257
+ 'setup.py',
258
+ DALS(
259
+ """\
260
+ import setuptools
261
+ setuptools.setup(
262
+ name={name!r},
263
+ version={version!r},
264
+ python_requires={python_requires!r},
265
+ )
266
+ """
267
+ ).format(
268
+ name=distname, version=version, python_requires=python_requires
269
+ ),
270
+ ),
271
+ ('setup.cfg', ''),
272
+ ],
273
+ )
274
+
275
+
276
+ def create_setup_requires_package(
277
+ path,
278
+ distname='foobar',
279
+ version='0.1',
280
+ make_package=make_trivial_sdist,
281
+ setup_py_template=None,
282
+ setup_attrs=None,
283
+ use_setup_cfg=(),
284
+ ):
285
+ """Creates a source tree under path for a trivial test package that has a
286
+ single requirement in setup_requires--a tarball for that requirement is
287
+ also created and added to the dependency_links argument.
288
+
289
+ ``distname`` and ``version`` refer to the name/version of the package that
290
+ the test package requires via ``setup_requires``. The name of the test
291
+ package itself is just 'test_pkg'.
292
+ """
293
+
294
+ normalized_distname = safer_name(distname)
295
+ test_setup_attrs = {
296
+ 'name': 'test_pkg',
297
+ 'version': '0.0',
298
+ 'setup_requires': [f'{normalized_distname}=={version}'],
299
+ 'dependency_links': [os.path.abspath(path)],
300
+ }
301
+ if setup_attrs:
302
+ test_setup_attrs.update(setup_attrs)
303
+
304
+ test_pkg = os.path.join(path, 'test_pkg')
305
+ os.mkdir(test_pkg)
306
+
307
+ # setup.cfg
308
+ if use_setup_cfg:
309
+ options = []
310
+ metadata = []
311
+ for name in use_setup_cfg:
312
+ value = test_setup_attrs.pop(name)
313
+ if name in 'name version'.split():
314
+ section = metadata
315
+ else:
316
+ section = options
317
+ if isinstance(value, (tuple, list)):
318
+ value = ';'.join(value)
319
+ section.append(f'{name}: {value}')
320
+ test_setup_cfg_contents = DALS(
321
+ """
322
+ [metadata]
323
+ {metadata}
324
+ [options]
325
+ {options}
326
+ """
327
+ ).format(
328
+ options='\n'.join(options),
329
+ metadata='\n'.join(metadata),
330
+ )
331
+ else:
332
+ test_setup_cfg_contents = ''
333
+ with open(os.path.join(test_pkg, 'setup.cfg'), 'w', encoding="utf-8") as f:
334
+ f.write(test_setup_cfg_contents)
335
+
336
+ # setup.py
337
+ if setup_py_template is None:
338
+ setup_py_template = DALS(
339
+ """\
340
+ import setuptools
341
+ setuptools.setup(**%r)
342
+ """
343
+ )
344
+ with open(os.path.join(test_pkg, 'setup.py'), 'w', encoding="utf-8") as f:
345
+ f.write(setup_py_template % test_setup_attrs)
346
+
347
+ foobar_path = os.path.join(path, f'{normalized_distname}-{version}.tar.gz')
348
+ make_package(foobar_path, distname, version)
349
+
350
+ return test_pkg
351
+
352
+
353
+ @pytest.fixture
354
+ def pbr_package(tmp_path, monkeypatch, venv):
355
+ files = {
356
+ "pyproject.toml": DALS(
357
+ """
358
+ [build-system]
359
+ requires = ["setuptools"]
360
+ build-backend = "setuptools.build_meta"
361
+ """
362
+ ),
363
+ "setup.py": DALS(
364
+ """
365
+ __import__('setuptools').setup(
366
+ pbr=True,
367
+ setup_requires=["pbr"],
368
+ )
369
+ """
370
+ ),
371
+ "setup.cfg": DALS(
372
+ """
373
+ [metadata]
374
+ name = mypkg
375
+
376
+ [files]
377
+ packages =
378
+ mypkg
379
+ """
380
+ ),
381
+ "mypkg": {
382
+ "__init__.py": "",
383
+ "hello.py": "print('Hello world!')",
384
+ },
385
+ "other": {"test.txt": "Another file in here."},
386
+ }
387
+ venv.run(["python", "-m", "pip", "install", "pbr"])
388
+ prefix = tmp_path / 'mypkg'
389
+ prefix.mkdir()
390
+ jaraco.path.build(files, prefix=prefix)
391
+ monkeypatch.setenv('PBR_VERSION', "0.42")
392
+ return prefix
@@ -0,0 +1,20 @@
1
+ import subprocess
2
+
3
+ import pytest
4
+
5
+
6
+ @pytest.mark.uses_network
7
+ def test_pbr_integration(pbr_package, venv):
8
+ """Ensure pbr packages install."""
9
+ cmd = [
10
+ 'python',
11
+ '-m',
12
+ 'pip',
13
+ '-v',
14
+ 'install',
15
+ '--no-build-isolation',
16
+ pbr_package,
17
+ ]
18
+ venv.run(cmd, stderr=subprocess.STDOUT)
19
+ out = venv.run(["python", "-c", "import mypkg.hello"])
20
+ assert "Hello world!" in out
@@ -936,30 +936,6 @@ class TestBuildMetaLegacyBackend(TestBuildMetaBackend):
936
936
  build_backend.build_sdist("temp")
937
937
 
938
938
 
939
- def test_legacy_editable_install(venv, tmpdir, tmpdir_cwd):
940
- pyproject = """
941
- [build-system]
942
- requires = ["setuptools"]
943
- build-backend = "setuptools.build_meta"
944
- [project]
945
- name = "myproj"
946
- version = "42"
947
- """
948
- path.build({"pyproject.toml": DALS(pyproject), "mymod.py": ""})
949
-
950
- # First: sanity check
951
- cmd = ["pip", "install", "--no-build-isolation", "-e", "."]
952
- output = venv.run(cmd, cwd=tmpdir).lower()
953
- assert "running setup.py develop for myproj" not in output
954
- assert "created wheel for myproj" in output
955
-
956
- # Then: real test
957
- env = {**os.environ, "SETUPTOOLS_ENABLE_FEATURES": "legacy-editable"}
958
- cmd = ["pip", "install", "--no-build-isolation", "-e", "."]
959
- output = venv.run(cmd, cwd=tmpdir, env=env).lower()
960
- assert "running setup.py develop for myproj" in output
961
-
962
-
963
939
  @pytest.mark.filterwarnings("ignore::setuptools.SetuptoolsDeprecationWarning")
964
940
  def test_sys_exit_0_in_setuppy(monkeypatch, tmp_path):
965
941
  """Setuptools should be resilient to setup.py with ``sys.exit(0)`` (#3973)."""
@@ -1,7 +1,6 @@
1
1
  """develop tests"""
2
2
 
3
3
  import os
4
- import pathlib
5
4
  import platform
6
5
  import subprocess
7
6
  import sys
@@ -9,8 +8,6 @@ import sys
9
8
  import pytest
10
9
 
11
10
  from setuptools._path import paths_on_pythonpath
12
- from setuptools.command.develop import develop
13
- from setuptools.dist import Distribution
14
11
 
15
12
  from . import contexts, namespaces
16
13
 
@@ -51,67 +48,6 @@ def test_env(tmpdir, temp_user):
51
48
  yield target
52
49
 
53
50
 
54
- class TestDevelop:
55
- in_virtualenv = hasattr(sys, 'real_prefix')
56
- in_venv = hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix
57
-
58
- def test_console_scripts(self, tmpdir):
59
- """
60
- Test that console scripts are installed and that they reference
61
- only the project by name and not the current version.
62
- """
63
- pytest.skip(
64
- "TODO: needs a fixture to cause 'develop' "
65
- "to be invoked without mutating environment."
66
- )
67
- settings = dict(
68
- name='foo',
69
- packages=['foo'],
70
- version='0.0',
71
- entry_points={
72
- 'console_scripts': [
73
- 'foocmd = foo:foo',
74
- ],
75
- },
76
- )
77
- dist = Distribution(settings)
78
- dist.script_name = 'setup.py'
79
- cmd = develop(dist)
80
- cmd.ensure_finalized()
81
- cmd.install_dir = tmpdir
82
- cmd.run()
83
- # assert '0.0' not in foocmd_text
84
-
85
- @pytest.mark.xfail(reason="legacy behavior retained for compatibility #4167")
86
- def test_egg_link_filename(self):
87
- settings = dict(
88
- name='Foo $$$ Bar_baz-bing',
89
- )
90
- dist = Distribution(settings)
91
- cmd = develop(dist)
92
- cmd.ensure_finalized()
93
- link = pathlib.Path(cmd.egg_link)
94
- assert link.suffix == '.egg-link'
95
- assert link.stem == 'Foo_Bar_baz_bing'
96
-
97
-
98
- class TestResolver:
99
- """
100
- TODO: These tests were written with a minimal understanding
101
- of what _resolve_setup_path is intending to do. Come up with
102
- more meaningful cases that look like real-world scenarios.
103
- """
104
-
105
- def test_resolve_setup_path_cwd(self):
106
- assert develop._resolve_setup_path('.', '.', '.') == '.'
107
-
108
- def test_resolve_setup_path_one_dir(self):
109
- assert develop._resolve_setup_path('pkgs', '.', 'pkgs') == '../'
110
-
111
- def test_resolve_setup_path_one_dir_trailing_slash(self):
112
- assert develop._resolve_setup_path('pkgs/', '.', 'pkgs') == '../'
113
-
114
-
115
51
  class TestNamespaces:
116
52
  @staticmethod
117
53
  def install_develop(src_dir, target):
@@ -134,6 +70,7 @@ class TestNamespaces:
134
70
  platform.python_implementation() == 'PyPy',
135
71
  reason="https://github.com/pypa/setuptools/issues/1202",
136
72
  )
73
+ @pytest.mark.uses_network
137
74
  def test_namespace_package_importable(self, tmpdir):
138
75
  """
139
76
  Installing two packages sharing the same namespace, one installed
@@ -8,7 +8,7 @@ import pytest
8
8
  from setuptools import Distribution
9
9
  from setuptools.dist import check_package_data, check_specifier
10
10
 
11
- from .test_easy_install import make_trivial_sdist
11
+ from .fixtures import make_trivial_sdist
12
12
  from .test_find_packages import ensure_files
13
13
  from .textwrap import DALS
14
14
 
@@ -56,7 +56,7 @@ def test_dist_fetch_build_egg(tmpdir):
56
56
  dist = Distribution()
57
57
  dist.parse_config_files()
58
58
  resolved_dists = [dist.fetch_build_egg(r) for r in reqs]
59
- assert [dist.key for dist in resolved_dists if dist] == reqs
59
+ assert [dist.name for dist in resolved_dists if dist] == reqs
60
60
 
61
61
 
62
62
  EXAMPLE_BASE_INFO = dict(
@@ -9,7 +9,6 @@ from functools import partial
9
9
 
10
10
  import pytest
11
11
 
12
- import pkg_resources
13
12
  from setuptools.archive_util import unpack_archive
14
13
 
15
14
  from .textwrap import DALS
@@ -18,68 +17,6 @@ read = partial(pathlib.Path.read_text, encoding="utf-8")
18
17
 
19
18
 
20
19
  class TestDistInfo:
21
- metadata_base = DALS(
22
- """
23
- Metadata-Version: 1.2
24
- Requires-Dist: splort (==4)
25
- Provides-Extra: baz
26
- Requires-Dist: quux (>=1.1); extra == 'baz'
27
- """
28
- )
29
-
30
- @classmethod
31
- def build_metadata(cls, **kwargs):
32
- lines = ('{key}: {value}\n'.format(**locals()) for key, value in kwargs.items())
33
- return cls.metadata_base + ''.join(lines)
34
-
35
- @pytest.fixture
36
- def metadata(self, tmpdir):
37
- dist_info_name = 'VersionedDistribution-2.718.dist-info'
38
- versioned = tmpdir / dist_info_name
39
- versioned.mkdir()
40
- filename = versioned / 'METADATA'
41
- content = self.build_metadata(
42
- Name='VersionedDistribution',
43
- )
44
- filename.write_text(content, encoding='utf-8')
45
-
46
- dist_info_name = 'UnversionedDistribution.dist-info'
47
- unversioned = tmpdir / dist_info_name
48
- unversioned.mkdir()
49
- filename = unversioned / 'METADATA'
50
- content = self.build_metadata(
51
- Name='UnversionedDistribution',
52
- Version='0.3',
53
- )
54
- filename.write_text(content, encoding='utf-8')
55
-
56
- return str(tmpdir)
57
-
58
- def test_distinfo(self, metadata):
59
- dists = dict(
60
- (d.project_name, d) for d in pkg_resources.find_distributions(metadata)
61
- )
62
-
63
- assert len(dists) == 2, dists
64
-
65
- unversioned = dists['UnversionedDistribution']
66
- versioned = dists['VersionedDistribution']
67
-
68
- assert versioned.version == '2.718' # from filename
69
- assert unversioned.version == '0.3' # from METADATA
70
-
71
- def test_conditional_dependencies(self, metadata):
72
- specs = 'splort==4', 'quux>=1.1'
73
- requires = list(map(pkg_resources.Requirement.parse, specs))
74
-
75
- for d in pkg_resources.find_distributions(metadata):
76
- assert d.requires() == requires[:1]
77
- assert d.requires(extras=('baz',)) == [
78
- requires[0],
79
- pkg_resources.Requirement.parse('quux>=1.1;extra=="baz"'),
80
- ]
81
- assert d.extras == ['baz']
82
-
83
20
  def test_invalid_version(self, tmp_path):
84
21
  """
85
22
  Supplying an invalid version crashes dist_info.
@@ -21,7 +21,6 @@ from path import Path as _Path
21
21
 
22
22
  from setuptools._importlib import resources as importlib_resources
23
23
  from setuptools.command.editable_wheel import (
24
- _DebuggingTips,
25
24
  _encode_pth,
26
25
  _find_namespaces,
27
26
  _find_package_roots,
@@ -1068,45 +1067,20 @@ def test_compat_install(tmp_path, venv):
1068
1067
  assert "cannot import name 'subpackage'" in out
1069
1068
 
1070
1069
 
1071
- def test_pbr_integration(tmp_path, venv, editable_opts):
1070
+ @pytest.mark.uses_network
1071
+ def test_pbr_integration(pbr_package, venv, editable_opts):
1072
1072
  """Ensure editable installs work with pbr, issue #3500"""
1073
- files = {
1074
- "pyproject.toml": dedent(
1075
- """\
1076
- [build-system]
1077
- requires = ["setuptools"]
1078
- build-backend = "setuptools.build_meta"
1079
- """
1080
- ),
1081
- "setup.py": dedent(
1082
- """\
1083
- __import__('setuptools').setup(
1084
- pbr=True,
1085
- setup_requires=["pbr"],
1086
- )
1087
- """
1088
- ),
1089
- "setup.cfg": dedent(
1090
- """\
1091
- [metadata]
1092
- name = mypkg
1093
-
1094
- [files]
1095
- packages =
1096
- mypkg
1097
- """
1098
- ),
1099
- "mypkg": {
1100
- "__init__.py": "",
1101
- "hello.py": "print('Hello world!')",
1102
- },
1103
- "other": {"test.txt": "Another file in here."},
1104
- }
1105
- venv.run(["python", "-m", "pip", "install", "pbr"])
1106
-
1107
- with contexts.environment(PBR_VERSION="0.42"):
1108
- install_project("mypkg", venv, tmp_path, files, *editable_opts)
1109
-
1073
+ cmd = [
1074
+ 'python',
1075
+ '-m',
1076
+ 'pip',
1077
+ '-v',
1078
+ 'install',
1079
+ '--editable',
1080
+ pbr_package,
1081
+ *editable_opts,
1082
+ ]
1083
+ venv.run(cmd, stderr=subprocess.STDOUT)
1110
1084
  out = venv.run(["python", "-c", "import mypkg.hello"])
1111
1085
  assert "Hello world!" in out
1112
1086
 
@@ -1227,9 +1201,9 @@ def test_debugging_tips(tmpdir_cwd, monkeypatch):
1227
1201
  simulated_failure = Mock(side_effect=SimulatedErr())
1228
1202
  monkeypatch.setattr(cmd, "get_finalized_command", simulated_failure)
1229
1203
 
1230
- expected_msg = "following steps are recommended to help debug"
1231
- with pytest.raises(SimulatedErr), pytest.warns(_DebuggingTips, match=expected_msg):
1204
+ with pytest.raises(SimulatedErr) as ctx:
1232
1205
  cmd.run()
1206
+ assert any('debugging-tips' in note for note in ctx.value.__notes__)
1233
1207
 
1234
1208
 
1235
1209
  @pytest.mark.filterwarnings("error")
@@ -1287,10 +1287,11 @@ class TestWriteEntries:
1287
1287
  dist = Distribution({"name": "foo", "version": "0.0.1"})
1288
1288
  dist.entry_points = {"foo": "foo = invalid-identifier:foo"}
1289
1289
  cmd = dist.get_command_obj("egg_info")
1290
- expected_msg = r"Problems to parse .*invalid-identifier.*"
1291
- with pytest.raises(errors.OptionError, match=expected_msg) as ex:
1290
+ expected_msg = r"(Invalid object reference|Problems to parse)"
1291
+ with pytest.raises((errors.OptionError, ValueError), match=expected_msg) as ex:
1292
1292
  write_entries(cmd, "entry_points", "entry_points.txt")
1293
1293
  assert "ensure entry-point follows the spec" in ex.value.args[0]
1294
+ assert "invalid-identifier" in str(ex.value)
1294
1295
 
1295
1296
  def test_valid_entry_point(self, tmpdir_cwd, env):
1296
1297
  dist = Distribution({"name": "foo", "version": "0.0.1"})
@@ -0,0 +1,12 @@
1
+ from setuptools import _scripts
2
+
3
+
4
+ class TestWindowsScriptWriter:
5
+ def test_header(self):
6
+ hdr = _scripts.WindowsScriptWriter.get_header('')
7
+ assert hdr.startswith('#!')
8
+ assert hdr.endswith('\n')
9
+ hdr = hdr.lstrip('#!')
10
+ hdr = hdr.rstrip('\n')
11
+ # header should not start with an escaped quote
12
+ assert not hdr.startswith('\\"')