py2docfx 0.1.16.dev2064350__py3-none-any.whl → 0.1.17__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/convert_prepare/environment.py +1 -3
- py2docfx/convert_prepare/get_source.py +1 -6
- py2docfx/convert_prepare/package_info.py +1 -1
- py2docfx/docfx_yaml/miss_reference.py +1 -1
- py2docfx/docfx_yaml/parameter_utils.py +58 -6
- py2docfx/docfx_yaml/tests/roots/test-translator-typing/code_with_typing.py +14 -0
- py2docfx/docfx_yaml/tests/roots/test-translator-typing/conf.py +18 -0
- py2docfx/docfx_yaml/tests/test_translator_typing.py +39 -0
- py2docfx/docfx_yaml/utils.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/certifi/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/certifi/core.py +1 -32
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/constant.py +17 -0
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/legacy.py +1 -3
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/md.py +19 -14
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/utils.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/version.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_parser.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_tokenizer.py +5 -4
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +53 -22
- py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +39 -0
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +6 -7
- py2docfx/venv/basevenv/Lib/site-packages/pygments/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/_sql_builtins.py +106 -0
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/scripting.py +5 -3
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/sql.py +24 -118
- py2docfx/venv/basevenv/Lib/site-packages/requests/__version__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/requests/compat.py +12 -0
- py2docfx/venv/basevenv/Lib/site-packages/requests/models.py +3 -1
- py2docfx/venv/basevenv/Lib/site-packages/requests/utils.py +6 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +0 -38
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_discovery.py +33 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_entry_points.py +4 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +12 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_scripts.py +361 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -37
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +29 -28
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +39 -179
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +3 -55
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/compat/py310.py +11 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +10 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +34 -29
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/contexts.py +0 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +49 -24
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/__init__.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/arabic_stemmer.py +798 -797
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/armenian_stemmer.py +212 -213
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basestemmer.py +20 -54
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basque_stemmer.py +202 -228
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/catalan_stemmer.py +370 -375
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/danish_stemmer.py +63 -61
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_porter_stemmer.py +466 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_stemmer.py +1217 -343
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/english_stemmer.py +295 -264
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/esperanto_stemmer.py +588 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/estonian_stemmer.py +850 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/finnish_stemmer.py +144 -143
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/french_stemmer.py +308 -246
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/german_stemmer.py +224 -167
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/greek_stemmer.py +1314 -1313
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hindi_stemmer.py +39 -38
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +231 -256
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +61 -64
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/irish_stemmer.py +101 -106
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/italian_stemmer.py +272 -272
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +233 -240
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/nepali_stemmer.py +108 -134
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +108 -63
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/porter_stemmer.py +101 -108
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +241 -250
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/romanian_stemmer.py +332 -296
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/russian_stemmer.py +178 -179
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/serbian_stemmer.py +2331 -2332
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/spanish_stemmer.py +254 -259
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/swedish_stemmer.py +143 -70
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/tamil_stemmer.py +638 -1491
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/turkish_stemmer.py +326 -292
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +245 -246
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/connection.py +87 -38
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/poolmanager.py +17 -1
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/response.py +53 -24
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/request.py +12 -4
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +13 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +23 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +12 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +22 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +10 -6
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +13 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +3 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +22 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +17 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +1 -32
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +19 -14
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +35 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +33 -10
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +14 -5
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +49 -45
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +10 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +8 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +6 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +9 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +7 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +79 -12
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +9 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +4 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +47 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +14 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +14 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +18 -18
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +5 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +7 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +7 -121
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +21 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +48 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +68 -18
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +15 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +39 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +100 -49
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +27 -15
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +60 -25
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +17 -4
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +13 -4
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +8 -5
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +2 -36
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +240 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/_helpers.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +5 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +91 -2
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +8 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +15 -5
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any.py +15 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +15 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +258 -113
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +22 -8
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +106 -23
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +21 -18
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +8 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +60 -43
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +11 -7
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +29 -23
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +41 -2
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +9 -5
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +58 -30
- py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -138
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -93
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -63
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -206
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -205
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +355 -355
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -79
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -15
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -314
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -190
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -62
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -50
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -176
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -42
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -87
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -50
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -100
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -480
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -236
- py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/packaging/_elffile.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_manylinux.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_parser.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_tokenizer.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/packaging/markers.py +53 -22
- py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/specifiers.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/tags.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +6 -7
- py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/models.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +6 -16
- py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -52
- py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -321
- py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -184
- py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -53
- py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -858
- py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -96
- py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -134
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -485
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -100
- py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -198
- py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -1
- py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -95
- py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -72
- py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -97
- py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +0 -38
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_discovery.py +33 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +12 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_scripts.py +361 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -37
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +29 -28
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +39 -179
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +3 -55
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/py310.py +11 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +10 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +34 -29
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/contexts.py +0 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +49 -24
- py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +357 -703
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +87 -38
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +17 -1
- py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +53 -24
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +12 -4
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +1 -1
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/METADATA +1 -1
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/RECORD +374 -372
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +0 -1137
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +0 -536
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/server.py +0 -86
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +0 -119
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +0 -121
- py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +0 -1137
- py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +0 -536
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py +0 -86
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
- {py2docfx-0.1.16.dev2064350.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)
|
@@ -6,7 +6,7 @@ __title__ = "packaging"
|
|
6
6
|
__summary__ = "Core utilities for Python packages"
|
7
7
|
__uri__ = "https://github.com/pypa/packaging"
|
8
8
|
|
9
|
-
__version__ = "
|
9
|
+
__version__ = "25.0"
|
10
10
|
|
11
11
|
__author__ = "Donald Stufft and individual contributors"
|
12
12
|
__email__ = "donald@stufft.io"
|
@@ -69,8 +69,7 @@ class ELFFile:
|
|
69
69
|
}[(self.capacity, self.encoding)]
|
70
70
|
except KeyError as e:
|
71
71
|
raise ELFInvalid(
|
72
|
-
f"unrecognized capacity ({self.capacity}) or "
|
73
|
-
f"encoding ({self.encoding})"
|
72
|
+
f"unrecognized capacity ({self.capacity}) or encoding ({self.encoding})"
|
74
73
|
) from e
|
75
74
|
|
76
75
|
try:
|
@@ -161,8 +161,7 @@ def _parse_glibc_version(version_str: str) -> tuple[int, int]:
|
|
161
161
|
m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
|
162
162
|
if not m:
|
163
163
|
warnings.warn(
|
164
|
-
f"Expected glibc version with 2 components major.minor,"
|
165
|
-
f" got: {version_str}",
|
164
|
+
f"Expected glibc version with 2 components major.minor, got: {version_str}",
|
166
165
|
RuntimeWarning,
|
167
166
|
stacklevel=2,
|
168
167
|
)
|
@@ -349,6 +349,5 @@ def _parse_marker_op(tokenizer: Tokenizer) -> Op:
|
|
349
349
|
return Op(tokenizer.read().text)
|
350
350
|
else:
|
351
351
|
return tokenizer.raise_syntax_error(
|
352
|
-
"Expected marker operator, one of "
|
353
|
-
"<=, <, !=, ==, >=, >, ~=, ===, in, not in"
|
352
|
+
"Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in"
|
354
353
|
)
|
@@ -68,7 +68,8 @@ DEFAULT_RULES: dict[str, str | re.Pattern[str]] = {
|
|
68
68
|
|platform[._](version|machine|python_implementation)
|
69
69
|
|python_implementation
|
70
70
|
|implementation_(name|version)
|
71
|
-
|
|
71
|
+
|extras?
|
72
|
+
|dependency_groups
|
72
73
|
)\b
|
73
74
|
""",
|
74
75
|
re.VERBOSE,
|
@@ -119,9 +120,9 @@ class Tokenizer:
|
|
119
120
|
another check. If `peek` is set to `True`, the token is not loaded and
|
120
121
|
would need to be checked again.
|
121
122
|
"""
|
122
|
-
assert (
|
123
|
-
self.next_token
|
124
|
-
)
|
123
|
+
assert self.next_token is None, (
|
124
|
+
f"Cannot check for {name!r}, already have {self.next_token!r}"
|
125
|
+
)
|
125
126
|
assert name in self.rules, f"Unknown token name: {name!r}"
|
126
127
|
|
127
128
|
expression = self.rules[name]
|