py2docfx 0.1.16rc2051518__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 (620) hide show
  1. py2docfx/docfx_yaml/miss_reference.py +1 -1
  2. py2docfx/docfx_yaml/parameter_utils.py +58 -6
  3. py2docfx/docfx_yaml/tests/roots/test-translator-typing/code_with_typing.py +14 -0
  4. py2docfx/docfx_yaml/tests/roots/test-translator-typing/conf.py +18 -0
  5. py2docfx/docfx_yaml/tests/test_translator_typing.py +39 -0
  6. py2docfx/docfx_yaml/utils.py +2 -2
  7. py2docfx/venv/basevenv/Lib/site-packages/babel/py.typed +1 -0
  8. py2docfx/venv/basevenv/Lib/site-packages/certifi/__init__.py +1 -1
  9. py2docfx/venv/basevenv/Lib/site-packages/certifi/core.py +1 -32
  10. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
  11. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/constant.py +17 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/legacy.py +1 -3
  13. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/md.py +19 -14
  14. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/utils.py +6 -0
  15. py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/version.py +1 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_speedups.pyi +1 -0
  17. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/py.typed +0 -0
  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/py.typed +0 -0
  27. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +1 -2
  28. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +39 -0
  29. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  32. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  33. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  36. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  37. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  38. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  39. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  40. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  41. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/pip/py.typed +4 -0
  43. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +6 -7
  44. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/py.typed +0 -0
  45. py2docfx/venv/basevenv/Lib/site-packages/pygments/__init__.py +1 -1
  46. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/_sql_builtins.py +106 -0
  47. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/scripting.py +5 -3
  48. py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/sql.py +24 -118
  49. py2docfx/venv/basevenv/Lib/site-packages/requests/__version__.py +2 -2
  50. py2docfx/venv/basevenv/Lib/site-packages/requests/compat.py +12 -0
  51. py2docfx/venv/basevenv/Lib/site-packages/requests/models.py +3 -1
  52. py2docfx/venv/basevenv/Lib/site-packages/requests/utils.py +6 -16
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +0 -38
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_discovery.py +33 -0
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_entry_points.py +4 -0
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +0 -2
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +12 -3
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +1 -1
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_scripts.py +361 -0
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +6 -0
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  76. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  77. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  78. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -37
  79. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
  80. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
  81. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +29 -28
  82. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +39 -179
  83. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
  84. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
  85. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +0 -2
  86. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +3 -55
  87. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
  88. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +1 -1
  89. py2docfx/venv/basevenv/Lib/site-packages/setuptools/compat/py310.py +11 -0
  90. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +10 -12
  91. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +34 -29
  92. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/contexts.py +0 -14
  93. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
  94. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
  95. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
  96. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
  97. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  98. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
  99. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
  100. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
  101. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
  102. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
  103. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
  104. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +49 -24
  105. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/__init__.py +6 -0
  106. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/arabic_stemmer.py +798 -797
  107. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/armenian_stemmer.py +212 -213
  108. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basestemmer.py +20 -54
  109. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basque_stemmer.py +202 -228
  110. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/catalan_stemmer.py +370 -375
  111. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/danish_stemmer.py +63 -61
  112. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_porter_stemmer.py +466 -0
  113. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_stemmer.py +1217 -343
  114. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/english_stemmer.py +295 -264
  115. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/esperanto_stemmer.py +588 -0
  116. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/estonian_stemmer.py +850 -0
  117. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/finnish_stemmer.py +144 -143
  118. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/french_stemmer.py +308 -246
  119. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/german_stemmer.py +224 -167
  120. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/greek_stemmer.py +1314 -1313
  121. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hindi_stemmer.py +39 -38
  122. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +231 -256
  123. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +61 -64
  124. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/irish_stemmer.py +101 -106
  125. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/italian_stemmer.py +272 -272
  126. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +233 -240
  127. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/nepali_stemmer.py +108 -134
  128. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +108 -63
  129. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/porter_stemmer.py +101 -108
  130. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +241 -250
  131. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/romanian_stemmer.py +332 -296
  132. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/russian_stemmer.py +178 -179
  133. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/serbian_stemmer.py +2331 -2332
  134. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/spanish_stemmer.py +254 -259
  135. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/swedish_stemmer.py +143 -70
  136. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/tamil_stemmer.py +638 -1491
  137. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/turkish_stemmer.py +326 -292
  138. py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +245 -246
  139. py2docfx/venv/basevenv/Lib/site-packages/sphinx/py.typed +0 -0
  140. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/applehelp/py.typed +0 -0
  141. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/htmlhelp/py.typed +0 -0
  142. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/qthelp/py.typed +0 -0
  143. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/serializinghtml/py.typed +0 -0
  144. py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +9 -4
  145. py2docfx/venv/basevenv/Lib/site-packages/urllib3/connection.py +87 -38
  146. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
  147. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  148. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  149. py2docfx/venv/basevenv/Lib/site-packages/urllib3/exceptions.py +12 -4
  150. py2docfx/venv/basevenv/Lib/site-packages/urllib3/http2/connection.py +1 -1
  151. py2docfx/venv/basevenv/Lib/site-packages/urllib3/poolmanager.py +17 -1
  152. py2docfx/venv/basevenv/Lib/site-packages/urllib3/py.typed +2 -0
  153. py2docfx/venv/basevenv/Lib/site-packages/urllib3/response.py +53 -24
  154. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/request.py +12 -4
  155. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +22 -2
  156. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  157. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  158. py2docfx/venv/basevenv/Lib/site-packages/wheel/__main__.py +7 -5
  159. py2docfx/venv/{venv1/Lib/site-packages/wheel/cli → basevenv/Lib/site-packages/wheel/_commands}/__init__.py +3 -5
  160. py2docfx/venv/{venv1/Lib/site-packages/wheel/cli → basevenv/Lib/site-packages/wheel/_commands}/convert.py +14 -9
  161. py2docfx/venv/{venv1/Lib/site-packages/wheel/cli → basevenv/Lib/site-packages/wheel/_commands}/pack.py +1 -2
  162. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  163. py2docfx/venv/basevenv/Lib/site-packages/wheel/_metadata.py +184 -0
  164. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  165. py2docfx/venv/basevenv/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  166. py2docfx/venv/basevenv/Lib/site-packages/wheel/metadata.py +17 -183
  167. py2docfx/venv/basevenv/Lib/site-packages/wheel/wheelfile.py +30 -16
  168. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  169. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +5 -4
  170. py2docfx/venv/venv1/Lib/site-packages/azure/core/instrumentation.py +67 -0
  171. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +3 -1
  172. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +1 -1
  173. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +1 -1
  174. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +4 -4
  175. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +1 -2
  176. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +152 -29
  177. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +3 -2
  178. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +2 -2
  179. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +3 -10
  180. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +3 -8
  181. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +2 -0
  182. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +1 -2
  183. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +2 -1
  184. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +1 -1
  185. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +3 -3
  186. py2docfx/venv/venv1/Lib/site-packages/azure/core/py.typed +0 -0
  187. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +2 -2
  188. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +3 -0
  189. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +1 -1
  190. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +2 -2
  191. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +27 -21
  192. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +3 -7
  193. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +2 -35
  194. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_models.py +71 -0
  195. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +12 -4
  196. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +66 -13
  197. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +62 -23
  198. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/py.typed +0 -0
  199. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +256 -0
  200. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +1 -2
  201. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +1 -1
  202. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +1 -1
  203. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +2 -1
  204. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +2 -2
  205. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +1 -0
  206. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +23 -2
  207. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +12 -16
  208. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +22 -1
  209. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +10 -6
  210. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +13 -4
  211. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +3 -5
  212. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +2 -1
  213. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +3 -2
  214. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +1 -1
  215. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +1 -1
  216. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +1 -1
  217. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +1 -1
  218. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +1 -1
  219. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +22 -2
  220. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +2 -2
  221. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +17 -1
  222. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +4 -4
  223. py2docfx/venv/venv1/Lib/site-packages/azure/identity/py.typed +0 -0
  224. py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +1 -1
  225. py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +1 -32
  226. py2docfx/venv/venv1/Lib/site-packages/certifi/py.typed +0 -0
  227. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
  228. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +17 -0
  229. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +1 -3
  230. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +19 -14
  231. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/py.typed +0 -0
  232. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +6 -0
  233. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +1 -1
  234. py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +2 -2
  235. py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +2 -2
  236. py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +2 -1
  237. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +35 -2
  238. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +33 -10
  239. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +37 -0
  240. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi +8 -0
  241. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi +7 -0
  242. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi +17 -0
  243. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +117 -0
  244. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +75 -0
  245. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +107 -0
  246. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +38 -0
  247. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi +18 -0
  248. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi +51 -0
  249. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi +41 -0
  250. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi +52 -0
  251. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +13 -0
  252. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +13 -0
  253. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +28 -0
  254. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +22 -0
  255. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +49 -0
  256. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +34 -0
  257. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +15 -0
  258. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi +55 -0
  259. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +13 -0
  260. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +13 -0
  261. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +52 -0
  262. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +50 -0
  263. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +23 -0
  264. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +313 -0
  265. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +9 -1
  266. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +2 -1
  267. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +5 -0
  268. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +4 -2
  269. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +1 -2
  270. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +12 -0
  271. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +16 -3
  272. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +47 -3
  273. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +16 -3
  274. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +16 -3
  275. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +14 -0
  276. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +14 -1
  277. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +14 -1
  278. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +6 -6
  279. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +5 -4
  280. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +18 -18
  281. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +5 -1
  282. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +5 -4
  283. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +4 -4
  284. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +7 -4
  285. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +1 -1
  286. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +1 -1
  287. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +7 -121
  288. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +2 -0
  289. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +21 -1
  290. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +48 -6
  291. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +68 -18
  292. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +3 -2
  293. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +2 -1
  294. py2docfx/venv/venv1/Lib/site-packages/cryptography/py.typed +0 -0
  295. py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +15 -3
  296. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +3 -0
  297. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +39 -6
  298. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +100 -49
  299. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +27 -15
  300. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +60 -25
  301. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +2 -0
  302. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +6 -0
  303. py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.pyi +24 -0
  304. py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.pyi +120 -0
  305. py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.pyi +102 -0
  306. py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.pyi +50 -0
  307. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.pyi +405 -0
  308. py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.pyi +65 -0
  309. py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.pyi +62 -0
  310. py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.pyi +60 -0
  311. py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.pyi +43 -0
  312. py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.pyi +144 -0
  313. py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.pyi +86 -0
  314. py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.pyi +41 -0
  315. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.pyi +90 -0
  316. py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.pyi +45 -0
  317. py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.pyi +60 -0
  318. py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.pyi +94 -0
  319. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.pyi +41 -0
  320. py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.pyi +47 -0
  321. py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.pyi +40 -0
  322. py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.pyi +47 -0
  323. py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.pyi +57 -0
  324. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.pyi +186 -0
  325. py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.pyi +104 -0
  326. py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.pyi +57 -0
  327. py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.pyi +57 -0
  328. py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.pyi +116 -0
  329. py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.pyi +93 -0
  330. py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.pyi +49 -0
  331. py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.pyi +170 -0
  332. py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.pyi +34 -0
  333. py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.pyi +60 -0
  334. py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.pyi +55 -0
  335. py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.pyi +56 -0
  336. py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +17 -4
  337. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +6 -0
  338. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +1 -0
  339. py2docfx/venv/venv1/Lib/site-packages/google/api_core/py.typed +2 -0
  340. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +13 -4
  341. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +7 -6
  342. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +8 -5
  343. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +7 -6
  344. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +7 -6
  345. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  346. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +2 -36
  347. py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +240 -0
  348. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/_helpers.py +62 -0
  349. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +6 -0
  350. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +5 -1
  351. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +2 -1
  352. py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +91 -2
  353. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +75 -0
  354. py2docfx/venv/venv1/Lib/site-packages/google/auth/py.typed +2 -0
  355. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +1 -0
  356. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +8 -1
  357. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +3 -1
  358. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +4 -1
  359. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +15 -5
  360. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  361. py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.pyi +45 -0
  362. py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.pyi +96 -0
  363. py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.pyi +118 -0
  364. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.pyi +91 -0
  365. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.pyi +42 -0
  366. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.pyi +126 -0
  367. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +12 -0
  368. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/py.typed +2 -0
  369. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +1 -1
  370. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  371. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any.py +15 -1
  372. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +3 -3
  373. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +3 -3
  374. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +3 -3
  375. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +15 -2
  376. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +258 -113
  377. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +22 -8
  378. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +3 -3
  379. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +3 -3
  380. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +3 -3
  381. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +106 -23
  382. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +3 -1
  383. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  384. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +21 -18
  385. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +8 -2
  386. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +60 -43
  387. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +4 -5
  388. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +16 -0
  389. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +2 -2
  390. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +3 -3
  391. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +3 -3
  392. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +11 -7
  393. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +3 -3
  394. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +3 -3
  395. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +3 -3
  396. py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.pyi +58 -0
  397. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.pyi +309 -0
  398. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.pyi +51 -0
  399. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +29 -23
  400. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +246 -0
  401. py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.pyi +71 -0
  402. py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.pyi +41 -0
  403. py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.pyi +40 -0
  404. py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.pyi +42 -0
  405. py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.pyi +36 -0
  406. py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.pyi +77 -0
  407. py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.pyi +40 -0
  408. py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.pyi +27 -0
  409. py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.pyi +39 -0
  410. py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.pyi +31 -0
  411. py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.pyi +36 -0
  412. py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.pyi +31 -0
  413. py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.pyi +31 -0
  414. py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.pyi +36 -0
  415. py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.pyi +50 -0
  416. py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.pyi +48 -0
  417. py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.pyi +74 -0
  418. py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.pyi +39 -0
  419. py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.pyi +39 -0
  420. py2docfx/venv/venv1/Lib/site-packages/idna/py.typed +0 -0
  421. py2docfx/venv/venv1/Lib/site-packages/jwt/py.typed +0 -0
  422. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -0
  423. py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +9 -5
  424. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +4 -5
  425. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +1 -1
  426. py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +58 -30
  427. py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -1
  428. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -1
  429. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -1
  430. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -138
  431. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -93
  432. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -63
  433. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -206
  434. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -205
  435. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +355 -355
  436. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -79
  437. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -15
  438. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -314
  439. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -190
  440. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -62
  441. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -50
  442. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -176
  443. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -42
  444. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -87
  445. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -1
  446. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -50
  447. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -100
  448. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -480
  449. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -236
  450. py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +15 -0
  451. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_elffile.py +10 -9
  452. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_manylinux.py +13 -11
  453. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_musllinux.py +5 -3
  454. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_parser.py +12 -15
  455. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_tokenizer.py +15 -12
  456. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  457. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  458. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/markers.py +148 -39
  459. py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +862 -0
  460. py2docfx/venv/venv1/Lib/site-packages/packaging/py.typed +0 -0
  461. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/requirements.py +5 -4
  462. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/specifiers.py +41 -33
  463. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/tags.py +135 -50
  464. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/utils.py +39 -48
  465. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/version.py +53 -32
  466. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  467. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  468. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  469. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  470. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  471. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  472. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  473. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  474. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  475. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  476. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  477. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  478. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  479. py2docfx/venv/venv1/Lib/site-packages/pip/py.typed +4 -0
  480. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +6 -7
  481. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/py.typed +0 -0
  482. py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +2 -2
  483. py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +12 -0
  484. py2docfx/venv/venv1/Lib/site-packages/requests/models.py +3 -1
  485. py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +6 -16
  486. py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +2 -2
  487. py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -52
  488. py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -321
  489. py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -184
  490. py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -53
  491. py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -858
  492. py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -96
  493. py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -134
  494. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -485
  495. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -100
  496. py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -198
  497. py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -0
  498. py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -95
  499. py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -72
  500. py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -97
  501. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +0 -38
  502. py2docfx/venv/venv1/Lib/site-packages/setuptools/_discovery.py +33 -0
  503. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
  504. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  505. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
  506. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
  507. py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py +4 -0
  508. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +0 -2
  509. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +12 -3
  510. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +1 -1
  511. py2docfx/venv/venv1/Lib/site-packages/setuptools/_scripts.py +361 -0
  512. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +6 -0
  513. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  514. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  515. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  516. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  517. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  518. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  519. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  520. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  521. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  522. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  523. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  524. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  525. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  526. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -37
  527. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
  528. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
  529. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +29 -28
  530. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +39 -179
  531. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
  532. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
  533. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +0 -2
  534. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +3 -55
  535. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
  536. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +1 -1
  537. py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/py310.py +11 -0
  538. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +10 -12
  539. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +34 -29
  540. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/contexts.py +0 -14
  541. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
  542. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
  543. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
  544. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
  545. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  546. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
  547. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
  548. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
  549. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
  550. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
  551. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
  552. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +49 -24
  553. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +380 -708
  554. py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +9 -4
  555. py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +87 -38
  556. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
  557. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  558. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  559. py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +12 -4
  560. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +1 -1
  561. py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +17 -1
  562. py2docfx/venv/venv1/Lib/site-packages/urllib3/py.typed +2 -0
  563. py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +53 -24
  564. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +12 -4
  565. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +22 -2
  566. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  567. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  568. py2docfx/venv/venv1/Lib/site-packages/wheel/__main__.py +7 -5
  569. py2docfx/venv/{basevenv/Lib/site-packages/wheel/cli → venv1/Lib/site-packages/wheel/_commands}/__init__.py +3 -5
  570. py2docfx/venv/{basevenv/Lib/site-packages/wheel/cli → venv1/Lib/site-packages/wheel/_commands}/convert.py +14 -9
  571. py2docfx/venv/{basevenv/Lib/site-packages/wheel/cli → venv1/Lib/site-packages/wheel/_commands}/pack.py +1 -2
  572. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  573. py2docfx/venv/venv1/Lib/site-packages/wheel/_metadata.py +184 -0
  574. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  575. py2docfx/venv/venv1/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  576. py2docfx/venv/venv1/Lib/site-packages/wheel/metadata.py +17 -183
  577. py2docfx/venv/venv1/Lib/site-packages/wheel/wheelfile.py +30 -16
  578. {py2docfx-0.1.16rc2051518.dist-info → py2docfx-0.1.17.dist-info}/METADATA +2 -3
  579. {py2docfx-0.1.16rc2051518.dist-info → py2docfx-0.1.17.dist-info}/RECORD +588 -427
  580. {py2docfx-0.1.16rc2051518.dist-info → py2docfx-0.1.17.dist-info}/WHEEL +1 -1
  581. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +0 -1137
  582. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +0 -536
  583. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/server.py +0 -86
  584. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
  585. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
  586. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
  587. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  588. py2docfx/venv/basevenv/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  589. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -17
  590. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -260
  591. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -356
  592. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -192
  593. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -253
  594. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -90
  595. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -1011
  596. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -172
  597. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +0 -119
  598. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +0 -121
  599. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +0 -1137
  600. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +0 -536
  601. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py +0 -86
  602. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
  603. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
  604. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
  605. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  606. py2docfx/venv/venv1/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  607. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -17
  608. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -108
  609. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -83
  610. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -61
  611. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -571
  612. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/version.py +0 -561
  613. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/__init__.py → certifi/py.typed} +0 -0
  614. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/packaging/__init__.py → charset_normalizer/py.typed} +0 -0
  615. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/__init__.py → basevenv/Lib/site-packages/idna/py.typed} +0 -0
  616. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py → basevenv/Lib/site-packages/jinja2/py.typed} +0 -0
  617. /py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  618. /py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_structures.py +0 -0
  619. /py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  620. {py2docfx-0.1.16rc2051518.dist-info → py2docfx-0.1.17.dist-info}/top_level.txt +0 -0
