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,267 +0,0 @@
1
- import http.client
2
- import re
3
- import urllib.error
4
- import urllib.request
5
- from inspect import cleandoc
6
-
7
- import pytest
8
-
9
- import setuptools.package_index
10
-
11
- import distutils.errors
12
-
13
-
14
- class TestPackageIndex:
15
- def test_regex(self):
16
- hash_url = 'http://other_url?:action=show_md5&'
17
- hash_url += 'digest=0123456789abcdef0123456789abcdef'
18
- doc = """
19
- <a href="http://some_url">Name</a>
20
- (<a title="MD5 hash"
21
- href="{hash_url}">md5</a>)
22
- """.lstrip().format(**locals())
23
- assert setuptools.package_index.PYPI_MD5.match(doc)
24
-
25
- def test_bad_url_bad_port(self):
26
- index = setuptools.package_index.PackageIndex()
27
- url = 'http://127.0.0.1:0/nonesuch/test_package_index'
28
- with pytest.raises(Exception, match=re.escape(url)):
29
- v = index.open_url(url)
30
- assert isinstance(v, urllib.error.HTTPError)
31
-
32
- def test_bad_url_typo(self):
33
- # issue 16
34
- # easy_install inquant.contentmirror.plone breaks because of a typo
35
- # in its home URL
36
- index = setuptools.package_index.PackageIndex(hosts=('www.example.com',))
37
-
38
- url = 'url:%20https://svn.plone.org/svn/collective/inquant.contentmirror.plone/trunk'
39
-
40
- with pytest.raises(Exception, match=re.escape(url)):
41
- v = index.open_url(url)
42
- assert isinstance(v, urllib.error.HTTPError)
43
-
44
- def test_bad_url_bad_status_line(self):
45
- index = setuptools.package_index.PackageIndex(hosts=('www.example.com',))
46
-
47
- def _urlopen(*args):
48
- raise http.client.BadStatusLine('line')
49
-
50
- index.opener = _urlopen
51
- url = 'http://example.com'
52
- with pytest.raises(Exception, match=r'line'):
53
- index.open_url(url)
54
-
55
- def test_bad_url_double_scheme(self):
56
- """
57
- A bad URL with a double scheme should raise a DistutilsError.
58
- """
59
- index = setuptools.package_index.PackageIndex(hosts=('www.example.com',))
60
-
61
- # issue 20
62
- url = 'http://http://svn.pythonpaste.org/Paste/wphp/trunk'
63
- try:
64
- index.open_url(url)
65
- except distutils.errors.DistutilsError as error:
66
- msg = str(error)
67
- assert (
68
- 'nonnumeric port' in msg
69
- or 'getaddrinfo failed' in msg
70
- or 'Name or service not known' in msg
71
- )
72
- return
73
- raise RuntimeError("Did not raise")
74
-
75
- def test_url_ok(self):
76
- index = setuptools.package_index.PackageIndex(hosts=('www.example.com',))
77
- url = 'file:///tmp/test_package_index'
78
- assert index.url_ok(url, True)
79
-
80
- def test_parse_bdist_wininst(self):
81
- parse = setuptools.package_index.parse_bdist_wininst
82
-
83
- actual = parse('reportlab-2.5.win32-py2.4.exe')
84
- expected = 'reportlab-2.5', '2.4', 'win32'
85
- assert actual == expected
86
-
87
- actual = parse('reportlab-2.5.win32.exe')
88
- expected = 'reportlab-2.5', None, 'win32'
89
- assert actual == expected
90
-
91
- actual = parse('reportlab-2.5.win-amd64-py2.7.exe')
92
- expected = 'reportlab-2.5', '2.7', 'win-amd64'
93
- assert actual == expected
94
-
95
- actual = parse('reportlab-2.5.win-amd64.exe')
96
- expected = 'reportlab-2.5', None, 'win-amd64'
97
- assert actual == expected
98
-
99
- def test__vcs_split_rev_from_url(self):
100
- """
101
- Test the basic usage of _vcs_split_rev_from_url
102
- """
103
- vsrfu = setuptools.package_index.PackageIndex._vcs_split_rev_from_url
104
- url, rev = vsrfu('https://example.com/bar@2995')
105
- assert url == 'https://example.com/bar'
106
- assert rev == '2995'
107
-
108
- def test_local_index(self, tmpdir):
109
- """
110
- local_open should be able to read an index from the file system.
111
- """
112
- index_file = tmpdir / 'index.html'
113
- with index_file.open('w') as f:
114
- f.write('<div>content</div>')
115
- url = 'file:' + urllib.request.pathname2url(str(tmpdir)) + '/'
116
- res = setuptools.package_index.local_open(url)
117
- assert 'content' in res.read()
118
-
119
- def test_egg_fragment(self):
120
- """
121
- EGG fragments must comply to PEP 440
122
- """
123
- epoch = [
124
- '',
125
- '1!',
126
- ]
127
- releases = [
128
- '0',
129
- '0.0',
130
- '0.0.0',
131
- ]
132
- pre = [
133
- 'a0',
134
- 'b0',
135
- 'rc0',
136
- ]
137
- post = ['.post0']
138
- dev = [
139
- '.dev0',
140
- ]
141
- local = [
142
- ('', ''),
143
- ('+ubuntu.0', '+ubuntu.0'),
144
- ('+ubuntu-0', '+ubuntu.0'),
145
- ('+ubuntu_0', '+ubuntu.0'),
146
- ]
147
- versions = [
148
- [''.join([e, r, p, loc]) for loc in locs]
149
- for e in epoch
150
- for r in releases
151
- for p in sum([pre, post, dev], [''])
152
- for locs in local
153
- ]
154
- for v, vc in versions:
155
- dists = list(
156
- setuptools.package_index.distros_for_url(
157
- 'http://example.com/example-foo.zip#egg=example-foo-' + v
158
- )
159
- )
160
- assert dists[0].version == ''
161
- assert dists[1].version == vc
162
-
163
- def test_download_git_with_rev(self, tmp_path, fp):
164
- url = 'git+https://github.example/group/project@master#egg=foo'
165
- index = setuptools.package_index.PackageIndex()
166
-
167
- expected_dir = tmp_path / 'project@master'
168
- fp.register([
169
- 'git',
170
- 'clone',
171
- '--quiet',
172
- 'https://github.example/group/project',
173
- expected_dir,
174
- ])
175
- fp.register(['git', '-C', expected_dir, 'checkout', '--quiet', 'master'])
176
-
177
- result = index.download(url, tmp_path)
178
-
179
- assert result == str(expected_dir)
180
- assert len(fp.calls) == 2
181
-
182
- def test_download_git_no_rev(self, tmp_path, fp):
183
- url = 'git+https://github.example/group/project#egg=foo'
184
- index = setuptools.package_index.PackageIndex()
185
-
186
- expected_dir = tmp_path / 'project'
187
- fp.register([
188
- 'git',
189
- 'clone',
190
- '--quiet',
191
- 'https://github.example/group/project',
192
- expected_dir,
193
- ])
194
- index.download(url, tmp_path)
195
-
196
- def test_download_svn(self, tmp_path):
197
- url = 'svn+https://svn.example/project#egg=foo'
198
- index = setuptools.package_index.PackageIndex()
199
-
200
- msg = r".*SVN download is not supported.*"
201
- with pytest.raises(distutils.errors.DistutilsError, match=msg):
202
- index.download(url, tmp_path)
203
-
204
-
205
- class TestContentCheckers:
206
- def test_md5(self):
207
- checker = setuptools.package_index.HashChecker.from_url(
208
- 'http://foo/bar#md5=f12895fdffbd45007040d2e44df98478'
209
- )
210
- checker.feed('You should probably not be using MD5'.encode('ascii'))
211
- assert checker.hash.hexdigest() == 'f12895fdffbd45007040d2e44df98478'
212
- assert checker.is_valid()
213
-
214
- def test_other_fragment(self):
215
- "Content checks should succeed silently if no hash is present"
216
- checker = setuptools.package_index.HashChecker.from_url(
217
- 'http://foo/bar#something%20completely%20different'
218
- )
219
- checker.feed('anything'.encode('ascii'))
220
- assert checker.is_valid()
221
-
222
- def test_blank_md5(self):
223
- "Content checks should succeed if a hash is empty"
224
- checker = setuptools.package_index.HashChecker.from_url('http://foo/bar#md5=')
225
- checker.feed('anything'.encode('ascii'))
226
- assert checker.is_valid()
227
-
228
- def test_get_hash_name_md5(self):
229
- checker = setuptools.package_index.HashChecker.from_url(
230
- 'http://foo/bar#md5=f12895fdffbd45007040d2e44df98478'
231
- )
232
- assert checker.hash_name == 'md5'
233
-
234
- def test_report(self):
235
- checker = setuptools.package_index.HashChecker.from_url(
236
- 'http://foo/bar#md5=f12895fdffbd45007040d2e44df98478'
237
- )
238
- rep = checker.report(lambda x: x, 'My message about %s')
239
- assert rep == 'My message about md5'
240
-
241
-
242
- class TestPyPIConfig:
243
- def test_percent_in_password(self, tmp_home_dir):
244
- pypirc = tmp_home_dir / '.pypirc'
245
- pypirc.write_text(
246
- cleandoc(
247
- """
248
- [pypi]
249
- repository=https://pypi.org
250
- username=jaraco
251
- password=pity%
252
- """
253
- ),
254
- encoding="utf-8",
255
- )
256
- cfg = setuptools.package_index.PyPIConfig()
257
- cred = cfg.creds_by_repository['https://pypi.org']
258
- assert cred.username == 'jaraco'
259
- assert cred.password == 'pity%'
260
-
261
-
262
- @pytest.mark.timeout(1)
263
- def test_REL_DoS():
264
- """
265
- REL should not hang on a contrived attack string.
266
- """
267
- setuptools.package_index.REL.search('< rel=' + ' ' * 2**12)
@@ -1,134 +0,0 @@
1
- """develop tests"""
2
-
3
- import os
4
- import types
5
-
6
- import pytest
7
-
8
- import pkg_resources
9
- import setuptools.sandbox
10
-
11
-
12
- class TestSandbox:
13
- def test_devnull(self, tmpdir):
14
- with setuptools.sandbox.DirectorySandbox(str(tmpdir)):
15
- self._file_writer(os.devnull)
16
-
17
- @staticmethod
18
- def _file_writer(path):
19
- def do_write():
20
- with open(path, 'w', encoding="utf-8") as f:
21
- f.write('xxx')
22
-
23
- return do_write
24
-
25
- def test_setup_py_with_BOM(self):
26
- """
27
- It should be possible to execute a setup.py with a Byte Order Mark
28
- """
29
- target = pkg_resources.resource_filename(__name__, 'script-with-bom.py')
30
- namespace = types.ModuleType('namespace')
31
- setuptools.sandbox._execfile(target, vars(namespace))
32
- assert namespace.result == 'passed'
33
-
34
- def test_setup_py_with_CRLF(self, tmpdir):
35
- setup_py = tmpdir / 'setup.py'
36
- with setup_py.open('wb') as stream:
37
- stream.write(b'"degenerate script"\r\n')
38
- setuptools.sandbox._execfile(str(setup_py), globals())
39
-
40
-
41
- class TestExceptionSaver:
42
- def test_exception_trapped(self):
43
- with setuptools.sandbox.ExceptionSaver():
44
- raise ValueError("details")
45
-
46
- def test_exception_resumed(self):
47
- with setuptools.sandbox.ExceptionSaver() as saved_exc:
48
- raise ValueError("details")
49
-
50
- with pytest.raises(ValueError) as caught:
51
- saved_exc.resume()
52
-
53
- assert isinstance(caught.value, ValueError)
54
- assert str(caught.value) == 'details'
55
-
56
- def test_exception_reconstructed(self):
57
- orig_exc = ValueError("details")
58
-
59
- with setuptools.sandbox.ExceptionSaver() as saved_exc:
60
- raise orig_exc
61
-
62
- with pytest.raises(ValueError) as caught:
63
- saved_exc.resume()
64
-
65
- assert isinstance(caught.value, ValueError)
66
- assert caught.value is not orig_exc
67
-
68
- def test_no_exception_passes_quietly(self):
69
- with setuptools.sandbox.ExceptionSaver() as saved_exc:
70
- pass
71
-
72
- saved_exc.resume()
73
-
74
- def test_unpickleable_exception(self):
75
- class CantPickleThis(Exception):
76
- "This Exception is unpickleable because it's not in globals"
77
-
78
- def __repr__(self) -> str:
79
- return f'CantPickleThis{self.args!r}'
80
-
81
- with setuptools.sandbox.ExceptionSaver() as saved_exc:
82
- raise CantPickleThis('detail')
83
-
84
- with pytest.raises(setuptools.sandbox.UnpickleableException) as caught:
85
- saved_exc.resume()
86
-
87
- assert str(caught.value) == "CantPickleThis('detail',)"
88
-
89
- def test_unpickleable_exception_when_hiding_setuptools(self):
90
- """
91
- As revealed in #440, an infinite recursion can occur if an unpickleable
92
- exception while setuptools is hidden. Ensure this doesn't happen.
93
- """
94
-
95
- class ExceptionUnderTest(Exception):
96
- """
97
- An unpickleable exception (not in globals).
98
- """
99
-
100
- with pytest.raises(setuptools.sandbox.UnpickleableException) as caught:
101
- with setuptools.sandbox.save_modules():
102
- setuptools.sandbox.hide_setuptools()
103
- raise ExceptionUnderTest
104
-
105
- (msg,) = caught.value.args
106
- assert msg == 'ExceptionUnderTest()'
107
-
108
- def test_sandbox_violation_raised_hiding_setuptools(self, tmpdir):
109
- """
110
- When in a sandbox with setuptools hidden, a SandboxViolation
111
- should reflect a proper exception and not be wrapped in
112
- an UnpickleableException.
113
- """
114
-
115
- def write_file():
116
- "Trigger a SandboxViolation by writing outside the sandbox"
117
- with open('/etc/foo', 'w', encoding="utf-8"):
118
- pass
119
-
120
- with pytest.raises(setuptools.sandbox.SandboxViolation) as caught:
121
- with setuptools.sandbox.save_modules():
122
- setuptools.sandbox.hide_setuptools()
123
- with setuptools.sandbox.DirectorySandbox(str(tmpdir)):
124
- write_file()
125
-
126
- cmd, args, kwargs = caught.value.args
127
- assert cmd == 'open'
128
- assert args == ('/etc/foo', 'w')
129
- assert kwargs == {"encoding": "utf-8"}
130
-
131
- msg = str(caught.value)
132
- assert 'open' in msg
133
- assert "('/etc/foo', 'w')" in msg
134
- assert "{'encoding': 'utf-8'}" in msg
@@ -1,119 +0,0 @@
1
- # ------------------------------------
2
- # Copyright (c) Microsoft Corporation.
3
- # Licensed under the MIT License.
4
- # ------------------------------------
5
- import logging
6
- import os
7
- from typing import Any, Optional, cast
8
-
9
- from azure.core.credentials import AccessToken, AccessTokenInfo, TokenRequestOptions, SupportsTokenInfo, TokenCredential
10
- from .chained import ChainedTokenCredential
11
- from .environment import EnvironmentCredential
12
- from .managed_identity import ManagedIdentityCredential
13
- from .._constants import EnvironmentVariables
14
- from .._internal import get_default_authority, normalize_authority
15
-
16
- _LOGGER = logging.getLogger(__name__)
17
-
18
-
19
- class AzureApplicationCredential(ChainedTokenCredential):
20
- """A credential for Microsoft Entra applications.
21
-
22
- This credential is designed for applications deployed to Azure (:class:`~azure.identity.DefaultAzureCredential` is
23
- better suited to local development). It authenticates service principals and managed identities.
24
-
25
- For service principal authentication, set these environment variables to identify a principal:
26
-
27
- - **AZURE_TENANT_ID**: ID of the service principal's tenant. Also called its "directory" ID.
28
- - **AZURE_CLIENT_ID**: the service principal's client ID
29
-
30
- And one of these to authenticate that principal:
31
-
32
- - **AZURE_CLIENT_SECRET**: one of the service principal's client secrets
33
-
34
- **or**
35
-
36
- - **AZURE_CLIENT_CERTIFICATE_PATH**: path to a PEM-encoded certificate file including the private key. The
37
- certificate must not be password-protected.
38
-
39
- See `Azure CLI documentation <https://learn.microsoft.com/cli/azure/create-an-azure-service-principal-azure-cli>`_
40
- for more information about creating and managing service principals.
41
-
42
- When this environment configuration is incomplete, the credential will attempt to authenticate a managed identity.
43
- See `Microsoft Entra ID documentation
44
- <https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview>`__ for an overview
45
- of managed identities.
46
-
47
- :keyword str authority: Authority of a Microsoft Entra endpoint, for example "login.microsoftonline.com",
48
- the authority for Azure Public Cloud, which is the default when no value is given for this keyword argument or
49
- environment variable AZURE_AUTHORITY_HOST. :class:`~azure.identity.AzureAuthorityHosts` defines authorities for
50
- other clouds. Authority configuration applies only to service principal authentication.
51
- :keyword str managed_identity_client_id: The client ID of a user-assigned managed identity. Defaults to the value
52
- of the environment variable AZURE_CLIENT_ID, if any. If not specified, a system-assigned identity will be used.
53
- """
54
-
55
- def __init__(self, **kwargs: Any) -> None:
56
- authority = kwargs.pop("authority", None)
57
- authority = normalize_authority(authority) if authority else get_default_authority()
58
- managed_identity_client_id = kwargs.pop(
59
- "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID)
60
- )
61
- super(AzureApplicationCredential, self).__init__(
62
- EnvironmentCredential(authority=authority, **kwargs),
63
- ManagedIdentityCredential(client_id=managed_identity_client_id, **kwargs),
64
- )
65
-
66
- def get_token(
67
- self, *scopes: str, claims: Optional[str] = None, tenant_id: Optional[str] = None, **kwargs: Any
68
- ) -> AccessToken:
69
- """Request an access token for `scopes`.
70
-
71
- This method is called automatically by Azure SDK clients.
72
-
73
- :param str scopes: desired scopes for the access token. This method requires at least one scope.
74
- For more information about scopes, see
75
- https://learn.microsoft.com/entra/identity-platform/scopes-oidc.
76
- :keyword str claims: additional claims required in the token, such as those returned in a resource provider's
77
- claims challenge following an authorization failure.
78
- :keyword str tenant_id: optional tenant to include in the token request.
79
-
80
- :return: An access token with the desired scopes.
81
- :rtype: ~azure.core.credentials.AccessToken
82
- :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The exception has a
83
- `message` attribute listing each authentication attempt and its error message.
84
- """
85
- if self._successful_credential:
86
- token = cast(TokenCredential, self._successful_credential).get_token(
87
- *scopes, claims=claims, tenant_id=tenant_id, **kwargs
88
- )
89
- _LOGGER.info(
90
- "%s acquired a token from %s", self.__class__.__name__, self._successful_credential.__class__.__name__
91
- )
92
- return token
93
-
94
- return super(AzureApplicationCredential, self).get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
95
-
96
- def get_token_info(self, *scopes: str, options: Optional[TokenRequestOptions] = None) -> AccessTokenInfo:
97
- """Request an access token for `scopes`.
98
-
99
- This is an alternative to `get_token` to enable certain scenarios that require additional properties
100
- on the token. This method is called automatically by Azure SDK clients.
101
-
102
- :param str scopes: desired scopes for the access token. This method requires at least one scope.
103
- For more information about scopes, see https://learn.microsoft.com/entra/identity-platform/scopes-oidc.
104
- :keyword options: A dictionary of options for the token request. Unknown options will be ignored. Optional.
105
- :paramtype options: ~azure.core.credentials.TokenRequestOptions
106
-
107
- :rtype: ~azure.core.credentials.AccessTokenInfo
108
- :return: An AccessTokenInfo instance containing information about the token.
109
- :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The exception has a
110
- `message` attribute listing each authentication attempt and its error message.
111
- """
112
- if self._successful_credential:
113
- token_info = cast(SupportsTokenInfo, self._successful_credential).get_token_info(*scopes, options=options)
114
- _LOGGER.info(
115
- "%s acquired a token from %s", self.__class__.__name__, self._successful_credential.__class__.__name__
116
- )
117
- return token_info
118
-
119
- return cast(SupportsTokenInfo, super()).get_token_info(*scopes, options=options)
@@ -1,121 +0,0 @@
1
- # ------------------------------------
2
- # Copyright (c) Microsoft Corporation.
3
- # Licensed under the MIT License.
4
- # ------------------------------------
5
- import logging
6
- import os
7
- from typing import Optional, Any, cast
8
-
9
- from azure.core.credentials import AccessToken, AccessTokenInfo, TokenRequestOptions
10
- from azure.core.credentials_async import AsyncSupportsTokenInfo, AsyncTokenCredential
11
- from .chained import ChainedTokenCredential
12
- from .environment import EnvironmentCredential
13
- from .managed_identity import ManagedIdentityCredential
14
- from ..._constants import EnvironmentVariables
15
- from ..._internal import get_default_authority, normalize_authority
16
-
17
- _LOGGER = logging.getLogger(__name__)
18
-
19
-
20
- class AzureApplicationCredential(ChainedTokenCredential):
21
- """A credential for Microsoft Entra applications.
22
-
23
- This credential is designed for applications deployed to Azure (:class:`~azure.identity.aio.DefaultAzureCredential`
24
- is better suited to local development). It authenticates service principals and managed identities.
25
-
26
- For service principal authentication, set these environment variables to identify a principal:
27
-
28
- - **AZURE_TENANT_ID**: ID of the service principal's tenant. Also called its "directory" ID.
29
- - **AZURE_CLIENT_ID**: the service principal's client ID
30
-
31
- And one of these to authenticate that principal:
32
-
33
- - **AZURE_CLIENT_SECRET**: one of the service principal's client secrets
34
-
35
- **or**
36
-
37
- - **AZURE_CLIENT_CERTIFICATE_PATH**: path to a PEM-encoded certificate file including the private key. The
38
- certificate must not be password-protected.
39
-
40
- See `Azure CLI documentation <https://learn.microsoft.com/cli/azure/create-an-azure-service-principal-azure-cli>`_
41
- for more information about creating and managing service principals.
42
-
43
- When this environment configuration is incomplete, the credential will attempt to authenticate a managed identity.
44
- See `Microsoft Entra ID documentation
45
- <https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview>`__ for an overview
46
- of managed identities.
47
-
48
- :keyword str authority: Authority of a Microsoft Entra endpoint, for example "login.microsoftonline.com",
49
- the authority for Azure Public Cloud, which is the default when no value is given for this keyword argument or
50
- environment variable AZURE_AUTHORITY_HOST. :class:`~azure.identity.AzureAuthorityHosts` defines authorities for
51
- other clouds. Authority configuration applies only to service principal authentication.
52
- :keyword str managed_identity_client_id: The client ID of a user-assigned managed identity. Defaults to the value
53
- of the environment variable AZURE_CLIENT_ID, if any. If not specified, a system-assigned identity will be used.
54
- """
55
-
56
- def __init__(
57
- self, *, authority: Optional[str] = None, managed_identity_client_id: Optional[str] = None, **kwargs: Any
58
- ) -> None:
59
- authority = normalize_authority(authority) if authority else get_default_authority()
60
- managed_identity_client_id = managed_identity_client_id or os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID)
61
- super().__init__(
62
- EnvironmentCredential(authority=authority, **kwargs),
63
- ManagedIdentityCredential(client_id=managed_identity_client_id, **kwargs),
64
- )
65
-
66
- async def get_token(
67
- self, *scopes: str, claims: Optional[str] = None, tenant_id: Optional[str] = None, **kwargs: Any
68
- ) -> AccessToken:
69
- """Asynchronously request an access token for `scopes`.
70
-
71
- This method is called automatically by Azure SDK clients.
72
-
73
- :param str scopes: desired scopes for the access token. This method requires at least one scope.
74
- For more information about scopes, see
75
- https://learn.microsoft.com/entra/identity-platform/scopes-oidc.
76
- :keyword str claims: additional claims required in the token, such as those returned in a resource provider's
77
- claims challenge following an authorization failure.
78
- :keyword str tenant_id: optional tenant to include in the token request.
79
-
80
- :return: An access token with the desired scopes.
81
- :rtype: ~azure.core.credentials.AccessToken
82
- :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The exception has a
83
- `message` attribute listing each authentication attempt and its error message.
84
- """
85
- if self._successful_credential:
86
- token = await cast(AsyncTokenCredential, self._successful_credential).get_token(
87
- *scopes, claims=claims, tenant_id=tenant_id, **kwargs
88
- )
89
- _LOGGER.info(
90
- "%s acquired a token from %s", self.__class__.__name__, self._successful_credential.__class__.__name__
91
- )
92
- return token
93
-
94
- return await super().get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
95
-
96
- async def get_token_info(self, *scopes: str, options: Optional[TokenRequestOptions] = None) -> AccessTokenInfo:
97
- """Request an access token for `scopes`.
98
-
99
- This is an alternative to `get_token` to enable certain scenarios that require additional properties
100
- on the token. This method is called automatically by Azure SDK clients.
101
-
102
- :param str scopes: desired scopes for the access token. This method requires at least one scope.
103
- For more information about scopes, see https://learn.microsoft.com/entra/identity-platform/scopes-oidc.
104
- :keyword options: A dictionary of options for the token request. Unknown options will be ignored. Optional.
105
- :paramtype options: ~azure.core.credentials.TokenRequestOptions
106
-
107
- :rtype: ~azure.core.credentials.AccessTokenInfo
108
- :return: An AccessTokenInfo instance containing information about the token.
109
- :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The exception has a
110
- `message` attribute listing each authentication attempt and its error message.
111
- """
112
- if self._successful_credential:
113
- token_info = await cast(AsyncSupportsTokenInfo, self._successful_credential).get_token_info(
114
- *scopes, options=options
115
- )
116
- _LOGGER.info(
117
- "%s acquired a token from %s", self.__class__.__name__, self._successful_credential.__class__.__name__
118
- )
119
- return token_info
120
-
121
- return await cast(AsyncSupportsTokenInfo, super()).get_token_info(*scopes, options=options)