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,190 +1,190 @@
|
|
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
|
-
|
17
|
-
from opencensus.common import utils as common_utils
|
18
|
-
from opencensus.ext.azure.common import Options, utils
|
19
|
-
from opencensus.ext.azure.common.processor import ProcessorMixin
|
20
|
-
from opencensus.ext.azure.common.protocol import (
|
21
|
-
Data,
|
22
|
-
DataPoint,
|
23
|
-
Envelope,
|
24
|
-
MetricData,
|
25
|
-
)
|
26
|
-
from opencensus.ext.azure.common.storage import LocalFileStorage
|
27
|
-
from opencensus.ext.azure.common.transport import (
|
28
|
-
TransportMixin,
|
29
|
-
TransportStatusCode,
|
30
|
-
)
|
31
|
-
from opencensus.ext.azure.metrics_exporter import standard_metrics
|
32
|
-
from opencensus.ext.azure.statsbeat.statsbeat_metrics import (
|
33
|
-
_NETWORK_STATSBEAT_NAMES,
|
34
|
-
)
|
35
|
-
from opencensus.metrics import transport
|
36
|
-
from opencensus.metrics.export.metric_descriptor import MetricDescriptorType
|
37
|
-
from opencensus.stats import stats as stats_module
|
38
|
-
|
39
|
-
__all__ = ['MetricsExporter', 'new_metrics_exporter']
|
40
|
-
|
41
|
-
|
42
|
-
class MetricsExporter(TransportMixin, ProcessorMixin):
|
43
|
-
"""Metrics exporter for Microsoft Azure Monitor."""
|
44
|
-
|
45
|
-
def __init__(self, is_stats=False, **options):
|
46
|
-
self.options = Options(**options)
|
47
|
-
self._is_stats = is_stats
|
48
|
-
utils.validate_instrumentation_key(self.options.instrumentation_key)
|
49
|
-
if self.options.max_batch_size <= 0:
|
50
|
-
raise ValueError('Max batch size must be at least 1.')
|
51
|
-
self.export_interval = self.options.export_interval
|
52
|
-
self.max_batch_size = self.options.max_batch_size
|
53
|
-
self._telemetry_processors = []
|
54
|
-
self.storage = None
|
55
|
-
if self.options.enable_local_storage:
|
56
|
-
self.storage = LocalFileStorage(
|
57
|
-
path=self.options.storage_path,
|
58
|
-
max_size=self.options.storage_max_size,
|
59
|
-
maintenance_period=self.options.storage_maintenance_period,
|
60
|
-
retention_period=self.options.storage_retention_period,
|
61
|
-
source=self.__class__.__name__,
|
62
|
-
)
|
63
|
-
self._atexit_handler = atexit.register(self.shutdown)
|
64
|
-
self.exporter_thread = None
|
65
|
-
# For redirects
|
66
|
-
self._consecutive_redirects = 0 # To prevent circular redirects
|
67
|
-
super(MetricsExporter, self).__init__()
|
68
|
-
|
69
|
-
def export_metrics(self, metrics):
|
70
|
-
envelopes = []
|
71
|
-
for metric in metrics:
|
72
|
-
envelopes.extend(self.metric_to_envelopes(metric))
|
73
|
-
# Send data in batches of max_batch_size
|
74
|
-
batched_envelopes = list(common_utils.window(
|
75
|
-
envelopes, self.max_batch_size))
|
76
|
-
for batch in batched_envelopes:
|
77
|
-
batch = self.apply_telemetry_processors(batch)
|
78
|
-
result = self._transmit(batch)
|
79
|
-
# If statsbeat exporter and received signal to shutdown
|
80
|
-
if self._is_stats and result is \
|
81
|
-
TransportStatusCode.STATSBEAT_SHUTDOWN:
|
82
|
-
from opencensus.ext.azure.statsbeat import statsbeat
|
83
|
-
statsbeat.shutdown_statsbeat_metrics()
|
84
|
-
return
|
85
|
-
# Only store files if local storage enabled
|
86
|
-
if self.storage:
|
87
|
-
if result is TransportStatusCode.RETRY:
|
88
|
-
self.storage.put(batch, self.options.minimum_retry_interval) # noqa: E501
|
89
|
-
if result is TransportStatusCode.SUCCESS:
|
90
|
-
# If there is still room to transmit envelopes,
|
91
|
-
# transmit from storage if available
|
92
|
-
if len(envelopes) < self.options.max_batch_size:
|
93
|
-
self._transmit_from_storage()
|
94
|
-
|
95
|
-
def metric_to_envelopes(self, metric):
|
96
|
-
envelopes = []
|
97
|
-
# No support for histogram aggregations
|
98
|
-
if (metric.descriptor.type !=
|
99
|
-
MetricDescriptorType.CUMULATIVE_DISTRIBUTION):
|
100
|
-
md = metric.descriptor
|
101
|
-
# Each time series will be uniquely identified by its
|
102
|
-
# label values
|
103
|
-
for time_series in metric.time_series:
|
104
|
-
# time_series should only have one point which
|
105
|
-
# contains the aggregated value
|
106
|
-
# time_series point list is never empty
|
107
|
-
point = time_series.points[0]
|
108
|
-
# we ignore None and 0 values for network statsbeats
|
109
|
-
if self._is_stats_exporter():
|
110
|
-
if md.name in _NETWORK_STATSBEAT_NAMES:
|
111
|
-
if not point.value.value:
|
112
|
-
continue
|
113
|
-
data_point = DataPoint(
|
114
|
-
ns=md.name,
|
115
|
-
name=md.name,
|
116
|
-
value=point.value.value
|
117
|
-
)
|
118
|
-
# The timestamp is when the metric was recorded
|
119
|
-
timestamp = point.timestamp
|
120
|
-
# Get the properties using label keys from metric
|
121
|
-
# and label values of the time series
|
122
|
-
properties = self._create_properties(
|
123
|
-
time_series,
|
124
|
-
md.label_keys
|
125
|
-
)
|
126
|
-
envelopes.append(
|
127
|
-
self._create_envelope(
|
128
|
-
data_point,
|
129
|
-
timestamp,
|
130
|
-
properties
|
131
|
-
)
|
132
|
-
)
|
133
|
-
return envelopes
|
134
|
-
|
135
|
-
def _create_properties(self, time_series, label_keys):
|
136
|
-
properties = {}
|
137
|
-
# We construct a properties map from the label keys and values. We
|
138
|
-
# assume the ordering is already correct
|
139
|
-
for i in range(len(label_keys)):
|
140
|
-
if time_series.label_values[i].value is None:
|
141
|
-
value = "null"
|
142
|
-
else:
|
143
|
-
value = time_series.label_values[i].value
|
144
|
-
properties[label_keys[i].key] = value
|
145
|
-
return properties
|
146
|
-
|
147
|
-
def _create_envelope(self, data_point, timestamp, properties):
|
148
|
-
envelope = Envelope(
|
149
|
-
iKey=self.options.instrumentation_key,
|
150
|
-
tags=dict(utils.azure_monitor_context),
|
151
|
-
time=timestamp.isoformat(),
|
152
|
-
)
|
153
|
-
if self._is_stats:
|
154
|
-
envelope.name = "Statsbeat"
|
155
|
-
else:
|
156
|
-
envelope.name = "Microsoft.ApplicationInsights.Metric"
|
157
|
-
data = MetricData(
|
158
|
-
metrics=[data_point],
|
159
|
-
properties=properties
|
160
|
-
)
|
161
|
-
envelope.data = Data(baseData=data, baseType="MetricData")
|
162
|
-
return envelope
|
163
|
-
|
164
|
-
def shutdown(self):
|
165
|
-
if self.exporter_thread:
|
166
|
-
# flush if metrics exporter is not for stats
|
167
|
-
if not self._is_stats:
|
168
|
-
self.exporter_thread.close()
|
169
|
-
else:
|
170
|
-
self.exporter_thread.cancel()
|
171
|
-
# Shutsdown storage worker
|
172
|
-
if self.storage:
|
173
|
-
self.storage.close()
|
174
|
-
|
175
|
-
|
176
|
-
def new_metrics_exporter(**options):
|
177
|
-
exporter = MetricsExporter(**options)
|
178
|
-
producers = [stats_module.stats]
|
179
|
-
if exporter.options.enable_standard_metrics:
|
180
|
-
producers.append(standard_metrics.producer)
|
181
|
-
exporter.exporter_thread = transport.get_exporter_thread(
|
182
|
-
producers,
|
183
|
-
exporter,
|
184
|
-
interval=exporter.options.export_interval)
|
185
|
-
# start statsbeat on exporter instantiation
|
186
|
-
if exporter._check_stats_collection():
|
187
|
-
# Import here to avoid circular dependencies
|
188
|
-
from opencensus.ext.azure.statsbeat import statsbeat
|
189
|
-
statsbeat.collect_statsbeat_metrics(exporter.options)
|
190
|
-
return exporter
|
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
|
+
|
17
|
+
from opencensus.common import utils as common_utils
|
18
|
+
from opencensus.ext.azure.common import Options, utils
|
19
|
+
from opencensus.ext.azure.common.processor import ProcessorMixin
|
20
|
+
from opencensus.ext.azure.common.protocol import (
|
21
|
+
Data,
|
22
|
+
DataPoint,
|
23
|
+
Envelope,
|
24
|
+
MetricData,
|
25
|
+
)
|
26
|
+
from opencensus.ext.azure.common.storage import LocalFileStorage
|
27
|
+
from opencensus.ext.azure.common.transport import (
|
28
|
+
TransportMixin,
|
29
|
+
TransportStatusCode,
|
30
|
+
)
|
31
|
+
from opencensus.ext.azure.metrics_exporter import standard_metrics
|
32
|
+
from opencensus.ext.azure.statsbeat.statsbeat_metrics import (
|
33
|
+
_NETWORK_STATSBEAT_NAMES,
|
34
|
+
)
|
35
|
+
from opencensus.metrics import transport
|
36
|
+
from opencensus.metrics.export.metric_descriptor import MetricDescriptorType
|
37
|
+
from opencensus.stats import stats as stats_module
|
38
|
+
|
39
|
+
__all__ = ['MetricsExporter', 'new_metrics_exporter']
|
40
|
+
|
41
|
+
|
42
|
+
class MetricsExporter(TransportMixin, ProcessorMixin):
|
43
|
+
"""Metrics exporter for Microsoft Azure Monitor."""
|
44
|
+
|
45
|
+
def __init__(self, is_stats=False, **options):
|
46
|
+
self.options = Options(**options)
|
47
|
+
self._is_stats = is_stats
|
48
|
+
utils.validate_instrumentation_key(self.options.instrumentation_key)
|
49
|
+
if self.options.max_batch_size <= 0:
|
50
|
+
raise ValueError('Max batch size must be at least 1.')
|
51
|
+
self.export_interval = self.options.export_interval
|
52
|
+
self.max_batch_size = self.options.max_batch_size
|
53
|
+
self._telemetry_processors = []
|
54
|
+
self.storage = None
|
55
|
+
if self.options.enable_local_storage:
|
56
|
+
self.storage = LocalFileStorage(
|
57
|
+
path=self.options.storage_path,
|
58
|
+
max_size=self.options.storage_max_size,
|
59
|
+
maintenance_period=self.options.storage_maintenance_period,
|
60
|
+
retention_period=self.options.storage_retention_period,
|
61
|
+
source=self.__class__.__name__,
|
62
|
+
)
|
63
|
+
self._atexit_handler = atexit.register(self.shutdown)
|
64
|
+
self.exporter_thread = None
|
65
|
+
# For redirects
|
66
|
+
self._consecutive_redirects = 0 # To prevent circular redirects
|
67
|
+
super(MetricsExporter, self).__init__()
|
68
|
+
|
69
|
+
def export_metrics(self, metrics):
|
70
|
+
envelopes = []
|
71
|
+
for metric in metrics:
|
72
|
+
envelopes.extend(self.metric_to_envelopes(metric))
|
73
|
+
# Send data in batches of max_batch_size
|
74
|
+
batched_envelopes = list(common_utils.window(
|
75
|
+
envelopes, self.max_batch_size))
|
76
|
+
for batch in batched_envelopes:
|
77
|
+
batch = self.apply_telemetry_processors(batch)
|
78
|
+
result = self._transmit(batch)
|
79
|
+
# If statsbeat exporter and received signal to shutdown
|
80
|
+
if self._is_stats and result is \
|
81
|
+
TransportStatusCode.STATSBEAT_SHUTDOWN:
|
82
|
+
from opencensus.ext.azure.statsbeat import statsbeat
|
83
|
+
statsbeat.shutdown_statsbeat_metrics()
|
84
|
+
return
|
85
|
+
# Only store files if local storage enabled
|
86
|
+
if self.storage:
|
87
|
+
if result is TransportStatusCode.RETRY:
|
88
|
+
self.storage.put(batch, self.options.minimum_retry_interval) # noqa: E501
|
89
|
+
if result is TransportStatusCode.SUCCESS:
|
90
|
+
# If there is still room to transmit envelopes,
|
91
|
+
# transmit from storage if available
|
92
|
+
if len(envelopes) < self.options.max_batch_size:
|
93
|
+
self._transmit_from_storage()
|
94
|
+
|
95
|
+
def metric_to_envelopes(self, metric):
|
96
|
+
envelopes = []
|
97
|
+
# No support for histogram aggregations
|
98
|
+
if (metric.descriptor.type !=
|
99
|
+
MetricDescriptorType.CUMULATIVE_DISTRIBUTION):
|
100
|
+
md = metric.descriptor
|
101
|
+
# Each time series will be uniquely identified by its
|
102
|
+
# label values
|
103
|
+
for time_series in metric.time_series:
|
104
|
+
# time_series should only have one point which
|
105
|
+
# contains the aggregated value
|
106
|
+
# time_series point list is never empty
|
107
|
+
point = time_series.points[0]
|
108
|
+
# we ignore None and 0 values for network statsbeats
|
109
|
+
if self._is_stats_exporter():
|
110
|
+
if md.name in _NETWORK_STATSBEAT_NAMES:
|
111
|
+
if not point.value.value:
|
112
|
+
continue
|
113
|
+
data_point = DataPoint(
|
114
|
+
ns=md.name,
|
115
|
+
name=md.name,
|
116
|
+
value=point.value.value
|
117
|
+
)
|
118
|
+
# The timestamp is when the metric was recorded
|
119
|
+
timestamp = point.timestamp
|
120
|
+
# Get the properties using label keys from metric
|
121
|
+
# and label values of the time series
|
122
|
+
properties = self._create_properties(
|
123
|
+
time_series,
|
124
|
+
md.label_keys
|
125
|
+
)
|
126
|
+
envelopes.append(
|
127
|
+
self._create_envelope(
|
128
|
+
data_point,
|
129
|
+
timestamp,
|
130
|
+
properties
|
131
|
+
)
|
132
|
+
)
|
133
|
+
return envelopes
|
134
|
+
|
135
|
+
def _create_properties(self, time_series, label_keys):
|
136
|
+
properties = {}
|
137
|
+
# We construct a properties map from the label keys and values. We
|
138
|
+
# assume the ordering is already correct
|
139
|
+
for i in range(len(label_keys)):
|
140
|
+
if time_series.label_values[i].value is None:
|
141
|
+
value = "null"
|
142
|
+
else:
|
143
|
+
value = time_series.label_values[i].value
|
144
|
+
properties[label_keys[i].key] = value
|
145
|
+
return properties
|
146
|
+
|
147
|
+
def _create_envelope(self, data_point, timestamp, properties):
|
148
|
+
envelope = Envelope(
|
149
|
+
iKey=self.options.instrumentation_key,
|
150
|
+
tags=dict(utils.azure_monitor_context),
|
151
|
+
time=timestamp.isoformat(),
|
152
|
+
)
|
153
|
+
if self._is_stats:
|
154
|
+
envelope.name = "Statsbeat"
|
155
|
+
else:
|
156
|
+
envelope.name = "Microsoft.ApplicationInsights.Metric"
|
157
|
+
data = MetricData(
|
158
|
+
metrics=[data_point],
|
159
|
+
properties=properties
|
160
|
+
)
|
161
|
+
envelope.data = Data(baseData=data, baseType="MetricData")
|
162
|
+
return envelope
|
163
|
+
|
164
|
+
def shutdown(self):
|
165
|
+
if self.exporter_thread:
|
166
|
+
# flush if metrics exporter is not for stats
|
167
|
+
if not self._is_stats:
|
168
|
+
self.exporter_thread.close()
|
169
|
+
else:
|
170
|
+
self.exporter_thread.cancel()
|
171
|
+
# Shutsdown storage worker
|
172
|
+
if self.storage:
|
173
|
+
self.storage.close()
|
174
|
+
|
175
|
+
|
176
|
+
def new_metrics_exporter(**options):
|
177
|
+
exporter = MetricsExporter(**options)
|
178
|
+
producers = [stats_module.stats]
|
179
|
+
if exporter.options.enable_standard_metrics:
|
180
|
+
producers.append(standard_metrics.producer)
|
181
|
+
exporter.exporter_thread = transport.get_exporter_thread(
|
182
|
+
producers,
|
183
|
+
exporter,
|
184
|
+
interval=exporter.options.export_interval)
|
185
|
+
# start statsbeat on exporter instantiation
|
186
|
+
if exporter._check_stats_collection():
|
187
|
+
# Import here to avoid circular dependencies
|
188
|
+
from opencensus.ext.azure.statsbeat import statsbeat
|
189
|
+
statsbeat.collect_statsbeat_metrics(exporter.options)
|
190
|
+
return exporter
|
@@ -1,62 +1,62 @@
|
|
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
|
-
from opencensus.ext.azure.metrics_exporter.standard_metrics.cpu import (
|
16
|
-
ProcessorTimeMetric,
|
17
|
-
)
|
18
|
-
from opencensus.ext.azure.metrics_exporter.standard_metrics.http_requests import ( # noqa E501
|
19
|
-
RequestsAvgExecutionMetric,
|
20
|
-
RequestsRateMetric,
|
21
|
-
)
|
22
|
-
from opencensus.ext.azure.metrics_exporter.standard_metrics.memory import (
|
23
|
-
AvailableMemoryMetric,
|
24
|
-
)
|
25
|
-
from opencensus.ext.azure.metrics_exporter.standard_metrics.process import (
|
26
|
-
ProcessCPUMetric,
|
27
|
-
ProcessMemoryMetric,
|
28
|
-
)
|
29
|
-
from opencensus.metrics.export.gauge import Registry
|
30
|
-
from opencensus.metrics.export.metric_producer import MetricProducer
|
31
|
-
|
32
|
-
# List of standard metrics to track
|
33
|
-
STANDARD_METRICS = [AvailableMemoryMetric,
|
34
|
-
ProcessCPUMetric,
|
35
|
-
ProcessMemoryMetric,
|
36
|
-
ProcessorTimeMetric,
|
37
|
-
RequestsAvgExecutionMetric,
|
38
|
-
RequestsRateMetric]
|
39
|
-
|
40
|
-
|
41
|
-
def register_metrics():
|
42
|
-
registry = Registry()
|
43
|
-
for standard_metric in STANDARD_METRICS:
|
44
|
-
metric = standard_metric()
|
45
|
-
registry.add_gauge(metric())
|
46
|
-
return registry
|
47
|
-
|
48
|
-
|
49
|
-
class AzureStandardMetricsProducer(MetricProducer):
|
50
|
-
"""Implementation of the producer of standard metrics.
|
51
|
-
|
52
|
-
Includes Azure specific standard metrics, implemented
|
53
|
-
using gauges.
|
54
|
-
"""
|
55
|
-
def __init__(self):
|
56
|
-
self.registry = register_metrics()
|
57
|
-
|
58
|
-
def get_metrics(self):
|
59
|
-
return self.registry.get_metrics()
|
60
|
-
|
61
|
-
|
62
|
-
producer = AzureStandardMetricsProducer()
|
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
|
+
from opencensus.ext.azure.metrics_exporter.standard_metrics.cpu import (
|
16
|
+
ProcessorTimeMetric,
|
17
|
+
)
|
18
|
+
from opencensus.ext.azure.metrics_exporter.standard_metrics.http_requests import ( # noqa E501
|
19
|
+
RequestsAvgExecutionMetric,
|
20
|
+
RequestsRateMetric,
|
21
|
+
)
|
22
|
+
from opencensus.ext.azure.metrics_exporter.standard_metrics.memory import (
|
23
|
+
AvailableMemoryMetric,
|
24
|
+
)
|
25
|
+
from opencensus.ext.azure.metrics_exporter.standard_metrics.process import (
|
26
|
+
ProcessCPUMetric,
|
27
|
+
ProcessMemoryMetric,
|
28
|
+
)
|
29
|
+
from opencensus.metrics.export.gauge import Registry
|
30
|
+
from opencensus.metrics.export.metric_producer import MetricProducer
|
31
|
+
|
32
|
+
# List of standard metrics to track
|
33
|
+
STANDARD_METRICS = [AvailableMemoryMetric,
|
34
|
+
ProcessCPUMetric,
|
35
|
+
ProcessMemoryMetric,
|
36
|
+
ProcessorTimeMetric,
|
37
|
+
RequestsAvgExecutionMetric,
|
38
|
+
RequestsRateMetric]
|
39
|
+
|
40
|
+
|
41
|
+
def register_metrics():
|
42
|
+
registry = Registry()
|
43
|
+
for standard_metric in STANDARD_METRICS:
|
44
|
+
metric = standard_metric()
|
45
|
+
registry.add_gauge(metric())
|
46
|
+
return registry
|
47
|
+
|
48
|
+
|
49
|
+
class AzureStandardMetricsProducer(MetricProducer):
|
50
|
+
"""Implementation of the producer of standard metrics.
|
51
|
+
|
52
|
+
Includes Azure specific standard metrics, implemented
|
53
|
+
using gauges.
|
54
|
+
"""
|
55
|
+
def __init__(self):
|
56
|
+
self.registry = register_metrics()
|
57
|
+
|
58
|
+
def get_metrics(self):
|
59
|
+
return self.registry.get_metrics()
|
60
|
+
|
61
|
+
|
62
|
+
producer = AzureStandardMetricsProducer()
|
py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py
CHANGED
@@ -1,50 +1,50 @@
|
|
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 psutil
|
16
|
-
|
17
|
-
from opencensus.metrics.export.gauge import DerivedDoubleGauge
|
18
|
-
|
19
|
-
|
20
|
-
class ProcessorTimeMetric(object):
|
21
|
-
NAME = "\\Processor(_Total)\\% Processor Time"
|
22
|
-
|
23
|
-
@staticmethod
|
24
|
-
def get_value():
|
25
|
-
cpu_times_percent = psutil.cpu_times_percent()
|
26
|
-
return 100 - cpu_times_percent.idle
|
27
|
-
|
28
|
-
def __call__(self):
|
29
|
-
""" Returns a derived gauge for the processor time.
|
30
|
-
|
31
|
-
Processor time is defined as a float representing the current system
|
32
|
-
wide CPU utilization minus idle CPU time as a percentage. Idle CPU
|
33
|
-
time is defined as the time spent doing nothing. Return values range
|
34
|
-
from 0.0 to 100.0 inclusive.
|
35
|
-
|
36
|
-
:rtype: :class:`opencensus.metrics.export.gauge.DerivedDoubleGauge`
|
37
|
-
:return: The gauge representing the processor time metric
|
38
|
-
"""
|
39
|
-
gauge = DerivedDoubleGauge(
|
40
|
-
ProcessorTimeMetric.NAME,
|
41
|
-
'Processor time as a percentage',
|
42
|
-
'percentage',
|
43
|
-
[])
|
44
|
-
gauge.create_default_time_series(ProcessorTimeMetric.get_value)
|
45
|
-
# From the psutil docs: the first time this method is called with
|
46
|
-
# interval = None it will return a meaningless 0.0 value which you are
|
47
|
-
# supposed to ignore. Call cpu_percent() once so that the subsequent
|
48
|
-
# calls from the gauge will be meaningful.
|
49
|
-
psutil.cpu_times_percent()
|
50
|
-
return gauge
|
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 psutil
|
16
|
+
|
17
|
+
from opencensus.metrics.export.gauge import DerivedDoubleGauge
|
18
|
+
|
19
|
+
|
20
|
+
class ProcessorTimeMetric(object):
|
21
|
+
NAME = "\\Processor(_Total)\\% Processor Time"
|
22
|
+
|
23
|
+
@staticmethod
|
24
|
+
def get_value():
|
25
|
+
cpu_times_percent = psutil.cpu_times_percent()
|
26
|
+
return 100 - cpu_times_percent.idle
|
27
|
+
|
28
|
+
def __call__(self):
|
29
|
+
""" Returns a derived gauge for the processor time.
|
30
|
+
|
31
|
+
Processor time is defined as a float representing the current system
|
32
|
+
wide CPU utilization minus idle CPU time as a percentage. Idle CPU
|
33
|
+
time is defined as the time spent doing nothing. Return values range
|
34
|
+
from 0.0 to 100.0 inclusive.
|
35
|
+
|
36
|
+
:rtype: :class:`opencensus.metrics.export.gauge.DerivedDoubleGauge`
|
37
|
+
:return: The gauge representing the processor time metric
|
38
|
+
"""
|
39
|
+
gauge = DerivedDoubleGauge(
|
40
|
+
ProcessorTimeMetric.NAME,
|
41
|
+
'Processor time as a percentage',
|
42
|
+
'percentage',
|
43
|
+
[])
|
44
|
+
gauge.create_default_time_series(ProcessorTimeMetric.get_value)
|
45
|
+
# From the psutil docs: the first time this method is called with
|
46
|
+
# interval = None it will return a meaningless 0.0 value which you are
|
47
|
+
# supposed to ignore. Call cpu_percent() once so that the subsequent
|
48
|
+
# calls from the gauge will be meaningful.
|
49
|
+
psutil.cpu_times_percent()
|
50
|
+
return gauge
|