@@ -1,236 +1,236 @@
1
- # Copyright 2019, OpenCensus Authors
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- import atexit
16
- import json
17
- import logging
18
-
19
- from opencensus.common.schedule import QueueExitEvent
20
- from opencensus.ext.azure.common import Options, utils
21
- from opencensus.ext.azure.common.exporter import BaseExporter
22
- from opencensus.ext.azure.common.processor import ProcessorMixin
23
- from opencensus.ext.azure.common.protocol import (
24
- Data,
25
- Envelope,
26
- ExceptionData,
27
- RemoteDependency,
28
- Request,
29
- )
30
- from opencensus.ext.azure.common.storage import LocalFileStorage
31
- from opencensus.ext.azure.common.transport import (
32
- TransportMixin,
33
- TransportStatusCode,
34
- )
35
- from opencensus.ext.azure.statsbeat import statsbeat
36
- from opencensus.trace import attributes_helper
37
- from opencensus.trace.span import SpanKind
38
-
39
- try:
40
- from urllib.parse import urlparse
41
- except ImportError:
42
- from urlparse import urlparse
43
-
44
- logger = logging.getLogger(__name__)
45
-
46
- __all__ = ['AzureExporter']
47
-
48
- HTTP_METHOD = attributes_helper.COMMON_ATTRIBUTES['HTTP_METHOD']
49
- HTTP_PATH = attributes_helper.COMMON_ATTRIBUTES['HTTP_PATH']
50
- HTTP_ROUTE = attributes_helper.COMMON_ATTRIBUTES['HTTP_ROUTE']
51
- HTTP_URL = attributes_helper.COMMON_ATTRIBUTES['HTTP_URL']
52
- HTTP_STATUS_CODE = attributes_helper.COMMON_ATTRIBUTES['HTTP_STATUS_CODE']
53
- ERROR_MESSAGE = attributes_helper.COMMON_ATTRIBUTES['ERROR_MESSAGE']
54
- ERROR_NAME = attributes_helper.COMMON_ATTRIBUTES['ERROR_NAME']
55
- STACKTRACE = attributes_helper.COMMON_ATTRIBUTES['STACKTRACE']
56
-
57
-
58
- class AzureExporter(BaseExporter, TransportMixin, ProcessorMixin):
59
- """An exporter that sends traces to Microsoft Azure Monitor.
60
-
61
- :param options: Options for the exporter.
62
- """
63
-
64
- def __init__(self, **options):
65
- super(AzureExporter, self).__init__(**options)
66
- self.options = Options(**options)
67
- utils.validate_instrumentation_key(self.options.instrumentation_key)
68
- self.storage = None
69
- if self.options.enable_local_storage:
70
- self.storage = LocalFileStorage(
71
- path=self.options.storage_path,
72
- max_size=self.options.storage_max_size,
73
- maintenance_period=self.options.storage_maintenance_period,
74
- retention_period=self.options.storage_retention_period,
75
- source=self.__class__.__name__,
76
- )
77
- self._telemetry_processors = []
78
- atexit.register(self._stop, self.options.grace_period)
79
- # start statsbeat on exporter instantiation
80
- if self._check_stats_collection():
81
- statsbeat.collect_statsbeat_metrics(self.options)
82
- # For redirects
83
- self._consecutive_redirects = 0 # To prevent circular redirects
84
-
85
- def span_data_to_envelope(self, sd):
86
- envelope = Envelope(
87
- iKey=self.options.instrumentation_key,
88
- tags=dict(utils.azure_monitor_context),
89
- time=sd.start_time,
90
- )
91
-
92
- envelope.tags['ai.operation.id'] = sd.context.trace_id
93
- if sd.parent_span_id:
94
- envelope.tags['ai.operation.parentId'] = '{}'.format(
95
- sd.parent_span_id,
96
- )
97
- if sd.span_kind == SpanKind.SERVER:
98
- if ERROR_MESSAGE in sd.attributes:
99
- message = sd.attributes.get(ERROR_MESSAGE)
100
- if not message:
101
- message = "Exception"
102
- stack_trace = sd.attributes.get(STACKTRACE, [])
103
- if not hasattr(stack_trace, '__iter__'):
104
- stack_trace = []
105
- type_name = sd.attributes.get(ERROR_NAME, 'Exception')
106
- exc_env = Envelope(**envelope)
107
- exc_env.name = 'Microsoft.ApplicationInsights.Exception'
108
- data = ExceptionData(
109
- exceptions=[{
110
- 'id': 1,
111
- 'outerId': 0,
112
- 'typeName': type_name,
113
- 'message': message,
114
- 'hasFullStack': STACKTRACE in sd.attributes,
115
- 'parsedStack': stack_trace
116
- }],
117
- )
118
- exc_env.data = Data(baseData=data, baseType='ExceptionData')
119
- yield exc_env
120
-
121
- envelope.name = 'Microsoft.ApplicationInsights.Request'
122
- data = Request(
123
- id='{}'.format(sd.span_id),
124
- duration=utils.timestamp_to_duration(
125
- sd.start_time,
126
- sd.end_time,
127
- ),
128
- responseCode=str(sd.status.code),
129
- success=False, # Modify based off attributes or status
130
- properties={},
131
- )
132
- envelope.data = Data(baseData=data, baseType='RequestData')
133
- data.name = ''
134
- if HTTP_METHOD in sd.attributes:
135
- data.name = sd.attributes[HTTP_METHOD]
136
- if HTTP_ROUTE in sd.attributes:
137
- data.name = data.name + ' ' + sd.attributes[HTTP_ROUTE]
138
- envelope.tags['ai.operation.name'] = data.name
139
- data.properties['request.name'] = data.name
140
- elif HTTP_PATH in sd.attributes:
141
- data.properties['request.name'] = data.name + \
142
- ' ' + sd.attributes[HTTP_PATH]
143
- if HTTP_URL in sd.attributes:
144
- data.url = sd.attributes[HTTP_URL]
145
- data.properties['request.url'] = sd.attributes[HTTP_URL]
146
- if HTTP_STATUS_CODE in sd.attributes:
147
- status_code = sd.attributes[HTTP_STATUS_CODE]
148
- data.responseCode = str(status_code)
149
- data.success = (
150
- status_code >= 200 and status_code <= 399
151
- )
152
- elif sd.status.code == 0:
153
- data.success = True
154
- else:
155
- envelope.name = \
156
- 'Microsoft.ApplicationInsights.RemoteDependency'
157
- data = RemoteDependency(
158
- name=sd.name, # TODO
159
- id='{}'.format(sd.span_id),
160
- resultCode=str(sd.status.code),
161
- duration=utils.timestamp_to_duration(
162
- sd.start_time,
163
- sd.end_time,
164
- ),
165
- success=False, # Modify based off attributes or status
166
- properties={},
167
- )
168
- envelope.data = Data(
169
- baseData=data,
170
- baseType='RemoteDependencyData',
171
- )
172
- if sd.span_kind == SpanKind.CLIENT:
173
- data.type = sd.attributes.get('component')
174
- if HTTP_URL in sd.attributes:
175
- url = sd.attributes[HTTP_URL]
176
- # TODO: error handling, probably put scheme as well
177
- data.data = url
178
- parse_url = urlparse(url)
179
- # target matches authority (host:port)
180
- data.target = parse_url.netloc
181
- if HTTP_METHOD in sd.attributes:
182
- # name is METHOD/path
183
- data.name = sd.attributes[HTTP_METHOD] \
184
- + ' ' + parse_url.path
185
- if HTTP_STATUS_CODE in sd.attributes:
186
- status_code = sd.attributes[HTTP_STATUS_CODE]
187
- data.resultCode = str(status_code)
188
- data.success = 200 <= status_code < 400
189
- elif sd.status.code == 0:
190
- data.success = True
191
- else:
192
- data.type = 'INPROC'
193
- data.success = True
194
- if sd.links:
195
- links = []
196
- for link in sd.links:
197
- links.append(
198
- {"operation_Id": link.trace_id, "id": link.span_id})
199
- data.properties["_MS.links"] = json.dumps(links)
200
- # TODO: tracestate, tags
201
- for key in sd.attributes:
202
- # This removes redundant data from ApplicationInsights
203
- if key.startswith('http.'):
204
- continue
205
- data.properties[key] = sd.attributes[key]
206
- yield envelope
207
-
208
- def emit(self, batch, event=None):
209
- try:
210
- if batch:
211
- envelopes = [envelope
212
- for sd in batch
213
- for envelope in self.span_data_to_envelope(sd)]
214
- envelopes = self.apply_telemetry_processors(envelopes)
215
- result = self._transmit(envelopes)
216
- # Only store files if local storage enabled
217
- if self.storage and result is TransportStatusCode.RETRY:
218
- self.storage.put(
219
- envelopes,
220
- self.options.minimum_retry_interval
221
- )
222
- if event:
223
- if self.storage and isinstance(event, QueueExitEvent):
224
- self._transmit_from_storage() # send files before exit
225
- event.set()
226
- return
227
- if self.storage and len(batch) < self.options.max_batch_size:
228
- self._transmit_from_storage()
229
- except Exception:
230
- logger.exception('Exception occurred while exporting the data.')
231
-
232
- def _stop(self, timeout=None):
233
- if self.storage:
234
- self.storage.close()
235
- if self._worker:
236
- self._worker.stop(timeout)
1
+ # Copyright 2019, OpenCensus Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import atexit
16
+ import json
17
+ import logging
18
+
19
+ from opencensus.common.schedule import QueueExitEvent
20
+ from opencensus.ext.azure.common import Options, utils
21
+ from opencensus.ext.azure.common.exporter import BaseExporter
22
+ from opencensus.ext.azure.common.processor import ProcessorMixin
23
+ from opencensus.ext.azure.common.protocol import (
24
+ Data,
25
+ Envelope,
26
+ ExceptionData,
27
+ RemoteDependency,
28
+ Request,
29
+ )
30
+ from opencensus.ext.azure.common.storage import LocalFileStorage
31
+ from opencensus.ext.azure.common.transport import (
32
+ TransportMixin,
33
+ TransportStatusCode,
34
+ )
35
+ from opencensus.ext.azure.statsbeat import statsbeat
36
+ from opencensus.trace import attributes_helper
37
+ from opencensus.trace.span import SpanKind
38
+
39
+ try:
40
+ from urllib.parse import urlparse
41
+ except ImportError:
42
+ from urlparse import urlparse
43
+
44
+ logger = logging.getLogger(__name__)
45
+
46
+ __all__ = ['AzureExporter']
47
+
48
+ HTTP_METHOD = attributes_helper.COMMON_ATTRIBUTES['HTTP_METHOD']
49
+ HTTP_PATH = attributes_helper.COMMON_ATTRIBUTES['HTTP_PATH']
50
+ HTTP_ROUTE = attributes_helper.COMMON_ATTRIBUTES['HTTP_ROUTE']
51
+ HTTP_URL = attributes_helper.COMMON_ATTRIBUTES['HTTP_URL']
52
+ HTTP_STATUS_CODE = attributes_helper.COMMON_ATTRIBUTES['HTTP_STATUS_CODE']
53
+ ERROR_MESSAGE = attributes_helper.COMMON_ATTRIBUTES['ERROR_MESSAGE']
54
+ ERROR_NAME = attributes_helper.COMMON_ATTRIBUTES['ERROR_NAME']
55
+ STACKTRACE = attributes_helper.COMMON_ATTRIBUTES['STACKTRACE']
56
+
57
+
58
+ class AzureExporter(BaseExporter, TransportMixin, ProcessorMixin):
59
+ """An exporter that sends traces to Microsoft Azure Monitor.
60
+
61
+ :param options: Options for the exporter.
62
+ """
63
+
64
+ def __init__(self, **options):
65
+ super(AzureExporter, self).__init__(**options)
66
+ self.options = Options(**options)
67
+ utils.validate_instrumentation_key(self.options.instrumentation_key)
68
+ self.storage = None
69
+ if self.options.enable_local_storage:
70
+ self.storage = LocalFileStorage(
71
+ path=self.options.storage_path,
72
+ max_size=self.options.storage_max_size,
73
+ maintenance_period=self.options.storage_maintenance_period,
74
+ retention_period=self.options.storage_retention_period,
75
+ source=self.__class__.__name__,
76
+ )
77
+ self._telemetry_processors = []
78
+ atexit.register(self._stop, self.options.grace_period)
79
+ # start statsbeat on exporter instantiation
80
+ if self._check_stats_collection():
81
+ statsbeat.collect_statsbeat_metrics(self.options)
82
+ # For redirects
83
+ self._consecutive_redirects = 0 # To prevent circular redirects
84
+
85
+ def span_data_to_envelope(self, sd):
86
+ envelope = Envelope(
87
+ iKey=self.options.instrumentation_key,
88
+ tags=dict(utils.azure_monitor_context),
89
+ time=sd.start_time,
90
+ )
91
+
92
+ envelope.tags['ai.operation.id'] = sd.context.trace_id
93
+ if sd.parent_span_id:
94
+ envelope.tags['ai.operation.parentId'] = '{}'.format(
95
+ sd.parent_span_id,
96
+ )
97
+ if sd.span_kind == SpanKind.SERVER:
98
+ if ERROR_MESSAGE in sd.attributes:
99
+ message = sd.attributes.get(ERROR_MESSAGE)
100
+ if not message:
101
+ message = "Exception"
102
+ stack_trace = sd.attributes.get(STACKTRACE, [])
103
+ if not hasattr(stack_trace, '__iter__'):
104
+ stack_trace = []
105
+ type_name = sd.attributes.get(ERROR_NAME, 'Exception')
106
+ exc_env = Envelope(**envelope)
107
+ exc_env.name = 'Microsoft.ApplicationInsights.Exception'
108
+ data = ExceptionData(
109
+ exceptions=[{
110
+ 'id': 1,
111
+ 'outerId': 0,
112
+ 'typeName': type_name,
113
+ 'message': message,
114
+ 'hasFullStack': STACKTRACE in sd.attributes,
115
+ 'parsedStack': stack_trace
116
+ }],
117
+ )
118
+ exc_env.data = Data(baseData=data, baseType='ExceptionData')
119
+ yield exc_env
120
+
121
+ envelope.name = 'Microsoft.ApplicationInsights.Request'
122
+ data = Request(
123
+ id='{}'.format(sd.span_id),
124
+ duration=utils.timestamp_to_duration(
125
+ sd.start_time,
126
+ sd.end_time,
127
+ ),
128
+ responseCode=str(sd.status.code),
129
+ success=False, # Modify based off attributes or status
130
+ properties={},
131
+ )
132
+ envelope.data = Data(baseData=data, baseType='RequestData')
133
+ data.name = ''
134
+ if HTTP_METHOD in sd.attributes:
135
+ data.name = sd.attributes[HTTP_METHOD]
136
+ if HTTP_ROUTE in sd.attributes:
137
+ data.name = data.name + ' ' + sd.attributes[HTTP_ROUTE]
138
+ envelope.tags['ai.operation.name'] = data.name
139
+ data.properties['request.name'] = data.name
140
+ elif HTTP_PATH in sd.attributes:
141
+ data.properties['request.name'] = data.name + \
142
+ ' ' + sd.attributes[HTTP_PATH]
143
+ if HTTP_URL in sd.attributes:
144
+ data.url = sd.attributes[HTTP_URL]
145
+ data.properties['request.url'] = sd.attributes[HTTP_URL]
146
+ if HTTP_STATUS_CODE in sd.attributes:
147
+ status_code = sd.attributes[HTTP_STATUS_CODE]
148
+ data.responseCode = str(status_code)
149
+ data.success = (
150
+ status_code >= 200 and status_code <= 399
151
+ )
152
+ elif sd.status.code == 0:
153
+ data.success = True
154
+ else:
155
+ envelope.name = \
156
+ 'Microsoft.ApplicationInsights.RemoteDependency'
157
+ data = RemoteDependency(
158
+ name=sd.name, # TODO
159
+ id='{}'.format(sd.span_id),
160
+ resultCode=str(sd.status.code),
161
+ duration=utils.timestamp_to_duration(
162
+ sd.start_time,
163
+ sd.end_time,
164
+ ),
165
+ success=False, # Modify based off attributes or status
166
+ properties={},
167
+ )
168
+ envelope.data = Data(
169
+ baseData=data,
170
+ baseType='RemoteDependencyData',
171
+ )
172
+ if sd.span_kind == SpanKind.CLIENT:
173
+ data.type = sd.attributes.get('component')
174
+ if HTTP_URL in sd.attributes:
175
+ url = sd.attributes[HTTP_URL]
176
+ # TODO: error handling, probably put scheme as well
177
+ data.data = url
178
+ parse_url = urlparse(url)
179
+ # target matches authority (host:port)
180
+ data.target = parse_url.netloc
181
+ if HTTP_METHOD in sd.attributes:
182
+ # name is METHOD/path
183
+ data.name = sd.attributes[HTTP_METHOD] \
184
+ + ' ' + parse_url.path
185
+ if HTTP_STATUS_CODE in sd.attributes:
186
+ status_code = sd.attributes[HTTP_STATUS_CODE]
187
+ data.resultCode = str(status_code)
188
+ data.success = 200 <= status_code < 400
189
+ elif sd.status.code == 0:
190
+ data.success = True
191
+ else:
192
+ data.type = 'INPROC'
193
+ data.success = True
194
+ if sd.links:
195
+ links = []
196
+ for link in sd.links:
197
+ links.append(
198
+ {"operation_Id": link.trace_id, "id": link.span_id})
199
+ data.properties["_MS.links"] = json.dumps(links)
200
+ # TODO: tracestate, tags
201
+ for key in sd.attributes:
202
+ # This removes redundant data from ApplicationInsights
203
+ if key.startswith('http.'):
204
+ continue
205
+ data.properties[key] = sd.attributes[key]
206
+ yield envelope
207
+
208
+ def emit(self, batch, event=None):
209
+ try:
210
+ if batch:
211
+ envelopes = [envelope
212
+ for sd in batch
213
+ for envelope in self.span_data_to_envelope(sd)]
214
+ envelopes = self.apply_telemetry_processors(envelopes)
215
+ result = self._transmit(envelopes)
216
+ # Only store files if local storage enabled
217
+ if self.storage and result is TransportStatusCode.RETRY:
218
+ self.storage.put(
219
+ envelopes,
220
+ self.options.minimum_retry_interval
221
+ )
222
+ if event:
223
+ if self.storage and isinstance(event, QueueExitEvent):
224
+ self._transmit_from_storage() # send files before exit
225
+ event.set()
226
+ return
227
+ if self.storage and len(batch) < self.options.max_batch_size:
228
+ self._transmit_from_storage()
229
+ except Exception:
230
+ logger.exception('Exception occurred while exporting the data.')
231
+
232
+ def _stop(self, timeout=None):
233
+ if self.storage:
234
+ self.storage.close()
235
+ if self._worker:
236
+ self._worker.stop(timeout)
@@ -0,0 +1,15 @@
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ __title__ = "packaging"
6
+ __summary__ = "Core utilities for Python packages"
7
+ __uri__ = "https://github.com/pypa/packaging"
8
+
9
+ __version__ = "25.0"
10
+
11
+ __author__ = "Donald Stufft and individual contributors"
12
+ __email__ = "donald@stufft.io"
13
+
14
+ __license__ = "BSD-2-Clause or Apache-2.0"
15
+ __copyright__ = f"2014 {__author__}"
@@ -8,10 +8,12 @@ Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
8
8
  ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
