py2docfx 0.1.16.dev2051338__py3-none-any.whl → 0.1.16.dev2064350__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 (281) hide show
  1. py2docfx/convert_prepare/environment.py +3 -1
  2. py2docfx/convert_prepare/get_source.py +6 -1
  3. py2docfx/convert_prepare/package_info.py +1 -1
  4. py2docfx/venv/basevenv/Lib/site-packages/babel/py.typed +1 -0
  5. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/_speedups.pyi +1 -0
  6. py2docfx/venv/basevenv/Lib/site-packages/markupsafe/py.typed +0 -0
  7. py2docfx/venv/basevenv/Lib/site-packages/packaging/py.typed +0 -0
  8. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  9. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  10. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  11. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  13. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  15. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  16. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  17. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  18. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  20. py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/pip/py.typed +4 -0
  22. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/py.typed +0 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  36. py2docfx/venv/basevenv/Lib/site-packages/sphinx/py.typed +0 -0
  37. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/applehelp/py.typed +0 -0
  38. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/htmlhelp/py.typed +0 -0
  39. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/qthelp/py.typed +0 -0
  40. py2docfx/venv/basevenv/Lib/site-packages/sphinxcontrib/serializinghtml/py.typed +0 -0
  41. py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +9 -4
  42. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  43. py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/urllib3/exceptions.py +12 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/urllib3/http2/connection.py +1 -1
  46. py2docfx/venv/basevenv/Lib/site-packages/urllib3/py.typed +2 -0
  47. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +21 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  49. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  50. py2docfx/venv/basevenv/Lib/site-packages/wheel/__main__.py +7 -5
  51. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
  52. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
  53. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
  54. py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  55. py2docfx/venv/basevenv/Lib/site-packages/wheel/_metadata.py +184 -0
  56. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  57. py2docfx/venv/basevenv/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  58. py2docfx/venv/basevenv/Lib/site-packages/wheel/metadata.py +17 -183
  59. py2docfx/venv/basevenv/Lib/site-packages/wheel/wheelfile.py +30 -16
  60. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  61. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +5 -4
  62. py2docfx/venv/venv1/Lib/site-packages/azure/core/instrumentation.py +67 -0
  63. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +3 -1
  64. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +1 -1
  65. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +4 -4
  66. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +1 -2
  67. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +152 -29
  68. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +3 -2
  69. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +2 -2
  70. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +3 -10
  71. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +3 -8
  72. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +2 -0
  73. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +0 -1
  74. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +3 -3
  75. py2docfx/venv/venv1/Lib/site-packages/azure/core/py.typed +0 -0
  76. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +3 -0
  77. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +2 -2
  78. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +27 -21
  79. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +3 -7
  80. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +2 -35
  81. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_models.py +71 -0
  82. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +12 -4
  83. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +66 -13
  84. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +62 -23
  85. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/py.typed +0 -0
  86. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +244 -0
  87. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +1 -2
  88. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +1 -1
  89. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +1 -1
  90. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
  91. py2docfx/venv/venv1/Lib/site-packages/azure/identity/py.typed +0 -0
  92. py2docfx/venv/venv1/Lib/site-packages/certifi/py.typed +0 -0
  93. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/py.typed +0 -0
  94. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +28 -0
  95. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi +8 -0
  96. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi +7 -0
  97. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi +17 -0
  98. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +117 -0
  99. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +72 -0
  100. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +103 -0
  101. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +38 -0
  102. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi +18 -0
  103. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi +51 -0
  104. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi +41 -0
  105. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi +52 -0
  106. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +12 -0
  107. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +12 -0
  108. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +19 -0
  109. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +21 -0
  110. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +43 -0
  111. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +33 -0
  112. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +13 -0
  113. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi +55 -0
  114. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +12 -0
  115. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +12 -0
  116. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +46 -0
  117. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +49 -0
  118. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +22 -0
  119. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +246 -0
  120. py2docfx/venv/venv1/Lib/site-packages/cryptography/py.typed +0 -0
  121. py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.pyi +24 -0
  122. py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.pyi +120 -0
  123. py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.pyi +102 -0
  124. py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.pyi +50 -0
  125. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.pyi +405 -0
  126. py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.pyi +65 -0
  127. py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.pyi +62 -0
  128. py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.pyi +60 -0
  129. py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.pyi +43 -0
  130. py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.pyi +144 -0
  131. py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.pyi +86 -0
  132. py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.pyi +41 -0
  133. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.pyi +90 -0
  134. py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.pyi +45 -0
  135. py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.pyi +60 -0
  136. py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.pyi +94 -0
  137. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.pyi +41 -0
  138. py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.pyi +47 -0
  139. py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.pyi +40 -0
  140. py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.pyi +47 -0
  141. py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.pyi +57 -0
  142. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.pyi +186 -0
  143. py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.pyi +104 -0
  144. py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.pyi +57 -0
  145. py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.pyi +57 -0
  146. py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.pyi +116 -0
  147. py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.pyi +93 -0
  148. py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.pyi +49 -0
  149. py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.pyi +170 -0
  150. py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.pyi +34 -0
  151. py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.pyi +60 -0
  152. py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.pyi +55 -0
  153. py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.pyi +56 -0
  154. py2docfx/venv/venv1/Lib/site-packages/google/api_core/py.typed +2 -0
  155. py2docfx/venv/venv1/Lib/site-packages/google/auth/py.typed +2 -0
  156. py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.pyi +45 -0
  157. py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.pyi +96 -0
  158. py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.pyi +118 -0
  159. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.pyi +91 -0
  160. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.pyi +42 -0
  161. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.pyi +126 -0
  162. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/py.typed +2 -0
  163. py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.pyi +58 -0
  164. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.pyi +309 -0
  165. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.pyi +51 -0
  166. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +207 -0
  167. py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.pyi +71 -0
  168. py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.pyi +41 -0
  169. py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.pyi +40 -0
  170. py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.pyi +42 -0
  171. py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.pyi +36 -0
  172. py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.pyi +77 -0
  173. py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.pyi +40 -0
  174. py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.pyi +27 -0
  175. py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.pyi +39 -0
  176. py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.pyi +31 -0
  177. py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.pyi +36 -0
  178. py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.pyi +31 -0
  179. py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.pyi +31 -0
  180. py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.pyi +36 -0
  181. py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.pyi +50 -0
  182. py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.pyi +48 -0
  183. py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.pyi +74 -0
  184. py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.pyi +39 -0
  185. py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.pyi +39 -0
  186. py2docfx/venv/venv1/Lib/site-packages/idna/py.typed +0 -0
  187. py2docfx/venv/venv1/Lib/site-packages/jwt/py.typed +0 -0
  188. py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +15 -0
  189. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_elffile.py +9 -7
  190. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_manylinux.py +12 -9
  191. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_musllinux.py +5 -3
  192. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/_parser.py +11 -13
  193. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_tokenizer.py +10 -8
  194. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  195. py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  196. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/markers.py +103 -25
  197. py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +863 -0
  198. py2docfx/venv/venv1/Lib/site-packages/packaging/py.typed +0 -0
  199. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/requirements.py +5 -4
  200. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/specifiers.py +40 -31
  201. py2docfx/venv/venv1/Lib/site-packages/{wheel/vendored/packaging → packaging}/tags.py +96 -50
  202. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/utils.py +39 -48
  203. py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/version.py +53 -32
  204. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  205. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  206. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/chardet/py.typed +0 -0
  207. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  208. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  209. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  210. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/pyparsing/py.typed +0 -0
  212. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  213. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  214. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tenacity/py.typed +0 -0
  215. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  216. py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pip/py.typed +4 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/py.typed +0 -0
  219. py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -0
  220. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  221. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  222. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  223. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  233. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +30 -12
  234. py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +9 -4
  235. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +8 -16
  236. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +10 -0
  237. py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +12 -4
  238. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +1 -1
  239. py2docfx/venv/venv1/Lib/site-packages/urllib3/py.typed +2 -0
  240. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +21 -1
  241. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +1 -1
  242. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  243. py2docfx/venv/venv1/Lib/site-packages/wheel/__main__.py +7 -5
  244. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/__init__.py +3 -5
  245. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/convert.py +14 -9
  246. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/pack.py +1 -2
  247. py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/tags.py +4 -3
  248. py2docfx/venv/venv1/Lib/site-packages/wheel/_metadata.py +184 -0
  249. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +12 -23
  250. py2docfx/venv/venv1/Lib/site-packages/wheel/macosx_libfile.py +4 -0
  251. py2docfx/venv/venv1/Lib/site-packages/wheel/metadata.py +17 -183
  252. py2docfx/venv/venv1/Lib/site-packages/wheel/wheelfile.py +30 -16
  253. {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/METADATA +2 -3
  254. {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/RECORD +263 -104
  255. {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/WHEEL +1 -1
  256. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  257. py2docfx/venv/basevenv/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  258. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -17
  259. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -108
  260. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -356
  261. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -253
  262. py2docfx/venv/basevenv/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -571
  263. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +0 -613
  264. py2docfx/venv/venv1/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  265. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -17
  266. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -260
  267. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -83
  268. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -61
  269. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -192
  270. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -90
  271. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -1011
  272. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -172
  273. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/version.py +0 -561
  274. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/__init__.py → certifi/py.typed} +0 -0
  275. /py2docfx/venv/basevenv/Lib/site-packages/{wheel/vendored/packaging/__init__.py → charset_normalizer/py.typed} +0 -0
  276. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/__init__.py → basevenv/Lib/site-packages/idna/py.typed} +0 -0
  277. /py2docfx/venv/{venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py → basevenv/Lib/site-packages/jinja2/py.typed} +0 -0
  278. /py2docfx/venv/basevenv/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  279. /py2docfx/venv/{basevenv/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages}/packaging/_structures.py +0 -0
  280. /py2docfx/venv/venv1/Lib/site-packages/wheel/{cli → _commands}/unpack.py +0 -0
  281. {py2docfx-0.1.16.dev2051338.dist-info → py2docfx-0.1.16.dev2064350.dist-info}/top_level.txt +0 -0
@@ -116,7 +116,7 @@ class BearerTokenCredentialPolicy(_BearerTokenCredentialPolicyBase, HTTPPolicy[H
116
116
  :param str scopes: Lets you specify the type of access needed.
117
117
  :keyword bool enable_cae: Indicates whether to enable Continuous Access Evaluation (CAE) on all requested
118
118
  tokens. Defaults to False.
119
- :raises: :class:`~azure.core.exceptions.ServiceRequestError`
119
+ :raises ~azure.core.exceptions.ServiceRequestError: If the request fails.
120
120
  """
121
121
 
122
122
  def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
@@ -194,7 +194,6 @@ class BearerTokenCredentialPolicy(_BearerTokenCredentialPolicyBase, HTTPPolicy[H
194
194
  :returns: a bool indicating whether the policy should send the request
195
195
  :rtype: bool
196
196
  """
197
- # pylint:disable=unused-argument
198
197
  headers = response.http_response.headers
199
198
  error = get_challenge_parameter(headers, "Bearer", "error")
200
199
  if error == "insufficient_claims":
@@ -245,7 +244,8 @@ class AzureKeyCredentialPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTyp
245
244
  :type credential: ~azure.core.credentials.AzureKeyCredential
246
245
  :param str name: The name of the key header used for the credential.
247
246
  :keyword str prefix: The name of the prefix for the header value if any.
248
- :raises: ValueError or TypeError
247
+ :raises ValueError: if name is None or empty.
248
+ :raises TypeError: if name is not a string or if credential is not an instance of AzureKeyCredential.
249
249
  """
250
250
 
251
251
  def __init__( # pylint: disable=unused-argument
@@ -276,7 +276,7 @@ class AzureSasCredentialPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTyp
276
276
 
277
277
  :param credential: The credential used to authenticate requests.
278
278
  :type credential: ~azure.core.credentials.AzureSasCredential
279
- :raises: ValueError or TypeError
279
+ :raises ValueError: if credential is None.
280
280
  """
281
281
 
282
282
  def __init__(
@@ -61,7 +61,7 @@ class AsyncBearerTokenCredentialPolicy(AsyncHTTPPolicy[HTTPRequestType, AsyncHTT
61
61
 
62
62
  :param request: The pipeline request object to be modified.
63
63
  :type request: ~azure.core.pipeline.PipelineRequest
64
- :raises: :class:`~azure.core.exceptions.ServiceRequestError`
64
+ :raises ~azure.core.exceptions.ServiceRequestError: If the request fails.
65
65
  """
66
66
  _BearerTokenCredentialPolicyBase._enforce_https(request) # pylint:disable=protected-access
67
67
 
@@ -139,7 +139,6 @@ class AsyncBearerTokenCredentialPolicy(AsyncHTTPPolicy[HTTPRequestType, AsyncHTT
139
139
  :returns: a bool indicating whether the policy should send the request
140
140
  :rtype: bool
141
141
  """
142
- # pylint:disable=unused-argument
143
142
  headers = response.http_response.headers
144
143
  error = get_challenge_parameter(headers, "Bearer", "error")
145
144
  if error == "insufficient_claims":
@@ -27,7 +27,7 @@
27
27
  import logging
28
28
  import sys
29
29
  import urllib.parse
30
- from typing import TYPE_CHECKING, Optional, Tuple, TypeVar, Union, Any, Type
30
+ from typing import TYPE_CHECKING, Optional, Tuple, TypeVar, Union, Any, Type, Mapping, Dict
31
31
  from types import TracebackType
32
32
 
33
33
  from azure.core.pipeline import PipelineRequest, PipelineResponse
@@ -39,11 +39,12 @@ from azure.core.pipeline.transport import (
39
39
  from azure.core.rest import HttpResponse, HttpRequest
40
40
  from azure.core.settings import settings
41
41
  from azure.core.tracing import SpanKind
42
+ from azure.core.tracing.common import change_context
43
+ from azure.core.instrumentation import get_tracer
44
+ from azure.core.tracing._models import TracingOptions
42
45
 
43
46
  if TYPE_CHECKING:
44
- from azure.core.tracing._abstract_span import (
45
- AbstractSpan,
46
- )
47
+ from opentelemetry.trace import Span
47
48
 
48
49
  HTTPResponseType = TypeVar("HTTPResponseType", HttpResponse, LegacyHttpResponse)
49
50
  HTTPRequestType = TypeVar("HTTPRequestType", HttpRequest, LegacyHttpRequest)
@@ -61,10 +62,7 @@ def _default_network_span_namer(http_request: HTTPRequestType) -> str:
61
62
  :returns: The string to use as network span name
62
63
  :rtype: str
63
64
  """
64
- path = urllib.parse.urlparse(http_request.url).path
65
- if not path:
66
- path = "/"
67
- return path
65
+ return http_request.method
68
66
 
69
67
 
70
68
  class DistributedTracingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
@@ -74,37 +72,95 @@ class DistributedTracingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTyp
74
72
  :type network_span_namer: callable[[~azure.core.pipeline.transport.HttpRequest], str]
75
73
  :keyword tracing_attributes: Attributes to set on all created spans
76
74
  :type tracing_attributes: dict[str, str]
75
+ :keyword instrumentation_config: Configuration for the instrumentation providers
76
+ :type instrumentation_config: dict[str, Any]
77
77
  """
78
78
 
79
79
  TRACING_CONTEXT = "TRACING_CONTEXT"
80
+ _SUPPRESSION_TOKEN = "SUPPRESSION_TOKEN"
81
+
82
+ # Current stable HTTP semantic conventions
83
+ _HTTP_RESEND_COUNT = "http.request.resend_count"
84
+ _USER_AGENT_ORIGINAL = "user_agent.original"
85
+ _HTTP_REQUEST_METHOD = "http.request.method"
86
+ _URL_FULL = "url.full"
87
+ _HTTP_RESPONSE_STATUS_CODE = "http.response.status_code"
88
+ _SERVER_ADDRESS = "server.address"
89
+ _SERVER_PORT = "server.port"
90
+ _ERROR_TYPE = "error.type"
91
+
92
+ # Azure attributes
80
93
  _REQUEST_ID = "x-ms-client-request-id"
94
+ _REQUEST_ID_ATTR = "az.client_request_id"
81
95
  _RESPONSE_ID = "x-ms-request-id"
82
- _HTTP_RESEND_COUNT = "http.request.resend_count"
96
+ _RESPONSE_ID_ATTR = "az.service_request_id"
83
97
 
84
- def __init__(self, **kwargs: Any):
98
+ def __init__(self, *, instrumentation_config: Optional[Mapping[str, Any]] = None, **kwargs: Any):
85
99
  self._network_span_namer = kwargs.get("network_span_namer", _default_network_span_namer)
86
100
  self._tracing_attributes = kwargs.get("tracing_attributes", {})
101
+ self._instrumentation_config = instrumentation_config
87
102
 
88
103
  def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
89
104
  ctxt = request.context.options
90
105
  try:
91
- span_impl_type = settings.tracing_implementation()
92
- if span_impl_type is None:
106
+ tracing_options: TracingOptions = ctxt.pop("tracing_options", {})
107
+ tracing_enabled = settings.tracing_enabled()
108
+
109
+ # User can explicitly disable tracing for this request.
110
+ user_enabled = tracing_options.get("enabled")
111
+ if user_enabled is False:
112
+ return
113
+
114
+ # If tracing is disabled globally and user didn't explicitly enable it, don't trace.
115
+ if not tracing_enabled and user_enabled is None:
93
116
  return
94
117
 
118
+ span_impl_type = settings.tracing_implementation()
95
119
  namer = ctxt.pop("network_span_namer", self._network_span_namer)
96
120
  tracing_attributes = ctxt.pop("tracing_attributes", self._tracing_attributes)
97
121
  span_name = namer(request.http_request)
98
122
 
99
- span = span_impl_type(name=span_name, kind=SpanKind.CLIENT)
100
- for attr, value in tracing_attributes.items():
101
- span.add_attribute(attr, value)
102
- span.start()
123
+ span_attributes = {**tracing_attributes, **tracing_options.get("attributes", {})}
103
124
 
104
- headers = span.to_header()
105
- request.http_request.headers.update(headers)
125
+ if span_impl_type:
126
+ # If the plugin is enabled, prioritize it over the core tracing.
127
+ span = span_impl_type(name=span_name, kind=SpanKind.CLIENT)
128
+ for attr, value in span_attributes.items():
129
+ span.add_attribute(attr, value) # type: ignore
130
+
131
+ with change_context(span.span_instance):
132
+ headers = span.to_header()
133
+ request.http_request.headers.update(headers)
134
+ request.context[self.TRACING_CONTEXT] = span
135
+ else:
136
+ # Otherwise, use the core tracing.
137
+ config = self._instrumentation_config or {}
138
+ tracer = get_tracer(
139
+ library_name=config.get("library_name"),
140
+ library_version=config.get("library_version"),
141
+ attributes=config.get("attributes"),
142
+ )
143
+ if not tracer:
144
+ _LOGGER.warning(
145
+ "Tracing is enabled, but not able to get an OpenTelemetry tracer. "
146
+ "Please ensure that `opentelemetry-api` is installed."
147
+ )
148
+ return
149
+
150
+ otel_span = tracer.start_span(
151
+ name=span_name,
152
+ kind=SpanKind.CLIENT,
153
+ attributes=span_attributes,
154
+ )
155
+
156
+ with tracer.use_span(otel_span, end_on_exit=False):
157
+ trace_context_headers = tracer.get_trace_context()
158
+ request.http_request.headers.update(trace_context_headers)
159
+
160
+ request.context[self.TRACING_CONTEXT] = otel_span
161
+ token = tracer._suppress_auto_http_instrumentation() # pylint: disable=protected-access
162
+ request.context[self._SUPPRESSION_TOKEN] = token
106
163
 
107
- request.context[self.TRACING_CONTEXT] = span
108
164
  except Exception as err: # pylint: disable=broad-except
109
165
  _LOGGER.warning("Unable to start network span: %s", err)
110
166
 
@@ -126,21 +182,52 @@ class DistributedTracingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTyp
126
182
  if self.TRACING_CONTEXT not in request.context:
127
183
  return
128
184
 
129
- span: "AbstractSpan" = request.context[self.TRACING_CONTEXT]
185
+ span = request.context[self.TRACING_CONTEXT]
186
+ if not span:
187
+ return
188
+
130
189
  http_request: Union[HttpRequest, LegacyHttpRequest] = request.http_request
131
- if span is not None:
132
- span.set_http_attributes(http_request, response=response)
133
- if request.context.get("retry_count"):
134
- span.add_attribute(self._HTTP_RESEND_COUNT, request.context["retry_count"])
135
- request_id = http_request.headers.get(self._REQUEST_ID)
136
- if request_id is not None:
137
- span.add_attribute(self._REQUEST_ID, request_id)
138
- if response and self._RESPONSE_ID in response.headers:
139
- span.add_attribute(self._RESPONSE_ID, response.headers[self._RESPONSE_ID])
190
+
191
+ attributes: Dict[str, Any] = {}
192
+ if request.context.get("retry_count"):
193
+ attributes[self._HTTP_RESEND_COUNT] = request.context["retry_count"]
194
+ if http_request.headers.get(self._REQUEST_ID):
195
+ attributes[self._REQUEST_ID_ATTR] = http_request.headers[self._REQUEST_ID]
196
+ if response and self._RESPONSE_ID in response.headers:
197
+ attributes[self._RESPONSE_ID_ATTR] = response.headers[self._RESPONSE_ID]
198
+
199
+ # We'll determine if the span is from a plugin or the core tracing library based on the presence of the
200
+ # `set_http_attributes` method.
201
+ if hasattr(span, "set_http_attributes"):
202
+ # Plugin-based tracing
203
+ span.set_http_attributes(request=http_request, response=response)
204
+ for key, value in attributes.items():
205
+ span.add_attribute(key, value)
140
206
  if exc_info:
141
207
  span.__exit__(*exc_info)
142
208
  else:
143
209
  span.finish()
210
+ else:
211
+ # Native tracing
212
+ self._set_http_client_span_attributes(span, request=http_request, response=response)
213
+ span.set_attributes(attributes)
214
+ if exc_info:
215
+ # If there was an exception, set the error.type attribute.
216
+ exception_type = exc_info[0]
217
+ if exception_type:
218
+ module = exception_type.__module__ if exception_type.__module__ != "builtins" else ""
219
+ error_type = f"{module}.{exception_type.__qualname__}" if module else exception_type.__qualname__
220
+ span.set_attribute(self._ERROR_TYPE, error_type)
221
+
222
+ span.__exit__(*exc_info)
223
+ else:
224
+ span.end()
225
+
226
+ suppression_token = request.context.get(self._SUPPRESSION_TOKEN)
227
+ if suppression_token:
228
+ tracer = get_tracer()
229
+ if tracer:
230
+ tracer._detach_from_context(suppression_token) # pylint: disable=protected-access
144
231
 
145
232
  def on_response(
146
233
  self,
@@ -151,3 +238,39 @@ class DistributedTracingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTyp
151
238
 
152
239
  def on_exception(self, request: PipelineRequest[HTTPRequestType]) -> None:
153
240
  self.end_span(request, exc_info=sys.exc_info())
241
+
242
+ def _set_http_client_span_attributes(
243
+ self,
244
+ span: "Span",
245
+ request: Union[HttpRequest, LegacyHttpRequest],
246
+ response: Optional[HTTPResponseType] = None,
247
+ ) -> None:
248
+ """Add attributes to an HTTP client span.
249
+
250
+ :param span: The span to add attributes to.
251
+ :type span: ~opentelemetry.trace.Span
252
+ :param request: The request made
253
+ :type request: ~azure.core.rest.HttpRequest
254
+ :param response: The response received from the server. Is None if no response received.
255
+ :type response: ~azure.core.rest.HTTPResponse or ~azure.core.pipeline.transport.HttpResponse
256
+ """
257
+ attributes: Dict[str, Any] = {
258
+ self._HTTP_REQUEST_METHOD: request.method,
259
+ self._URL_FULL: request.url,
260
+ }
261
+
262
+ parsed_url = urllib.parse.urlparse(request.url)
263
+ if parsed_url.hostname:
264
+ attributes[self._SERVER_ADDRESS] = parsed_url.hostname
265
+ if parsed_url.port:
266
+ attributes[self._SERVER_PORT] = parsed_url.port
267
+
268
+ user_agent = request.headers.get("User-Agent")
269
+ if user_agent:
270
+ attributes[self._USER_AGENT_ORIGINAL] = user_agent
271
+ if response and response.status_code:
272
+ attributes[self._HTTP_RESPONSE_STATUS_CODE] = response.status_code
273
+ if response.status_code >= 400:
274
+ attributes[self._ERROR_TYPE] = str(response.status_code)
275
+
276
+ span.set_attributes(attributes)
@@ -58,6 +58,7 @@ _LOGGER = logging.getLogger(__name__)
58
58
 
59
59
  def domain_changed(original_domain: Optional[str], url: str) -> bool:
60
60
  """Checks if the domain has changed.
61
+
61
62
  :param str original_domain: The original domain.
62
63
  :param str url: The new url.
63
64
  :rtype: bool
@@ -193,9 +194,9 @@ class RedirectPolicy(RedirectPolicyBase, HTTPPolicy[HTTPRequestType, HTTPRespons
193
194
 
194
195
  :param request: The PipelineRequest object
195
196
  :type request: ~azure.core.pipeline.PipelineRequest
196
- :return: Returns the PipelineResponse or raises error if maximum redirects exceeded.
197
+ :return: The PipelineResponse.
197
198
  :rtype: ~azure.core.pipeline.PipelineResponse
198
- :raises: ~azure.core.exceptions.TooManyRedirectsError if maximum redirects exceeded.
199
+ :raises ~azure.core.exceptions.TooManyRedirectsError: if maximum redirects exceeded.
199
200
  """
200
201
  retryable: bool = True
201
202
  redirect_settings = self.configure_redirects(request.context.options)
@@ -65,9 +65,9 @@ class AsyncRedirectPolicy(RedirectPolicyBase, AsyncHTTPPolicy[HTTPRequestType, A
65
65
 
66
66
  :param request: The PipelineRequest object
67
67
  :type request: ~azure.core.pipeline.PipelineRequest
68
- :return: Returns the PipelineResponse or raises error if maximum redirects exceeded.
68
+ :return: the PipelineResponse.
69
69
  :rtype: ~azure.core.pipeline.PipelineResponse
70
- :raises: ~azure.core.exceptions.TooManyRedirectsError if maximum redirects exceeded.
70
+ :raises ~azure.core.exceptions.TooManyRedirectsError: if maximum redirects exceeded.
71
71
  """
72
72
  redirects_remaining = True
73
73
  redirect_settings = self.configure_redirects(request.context.options)
@@ -422,28 +422,21 @@ class RetryPolicy(RetryPolicyBase, HTTPPolicy[HTTPRequestType, HTTPResponseType]
422
422
 
423
423
  :keyword int retry_total: Total number of retries to allow. Takes precedence over other counts.
424
424
  Default value is 10.
425
-
426
425
  :keyword int retry_connect: How many connection-related errors to retry on.
427
426
  These are errors raised before the request is sent to the remote server,
428
427
  which we assume has not triggered the server to process the request. Default value is 3.
429
-
430
428
  :keyword int retry_read: How many times to retry on read errors.
431
429
  These errors are raised after the request was sent to the server, so the
432
430
  request may have side-effects. Default value is 3.
433
-
434
431
  :keyword int retry_status: How many times to retry on bad status codes. Default value is 3.
435
-
436
432
  :keyword float retry_backoff_factor: A backoff factor to apply between attempts after the second try
437
433
  (most errors are resolved immediately by a second try without a delay).
438
434
  In fixed mode, retry policy will always sleep for {backoff factor}.
439
435
  In 'exponential' mode, retry policy will sleep for: `{backoff factor} * (2 ** ({number of total retries} - 1))`
440
436
  seconds. If the backoff_factor is 0.1, then the retry will sleep
441
437
  for [0.0s, 0.2s, 0.4s, ...] between retries. The default value is 0.8.
442
-
443
438
  :keyword int retry_backoff_max: The maximum back off time. Default value is 120 seconds (2 minutes).
444
-
445
439
  :keyword RetryMode retry_mode: Fixed or exponential delay between attemps, default is exponential.
446
-
447
440
  :keyword int timeout: Timeout setting for the operation in seconds, default is 604800s (7 days).
448
441
 
449
442
  .. admonition:: Example:
@@ -522,10 +515,10 @@ class RetryPolicy(RetryPolicyBase, HTTPPolicy[HTTPRequestType, HTTPResponseType]
522
515
 
523
516
  :param request: The PipelineRequest object
524
517
  :type request: ~azure.core.pipeline.PipelineRequest
525
- :return: Returns the PipelineResponse or raises error if maximum retries exceeded.
518
+ :return: The PipelineResponse.
526
519
  :rtype: ~azure.core.pipeline.PipelineResponse
527
- :raises: ~azure.core.exceptions.AzureError if maximum retries exceeded.
528
- :raises: ~azure.core.exceptions.ClientAuthenticationError if authentication
520
+ :raises ~azure.core.exceptions.AzureError: if maximum retries exceeded.
521
+ :raises ~azure.core.exceptions.ClientAuthenticationError: if authentication fails.
529
522
  """
530
523
  retry_active = True
531
524
  response = None
@@ -57,23 +57,18 @@ class AsyncRetryPolicy(RetryPolicyBase, AsyncHTTPPolicy[HTTPRequestType, AsyncHT
57
57
 
58
58
  :keyword int retry_total: Total number of retries to allow. Takes precedence over other counts.
59
59
  Default value is 10.
60
-
61
60
  :keyword int retry_connect: How many connection-related errors to retry on.
62
61
  These are errors raised before the request is sent to the remote server,
63
62
  which we assume has not triggered the server to process the request. Default value is 3.
64
-
65
63
  :keyword int retry_read: How many times to retry on read errors.
66
64
  These errors are raised after the request was sent to the server, so the
67
65
  request may have side-effects. Default value is 3.
68
-
69
66
  :keyword int retry_status: How many times to retry on bad status codes. Default value is 3.
70
-
71
67
  :keyword float retry_backoff_factor: A backoff factor to apply between attempts after the second try
72
68
  (most errors are resolved immediately by a second try without a delay).
73
69
  Retry policy will sleep for: `{backoff factor} * (2 ** ({number of total retries} - 1))`
74
70
  seconds. If the backoff_factor is 0.1, then the retry will sleep
75
71
  for [0.0s, 0.2s, 0.4s, ...] between retries. The default value is 0.8.
76
-
77
72
  :keyword int retry_backoff_max: The maximum back off time. Default value is 120 seconds (2 minutes).
78
73
 
79
74
  .. admonition:: Example:
@@ -154,10 +149,10 @@ class AsyncRetryPolicy(RetryPolicyBase, AsyncHTTPPolicy[HTTPRequestType, AsyncHT
154
149
 
155
150
  :param request: The PipelineRequest object
156
151
  :type request: ~azure.core.pipeline.PipelineRequest
157
- :return: Returns the PipelineResponse or raises error if maximum retries exceeded.
152
+ :return: The PipelineResponse.
158
153
  :rtype: ~azure.core.pipeline.PipelineResponse
159
- :raise: ~azure.core.exceptions.AzureError if maximum retries exceeded.
160
- :raise: ~azure.core.exceptions.ClientAuthenticationError if authentication fails
154
+ :raise ~azure.core.exceptions.AzureError: if maximum retries exceeded.
155
+ :raise ~azure.core.exceptions.ClientAuthenticationError: if authentication fails
161
156
  """
162
157
  retry_active = True
163
158
  response = None
@@ -234,6 +234,7 @@ class UserAgentPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
234
234
 
235
235
  def add_user_agent(self, value: str) -> None:
236
236
  """Add value to current user agent with a space.
237
+
237
238
  :param str value: value to add to user agent.
238
239
  """
239
240
  self._user_agent = "{} {}".format(self._user_agent, value)
@@ -441,6 +442,7 @@ class HttpLoggingPolicy(
441
442
  self, request: PipelineRequest[HTTPRequestType]
442
443
  ) -> None:
443
444
  """Logs HTTP method, url and headers.
445
+
444
446
  :param request: The PipelineRequest object.
445
447
  :type request: ~azure.core.pipeline.PipelineRequest
446
448
  """
@@ -85,7 +85,6 @@ class AioHttpTransport(AsyncHttpTransport):
85
85
  :keyword session: The client session.
86
86
  :paramtype session: ~aiohttp.ClientSession
87
87
  :keyword bool session_owner: Session owner. Defaults True.
88
-
89
88
  :keyword bool use_env_settings: Uses proxy settings from environment. Defaults to True.
90
89
 
91
90
  .. admonition:: Example:
@@ -113,15 +113,15 @@ def _succeeded(status):
113
113
 
114
114
 
115
115
  class BadStatus(Exception):
116
- pass
116
+ """Exception raised when status is invalid."""
117
117
 
118
118
 
119
119
  class BadResponse(Exception):
120
- pass
120
+ """Exception raised when response is invalid."""
121
121
 
122
122
 
123
123
  class OperationFailed(Exception):
124
- pass
124
+ """Exception raised when operation failed or canceled."""
125
125
 
126
126
 
127
127
  def _as_json(response: AllHttpResponseType) -> Dict[str, Any]:
@@ -46,6 +46,7 @@ class AsyncHttpResponseBackcompatMixin(_HttpResponseBackcompatMixinBase):
46
46
  def parts(self):
47
47
  """DEPRECATED: Assuming the content-type is multipart/mixed, will return the parts as an async iterator.
48
48
  This is deprecated and will be removed in a later release.
49
+
49
50
  :rtype: AsyncIterator
50
51
  :return: The parts of the response
51
52
  :raises ValueError: If the content is not multipart/mixed
@@ -95,6 +96,7 @@ class AsyncHttpResponseImpl(_HttpResponseBaseImpl, _AsyncHttpResponse, AsyncHttp
95
96
 
96
97
  async def iter_raw(self, **kwargs: Any) -> AsyncIterator[bytes]:
97
98
  """Asynchronously iterates over the response's bytes. Will not decompress in the process
99
+
98
100
  :return: An async iterator of bytes from the response
99
101
  :rtype: AsyncIterator[bytes]
100
102
  """
@@ -105,6 +107,7 @@ class AsyncHttpResponseImpl(_HttpResponseBaseImpl, _AsyncHttpResponse, AsyncHttp
105
107
 
106
108
  async def iter_bytes(self, **kwargs: Any) -> AsyncIterator[bytes]:
107
109
  """Asynchronously iterates over the response's bytes. Will decompress in the process
110
+
108
111
  :return: An async iterator of bytes from the response
109
112
  :rtype: AsyncIterator[bytes]
110
113
  """
@@ -303,7 +303,7 @@ class _HttpResponseBase(abc.ABC):
303
303
 
304
304
  :return: The JSON deserialized response body
305
305
  :rtype: any
306
- :raises json.decoder.JSONDecodeError or ValueError (in python 2.7) if object is not JSON decodable:
306
+ :raises json.decoder.JSONDecodeError: if the body is not valid JSON.
307
307
  """
308
308
 
309
309
  @abc.abstractmethod
@@ -312,7 +312,7 @@ class _HttpResponseBase(abc.ABC):
312
312
 
313
313
  If response is good, does nothing.
314
314
 
315
- :raises ~azure.core.HttpResponseError if the object has an error status code.:
315
+ :raises ~azure.core.HttpResponseError: if the object has an error status code.
316
316
  """
317
317
 
318
318
 
@@ -30,7 +30,6 @@ from collections import namedtuple
30
30
  from enum import Enum
31
31
  import logging
32
32
  import os
33
- import sys
34
33
  from typing import (
35
34
  Type,
36
35
  Optional,
@@ -43,10 +42,13 @@ from typing import (
43
42
  Generic,
44
43
  Mapping,
45
44
  List,
45
+ TYPE_CHECKING,
46
46
  )
47
- from azure.core.tracing import AbstractSpan
48
47
  from ._azure_clouds import AzureClouds
49
48
 
49
+ if TYPE_CHECKING:
50
+ from azure.core.tracing import AbstractSpan
51
+
50
52
  ValidInputType = TypeVar("ValidInputType")
51
53
  ValueType = TypeVar("ValueType")
52
54
 
@@ -88,6 +90,24 @@ def convert_bool(value: Union[str, bool]) -> bool:
88
90
  raise ValueError("Cannot convert {} to boolean value".format(value))
89
91
 
90
92
 
93
+ def convert_tracing_enabled(value: Optional[Union[str, bool]]) -> bool:
94
+ """Convert tracing value to bool with regard to tracing implementation.
95
+
96
+ :param value: the value to convert
97
+ :type value: str or bool or None
98
+ :returns: A boolean value matching the intent of the input
99
+ :rtype: bool
100
+ :raises ValueError: If conversion to bool fails
101
+ """
102
+ if value is None:
103
+ # If tracing_enabled was not explicitly set to a boolean, determine tracing enablement
104
+ # based on tracing_implementation being set.
105
+ if settings.tracing_implementation():
106
+ return True
107
+ return False
108
+ return convert_bool(value)
109
+
110
+
91
111
  _levels = {
92
112
  "CRITICAL": logging.CRITICAL,
93
113
  "ERROR": logging.ERROR,
@@ -181,18 +201,6 @@ def _get_opentelemetry_span() -> Optional[Type[AbstractSpan]]:
181
201
  return None
182
202
 
183
203
 
184
- def _get_opencensus_span_if_opencensus_is_imported() -> Optional[Type[AbstractSpan]]:
185
- if "opencensus" not in sys.modules:
186
- return None
187
- return _get_opencensus_span()
188
-
189
-
190
- def _get_opentelemetry_span_if_opentelemetry_is_imported() -> Optional[Type[AbstractSpan]]:
191
- if "opentelemetry" not in sys.modules:
192
- return None
193
- return _get_opentelemetry_span()
194
-
195
-
196
204
  _tracing_implementation_dict: Dict[str, Callable[[], Optional[Type[AbstractSpan]]]] = {
197
205
  "opencensus": _get_opencensus_span,
198
206
  "opentelemetry": _get_opentelemetry_span,
@@ -215,9 +223,7 @@ def convert_tracing_impl(value: Optional[Union[str, Type[AbstractSpan]]]) -> Opt
215
223
 
216
224
  """
217
225
  if value is None:
218
- return (
219
- _get_opentelemetry_span_if_opentelemetry_is_imported() or _get_opencensus_span_if_opencensus_is_imported()
220
- )
226
+ return None
221
227
 
222
228
  if not isinstance(value, str):
223
229
  return value
@@ -299,7 +305,7 @@ class PrioritizedSetting(Generic[ValidInputType, ValueType]):
299
305
  :type value: str or int or float or None
300
306
  :returns: the value of the setting
301
307
  :rtype: str or int or float
302
- :raises: RuntimeError if no value can be determined
308
+ :raises RuntimeError: if no value can be determined
303
309
  """
304
310
 
305
311
  # 4. immediate values
@@ -501,11 +507,11 @@ class Settings:
501
507
  default=logging.INFO,
502
508
  )
503
509
 
504
- tracing_enabled: PrioritizedSetting[Union[str, bool], bool] = PrioritizedSetting(
510
+ tracing_enabled: PrioritizedSetting[Optional[Union[str, bool]], bool] = PrioritizedSetting(
505
511
  "tracing_enabled",
506
512
  env_var="AZURE_TRACING_ENABLED",
507
- convert=convert_bool,
508
- default=False,
513
+ convert=convert_tracing_enabled,
514
+ default=None,
509
515
  )
510
516
 
511
517
  tracing_implementation: PrioritizedSetting[
@@ -2,11 +2,7 @@
2
2
  # Copyright (c) Microsoft Corporation.
3
3
  # Licensed under the MIT License.
4
4
  # ------------------------------------
5
- from azure.core.tracing._abstract_span import (
6
- AbstractSpan,
7
- SpanKind,
8
- HttpSpanMixin,
9
- Link,
10
- )
5
+ from ._abstract_span import AbstractSpan, HttpSpanMixin
6
+ from ._models import Link, SpanKind, TracingOptions
11
7
 
12
- __all__ = ["AbstractSpan", "SpanKind", "HttpSpanMixin", "Link"]
8
+ __all__ = ["AbstractSpan", "HttpSpanMixin", "Link", "SpanKind", "TracingOptions"]