9
9
  """
10
10
 
11
+ from __future__ import annotations
12
+
11
13
  import enum
12
14
  import os
13
15
  import struct
14
- from typing import IO, Optional, Tuple
16
+ from typing import IO
15
17
 
16
18
 
17
19
  class ELFInvalid(ValueError):
@@ -46,8 +48,8 @@ class ELFFile:
46
48
 
47
49
  try:
48
50
  ident = self._read("16B")
49
- except struct.error:
50
- raise ELFInvalid("unable to parse identification")
51
+ except struct.error as e:
52
+ raise ELFInvalid("unable to parse identification") from e
51
53
  magic = bytes(ident[:4])
52
54
  if magic != b"\x7fELF":
53
55
  raise ELFInvalid(f"invalid magic: {magic!r}")
@@ -65,11 +67,10 @@ class ELFFile:
65
67
  (2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
66
68
  (2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
67
69
  }[(self.capacity, self.encoding)]
68
- except KeyError:
70
+ except KeyError as e:
69
71
  raise ELFInvalid(
70
- f"unrecognized capacity ({self.capacity}) or "
71
- f"encoding ({self.encoding})"
72
- )
72
+ f"unrecognized capacity ({self.capacity}) or encoding ({self.encoding})"
73
+ ) from e
73
74
 
74
75
  try:
75
76
  (
@@ -87,11 +88,11 @@ class ELFFile:
87
88
  except struct.error as e:
88
89
  raise ELFInvalid("unable to parse machine and section information") from e
89
90
 
90
- def _read(self, fmt: str) -> Tuple[int, ...]:
91
+ def _read(self, fmt: str) -> tuple[int, ...]:
91
92
  return struct.unpack(fmt, self._f.read(struct.calcsize(fmt)))
92
93
 
93
94
  @property
94
- def interpreter(self) -> Optional[str]:
95
+ def interpreter(self) -> str | None:
95
96
  """
96
97
  The path recorded in the ``PT_INTERP`` section header.
97
98
  """
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import collections
2
4
  import contextlib
3
5
  import functools
@@ -5,7 +7,7 @@ import os
5
7
  import re
6
8
  import sys
7
9
  import warnings
8
- from typing import Dict, Generator, Iterator, NamedTuple, Optional, Sequence, Tuple
10
+ from typing import Generator, Iterator, NamedTuple, Sequence
9
11
 
10
12
  from ._elffile import EIClass, EIData, ELFFile, EMachine
11
13
 
@@ -17,7 +19,7 @@ EF_ARM_ABI_FLOAT_HARD = 0x00000400
17
19
  # `os.PathLike` not a generic type until Python 3.9, so sticking with `str`
18
20
  # as the type for `path` until then.
19
21
  @contextlib.contextmanager
20
- def _parse_elf(path: str) -> Generator[Optional[ELFFile], None, None]:
22
+ def _parse_elf(path: str) -> Generator[ELFFile | None, None, None]:
21
23
  try:
22
24
  with open(path, "rb") as f:
23
25
  yield ELFFile(f)
@@ -72,7 +74,7 @@ def _have_compatible_abi(executable: str, archs: Sequence[str]) -> bool:
72
74
  # For now, guess what the highest minor version might be, assume it will
73
75
  # be 50 for testing. Once this actually happens, update the dictionary
74
76
  # with the actual value.
75
- _LAST_GLIBC_MINOR: Dict[int, int] = collections.defaultdict(lambda: 50)
77
+ _LAST_GLIBC_MINOR: dict[int, int] = collections.defaultdict(lambda: 50)
76
78
 
77
79
 
78
80
  class _GLibCVersion(NamedTuple):
@@ -80,7 +82,7 @@ class _GLibCVersion(NamedTuple):
80
82
  minor: int
81
83
 
82
84
 
83
- def _glibc_version_string_confstr() -> Optional[str]:
85
+ def _glibc_version_string_confstr() -> str | None:
84
86
  """
85
87
  Primary implementation of glibc_version_string using os.confstr.
86
88
  """
@@ -90,7 +92,7 @@ def _glibc_version_string_confstr() -> Optional[str]:
90
92
  # https://github.com/python/cpython/blob/fcf1d003bf4f0100c/Lib/platform.py#L175-L183
91
93
  try:
92
94
  # Should be a string like "glibc 2.17".
93
- version_string: Optional[str] = os.confstr("CS_GNU_LIBC_VERSION")
95
+ version_string: str | None = os.confstr("CS_GNU_LIBC_VERSION")
94
96
  assert version_string is not None
95
97
  _, version = version_string.rsplit()
96
98
  except (AssertionError, AttributeError, OSError, ValueError):
@@ -99,7 +101,7 @@ def _glibc_version_string_confstr() -> Optional[str]:
99
101
  return version
100
102
 
101
103
 
102
- def _glibc_version_string_ctypes() -> Optional[str]:
104
+ def _glibc_version_string_ctypes() -> str | None:
103
105
  """
104
106
  Fallback implementation of glibc_version_string using ctypes.
105
107
  """
@@ -143,12 +145,12 @@ def _glibc_version_string_ctypes() -> Optional[str]:
143
145
  return version_str
144
146
 
145
147
 
146
- def _glibc_version_string() -> Optional[str]:
148
+ def _glibc_version_string() -> str | None:
147
149
  """Returns glibc version string, or None if not using glibc."""
148
150
  return _glibc_version_string_confstr() or _glibc_version_string_ctypes()
149
151
 
150
152
 
151
- def _parse_glibc_version(version_str: str) -> Tuple[int, int]:
153
+ def _parse_glibc_version(version_str: str) -> tuple[int, int]:
152
154
  """Parse glibc version.
153
155
 
154
156
  We use a regexp instead of str.split because we want to discard any
@@ -159,16 +161,16 @@ def _parse_glibc_version(version_str: str) -> Tuple[int, int]:
159
161
  m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
160
162
  if not m:
161
163
  warnings.warn(
162
- f"Expected glibc version with 2 components major.minor,"
163
- f" got: {version_str}",
164
+ f"Expected glibc version with 2 components major.minor, got: {version_str}",
164
165
  RuntimeWarning,
166
+ stacklevel=2,
165
167
  )
166
168
  return -1, -1
167
169
  return int(m.group("major")), int(m.group("minor"))
168
170
 
169
171
 
170
172
  @functools.lru_cache
171
- def _get_glibc_version() -> Tuple[int, int]:
173
+ def _get_glibc_version() -> tuple[int, int]:
172
174
  version_str = _glibc_version_string()
173
175
  if version_str is None:
174
176
  return (-1, -1)