py2docfx 0.1.9.dev1886355__py3-none-any.whl → 0.1.9.dev1897554__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/__main__.py +15 -90
- py2docfx/convert_prepare/constants.py +3 -0
- py2docfx/convert_prepare/environment.py +1 -1
- py2docfx/convert_prepare/generate_document.py +2 -15
- py2docfx/convert_prepare/get_source.py +5 -23
- py2docfx/convert_prepare/git.py +0 -1
- py2docfx/convert_prepare/pack.py +0 -1
- py2docfx/convert_prepare/sphinx_caller.py +23 -39
- py2docfx/convert_prepare/tests/test_environment.py +53 -0
- py2docfx/convert_prepare/tests/test_generate_document.py +2 -0
- py2docfx/convert_prepare/tests/test_sphinx_caller.py +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +32 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +21 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +5 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +69 -28
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +25 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +81 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +281 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +1157 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +724 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +21 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +1599 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +885 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +195 -0
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +30 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/__init__.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_azure_clouds.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_match_conditions.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +201 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +289 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/async_paging.py +151 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/configuration.py +148 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +250 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials_async.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +579 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +229 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +125 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +189 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +229 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +219 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools_async.py +73 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/__init__.py +76 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +270 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +188 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_base.py +140 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_base_async.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +147 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +211 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +563 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +215 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +750 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +120 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +564 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +863 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +169 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_requests_async.py +55 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_bigger_block_size_http_adapters.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +297 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +413 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +303 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/__init__.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +208 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +303 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +180 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +857 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/__init__.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +228 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +421 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +475 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +155 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +102 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_trio.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +418 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +125 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +520 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +311 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +108 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +303 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/__init__.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +420 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +188 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/__init__.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_auth_record.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_bearer_token_provider.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/__init__.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/app_service.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/authorization_code.py +141 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azd_cli.py +284 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_arc.py +123 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_cli.py +258 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_ml.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_pipelines.py +176 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_powershell.py +265 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/browser.py +157 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/certificate.py +182 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/chained.py +219 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/client_assertion.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/client_secret.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/cloud_shell.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +257 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/device_code.py +118 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +183 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/imds.py +129 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/managed_identity.py +185 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/on_behalf_of.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/shared_cache.py +202 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/silent.py +224 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +216 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/workload_identity.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_enums.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_exceptions.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/__init__.py +56 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aad_client.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aad_client_base.py +420 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aadclient_certificate.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/client_credential_base.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/decorators.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/get_token_mixin.py +165 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/interactive.py +302 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/linux_vscode_adapter.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/macos_vscode_adapter.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/managed_identity_base.py +61 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/managed_identity_client.py +151 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_credentials.py +147 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_managed_identity_client.py +210 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/pipeline.py +94 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/shared_token_cache.py +291 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/user_agent.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/utils.py +120 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/win_vscode_adapter.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/__init__.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_bearer_token_provider.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/__init__.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/app_service.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +121 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/authorization_code.py +147 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +232 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_arc.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +209 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_ml.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_pipelines.py +146 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +186 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/certificate.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +192 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/client_assertion.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/client_secret.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/cloud_shell.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +242 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +153 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/imds.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/managed_identity.py +170 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/on_behalf_of.py +135 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/shared_cache.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +127 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/workload_identity.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/__init__.py +32 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/aad_client.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/decorators.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/get_token_mixin.py +165 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/managed_identity_base.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/managed_identity_client.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/cachetools/__init__.py +859 -0
- py2docfx/venv/venv1/Lib/site-packages/cachetools/func.py +121 -0
- py2docfx/venv/venv1/Lib/site-packages/cachetools/keys.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/certifi/__main__.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/__init__.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/_imp_emulation.py +83 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/_shimmed_dist_utils.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/api.py +967 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/backend_ctypes.py +1121 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/cffi_opcode.py +187 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/commontypes.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/cparser.py +1015 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/error.py +31 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/ffiplatform.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/lock.py +30 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/model.py +618 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/pkgconfig.py +121 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/recompiler.py +1598 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/setuptools_ext.py +216 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/vengine_cpy.py +1084 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/vengine_gen.py +679 -0
- py2docfx/venv/venv1/Lib/site-packages/cffi/verifier.py +306 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/__init__.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/__main__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/api.py +668 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cd.py +395 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__init__.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +320 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +1997 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +628 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/models.py +359 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +421 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/exceptions.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +215 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +313 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/__init__.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +291 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +183 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +121 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/__init__.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +107 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_asymmetric.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +169 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +135 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +403 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +118 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +260 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/types.py +111 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +112 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py +27 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/aead.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +177 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +268 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/cmac.py +10 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/constant_time.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +242 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hmac.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/__init__.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +124 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +101 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +302 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +61 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/keywrap.py +177 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +204 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/poly1305.py +11 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/base.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +156 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +336 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +1569 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +92 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +127 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +259 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +1226 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/certificate_transparency.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +2196 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/general_name.py +281 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +465 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +678 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +93 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.py +61 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.py +54 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/__init__.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/_rest_streaming_base.py +118 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +743 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +108 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/datetime_helpers.py +298 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/exceptions.py +670 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/extended_operation.py +225 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/__init__.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/_helpers.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/async_future.py +162 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/base.py +64 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/polling.py +323 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/__init__.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/config.py +175 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/config_async.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/method.py +253 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/method_async.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/routing_header.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/general_helpers.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/grpc_helpers.py +622 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/grpc_helpers_async.py +331 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/iam.py +427 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operation.py +365 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operation_async.py +225 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/__init__.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/abstract_operations_base_client.py +370 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/abstract_operations_client.py +387 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_async_client.py +364 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_client.py +378 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_client_config.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_rest_client_async.py +345 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers_async.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers_base.py +73 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/__init__.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/base.py +282 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/rest.py +473 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/rest_asyncio.py +560 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/page_iterator.py +571 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/page_iterator_async.py +285 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/path_template.py +346 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +373 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_helpers.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_streaming.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_streaming_async.py +89 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/__init__.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +361 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +263 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +325 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +301 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +238 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry_async.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/timeout.py +284 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/universe.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version_header.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/__init__.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_cloud_sdk.py +153 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_credentials_async.py +171 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_credentials_base.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +693 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default_async.py +282 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_exponential_backoff.py +164 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +273 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_jwt_async.py +164 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_oauth2client.py +167 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_refresh_worker.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_service_account_info.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/__init__.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/credentials.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/__init__.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/sessions.py +268 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/api_key.py +76 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/app_engine.py +180 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aws.py +861 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/__init__.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +367 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +496 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/credentials.py +522 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/__init__.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/_cryptography_rsa.py +151 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/_python_rsa.py +175 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/base.py +127 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/es256.py +175 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/rsa.py +30 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/downscoped.py +512 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/environment_vars.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/exceptions.py +108 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/external_account.py +628 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/external_account_authorized_user.py +380 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +439 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +462 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/jwt.py +878 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/metrics.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/pluggable.py +429 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +103 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +391 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_custom_tls_signer.py +283 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_mtls_helper.py +407 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/grpc.py +343 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/mtls.py +112 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +600 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +444 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_grpc.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_grpc_pb2.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_pb2_grpc.py +341 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.py +95 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/__init__.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +500 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client_async.py +286 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_credentials_async.py +118 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_id_token_async.py +285 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_reauth_async.py +328 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_service_account_async.py +132 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/challenges.py +281 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/credentials.py +614 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/gdch_credentials.py +251 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +340 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/reauth.py +369 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +846 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/sts.py +176 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/utils.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_handler.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_handler_factory.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +156 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +10 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +1511 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +3169 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +1355 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/__init__.py +7 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +420 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/api_implementation.py +142 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +117 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +677 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +1036 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/encoder.py +806 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/enum_type_wrapper.py +112 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/extension_dict.py +194 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +310 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/message_listener.py +55 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +1580 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +408 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +678 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/wire_format.py +245 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +1069 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +422 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +237 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_builder.py +111 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_json.py +83 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/pyext/cpp_message.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +123 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +213 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service_reflection.py +272 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +197 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_encoding.py +106 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +1864 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/__init__.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/codec.py +122 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/compat.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/core.py +437 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/idnadata.py +4243 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/intranges.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/package_data.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/idna/uts46data.py +8681 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +812 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +121 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +218 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +161 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +195 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +190 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/__init__.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +860 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwk.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +335 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +377 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +64 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/jwk_set_cache.py +31 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +124 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/types.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/warnings.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/__main__.py +343 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +2432 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/auth_scheme.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/authority.py +225 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +265 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +122 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/exceptions.py +38 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +286 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +649 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/mex.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/__init__.py +7 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/assertion.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/authcode.py +379 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/http.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oauth2.py +865 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oidc.py +338 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/region.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/telemetry.py +78 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +148 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +418 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_request.py +129 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_response.py +94 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +134 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/osx.py +252 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/persistence.py +344 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +88 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/windows.py +123 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/backports/__init__.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/configuration/__init__.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/http_handler/__init__.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/aws_identity_doc_utils.py +95 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/gcp_metadata_config.py +115 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/k8s_utils.py +64 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/monitored_resource.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/resource/__init__.py +218 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/runtime_context/__init__.py +177 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/runtime_context/version.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/schedule/__init__.py +149 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/async_.py +231 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/base.py +31 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/sync.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/utils/__init__.py +131 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/common/version/__init__.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +358 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/threading/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/threading/trace.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/log/__init__.py +115 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/cumulative.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/gauge.py +513 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric_descriptor.py +174 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric_producer.py +81 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/point.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/summary.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/time_series.py +90 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/value.py +307 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/label_key.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/label_value.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/transport.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/aggregation.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/aggregation_data.py +399 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/base_exporter.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/bucket_boundaries.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/execution_context.py +32 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measure.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measure_to_view_map.py +163 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measurement.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measurement_map.py +118 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/metric_utils.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/stats.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/stats_recorder.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view.py +106 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view_data.py +96 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view_manager.py +55 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/__init__.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/propagation/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/propagation/binary_serializer.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag.py +38 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_key.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_map.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_value.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/validation.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/__init__.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/attributes.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/attributes_helper.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/base_exporter.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/base_span.py +109 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/blank_span.py +165 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/config_integration.py +38 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/exceptions_status.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/execution_context.py +89 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/file_exporter.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/integrations.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/link.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/logging_exporter.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/print_exporter.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/b3_format.py +117 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/binary_format.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/google_cloud_format.py +128 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/text_format.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/trace_context_http_header_format.py +115 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/tracestate_string_format.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/samplers/__init__.py +94 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span.py +457 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span_context.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span_data.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/stack_trace.py +189 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/status.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/time_event.py +117 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/trace_options.py +78 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracer.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/base.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/context_tracer.py +176 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/noop_tracer.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracestate.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/utils.py +128 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +122 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +27 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +154 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +236 -0
- py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +569 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/__init__.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/_file_info.py +196 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/_package_info.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/datetime_helpers.py +225 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +161 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/fields.py +165 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/__init__.py +18 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/__init__.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/maps.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/marshal.py +297 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/__init__.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/bytes.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/dates.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/enums.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/field_mask.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/stringy_numbers.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/struct.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/wrappers.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/message.py +998 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/modules.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/primitives.py +38 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/utils.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/proto/version.py +15 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/__init__.py +2486 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_common.py +994 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_compat.py +477 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_psaix.py +579 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_psbsd.py +985 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_pslinux.py +2375 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_psosx.py +552 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_psposix.py +243 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_pssunos.py +753 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/_pswindows.py +1174 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/__init__.py +2113 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/__main__.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_aix.py +115 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_bsd.py +592 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_connections.py +567 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_contracts.py +339 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_linux.py +2348 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_memleaks.py +493 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_misc.py +1058 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_osx.py +192 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_posix.py +496 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_process.py +1746 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_process_all.py +543 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_sunos.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_system.py +987 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_testutils.py +587 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_unicode.py +369 -0
- py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_windows.py +934 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/__init__.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/decoder.py +2189 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/encoder.py +954 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/eoo.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/decoder.py +149 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/encoder.py +331 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/decoder.py +120 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/encoder.py +126 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/decoder.py +244 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/encoder.py +285 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/streaming.py +234 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/compat/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/compat/integer.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/debug.py +146 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/error.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/base.py +699 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/char.py +288 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/constraint.py +751 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/error.py +11 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/namedtype.py +550 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/namedval.py +192 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/opentype.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/tag.py +335 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/tagmap.py +96 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/univ.py +3327 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/useful.py +189 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/__init__.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/pem.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1155.py +96 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1157.py +126 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1901.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1902.py +129 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1905.py +135 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2251.py +563 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2314.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2315.py +294 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2437.py +69 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2459.py +1339 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2511.py +258 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2560.py +225 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2631.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2634.py +336 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2876.py +56 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2985.py +588 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2986.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3058.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3114.py +77 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3125.py +469 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3161.py +142 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3274.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3279.py +260 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3280.py +1543 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3281.py +331 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3370.py +146 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3412.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3414.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3447.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3537.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3560.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3565.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3657.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3709.py +207 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3739.py +203 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3770.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3779.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3820.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3852.py +706 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4010.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4043.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4055.py +258 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4073.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4108.py +350 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4210.py +803 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4211.py +396 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4334.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4357.py +477 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4387.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4476.py +93 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4490.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4491.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4683.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4985.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5035.py +199 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5083.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5084.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5126.py +577 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5208.py +56 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5275.py +404 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5280.py +1658 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5480.py +190 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5636.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5639.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5649.py +33 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5652.py +761 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5697.py +70 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5751.py +124 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5752.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5753.py +157 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5755.py +398 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5913.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5914.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5915.py +32 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5916.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5917.py +55 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5924.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5934.py +786 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5940.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5958.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5990.py +237 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6010.py +88 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6019.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6031.py +469 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6032.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6120.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6170.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6187.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6210.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6211.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6402.py +628 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6482.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6486.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6487.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6664.py +147 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6955.py +108 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6960.py +223 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7030.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7191.py +261 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7229.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7292.py +357 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7296.py +32 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7508.py +90 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7585.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7633.py +38 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7773.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7894.py +92 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7906.py +736 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7914.py +49 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8017.py +153 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8018.py +260 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8103.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8209.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8226.py +149 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8358.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8360.py +44 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8398.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8410.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8418.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8419.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8479.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8494.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8520.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8619.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8649.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8692.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8696.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8702.py +105 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8708.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8769.py +21 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/__init__.py +93 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/_ast_gen.py +336 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/_build_tables.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ast_transforms.py +164 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/c_ast.py +1125 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/c_generator.py +502 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/c_lexer.py +555 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/c_parser.py +1950 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/lextab.py +10 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/__init__.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/cpp.py +905 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/ctokens.py +133 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/lex.py +1099 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/yacc.py +3494 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/ygen.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/plyparser.py +133 -0
- py2docfx/venv/venv1/Lib/site-packages/pycparser/yacctab.py +369 -0
- py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +258 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +185 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +73 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +138 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +95 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +159 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +133 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +244 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +370 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +105 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +76 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +189 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +106 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +133 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +32 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +1098 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +54 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +139 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +156 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +242 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +677 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +414 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +54 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +189 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +76 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +235 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +103 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +646 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +299 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +380 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +511 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +172 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +995 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +554 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/mdi_pychecker.py +850 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +686 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +758 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +70 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +171 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +281 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +589 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +95 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +536 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +218 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +166 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +585 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +501 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +280 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +151 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +597 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +178 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +365 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +292 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +565 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +312 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +511 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +704 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +190 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +1983 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +845 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +323 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +506 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +353 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +382 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +80 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/__init__.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/_internal_utils.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/adapters.py +719 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/api.py +157 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/auth.py +314 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/certs.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +94 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/cookies.py +561 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/exceptions.py +151 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/help.py +134 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/hooks.py +33 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/models.py +1037 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/packages.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/sessions.py +831 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/status_codes.py +128 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/structures.py +99 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +1096 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +554 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +653 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +721 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +996 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +646 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +280 -0
- py2docfx/venv/venv1/Lib/site-packages/six.py +998 -0
- py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +3641 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/__init__.py +211 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_base_connection.py +172 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_collections.py +483 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_request_methods.py +278 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +1033 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/connectionpool.py +1182 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/__init__.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/connection.py +254 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +418 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/request.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +285 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +552 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/socks.py +228 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +321 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/fields.py +341 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/filepost.py +89 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/__init__.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +356 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/probe.py +87 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +637 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +1265 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/__init__.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/connection.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/proxy.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +256 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/response.py +101 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/retry.py +533 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +513 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +159 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssltransport.py +276 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/timeout.py +275 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/url.py +471 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/util.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/wait.py +124 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +57 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +122 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +83 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +43 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +127 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +71 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +210 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +26 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +18 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +246 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +33 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +101 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +114 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +168 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +110 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +51 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +171 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +42 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +37 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +65 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +61 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +336 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +107 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +28 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +135 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +131 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +132 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +103 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +158 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +200 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +184 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +155 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +72 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +117 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +144 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +135 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +41 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +177 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +107 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +445 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +409 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +136 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +275 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +86 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +25 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +123 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +230 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +164 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +1551 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +956 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +295 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +731 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +291 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +124 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +161 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +395 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +413 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +477 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +7 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +5083 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +1925 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +226 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +957 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +1086 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +627 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +571 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +212 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +673 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +1075 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +1018 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +235 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +3040 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +1079 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +1347 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +236 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +594 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +156 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +201 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +46 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +610 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +111 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +167 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +126 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +213 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +264 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +111 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +166 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +229 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +269 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +92 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +131 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +1080 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +228 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +336 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +91 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +148 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +70 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +366 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +174 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +223 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +21 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +134 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +685 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +771 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +620 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +699 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +807 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +1398 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +449 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +183 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +277 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +103 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +96 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +92 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +169 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +434 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +217 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +368 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +137 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +78 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +626 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +335 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +1019 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +70 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +243 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +99 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +26 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +817 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +678 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +229 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +47 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +136 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +36 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +182 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +142 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +97 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +88 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +243 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +99 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +115 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +185 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +99 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +169 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +159 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +74 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +100 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +85 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +126 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +139 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +142 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +149 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +140 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +201 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +138 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +160 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testNetscape.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +227 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +81 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +782 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +52 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +272 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +88 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +147 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +18 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +321 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +55 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +579 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +40 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +34 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +264 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +226 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +35 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +113 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +340 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +565 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +152 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +274 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +252 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +239 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +473 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +275 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +238 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +136 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +59 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +212 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +583 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +178 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +105 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +235 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +263 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +1291 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +79 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +443 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +54 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +104 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +146 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +186 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +240 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +86 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +48 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +119 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +60 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +402 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +300 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +110 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +261 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +21 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +98 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +874 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +1025 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +211 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +838 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +83 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +179 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +67 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +91 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +56 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +73 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +143 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +126 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +122 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +84 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +188 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +866 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +82 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +972 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +1615 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +21 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +69 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +66 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +68 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +50 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +3 -0
- py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +778 -0
- py2docfx/venv/venv1/Scripts/pywin32_testall.py +125 -0
- py2docfx-0.1.9.dev1897554.dist-info/METADATA +16 -0
- py2docfx-0.1.9.dev1897554.dist-info/RECORD +4241 -0
- py2docfx/venv/venv0/Lib/site-packages/setuptools/build_meta.py +0 -530
- py2docfx/venv/venv0/Lib/site-packages/setuptools/command/bdist_wheel.py +0 -635
- py2docfx/venv/venv0/Lib/site-packages/setuptools/command/egg_info.py +0 -717
- py2docfx/venv/venv0/Lib/site-packages/setuptools/dist.py +0 -955
- py2docfx/venv/venv0/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +0 -621
- py2docfx/venv/venv0/Lib/site-packages/setuptools/tests/test_dist.py +0 -280
- py2docfx-0.1.9.dev1886355.dist-info/METADATA +0 -16
- py2docfx-0.1.9.dev1886355.dist-info/RECORD +0 -2791
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/_distutils_hack/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/_distutils_hack/override.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/operations → venv1/Lib/site-packages/azure/core/tracing/ext}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/operations/build/__init__.py → venv1/Lib/site-packages/google/auth/crypt/_helpers.py} +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution → venv1/Lib/site-packages/google/protobuf/compiler}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution/legacy → venv1/Lib/site-packages/google/protobuf/pyext}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution/resolvelib → venv1/Lib/site-packages/google/protobuf/testdata}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/utils → venv1/Lib/site-packages/google/protobuf/util}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/chardet/cli → venv1/Lib/site-packages/opencensus/common/monitored_resource}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/chardet/metadata → venv1/Lib/site-packages/opencensus/metrics}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/resolvelib/compat → venv1/Lib/site-packages/opencensus/metrics/export}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__pip-runner__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/build_env.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/base_command.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/command_context.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/main.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/req_command.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/spinners.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/check.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/completion.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/configuration.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/debug.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/download.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/freeze.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/hash.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/help.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/index.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/inspect.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/list.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/search.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/show.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/configuration.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/base.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/installed.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/collector.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/package_finder.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/sources.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/base.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/main.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/_json.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/base.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/candidate.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/direct_url.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/format_control.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/index.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/installation_report.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/link.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/scheme.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/search_scope.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/target_python.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/auth.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/download.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/session.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/contrib → venv1/Lib/site-packages/pip/_internal/operations}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport → venv1/Lib/site-packages/pip/_internal/operations/build}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/check.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/freeze.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/prepare.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/pyproject.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/constructors.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_file.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_set.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/packages → venv1/Lib/site-packages/pip/_internal/resolution}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/base.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/packages/backports → venv1/Lib/site-packages/pip/_internal/resolution/legacy}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/pkg_resources/tests → venv1/Lib/site-packages/pip/_internal/resolution/resolvelib}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_distutils/tests/compat → venv1/Lib/site-packages/pip/_internal/utils}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/_log.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/datetime.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/encoding.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/glibc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/hashes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/misc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/models.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/packaging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/urls.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/git.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/wheel_builder.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/core.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/big5freq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/big5prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat → venv1/Lib/site-packages/pip/_vendor/chardet/cli}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/codingstatemachinedict.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/enums.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/escprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/escsm.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/johabfreq.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/johabprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/macromanprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat → venv1/Lib/site-packages/pip/_vendor/chardet/metadata}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/resultdict.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/utf1632prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/ansi.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/initialise.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/ansi_test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/initialise_test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/isatty_test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/winterm_test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/win32.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/winterm.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/database.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/index.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/distro.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/codec.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/core.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/__about__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/console.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/style.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/token.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/actions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/common.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/core.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/diagram/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/helpers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/results.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/testing.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/unicode.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/api.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/auth.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/certs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/help.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/models.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/packages.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/structures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources → venv1/Lib/site-packages/pip/_vendor/resolvelib}/compat/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/abc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/align.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/bar.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/box.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/cells.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/color.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/columns.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/console.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/containers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/control.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/errors.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/json.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/layout.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/live.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/markup.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/measure.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/padding.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/pager.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/palette.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/panel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/progress.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/region.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/repr.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/rule.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/scope.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/screen.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/segment.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/status.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/style.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/styled.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/table.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/text.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/theme.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/themes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/tree.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/six.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/_utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/after.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/before.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/nap.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/retry.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/stop.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/wait.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/future → venv1/Lib/site-packages/pip/_vendor/urllib3/contrib}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests → venv1/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat → venv1/Lib/site-packages/pip/_vendor/urllib3/packages}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01 → venv1/Lib/site-packages/pip/_vendor/urllib3/packages/backports}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/labels.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/tests.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory → venv1/Lib/site-packages/pkg_resources/tests}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_resources.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_working_set.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02 → venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one → venv1/Lib/site-packages/pythonwin/pywin/dialogs}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two → venv1/Lib/site-packages/pythonwin/pywin/docking}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/inflect/compat → venv1/Lib/site-packages/pythonwin/pywin/framework}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/wheel/vendored → venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging → venv1/Lib/site-packages/pythonwin/pywin/mfc}/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/zipp/compat → venv1/Lib/site-packages/pythonwin/pywin/tools}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_core_metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_log.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_macos_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_modified.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/archive_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/ccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/cmd.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_clib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_ext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_py.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/check.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/clean.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/config.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_data.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_headers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_lib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/py38.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/core.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/debug.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dep_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dir_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/errors.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/extension.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/file_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/filelist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/log.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/spawn.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/__init__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools → venv1/Lib/site-packages/setuptools/_distutils/tests}/compat/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/compat/py38.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/support.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_ccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_check.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_core.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_log.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_mingwccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_unixccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/text_file.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/unixccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/versionpredicate.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/zosccompiler.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_entry_points.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_imp.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_importlib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_itertools.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_normalization.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_path.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_reqs.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests → venv1/Lib/site-packages/setuptools/_vendor/backports/tarfile}/compat/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests/config → venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests/integration → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -0
- /py2docfx/venv/{venv0/Lib/site-packages/wheel/vendored/packaging → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests}/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/context.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_re.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_types.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typing_extensions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/glob.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/archive_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/_requirestxt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/alias.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/bdist_egg.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/bdist_rpm.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_clib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_ext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_py.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/develop.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/dist_info.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/easy_install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/editable_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_egg_info.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_lib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/rotate.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/saveopts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/setopt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/test.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py310.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py311.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py312.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/expand.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/pyprojecttoml.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/setupcfg.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/depends.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/discovery.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/errors.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/extension.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/glob.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/installer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/launch.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/modified.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/monkey.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/msvc.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/namespaces.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/package_index.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/sandbox.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/compat/py39.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/downloads/preload.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_expand.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/contexts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/environment.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/fixtures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/integration/helpers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/mod_with_constant.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/namespaces.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/script-with-bom.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/server.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_archive_util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_bdist_egg.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_clib.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_ext.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_py.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_config_discovery.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_core_metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_depends.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_develop.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_editable_install.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_egg_info.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_extern.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_find_packages.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_find_py_modules.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_glob.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_install_scripts.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_manifest.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_namespaces.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_sdist.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_setopt.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_setuptools.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_unicode_utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_virtualenv.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_warnings.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/text.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/textwrap.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/unicode_utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/warnings.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/windows_support.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/__main__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/_bdist_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/_setuptools_logging.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/bdist_wheel.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/__init__.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/convert.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/pack.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/unpack.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/macosx_libfile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/metadata.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/util.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/version.py +0 -0
- /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/wheelfile.py +0 -0
- {py2docfx-0.1.9.dev1886355.dist-info → py2docfx-0.1.9.dev1897554.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.9.dev1886355.dist-info → py2docfx-0.1.9.dev1897554.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2113 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
|
4
|
+
# Use of this source code is governed by a BSD-style license that can be
|
5
|
+
# found in the LICENSE file.
|
6
|
+
|
7
|
+
"""Test utilities."""
|
8
|
+
|
9
|
+
from __future__ import print_function
|
10
|
+
|
11
|
+
import atexit
|
12
|
+
import contextlib
|
13
|
+
import ctypes
|
14
|
+
import errno
|
15
|
+
import functools
|
16
|
+
import gc
|
17
|
+
import os
|
18
|
+
import platform
|
19
|
+
import random
|
20
|
+
import re
|
21
|
+
import select
|
22
|
+
import shlex
|
23
|
+
import shutil
|
24
|
+
import signal
|
25
|
+
import socket
|
26
|
+
import stat
|
27
|
+
import subprocess
|
28
|
+
import sys
|
29
|
+
import tempfile
|
30
|
+
import textwrap
|
31
|
+
import threading
|
32
|
+
import time
|
33
|
+
import unittest
|
34
|
+
import warnings
|
35
|
+
from socket import AF_INET
|
36
|
+
from socket import AF_INET6
|
37
|
+
from socket import SOCK_STREAM
|
38
|
+
|
39
|
+
|
40
|
+
try:
|
41
|
+
import pytest
|
42
|
+
except ImportError:
|
43
|
+
pytest = None
|
44
|
+
|
45
|
+
import psutil
|
46
|
+
from psutil import AIX
|
47
|
+
from psutil import LINUX
|
48
|
+
from psutil import MACOS
|
49
|
+
from psutil import NETBSD
|
50
|
+
from psutil import OPENBSD
|
51
|
+
from psutil import POSIX
|
52
|
+
from psutil import SUNOS
|
53
|
+
from psutil import WINDOWS
|
54
|
+
from psutil._common import bytes2human
|
55
|
+
from psutil._common import debug
|
56
|
+
from psutil._common import memoize
|
57
|
+
from psutil._common import print_color
|
58
|
+
from psutil._common import supports_ipv6
|
59
|
+
from psutil._compat import PY3
|
60
|
+
from psutil._compat import FileExistsError
|
61
|
+
from psutil._compat import FileNotFoundError
|
62
|
+
from psutil._compat import range
|
63
|
+
from psutil._compat import super
|
64
|
+
from psutil._compat import unicode
|
65
|
+
from psutil._compat import which
|
66
|
+
|
67
|
+
|
68
|
+
try:
|
69
|
+
from unittest import mock # py3
|
70
|
+
except ImportError:
|
71
|
+
with warnings.catch_warnings():
|
72
|
+
warnings.simplefilter("ignore")
|
73
|
+
import mock # NOQA - requires "pip install mock"
|
74
|
+
|
75
|
+
if PY3:
|
76
|
+
import enum
|
77
|
+
else:
|
78
|
+
import unittest2 as unittest
|
79
|
+
|
80
|
+
enum = None
|
81
|
+
|
82
|
+
if POSIX:
|
83
|
+
from psutil._psposix import wait_pid
|
84
|
+
|
85
|
+
|
86
|
+
# fmt: off
|
87
|
+
__all__ = [
|
88
|
+
# constants
|
89
|
+
'APPVEYOR', 'DEVNULL', 'GLOBAL_TIMEOUT', 'TOLERANCE_SYS_MEM', 'NO_RETRIES',
|
90
|
+
'PYPY', 'PYTHON_EXE', 'PYTHON_EXE_ENV', 'ROOT_DIR', 'SCRIPTS_DIR',
|
91
|
+
'TESTFN_PREFIX', 'UNICODE_SUFFIX', 'INVALID_UNICODE_SUFFIX',
|
92
|
+
'CI_TESTING', 'VALID_PROC_STATUSES', 'TOLERANCE_DISK_USAGE', 'IS_64BIT',
|
93
|
+
"HAS_CPU_AFFINITY", "HAS_CPU_FREQ", "HAS_ENVIRON", "HAS_PROC_IO_COUNTERS",
|
94
|
+
"HAS_IONICE", "HAS_MEMORY_MAPS", "HAS_PROC_CPU_NUM", "HAS_RLIMIT",
|
95
|
+
"HAS_SENSORS_BATTERY", "HAS_BATTERY", "HAS_SENSORS_FANS",
|
96
|
+
"HAS_SENSORS_TEMPERATURES", "HAS_NET_CONNECTIONS_UNIX", "MACOS_11PLUS",
|
97
|
+
"MACOS_12PLUS", "COVERAGE", 'AARCH64', "QEMU_USER", "PYTEST_PARALLEL",
|
98
|
+
# subprocesses
|
99
|
+
'pyrun', 'terminate', 'reap_children', 'spawn_testproc', 'spawn_zombie',
|
100
|
+
'spawn_children_pair',
|
101
|
+
# threads
|
102
|
+
'ThreadTask',
|
103
|
+
# test utils
|
104
|
+
'unittest', 'skip_on_access_denied', 'skip_on_not_implemented',
|
105
|
+
'retry_on_failure', 'TestMemoryLeak', 'PsutilTestCase',
|
106
|
+
'process_namespace', 'system_namespace', 'print_sysinfo',
|
107
|
+
'is_win_secure_system_proc', 'fake_pytest',
|
108
|
+
# fs utils
|
109
|
+
'chdir', 'safe_rmpath', 'create_py_exe', 'create_c_exe', 'get_testfn',
|
110
|
+
# os
|
111
|
+
'get_winver', 'kernel_version',
|
112
|
+
# sync primitives
|
113
|
+
'call_until', 'wait_for_pid', 'wait_for_file',
|
114
|
+
# network
|
115
|
+
'check_net_address', 'filter_proc_net_connections',
|
116
|
+
'get_free_port', 'bind_socket', 'bind_unix_socket', 'tcp_socketpair',
|
117
|
+
'unix_socketpair', 'create_sockets',
|
118
|
+
# compat
|
119
|
+
'reload_module', 'import_module_by_path',
|
120
|
+
# others
|
121
|
+
'warn', 'copyload_shared_lib', 'is_namedtuple',
|
122
|
+
]
|
123
|
+
# fmt: on
|
124
|
+
|
125
|
+
|
126
|
+
# ===================================================================
|
127
|
+
# --- constants
|
128
|
+
# ===================================================================
|
129
|
+
|
130
|
+
# --- platforms
|
131
|
+
|
132
|
+
PYPY = '__pypy__' in sys.builtin_module_names
|
133
|
+
# whether we're running this test suite on a Continuous Integration service
|
134
|
+
APPVEYOR = 'APPVEYOR' in os.environ
|
135
|
+
GITHUB_ACTIONS = 'GITHUB_ACTIONS' in os.environ or 'CIBUILDWHEEL' in os.environ
|
136
|
+
CI_TESTING = APPVEYOR or GITHUB_ACTIONS
|
137
|
+
COVERAGE = 'COVERAGE_RUN' in os.environ
|
138
|
+
PYTEST_PARALLEL = "PYTEST_XDIST_WORKER" in os.environ # `make test-parallel`
|
139
|
+
if LINUX and GITHUB_ACTIONS:
|
140
|
+
with open('/proc/1/cmdline') as f:
|
141
|
+
QEMU_USER = "/bin/qemu-" in f.read()
|
142
|
+
else:
|
143
|
+
QEMU_USER = False
|
144
|
+
# are we a 64 bit process?
|
145
|
+
IS_64BIT = sys.maxsize > 2**32
|
146
|
+
AARCH64 = platform.machine() == "aarch64"
|
147
|
+
|
148
|
+
|
149
|
+
@memoize
|
150
|
+
def macos_version():
|
151
|
+
version_str = platform.mac_ver()[0]
|
152
|
+
version = tuple(map(int, version_str.split(".")[:2]))
|
153
|
+
if version == (10, 16):
|
154
|
+
# When built against an older macOS SDK, Python will report
|
155
|
+
# macOS 10.16 instead of the real version.
|
156
|
+
version_str = subprocess.check_output(
|
157
|
+
[
|
158
|
+
sys.executable,
|
159
|
+
"-sS",
|
160
|
+
"-c",
|
161
|
+
"import platform; print(platform.mac_ver()[0])",
|
162
|
+
],
|
163
|
+
env={"SYSTEM_VERSION_COMPAT": "0"},
|
164
|
+
universal_newlines=True,
|
165
|
+
)
|
166
|
+
version = tuple(map(int, version_str.split(".")[:2]))
|
167
|
+
return version
|
168
|
+
|
169
|
+
|
170
|
+
if MACOS:
|
171
|
+
MACOS_11PLUS = macos_version() > (10, 15)
|
172
|
+
MACOS_12PLUS = macos_version() >= (12, 0)
|
173
|
+
else:
|
174
|
+
MACOS_11PLUS = False
|
175
|
+
MACOS_12PLUS = False
|
176
|
+
|
177
|
+
|
178
|
+
# --- configurable defaults
|
179
|
+
|
180
|
+
# how many times retry_on_failure() decorator will retry
|
181
|
+
NO_RETRIES = 10
|
182
|
+
# bytes tolerance for system-wide related tests
|
183
|
+
TOLERANCE_SYS_MEM = 5 * 1024 * 1024 # 5MB
|
184
|
+
TOLERANCE_DISK_USAGE = 10 * 1024 * 1024 # 10MB
|
185
|
+
# the timeout used in functions which have to wait
|
186
|
+
GLOBAL_TIMEOUT = 5
|
187
|
+
# be more tolerant if we're on CI in order to avoid false positives
|
188
|
+
if CI_TESTING:
|
189
|
+
NO_RETRIES *= 3
|
190
|
+
GLOBAL_TIMEOUT *= 3
|
191
|
+
TOLERANCE_SYS_MEM *= 4
|
192
|
+
TOLERANCE_DISK_USAGE *= 3
|
193
|
+
|
194
|
+
# --- file names
|
195
|
+
|
196
|
+
# Disambiguate TESTFN for parallel testing.
|
197
|
+
if os.name == 'java':
|
198
|
+
# Jython disallows @ in module names
|
199
|
+
TESTFN_PREFIX = '$psutil-%s-' % os.getpid()
|
200
|
+
else:
|
201
|
+
TESTFN_PREFIX = '@psutil-%s-' % os.getpid()
|
202
|
+
UNICODE_SUFFIX = u"-ƒőő"
|
203
|
+
# An invalid unicode string.
|
204
|
+
if PY3:
|
205
|
+
INVALID_UNICODE_SUFFIX = b"f\xc0\x80".decode('utf8', 'surrogateescape')
|
206
|
+
else:
|
207
|
+
INVALID_UNICODE_SUFFIX = "f\xc0\x80"
|
208
|
+
ASCII_FS = sys.getfilesystemencoding().lower() in ('ascii', 'us-ascii')
|
209
|
+
|
210
|
+
# --- paths
|
211
|
+
|
212
|
+
ROOT_DIR = os.path.realpath(
|
213
|
+
os.path.join(os.path.dirname(__file__), '..', '..')
|
214
|
+
)
|
215
|
+
SCRIPTS_DIR = os.environ.get(
|
216
|
+
"PSUTIL_SCRIPTS_DIR", os.path.join(ROOT_DIR, 'scripts')
|
217
|
+
)
|
218
|
+
HERE = os.path.realpath(os.path.dirname(__file__))
|
219
|
+
|
220
|
+
# --- support
|
221
|
+
|
222
|
+
HAS_CPU_AFFINITY = hasattr(psutil.Process, "cpu_affinity")
|
223
|
+
HAS_CPU_FREQ = hasattr(psutil, "cpu_freq")
|
224
|
+
HAS_ENVIRON = hasattr(psutil.Process, "environ")
|
225
|
+
HAS_GETLOADAVG = hasattr(psutil, "getloadavg")
|
226
|
+
HAS_IONICE = hasattr(psutil.Process, "ionice")
|
227
|
+
HAS_MEMORY_MAPS = hasattr(psutil.Process, "memory_maps")
|
228
|
+
HAS_NET_CONNECTIONS_UNIX = POSIX and not SUNOS
|
229
|
+
HAS_NET_IO_COUNTERS = hasattr(psutil, "net_io_counters")
|
230
|
+
HAS_PROC_CPU_NUM = hasattr(psutil.Process, "cpu_num")
|
231
|
+
HAS_PROC_IO_COUNTERS = hasattr(psutil.Process, "io_counters")
|
232
|
+
HAS_RLIMIT = hasattr(psutil.Process, "rlimit")
|
233
|
+
HAS_SENSORS_BATTERY = hasattr(psutil, "sensors_battery")
|
234
|
+
try:
|
235
|
+
HAS_BATTERY = HAS_SENSORS_BATTERY and bool(psutil.sensors_battery())
|
236
|
+
except Exception: # noqa: BLE001
|
237
|
+
HAS_BATTERY = False
|
238
|
+
HAS_SENSORS_FANS = hasattr(psutil, "sensors_fans")
|
239
|
+
HAS_SENSORS_TEMPERATURES = hasattr(psutil, "sensors_temperatures")
|
240
|
+
HAS_THREADS = hasattr(psutil.Process, "threads")
|
241
|
+
SKIP_SYSCONS = (MACOS or AIX) and os.getuid() != 0
|
242
|
+
|
243
|
+
# --- misc
|
244
|
+
|
245
|
+
|
246
|
+
def _get_py_exe():
|
247
|
+
def attempt(exe):
|
248
|
+
try:
|
249
|
+
subprocess.check_call(
|
250
|
+
[exe, "-V"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
251
|
+
)
|
252
|
+
except subprocess.CalledProcessError:
|
253
|
+
return None
|
254
|
+
else:
|
255
|
+
return exe
|
256
|
+
|
257
|
+
env = os.environ.copy()
|
258
|
+
|
259
|
+
# On Windows, starting with python 3.7, virtual environments use a
|
260
|
+
# venv launcher startup process. This does not play well when
|
261
|
+
# counting spawned processes, or when relying on the PID of the
|
262
|
+
# spawned process to do some checks, e.g. connections check per PID.
|
263
|
+
# Let's use the base python in this case.
|
264
|
+
base = getattr(sys, "_base_executable", None)
|
265
|
+
if WINDOWS and sys.version_info >= (3, 7) and base is not None:
|
266
|
+
# We need to set __PYVENV_LAUNCHER__ to sys.executable for the
|
267
|
+
# base python executable to know about the environment.
|
268
|
+
env["__PYVENV_LAUNCHER__"] = sys.executable
|
269
|
+
return base, env
|
270
|
+
elif GITHUB_ACTIONS:
|
271
|
+
return sys.executable, env
|
272
|
+
elif MACOS:
|
273
|
+
exe = (
|
274
|
+
attempt(sys.executable)
|
275
|
+
or attempt(os.path.realpath(sys.executable))
|
276
|
+
or attempt(which("python%s.%s" % sys.version_info[:2]))
|
277
|
+
or attempt(psutil.Process().exe())
|
278
|
+
)
|
279
|
+
if not exe:
|
280
|
+
raise ValueError("can't find python exe real abspath")
|
281
|
+
return exe, env
|
282
|
+
else:
|
283
|
+
exe = os.path.realpath(sys.executable)
|
284
|
+
assert os.path.exists(exe), exe
|
285
|
+
return exe, env
|
286
|
+
|
287
|
+
|
288
|
+
PYTHON_EXE, PYTHON_EXE_ENV = _get_py_exe()
|
289
|
+
DEVNULL = open(os.devnull, 'r+')
|
290
|
+
atexit.register(DEVNULL.close)
|
291
|
+
|
292
|
+
VALID_PROC_STATUSES = [
|
293
|
+
getattr(psutil, x) for x in dir(psutil) if x.startswith('STATUS_')
|
294
|
+
]
|
295
|
+
AF_UNIX = getattr(socket, "AF_UNIX", object())
|
296
|
+
|
297
|
+
_subprocesses_started = set()
|
298
|
+
_pids_started = set()
|
299
|
+
|
300
|
+
|
301
|
+
# ===================================================================
|
302
|
+
# --- threads
|
303
|
+
# ===================================================================
|
304
|
+
|
305
|
+
|
306
|
+
class ThreadTask(threading.Thread):
|
307
|
+
"""A thread task which does nothing expect staying alive."""
|
308
|
+
|
309
|
+
def __init__(self):
|
310
|
+
super().__init__()
|
311
|
+
self._running = False
|
312
|
+
self._interval = 0.001
|
313
|
+
self._flag = threading.Event()
|
314
|
+
|
315
|
+
def __repr__(self):
|
316
|
+
name = self.__class__.__name__
|
317
|
+
return '<%s running=%s at %#x>' % (name, self._running, id(self))
|
318
|
+
|
319
|
+
def __enter__(self):
|
320
|
+
self.start()
|
321
|
+
return self
|
322
|
+
|
323
|
+
def __exit__(self, *args, **kwargs):
|
324
|
+
self.stop()
|
325
|
+
|
326
|
+
def start(self):
|
327
|
+
"""Start thread and keep it running until an explicit
|
328
|
+
stop() request. Polls for shutdown every 'timeout' seconds.
|
329
|
+
"""
|
330
|
+
if self._running:
|
331
|
+
raise ValueError("already started")
|
332
|
+
threading.Thread.start(self)
|
333
|
+
self._flag.wait()
|
334
|
+
|
335
|
+
def run(self):
|
336
|
+
self._running = True
|
337
|
+
self._flag.set()
|
338
|
+
while self._running:
|
339
|
+
time.sleep(self._interval)
|
340
|
+
|
341
|
+
def stop(self):
|
342
|
+
"""Stop thread execution and and waits until it is stopped."""
|
343
|
+
if not self._running:
|
344
|
+
raise ValueError("already stopped")
|
345
|
+
self._running = False
|
346
|
+
self.join()
|
347
|
+
|
348
|
+
|
349
|
+
# ===================================================================
|
350
|
+
# --- subprocesses
|
351
|
+
# ===================================================================
|
352
|
+
|
353
|
+
|
354
|
+
def _reap_children_on_err(fun):
|
355
|
+
@functools.wraps(fun)
|
356
|
+
def wrapper(*args, **kwargs):
|
357
|
+
try:
|
358
|
+
return fun(*args, **kwargs)
|
359
|
+
except Exception:
|
360
|
+
reap_children()
|
361
|
+
raise
|
362
|
+
|
363
|
+
return wrapper
|
364
|
+
|
365
|
+
|
366
|
+
@_reap_children_on_err
|
367
|
+
def spawn_testproc(cmd=None, **kwds):
|
368
|
+
"""Create a python subprocess which does nothing for some secs and
|
369
|
+
return it as a subprocess.Popen instance.
|
370
|
+
If "cmd" is specified that is used instead of python.
|
371
|
+
By default stdin and stdout are redirected to /dev/null.
|
372
|
+
It also attempts to make sure the process is in a reasonably
|
373
|
+
initialized state.
|
374
|
+
The process is registered for cleanup on reap_children().
|
375
|
+
"""
|
376
|
+
kwds.setdefault("stdin", DEVNULL)
|
377
|
+
kwds.setdefault("stdout", DEVNULL)
|
378
|
+
kwds.setdefault("cwd", os.getcwd())
|
379
|
+
kwds.setdefault("env", PYTHON_EXE_ENV)
|
380
|
+
if WINDOWS:
|
381
|
+
# Prevents the subprocess to open error dialogs. This will also
|
382
|
+
# cause stderr to be suppressed, which is suboptimal in order
|
383
|
+
# to debug broken tests.
|
384
|
+
CREATE_NO_WINDOW = 0x8000000
|
385
|
+
kwds.setdefault("creationflags", CREATE_NO_WINDOW)
|
386
|
+
if cmd is None:
|
387
|
+
testfn = get_testfn(dir=os.getcwd())
|
388
|
+
try:
|
389
|
+
safe_rmpath(testfn)
|
390
|
+
pyline = (
|
391
|
+
"import time;"
|
392
|
+
+ "open(r'%s', 'w').close();" % testfn
|
393
|
+
+ "[time.sleep(0.1) for x in range(100)];" # 10 secs
|
394
|
+
)
|
395
|
+
cmd = [PYTHON_EXE, "-c", pyline]
|
396
|
+
sproc = subprocess.Popen(cmd, **kwds)
|
397
|
+
_subprocesses_started.add(sproc)
|
398
|
+
wait_for_file(testfn, delete=True, empty=True)
|
399
|
+
finally:
|
400
|
+
safe_rmpath(testfn)
|
401
|
+
else:
|
402
|
+
sproc = subprocess.Popen(cmd, **kwds)
|
403
|
+
_subprocesses_started.add(sproc)
|
404
|
+
wait_for_pid(sproc.pid)
|
405
|
+
return sproc
|
406
|
+
|
407
|
+
|
408
|
+
@_reap_children_on_err
|
409
|
+
def spawn_children_pair():
|
410
|
+
"""Create a subprocess which creates another one as in:
|
411
|
+
A (us) -> B (child) -> C (grandchild).
|
412
|
+
Return a (child, grandchild) tuple.
|
413
|
+
The 2 processes are fully initialized and will live for 60 secs
|
414
|
+
and are registered for cleanup on reap_children().
|
415
|
+
"""
|
416
|
+
tfile = None
|
417
|
+
testfn = get_testfn(dir=os.getcwd())
|
418
|
+
try:
|
419
|
+
s = textwrap.dedent("""\
|
420
|
+
import subprocess, os, sys, time
|
421
|
+
s = "import os, time;"
|
422
|
+
s += "f = open('%s', 'w');"
|
423
|
+
s += "f.write(str(os.getpid()));"
|
424
|
+
s += "f.close();"
|
425
|
+
s += "[time.sleep(0.1) for x in range(100 * 6)];"
|
426
|
+
p = subprocess.Popen([r'%s', '-c', s])
|
427
|
+
p.wait()
|
428
|
+
""" % (os.path.basename(testfn), PYTHON_EXE))
|
429
|
+
# On Windows if we create a subprocess with CREATE_NO_WINDOW flag
|
430
|
+
# set (which is the default) a "conhost.exe" extra process will be
|
431
|
+
# spawned as a child. We don't want that.
|
432
|
+
if WINDOWS:
|
433
|
+
subp, tfile = pyrun(s, creationflags=0)
|
434
|
+
else:
|
435
|
+
subp, tfile = pyrun(s)
|
436
|
+
child = psutil.Process(subp.pid)
|
437
|
+
grandchild_pid = int(wait_for_file(testfn, delete=True, empty=False))
|
438
|
+
_pids_started.add(grandchild_pid)
|
439
|
+
grandchild = psutil.Process(grandchild_pid)
|
440
|
+
return (child, grandchild)
|
441
|
+
finally:
|
442
|
+
safe_rmpath(testfn)
|
443
|
+
if tfile is not None:
|
444
|
+
safe_rmpath(tfile)
|
445
|
+
|
446
|
+
|
447
|
+
def spawn_zombie():
|
448
|
+
"""Create a zombie process and return a (parent, zombie) process tuple.
|
449
|
+
In order to kill the zombie parent must be terminate()d first, then
|
450
|
+
zombie must be wait()ed on.
|
451
|
+
"""
|
452
|
+
assert psutil.POSIX
|
453
|
+
unix_file = get_testfn()
|
454
|
+
src = textwrap.dedent("""\
|
455
|
+
import os, sys, time, socket, contextlib
|
456
|
+
child_pid = os.fork()
|
457
|
+
if child_pid > 0:
|
458
|
+
time.sleep(3000)
|
459
|
+
else:
|
460
|
+
# this is the zombie process
|
461
|
+
s = socket.socket(socket.AF_UNIX)
|
462
|
+
with contextlib.closing(s):
|
463
|
+
s.connect('%s')
|
464
|
+
if sys.version_info < (3, ):
|
465
|
+
pid = str(os.getpid())
|
466
|
+
else:
|
467
|
+
pid = bytes(str(os.getpid()), 'ascii')
|
468
|
+
s.sendall(pid)
|
469
|
+
""" % unix_file)
|
470
|
+
tfile = None
|
471
|
+
sock = bind_unix_socket(unix_file)
|
472
|
+
try:
|
473
|
+
sock.settimeout(GLOBAL_TIMEOUT)
|
474
|
+
parent, tfile = pyrun(src)
|
475
|
+
conn, _ = sock.accept()
|
476
|
+
try:
|
477
|
+
select.select([conn.fileno()], [], [], GLOBAL_TIMEOUT)
|
478
|
+
zpid = int(conn.recv(1024))
|
479
|
+
_pids_started.add(zpid)
|
480
|
+
zombie = psutil.Process(zpid)
|
481
|
+
call_until(lambda: zombie.status() == psutil.STATUS_ZOMBIE)
|
482
|
+
return (parent, zombie)
|
483
|
+
finally:
|
484
|
+
conn.close()
|
485
|
+
finally:
|
486
|
+
sock.close()
|
487
|
+
safe_rmpath(unix_file)
|
488
|
+
if tfile is not None:
|
489
|
+
safe_rmpath(tfile)
|
490
|
+
|
491
|
+
|
492
|
+
@_reap_children_on_err
|
493
|
+
def pyrun(src, **kwds):
|
494
|
+
"""Run python 'src' code string in a separate interpreter.
|
495
|
+
Returns a subprocess.Popen instance and the test file where the source
|
496
|
+
code was written.
|
497
|
+
"""
|
498
|
+
kwds.setdefault("stdout", None)
|
499
|
+
kwds.setdefault("stderr", None)
|
500
|
+
srcfile = get_testfn()
|
501
|
+
try:
|
502
|
+
with open(srcfile, "w") as f:
|
503
|
+
f.write(src)
|
504
|
+
subp = spawn_testproc([PYTHON_EXE, f.name], **kwds)
|
505
|
+
wait_for_pid(subp.pid)
|
506
|
+
return (subp, srcfile)
|
507
|
+
except Exception:
|
508
|
+
safe_rmpath(srcfile)
|
509
|
+
raise
|
510
|
+
|
511
|
+
|
512
|
+
@_reap_children_on_err
|
513
|
+
def sh(cmd, **kwds):
|
514
|
+
"""Run cmd in a subprocess and return its output.
|
515
|
+
raises RuntimeError on error.
|
516
|
+
"""
|
517
|
+
# Prevents subprocess to open error dialogs in case of error.
|
518
|
+
flags = 0x8000000 if WINDOWS else 0
|
519
|
+
kwds.setdefault("stdout", subprocess.PIPE)
|
520
|
+
kwds.setdefault("stderr", subprocess.PIPE)
|
521
|
+
kwds.setdefault("universal_newlines", True)
|
522
|
+
kwds.setdefault("creationflags", flags)
|
523
|
+
if isinstance(cmd, str):
|
524
|
+
cmd = shlex.split(cmd)
|
525
|
+
p = subprocess.Popen(cmd, **kwds)
|
526
|
+
_subprocesses_started.add(p)
|
527
|
+
if PY3:
|
528
|
+
stdout, stderr = p.communicate(timeout=GLOBAL_TIMEOUT)
|
529
|
+
else:
|
530
|
+
stdout, stderr = p.communicate()
|
531
|
+
if p.returncode != 0:
|
532
|
+
raise RuntimeError(stdout + stderr)
|
533
|
+
if stderr:
|
534
|
+
warn(stderr)
|
535
|
+
if stdout.endswith('\n'):
|
536
|
+
stdout = stdout[:-1]
|
537
|
+
return stdout
|
538
|
+
|
539
|
+
|
540
|
+
def terminate(proc_or_pid, sig=signal.SIGTERM, wait_timeout=GLOBAL_TIMEOUT):
|
541
|
+
"""Terminate a process and wait() for it.
|
542
|
+
Process can be a PID or an instance of psutil.Process(),
|
543
|
+
subprocess.Popen() or psutil.Popen().
|
544
|
+
If it's a subprocess.Popen() or psutil.Popen() instance also closes
|
545
|
+
its stdin / stdout / stderr fds.
|
546
|
+
PID is wait()ed even if the process is already gone (kills zombies).
|
547
|
+
Does nothing if the process does not exist.
|
548
|
+
Return process exit status.
|
549
|
+
"""
|
550
|
+
|
551
|
+
def wait(proc, timeout):
|
552
|
+
if isinstance(proc, subprocess.Popen) and not PY3:
|
553
|
+
proc.wait()
|
554
|
+
else:
|
555
|
+
proc.wait(timeout)
|
556
|
+
if WINDOWS and isinstance(proc, subprocess.Popen):
|
557
|
+
# Otherwise PID may still hang around.
|
558
|
+
try:
|
559
|
+
return psutil.Process(proc.pid).wait(timeout)
|
560
|
+
except psutil.NoSuchProcess:
|
561
|
+
pass
|
562
|
+
|
563
|
+
def sendsig(proc, sig):
|
564
|
+
# XXX: otherwise the build hangs for some reason.
|
565
|
+
if MACOS and GITHUB_ACTIONS:
|
566
|
+
sig = signal.SIGKILL
|
567
|
+
# If the process received SIGSTOP, SIGCONT is necessary first,
|
568
|
+
# otherwise SIGTERM won't work.
|
569
|
+
if POSIX and sig != signal.SIGKILL:
|
570
|
+
proc.send_signal(signal.SIGCONT)
|
571
|
+
proc.send_signal(sig)
|
572
|
+
|
573
|
+
def term_subprocess_proc(proc, timeout):
|
574
|
+
try:
|
575
|
+
sendsig(proc, sig)
|
576
|
+
except OSError as err:
|
577
|
+
if WINDOWS and err.winerror == 6: # "invalid handle"
|
578
|
+
pass
|
579
|
+
elif err.errno != errno.ESRCH:
|
580
|
+
raise
|
581
|
+
return wait(proc, timeout)
|
582
|
+
|
583
|
+
def term_psutil_proc(proc, timeout):
|
584
|
+
try:
|
585
|
+
sendsig(proc, sig)
|
586
|
+
except psutil.NoSuchProcess:
|
587
|
+
pass
|
588
|
+
return wait(proc, timeout)
|
589
|
+
|
590
|
+
def term_pid(pid, timeout):
|
591
|
+
try:
|
592
|
+
proc = psutil.Process(pid)
|
593
|
+
except psutil.NoSuchProcess:
|
594
|
+
# Needed to kill zombies.
|
595
|
+
if POSIX:
|
596
|
+
return wait_pid(pid, timeout)
|
597
|
+
else:
|
598
|
+
return term_psutil_proc(proc, timeout)
|
599
|
+
|
600
|
+
def flush_popen(proc):
|
601
|
+
if proc.stdout:
|
602
|
+
proc.stdout.close()
|
603
|
+
if proc.stderr:
|
604
|
+
proc.stderr.close()
|
605
|
+
# Flushing a BufferedWriter may raise an error.
|
606
|
+
if proc.stdin:
|
607
|
+
proc.stdin.close()
|
608
|
+
|
609
|
+
p = proc_or_pid
|
610
|
+
try:
|
611
|
+
if isinstance(p, int):
|
612
|
+
return term_pid(p, wait_timeout)
|
613
|
+
elif isinstance(p, (psutil.Process, psutil.Popen)):
|
614
|
+
return term_psutil_proc(p, wait_timeout)
|
615
|
+
elif isinstance(p, subprocess.Popen):
|
616
|
+
return term_subprocess_proc(p, wait_timeout)
|
617
|
+
else:
|
618
|
+
raise TypeError("wrong type %r" % p)
|
619
|
+
finally:
|
620
|
+
if isinstance(p, (subprocess.Popen, psutil.Popen)):
|
621
|
+
flush_popen(p)
|
622
|
+
pid = p if isinstance(p, int) else p.pid
|
623
|
+
assert not psutil.pid_exists(pid), pid
|
624
|
+
|
625
|
+
|
626
|
+
def reap_children(recursive=False):
|
627
|
+
"""Terminate and wait() any subprocess started by this test suite
|
628
|
+
and any children currently running, ensuring that no processes stick
|
629
|
+
around to hog resources.
|
630
|
+
If recursive is True it also tries to terminate and wait()
|
631
|
+
all grandchildren started by this process.
|
632
|
+
"""
|
633
|
+
# Get the children here before terminating them, as in case of
|
634
|
+
# recursive=True we don't want to lose the intermediate reference
|
635
|
+
# pointing to the grandchildren.
|
636
|
+
children = psutil.Process().children(recursive=recursive)
|
637
|
+
|
638
|
+
# Terminate subprocess.Popen.
|
639
|
+
while _subprocesses_started:
|
640
|
+
subp = _subprocesses_started.pop()
|
641
|
+
terminate(subp)
|
642
|
+
|
643
|
+
# Collect started pids.
|
644
|
+
while _pids_started:
|
645
|
+
pid = _pids_started.pop()
|
646
|
+
terminate(pid)
|
647
|
+
|
648
|
+
# Terminate children.
|
649
|
+
if children:
|
650
|
+
for p in children:
|
651
|
+
terminate(p, wait_timeout=None)
|
652
|
+
_, alive = psutil.wait_procs(children, timeout=GLOBAL_TIMEOUT)
|
653
|
+
for p in alive:
|
654
|
+
warn("couldn't terminate process %r; attempting kill()" % p)
|
655
|
+
terminate(p, sig=signal.SIGKILL)
|
656
|
+
|
657
|
+
|
658
|
+
# ===================================================================
|
659
|
+
# --- OS
|
660
|
+
# ===================================================================
|
661
|
+
|
662
|
+
|
663
|
+
def kernel_version():
|
664
|
+
"""Return a tuple such as (2, 6, 36)."""
|
665
|
+
if not POSIX:
|
666
|
+
raise NotImplementedError("not POSIX")
|
667
|
+
s = ""
|
668
|
+
uname = os.uname()[2]
|
669
|
+
for c in uname:
|
670
|
+
if c.isdigit() or c == '.':
|
671
|
+
s += c
|
672
|
+
else:
|
673
|
+
break
|
674
|
+
if not s:
|
675
|
+
raise ValueError("can't parse %r" % uname)
|
676
|
+
minor = 0
|
677
|
+
micro = 0
|
678
|
+
nums = s.split('.')
|
679
|
+
major = int(nums[0])
|
680
|
+
if len(nums) >= 2:
|
681
|
+
minor = int(nums[1])
|
682
|
+
if len(nums) >= 3:
|
683
|
+
micro = int(nums[2])
|
684
|
+
return (major, minor, micro)
|
685
|
+
|
686
|
+
|
687
|
+
def get_winver():
|
688
|
+
if not WINDOWS:
|
689
|
+
raise NotImplementedError("not WINDOWS")
|
690
|
+
wv = sys.getwindowsversion()
|
691
|
+
if hasattr(wv, 'service_pack_major'): # python >= 2.7
|
692
|
+
sp = wv.service_pack_major or 0
|
693
|
+
else:
|
694
|
+
r = re.search(r"\s\d$", wv[4])
|
695
|
+
sp = int(r.group(0)) if r else 0
|
696
|
+
return (wv[0], wv[1], sp)
|
697
|
+
|
698
|
+
|
699
|
+
# ===================================================================
|
700
|
+
# --- sync primitives
|
701
|
+
# ===================================================================
|
702
|
+
|
703
|
+
|
704
|
+
class retry:
|
705
|
+
"""A retry decorator."""
|
706
|
+
|
707
|
+
def __init__(
|
708
|
+
self,
|
709
|
+
exception=Exception,
|
710
|
+
timeout=None,
|
711
|
+
retries=None,
|
712
|
+
interval=0.001,
|
713
|
+
logfun=None,
|
714
|
+
):
|
715
|
+
if timeout and retries:
|
716
|
+
raise ValueError("timeout and retries args are mutually exclusive")
|
717
|
+
self.exception = exception
|
718
|
+
self.timeout = timeout
|
719
|
+
self.retries = retries
|
720
|
+
self.interval = interval
|
721
|
+
self.logfun = logfun
|
722
|
+
|
723
|
+
def __iter__(self):
|
724
|
+
if self.timeout:
|
725
|
+
stop_at = time.time() + self.timeout
|
726
|
+
while time.time() < stop_at:
|
727
|
+
yield
|
728
|
+
elif self.retries:
|
729
|
+
for _ in range(self.retries):
|
730
|
+
yield
|
731
|
+
else:
|
732
|
+
while True:
|
733
|
+
yield
|
734
|
+
|
735
|
+
def sleep(self):
|
736
|
+
if self.interval is not None:
|
737
|
+
time.sleep(self.interval)
|
738
|
+
|
739
|
+
def __call__(self, fun):
|
740
|
+
@functools.wraps(fun)
|
741
|
+
def wrapper(*args, **kwargs):
|
742
|
+
exc = None
|
743
|
+
for _ in self:
|
744
|
+
try:
|
745
|
+
return fun(*args, **kwargs)
|
746
|
+
except self.exception as _: # NOQA
|
747
|
+
exc = _
|
748
|
+
if self.logfun is not None:
|
749
|
+
self.logfun(exc)
|
750
|
+
self.sleep()
|
751
|
+
continue
|
752
|
+
if PY3:
|
753
|
+
raise exc # noqa: PLE0704
|
754
|
+
else:
|
755
|
+
raise # noqa: PLE0704
|
756
|
+
|
757
|
+
# This way the user of the decorated function can change config
|
758
|
+
# parameters.
|
759
|
+
wrapper.decorator = self
|
760
|
+
return wrapper
|
761
|
+
|
762
|
+
|
763
|
+
@retry(
|
764
|
+
exception=psutil.NoSuchProcess,
|
765
|
+
logfun=None,
|
766
|
+
timeout=GLOBAL_TIMEOUT,
|
767
|
+
interval=0.001,
|
768
|
+
)
|
769
|
+
def wait_for_pid(pid):
|
770
|
+
"""Wait for pid to show up in the process list then return.
|
771
|
+
Used in the test suite to give time the sub process to initialize.
|
772
|
+
"""
|
773
|
+
if pid not in psutil.pids():
|
774
|
+
raise psutil.NoSuchProcess(pid)
|
775
|
+
psutil.Process(pid)
|
776
|
+
|
777
|
+
|
778
|
+
@retry(
|
779
|
+
exception=(FileNotFoundError, AssertionError),
|
780
|
+
logfun=None,
|
781
|
+
timeout=GLOBAL_TIMEOUT,
|
782
|
+
interval=0.001,
|
783
|
+
)
|
784
|
+
def wait_for_file(fname, delete=True, empty=False):
|
785
|
+
"""Wait for a file to be written on disk with some content."""
|
786
|
+
with open(fname, "rb") as f:
|
787
|
+
data = f.read()
|
788
|
+
if not empty:
|
789
|
+
assert data
|
790
|
+
if delete:
|
791
|
+
safe_rmpath(fname)
|
792
|
+
return data
|
793
|
+
|
794
|
+
|
795
|
+
@retry(
|
796
|
+
exception=AssertionError,
|
797
|
+
logfun=None,
|
798
|
+
timeout=GLOBAL_TIMEOUT,
|
799
|
+
interval=0.001,
|
800
|
+
)
|
801
|
+
def call_until(fun):
|
802
|
+
"""Keep calling function until it evaluates to True."""
|
803
|
+
ret = fun()
|
804
|
+
assert ret
|
805
|
+
return ret
|
806
|
+
|
807
|
+
|
808
|
+
# ===================================================================
|
809
|
+
# --- fs
|
810
|
+
# ===================================================================
|
811
|
+
|
812
|
+
|
813
|
+
def safe_rmpath(path):
|
814
|
+
"""Convenience function for removing temporary test files or dirs."""
|
815
|
+
|
816
|
+
def retry_fun(fun):
|
817
|
+
# On Windows it could happen that the file or directory has
|
818
|
+
# open handles or references preventing the delete operation
|
819
|
+
# to succeed immediately, so we retry for a while. See:
|
820
|
+
# https://bugs.python.org/issue33240
|
821
|
+
stop_at = time.time() + GLOBAL_TIMEOUT
|
822
|
+
while time.time() < stop_at:
|
823
|
+
try:
|
824
|
+
return fun()
|
825
|
+
except FileNotFoundError:
|
826
|
+
pass
|
827
|
+
except WindowsError as _:
|
828
|
+
err = _
|
829
|
+
warn("ignoring %s" % (str(err)))
|
830
|
+
time.sleep(0.01)
|
831
|
+
raise err
|
832
|
+
|
833
|
+
try:
|
834
|
+
st = os.stat(path)
|
835
|
+
if stat.S_ISDIR(st.st_mode):
|
836
|
+
fun = functools.partial(shutil.rmtree, path)
|
837
|
+
else:
|
838
|
+
fun = functools.partial(os.remove, path)
|
839
|
+
if POSIX:
|
840
|
+
fun()
|
841
|
+
else:
|
842
|
+
retry_fun(fun)
|
843
|
+
except FileNotFoundError:
|
844
|
+
pass
|
845
|
+
|
846
|
+
|
847
|
+
def safe_mkdir(dir):
|
848
|
+
"""Convenience function for creating a directory."""
|
849
|
+
try:
|
850
|
+
os.mkdir(dir)
|
851
|
+
except FileExistsError:
|
852
|
+
pass
|
853
|
+
|
854
|
+
|
855
|
+
@contextlib.contextmanager
|
856
|
+
def chdir(dirname):
|
857
|
+
"""Context manager which temporarily changes the current directory."""
|
858
|
+
curdir = os.getcwd()
|
859
|
+
try:
|
860
|
+
os.chdir(dirname)
|
861
|
+
yield
|
862
|
+
finally:
|
863
|
+
os.chdir(curdir)
|
864
|
+
|
865
|
+
|
866
|
+
def create_py_exe(path):
|
867
|
+
"""Create a Python executable file in the given location."""
|
868
|
+
assert not os.path.exists(path), path
|
869
|
+
atexit.register(safe_rmpath, path)
|
870
|
+
shutil.copyfile(PYTHON_EXE, path)
|
871
|
+
if POSIX:
|
872
|
+
st = os.stat(path)
|
873
|
+
os.chmod(path, st.st_mode | stat.S_IEXEC)
|
874
|
+
return path
|
875
|
+
|
876
|
+
|
877
|
+
def create_c_exe(path, c_code=None):
|
878
|
+
"""Create a compiled C executable in the given location."""
|
879
|
+
assert not os.path.exists(path), path
|
880
|
+
if not which("gcc"):
|
881
|
+
raise pytest.skip("gcc is not installed")
|
882
|
+
if c_code is None:
|
883
|
+
c_code = textwrap.dedent("""
|
884
|
+
#include <unistd.h>
|
885
|
+
int main() {
|
886
|
+
pause();
|
887
|
+
return 1;
|
888
|
+
}
|
889
|
+
""")
|
890
|
+
else:
|
891
|
+
assert isinstance(c_code, str), c_code
|
892
|
+
|
893
|
+
atexit.register(safe_rmpath, path)
|
894
|
+
with open(get_testfn(suffix='.c'), "w") as f:
|
895
|
+
f.write(c_code)
|
896
|
+
try:
|
897
|
+
subprocess.check_call(["gcc", f.name, "-o", path])
|
898
|
+
finally:
|
899
|
+
safe_rmpath(f.name)
|
900
|
+
return path
|
901
|
+
|
902
|
+
|
903
|
+
def get_testfn(suffix="", dir=None):
|
904
|
+
"""Return an absolute pathname of a file or dir that did not
|
905
|
+
exist at the time this call is made. Also schedule it for safe
|
906
|
+
deletion at interpreter exit. It's technically racy but probably
|
907
|
+
not really due to the time variant.
|
908
|
+
"""
|
909
|
+
while True:
|
910
|
+
name = tempfile.mktemp(prefix=TESTFN_PREFIX, suffix=suffix, dir=dir)
|
911
|
+
if not os.path.exists(name): # also include dirs
|
912
|
+
path = os.path.realpath(name) # needed for OSX
|
913
|
+
atexit.register(safe_rmpath, path)
|
914
|
+
return path
|
915
|
+
|
916
|
+
|
917
|
+
# ===================================================================
|
918
|
+
# --- testing
|
919
|
+
# ===================================================================
|
920
|
+
|
921
|
+
|
922
|
+
class fake_pytest:
|
923
|
+
"""A class that mimics some basic pytest APIs. This is meant for
|
924
|
+
when unit tests are run in production, where pytest may not be
|
925
|
+
installed. Still, the user can test psutil installation via:
|
926
|
+
|
927
|
+
$ python3 -m psutil.tests
|
928
|
+
"""
|
929
|
+
|
930
|
+
@staticmethod
|
931
|
+
def main(*args, **kw): # noqa ARG004
|
932
|
+
"""Mimics pytest.main(). It has the same effect as running
|
933
|
+
`python3 -m unittest -v` from the project root directory.
|
934
|
+
"""
|
935
|
+
suite = unittest.TestLoader().discover(HERE)
|
936
|
+
unittest.TextTestRunner(verbosity=2).run(suite)
|
937
|
+
warnings.warn(
|
938
|
+
"Fake pytest module was used. Test results may be inaccurate.",
|
939
|
+
UserWarning,
|
940
|
+
stacklevel=1,
|
941
|
+
)
|
942
|
+
return suite
|
943
|
+
|
944
|
+
@staticmethod
|
945
|
+
def raises(exc, match=None):
|
946
|
+
"""Mimics `pytest.raises`."""
|
947
|
+
|
948
|
+
class ExceptionInfo:
|
949
|
+
_exc = None
|
950
|
+
|
951
|
+
@property
|
952
|
+
def value(self):
|
953
|
+
return self._exc
|
954
|
+
|
955
|
+
@contextlib.contextmanager
|
956
|
+
def context(exc, match=None):
|
957
|
+
einfo = ExceptionInfo()
|
958
|
+
try:
|
959
|
+
yield einfo
|
960
|
+
except exc as err:
|
961
|
+
if match and not re.search(match, str(err)):
|
962
|
+
msg = '"{}" does not match "{}"'.format(match, str(err))
|
963
|
+
raise AssertionError(msg)
|
964
|
+
einfo._exc = err
|
965
|
+
else:
|
966
|
+
raise AssertionError("%r not raised" % exc)
|
967
|
+
|
968
|
+
return context(exc, match=match)
|
969
|
+
|
970
|
+
@staticmethod
|
971
|
+
def warns(warning, match=None):
|
972
|
+
"""Mimics `pytest.warns`."""
|
973
|
+
if match:
|
974
|
+
return unittest.TestCase().assertWarnsRegex(warning, match)
|
975
|
+
return unittest.TestCase().assertWarns(warning)
|
976
|
+
|
977
|
+
@staticmethod
|
978
|
+
def skip(reason=""):
|
979
|
+
"""Mimics `unittest.SkipTest`."""
|
980
|
+
raise unittest.SkipTest(reason)
|
981
|
+
|
982
|
+
class mark:
|
983
|
+
|
984
|
+
@staticmethod
|
985
|
+
def skipif(condition, reason=""):
|
986
|
+
"""Mimics `@pytest.mark.skipif` decorator."""
|
987
|
+
return unittest.skipIf(condition, reason)
|
988
|
+
|
989
|
+
class xdist_group:
|
990
|
+
"""Mimics `@pytest.mark.xdist_group` decorator (no-op)."""
|
991
|
+
|
992
|
+
def __init__(self, name=None):
|
993
|
+
pass
|
994
|
+
|
995
|
+
def __call__(self, cls_or_meth):
|
996
|
+
return cls_or_meth
|
997
|
+
|
998
|
+
|
999
|
+
if pytest is None:
|
1000
|
+
pytest = fake_pytest
|
1001
|
+
|
1002
|
+
|
1003
|
+
class TestCase(unittest.TestCase):
|
1004
|
+
# ...otherwise multiprocessing.Pool complains
|
1005
|
+
if not PY3:
|
1006
|
+
|
1007
|
+
def runTest(self):
|
1008
|
+
pass
|
1009
|
+
|
1010
|
+
@contextlib.contextmanager
|
1011
|
+
def subTest(self, *args, **kw):
|
1012
|
+
# fake it for python 2.7
|
1013
|
+
yield
|
1014
|
+
|
1015
|
+
|
1016
|
+
# monkey patch default unittest.TestCase
|
1017
|
+
unittest.TestCase = TestCase
|
1018
|
+
|
1019
|
+
|
1020
|
+
class PsutilTestCase(TestCase):
|
1021
|
+
"""Test class providing auto-cleanup wrappers on top of process
|
1022
|
+
test utilities. All test classes should derive from this one, even
|
1023
|
+
if we use pytest.
|
1024
|
+
"""
|
1025
|
+
|
1026
|
+
def get_testfn(self, suffix="", dir=None):
|
1027
|
+
fname = get_testfn(suffix=suffix, dir=dir)
|
1028
|
+
self.addCleanup(safe_rmpath, fname)
|
1029
|
+
return fname
|
1030
|
+
|
1031
|
+
def spawn_testproc(self, *args, **kwds):
|
1032
|
+
sproc = spawn_testproc(*args, **kwds)
|
1033
|
+
self.addCleanup(terminate, sproc)
|
1034
|
+
return sproc
|
1035
|
+
|
1036
|
+
def spawn_children_pair(self):
|
1037
|
+
child1, child2 = spawn_children_pair()
|
1038
|
+
self.addCleanup(terminate, child2)
|
1039
|
+
self.addCleanup(terminate, child1) # executed first
|
1040
|
+
return (child1, child2)
|
1041
|
+
|
1042
|
+
def spawn_zombie(self):
|
1043
|
+
parent, zombie = spawn_zombie()
|
1044
|
+
self.addCleanup(terminate, zombie)
|
1045
|
+
self.addCleanup(terminate, parent) # executed first
|
1046
|
+
return (parent, zombie)
|
1047
|
+
|
1048
|
+
def pyrun(self, *args, **kwds):
|
1049
|
+
sproc, srcfile = pyrun(*args, **kwds)
|
1050
|
+
self.addCleanup(safe_rmpath, srcfile)
|
1051
|
+
self.addCleanup(terminate, sproc) # executed first
|
1052
|
+
return sproc
|
1053
|
+
|
1054
|
+
def _check_proc_exc(self, proc, exc):
|
1055
|
+
assert isinstance(exc, psutil.Error)
|
1056
|
+
assert exc.pid == proc.pid
|
1057
|
+
assert exc.name == proc._name
|
1058
|
+
if exc.name:
|
1059
|
+
assert exc.name
|
1060
|
+
if isinstance(exc, psutil.ZombieProcess):
|
1061
|
+
assert exc.ppid == proc._ppid
|
1062
|
+
if exc.ppid is not None:
|
1063
|
+
assert exc.ppid >= 0
|
1064
|
+
str(exc)
|
1065
|
+
repr(exc)
|
1066
|
+
|
1067
|
+
def assertPidGone(self, pid):
|
1068
|
+
with pytest.raises(psutil.NoSuchProcess) as cm:
|
1069
|
+
try:
|
1070
|
+
psutil.Process(pid)
|
1071
|
+
except psutil.ZombieProcess:
|
1072
|
+
raise AssertionError("wasn't supposed to raise ZombieProcess")
|
1073
|
+
assert cm.value.pid == pid
|
1074
|
+
assert cm.value.name is None
|
1075
|
+
assert not psutil.pid_exists(pid), pid
|
1076
|
+
assert pid not in psutil.pids()
|
1077
|
+
assert pid not in [x.pid for x in psutil.process_iter()]
|
1078
|
+
|
1079
|
+
def assertProcessGone(self, proc):
|
1080
|
+
self.assertPidGone(proc.pid)
|
1081
|
+
ns = process_namespace(proc)
|
1082
|
+
for fun, name in ns.iter(ns.all, clear_cache=True):
|
1083
|
+
with self.subTest(proc=proc, name=name):
|
1084
|
+
try:
|
1085
|
+
ret = fun()
|
1086
|
+
except psutil.ZombieProcess:
|
1087
|
+
raise
|
1088
|
+
except psutil.NoSuchProcess as exc:
|
1089
|
+
self._check_proc_exc(proc, exc)
|
1090
|
+
else:
|
1091
|
+
msg = "Process.%s() didn't raise NSP and returned %r" % (
|
1092
|
+
name,
|
1093
|
+
ret,
|
1094
|
+
)
|
1095
|
+
raise AssertionError(msg)
|
1096
|
+
proc.wait(timeout=0) # assert not raise TimeoutExpired
|
1097
|
+
|
1098
|
+
def assertProcessZombie(self, proc):
|
1099
|
+
# A zombie process should always be instantiable.
|
1100
|
+
clone = psutil.Process(proc.pid)
|
1101
|
+
# Cloned zombie on Open/NetBSD has null creation time, see:
|
1102
|
+
# https://github.com/giampaolo/psutil/issues/2287
|
1103
|
+
assert proc == clone
|
1104
|
+
if not (OPENBSD or NETBSD):
|
1105
|
+
assert hash(proc) == hash(clone)
|
1106
|
+
# Its status always be querable.
|
1107
|
+
assert proc.status() == psutil.STATUS_ZOMBIE
|
1108
|
+
# It should be considered 'running'.
|
1109
|
+
assert proc.is_running()
|
1110
|
+
assert psutil.pid_exists(proc.pid)
|
1111
|
+
# as_dict() shouldn't crash.
|
1112
|
+
proc.as_dict()
|
1113
|
+
# It should show up in pids() and process_iter().
|
1114
|
+
assert proc.pid in psutil.pids()
|
1115
|
+
assert proc.pid in [x.pid for x in psutil.process_iter()]
|
1116
|
+
psutil._pmap = {}
|
1117
|
+
assert proc.pid in [x.pid for x in psutil.process_iter()]
|
1118
|
+
# Call all methods.
|
1119
|
+
ns = process_namespace(proc)
|
1120
|
+
for fun, name in ns.iter(ns.all, clear_cache=True):
|
1121
|
+
with self.subTest(proc=proc, name=name):
|
1122
|
+
try:
|
1123
|
+
fun()
|
1124
|
+
except (psutil.ZombieProcess, psutil.AccessDenied) as exc:
|
1125
|
+
self._check_proc_exc(proc, exc)
|
1126
|
+
if LINUX:
|
1127
|
+
# https://github.com/giampaolo/psutil/pull/2288
|
1128
|
+
with pytest.raises(psutil.ZombieProcess) as cm:
|
1129
|
+
proc.cmdline()
|
1130
|
+
self._check_proc_exc(proc, cm.value)
|
1131
|
+
with pytest.raises(psutil.ZombieProcess) as cm:
|
1132
|
+
proc.exe()
|
1133
|
+
self._check_proc_exc(proc, cm.value)
|
1134
|
+
with pytest.raises(psutil.ZombieProcess) as cm:
|
1135
|
+
proc.memory_maps()
|
1136
|
+
self._check_proc_exc(proc, cm.value)
|
1137
|
+
# Zombie cannot be signaled or terminated.
|
1138
|
+
proc.suspend()
|
1139
|
+
proc.resume()
|
1140
|
+
proc.terminate()
|
1141
|
+
proc.kill()
|
1142
|
+
assert proc.is_running()
|
1143
|
+
assert psutil.pid_exists(proc.pid)
|
1144
|
+
assert proc.pid in psutil.pids()
|
1145
|
+
assert proc.pid in [x.pid for x in psutil.process_iter()]
|
1146
|
+
psutil._pmap = {}
|
1147
|
+
assert proc.pid in [x.pid for x in psutil.process_iter()]
|
1148
|
+
|
1149
|
+
# Its parent should 'see' it (edit: not true on BSD and MACOS).
|
1150
|
+
# descendants = [x.pid for x in psutil.Process().children(
|
1151
|
+
# recursive=True)]
|
1152
|
+
# self.assertIn(proc.pid, descendants)
|
1153
|
+
|
1154
|
+
# __eq__ can't be relied upon because creation time may not be
|
1155
|
+
# querable.
|
1156
|
+
# self.assertEqual(proc, psutil.Process(proc.pid))
|
1157
|
+
|
1158
|
+
# XXX should we also assume ppid() to be usable? Note: this
|
1159
|
+
# would be an important use case as the only way to get
|
1160
|
+
# rid of a zombie is to kill its parent.
|
1161
|
+
# self.assertEqual(proc.ppid(), os.getpid())
|
1162
|
+
|
1163
|
+
|
1164
|
+
@pytest.mark.skipif(PYPY, reason="unreliable on PYPY")
|
1165
|
+
class TestMemoryLeak(PsutilTestCase):
|
1166
|
+
"""Test framework class for detecting function memory leaks,
|
1167
|
+
typically functions implemented in C which forgot to free() memory
|
1168
|
+
from the heap. It does so by checking whether the process memory
|
1169
|
+
usage increased before and after calling the function many times.
|
1170
|
+
|
1171
|
+
Note that this is hard (probably impossible) to do reliably, due
|
1172
|
+
to how the OS handles memory, the GC and so on (memory can even
|
1173
|
+
decrease!). In order to avoid false positives, in case of failure
|
1174
|
+
(mem > 0) we retry the test for up to 5 times, increasing call
|
1175
|
+
repetitions each time. If the memory keeps increasing then it's a
|
1176
|
+
failure.
|
1177
|
+
|
1178
|
+
If available (Linux, OSX, Windows), USS memory is used for comparison,
|
1179
|
+
since it's supposed to be more precise, see:
|
1180
|
+
https://gmpy.dev/blog/2016/real-process-memory-and-environ-in-python
|
1181
|
+
If not, RSS memory is used. mallinfo() on Linux and _heapwalk() on
|
1182
|
+
Windows may give even more precision, but at the moment are not
|
1183
|
+
implemented.
|
1184
|
+
|
1185
|
+
PyPy appears to be completely unstable for this framework, probably
|
1186
|
+
because of its JIT, so tests on PYPY are skipped.
|
1187
|
+
|
1188
|
+
Usage:
|
1189
|
+
|
1190
|
+
class TestLeaks(psutil.tests.TestMemoryLeak):
|
1191
|
+
|
1192
|
+
def test_fun(self):
|
1193
|
+
self.execute(some_function)
|
1194
|
+
"""
|
1195
|
+
|
1196
|
+
# Configurable class attrs.
|
1197
|
+
times = 200
|
1198
|
+
warmup_times = 10
|
1199
|
+
tolerance = 0 # memory
|
1200
|
+
retries = 10 if CI_TESTING else 5
|
1201
|
+
verbose = True
|
1202
|
+
_thisproc = psutil.Process()
|
1203
|
+
_psutil_debug_orig = bool(os.getenv('PSUTIL_DEBUG'))
|
1204
|
+
|
1205
|
+
@classmethod
|
1206
|
+
def setUpClass(cls):
|
1207
|
+
psutil._set_debug(False) # avoid spamming to stderr
|
1208
|
+
|
1209
|
+
@classmethod
|
1210
|
+
def tearDownClass(cls):
|
1211
|
+
psutil._set_debug(cls._psutil_debug_orig)
|
1212
|
+
|
1213
|
+
def _get_mem(self):
|
1214
|
+
# USS is the closest thing we have to "real" memory usage and it
|
1215
|
+
# should be less likely to produce false positives.
|
1216
|
+
mem = self._thisproc.memory_full_info()
|
1217
|
+
return getattr(mem, "uss", mem.rss)
|
1218
|
+
|
1219
|
+
def _get_num_fds(self):
|
1220
|
+
if POSIX:
|
1221
|
+
return self._thisproc.num_fds()
|
1222
|
+
else:
|
1223
|
+
return self._thisproc.num_handles()
|
1224
|
+
|
1225
|
+
def _log(self, msg):
|
1226
|
+
if self.verbose:
|
1227
|
+
print_color(msg, color="yellow", file=sys.stderr)
|
1228
|
+
|
1229
|
+
def _check_fds(self, fun):
|
1230
|
+
"""Makes sure num_fds() (POSIX) or num_handles() (Windows) does
|
1231
|
+
not increase after calling a function. Used to discover forgotten
|
1232
|
+
close(2) and CloseHandle syscalls.
|
1233
|
+
"""
|
1234
|
+
before = self._get_num_fds()
|
1235
|
+
self.call(fun)
|
1236
|
+
after = self._get_num_fds()
|
1237
|
+
diff = after - before
|
1238
|
+
if diff < 0:
|
1239
|
+
raise self.fail(
|
1240
|
+
"negative diff %r (gc probably collected a "
|
1241
|
+
"resource from a previous test)" % diff
|
1242
|
+
)
|
1243
|
+
if diff > 0:
|
1244
|
+
type_ = "fd" if POSIX else "handle"
|
1245
|
+
if diff > 1:
|
1246
|
+
type_ += "s"
|
1247
|
+
msg = "%s unclosed %s after calling %r" % (diff, type_, fun)
|
1248
|
+
raise self.fail(msg)
|
1249
|
+
|
1250
|
+
def _call_ntimes(self, fun, times):
|
1251
|
+
"""Get 2 distinct memory samples, before and after having
|
1252
|
+
called fun repeatedly, and return the memory difference.
|
1253
|
+
"""
|
1254
|
+
gc.collect(generation=1)
|
1255
|
+
mem1 = self._get_mem()
|
1256
|
+
for x in range(times):
|
1257
|
+
ret = self.call(fun)
|
1258
|
+
del x, ret
|
1259
|
+
gc.collect(generation=1)
|
1260
|
+
mem2 = self._get_mem()
|
1261
|
+
assert gc.garbage == []
|
1262
|
+
diff = mem2 - mem1 # can also be negative
|
1263
|
+
return diff
|
1264
|
+
|
1265
|
+
def _check_mem(self, fun, times, retries, tolerance):
|
1266
|
+
messages = []
|
1267
|
+
prev_mem = 0
|
1268
|
+
increase = times
|
1269
|
+
for idx in range(1, retries + 1):
|
1270
|
+
mem = self._call_ntimes(fun, times)
|
1271
|
+
msg = "Run #%s: extra-mem=%s, per-call=%s, calls=%s" % (
|
1272
|
+
idx,
|
1273
|
+
bytes2human(mem),
|
1274
|
+
bytes2human(mem / times),
|
1275
|
+
times,
|
1276
|
+
)
|
1277
|
+
messages.append(msg)
|
1278
|
+
success = mem <= tolerance or mem <= prev_mem
|
1279
|
+
if success:
|
1280
|
+
if idx > 1:
|
1281
|
+
self._log(msg)
|
1282
|
+
return
|
1283
|
+
else:
|
1284
|
+
if idx == 1:
|
1285
|
+
print() # NOQA
|
1286
|
+
self._log(msg)
|
1287
|
+
times += increase
|
1288
|
+
prev_mem = mem
|
1289
|
+
raise self.fail(". ".join(messages))
|
1290
|
+
|
1291
|
+
# ---
|
1292
|
+
|
1293
|
+
def call(self, fun):
|
1294
|
+
return fun()
|
1295
|
+
|
1296
|
+
def execute(
|
1297
|
+
self, fun, times=None, warmup_times=None, retries=None, tolerance=None
|
1298
|
+
):
|
1299
|
+
"""Test a callable."""
|
1300
|
+
times = times if times is not None else self.times
|
1301
|
+
warmup_times = (
|
1302
|
+
warmup_times if warmup_times is not None else self.warmup_times
|
1303
|
+
)
|
1304
|
+
retries = retries if retries is not None else self.retries
|
1305
|
+
tolerance = tolerance if tolerance is not None else self.tolerance
|
1306
|
+
try:
|
1307
|
+
assert times >= 1, "times must be >= 1"
|
1308
|
+
assert warmup_times >= 0, "warmup_times must be >= 0"
|
1309
|
+
assert retries >= 0, "retries must be >= 0"
|
1310
|
+
assert tolerance >= 0, "tolerance must be >= 0"
|
1311
|
+
except AssertionError as err:
|
1312
|
+
raise ValueError(str(err))
|
1313
|
+
|
1314
|
+
self._call_ntimes(fun, warmup_times) # warm up
|
1315
|
+
self._check_fds(fun)
|
1316
|
+
self._check_mem(fun, times=times, retries=retries, tolerance=tolerance)
|
1317
|
+
|
1318
|
+
def execute_w_exc(self, exc, fun, **kwargs):
|
1319
|
+
"""Convenience method to test a callable while making sure it
|
1320
|
+
raises an exception on every call.
|
1321
|
+
"""
|
1322
|
+
|
1323
|
+
def call():
|
1324
|
+
self.assertRaises(exc, fun)
|
1325
|
+
|
1326
|
+
self.execute(call, **kwargs)
|
1327
|
+
|
1328
|
+
|
1329
|
+
def print_sysinfo():
|
1330
|
+
import collections
|
1331
|
+
import datetime
|
1332
|
+
import getpass
|
1333
|
+
import locale
|
1334
|
+
import pprint
|
1335
|
+
|
1336
|
+
try:
|
1337
|
+
import pip
|
1338
|
+
except ImportError:
|
1339
|
+
pip = None
|
1340
|
+
try:
|
1341
|
+
import wheel
|
1342
|
+
except ImportError:
|
1343
|
+
wheel = None
|
1344
|
+
|
1345
|
+
info = collections.OrderedDict()
|
1346
|
+
|
1347
|
+
# OS
|
1348
|
+
if psutil.LINUX and which('lsb_release'):
|
1349
|
+
info['OS'] = sh('lsb_release -d -s')
|
1350
|
+
elif psutil.OSX:
|
1351
|
+
info['OS'] = 'Darwin %s' % platform.mac_ver()[0]
|
1352
|
+
elif psutil.WINDOWS:
|
1353
|
+
info['OS'] = "Windows " + ' '.join(map(str, platform.win32_ver()))
|
1354
|
+
if hasattr(platform, 'win32_edition'):
|
1355
|
+
info['OS'] += ", " + platform.win32_edition()
|
1356
|
+
else:
|
1357
|
+
info['OS'] = "%s %s" % (platform.system(), platform.version())
|
1358
|
+
info['arch'] = ', '.join(
|
1359
|
+
list(platform.architecture()) + [platform.machine()]
|
1360
|
+
)
|
1361
|
+
if psutil.POSIX:
|
1362
|
+
info['kernel'] = platform.uname()[2]
|
1363
|
+
|
1364
|
+
# python
|
1365
|
+
info['python'] = ', '.join([
|
1366
|
+
platform.python_implementation(),
|
1367
|
+
platform.python_version(),
|
1368
|
+
platform.python_compiler(),
|
1369
|
+
])
|
1370
|
+
info['pip'] = getattr(pip, '__version__', 'not installed')
|
1371
|
+
if wheel is not None:
|
1372
|
+
info['pip'] += " (wheel=%s)" % wheel.__version__
|
1373
|
+
|
1374
|
+
# UNIX
|
1375
|
+
if psutil.POSIX:
|
1376
|
+
if which('gcc'):
|
1377
|
+
out = sh(['gcc', '--version'])
|
1378
|
+
info['gcc'] = str(out).split('\n')[0]
|
1379
|
+
else:
|
1380
|
+
info['gcc'] = 'not installed'
|
1381
|
+
s = platform.libc_ver()[1]
|
1382
|
+
if s:
|
1383
|
+
info['glibc'] = s
|
1384
|
+
|
1385
|
+
# system
|
1386
|
+
info['fs-encoding'] = sys.getfilesystemencoding()
|
1387
|
+
lang = locale.getlocale()
|
1388
|
+
info['lang'] = '%s, %s' % (lang[0], lang[1])
|
1389
|
+
info['boot-time'] = datetime.datetime.fromtimestamp(
|
1390
|
+
psutil.boot_time()
|
1391
|
+
).strftime("%Y-%m-%d %H:%M:%S")
|
1392
|
+
info['time'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
1393
|
+
info['user'] = getpass.getuser()
|
1394
|
+
info['home'] = os.path.expanduser("~")
|
1395
|
+
info['cwd'] = os.getcwd()
|
1396
|
+
info['pyexe'] = PYTHON_EXE
|
1397
|
+
info['hostname'] = platform.node()
|
1398
|
+
info['PID'] = os.getpid()
|
1399
|
+
|
1400
|
+
# metrics
|
1401
|
+
info['cpus'] = psutil.cpu_count()
|
1402
|
+
info['loadavg'] = "%.1f%%, %.1f%%, %.1f%%" % (
|
1403
|
+
tuple([x / psutil.cpu_count() * 100 for x in psutil.getloadavg()])
|
1404
|
+
)
|
1405
|
+
mem = psutil.virtual_memory()
|
1406
|
+
info['memory'] = "%s%%, used=%s, total=%s" % (
|
1407
|
+
int(mem.percent),
|
1408
|
+
bytes2human(mem.used),
|
1409
|
+
bytes2human(mem.total),
|
1410
|
+
)
|
1411
|
+
swap = psutil.swap_memory()
|
1412
|
+
info['swap'] = "%s%%, used=%s, total=%s" % (
|
1413
|
+
int(swap.percent),
|
1414
|
+
bytes2human(swap.used),
|
1415
|
+
bytes2human(swap.total),
|
1416
|
+
)
|
1417
|
+
info['pids'] = len(psutil.pids())
|
1418
|
+
pinfo = psutil.Process().as_dict()
|
1419
|
+
pinfo.pop('memory_maps', None)
|
1420
|
+
info['proc'] = pprint.pformat(pinfo)
|
1421
|
+
|
1422
|
+
print("=" * 70, file=sys.stderr) # NOQA
|
1423
|
+
for k, v in info.items():
|
1424
|
+
print("%-17s %s" % (k + ':', v), file=sys.stderr) # NOQA
|
1425
|
+
print("=" * 70, file=sys.stderr) # NOQA
|
1426
|
+
sys.stdout.flush()
|
1427
|
+
|
1428
|
+
# if WINDOWS:
|
1429
|
+
# os.system("tasklist")
|
1430
|
+
# elif which("ps"):
|
1431
|
+
# os.system("ps aux")
|
1432
|
+
# print("=" * 70, file=sys.stderr) # NOQA
|
1433
|
+
|
1434
|
+
sys.stdout.flush()
|
1435
|
+
|
1436
|
+
|
1437
|
+
def is_win_secure_system_proc(pid):
|
1438
|
+
# see: https://github.com/giampaolo/psutil/issues/2338
|
1439
|
+
@memoize
|
1440
|
+
def get_procs():
|
1441
|
+
ret = {}
|
1442
|
+
out = sh("tasklist.exe /NH /FO csv")
|
1443
|
+
for line in out.splitlines()[1:]:
|
1444
|
+
bits = [x.replace('"', "") for x in line.split(",")]
|
1445
|
+
name, pid = bits[0], int(bits[1])
|
1446
|
+
ret[pid] = name
|
1447
|
+
return ret
|
1448
|
+
|
1449
|
+
try:
|
1450
|
+
return get_procs()[pid] == "Secure System"
|
1451
|
+
except KeyError:
|
1452
|
+
return False
|
1453
|
+
|
1454
|
+
|
1455
|
+
def _get_eligible_cpu():
|
1456
|
+
p = psutil.Process()
|
1457
|
+
if hasattr(p, "cpu_num"):
|
1458
|
+
return p.cpu_num()
|
1459
|
+
elif hasattr(p, "cpu_affinity"):
|
1460
|
+
return random.choice(p.cpu_affinity())
|
1461
|
+
return 0
|
1462
|
+
|
1463
|
+
|
1464
|
+
class process_namespace:
|
1465
|
+
"""A container that lists all Process class method names + some
|
1466
|
+
reasonable parameters to be called with. Utility methods (parent(),
|
1467
|
+
children(), ...) are excluded.
|
1468
|
+
|
1469
|
+
>>> ns = process_namespace(psutil.Process())
|
1470
|
+
>>> for fun, name in ns.iter(ns.getters):
|
1471
|
+
... fun()
|
1472
|
+
"""
|
1473
|
+
|
1474
|
+
utils = [('cpu_percent', (), {}), ('memory_percent', (), {})]
|
1475
|
+
|
1476
|
+
ignored = [
|
1477
|
+
('as_dict', (), {}),
|
1478
|
+
('children', (), {'recursive': True}),
|
1479
|
+
('connections', (), {}), # deprecated
|
1480
|
+
('is_running', (), {}),
|
1481
|
+
('memory_info_ex', (), {}), # deprecated
|
1482
|
+
('oneshot', (), {}),
|
1483
|
+
('parent', (), {}),
|
1484
|
+
('parents', (), {}),
|
1485
|
+
('pid', (), {}),
|
1486
|
+
('wait', (0,), {}),
|
1487
|
+
]
|
1488
|
+
|
1489
|
+
getters = [
|
1490
|
+
('cmdline', (), {}),
|
1491
|
+
('cpu_times', (), {}),
|
1492
|
+
('create_time', (), {}),
|
1493
|
+
('cwd', (), {}),
|
1494
|
+
('exe', (), {}),
|
1495
|
+
('memory_full_info', (), {}),
|
1496
|
+
('memory_info', (), {}),
|
1497
|
+
('name', (), {}),
|
1498
|
+
('net_connections', (), {'kind': 'all'}),
|
1499
|
+
('nice', (), {}),
|
1500
|
+
('num_ctx_switches', (), {}),
|
1501
|
+
('num_threads', (), {}),
|
1502
|
+
('open_files', (), {}),
|
1503
|
+
('ppid', (), {}),
|
1504
|
+
('status', (), {}),
|
1505
|
+
('threads', (), {}),
|
1506
|
+
('username', (), {}),
|
1507
|
+
]
|
1508
|
+
if POSIX:
|
1509
|
+
getters += [('uids', (), {})]
|
1510
|
+
getters += [('gids', (), {})]
|
1511
|
+
getters += [('terminal', (), {})]
|
1512
|
+
getters += [('num_fds', (), {})]
|
1513
|
+
if HAS_PROC_IO_COUNTERS:
|
1514
|
+
getters += [('io_counters', (), {})]
|
1515
|
+
if HAS_IONICE:
|
1516
|
+
getters += [('ionice', (), {})]
|
1517
|
+
if HAS_RLIMIT:
|
1518
|
+
getters += [('rlimit', (psutil.RLIMIT_NOFILE,), {})]
|
1519
|
+
if HAS_CPU_AFFINITY:
|
1520
|
+
getters += [('cpu_affinity', (), {})]
|
1521
|
+
if HAS_PROC_CPU_NUM:
|
1522
|
+
getters += [('cpu_num', (), {})]
|
1523
|
+
if HAS_ENVIRON:
|
1524
|
+
getters += [('environ', (), {})]
|
1525
|
+
if WINDOWS:
|
1526
|
+
getters += [('num_handles', (), {})]
|
1527
|
+
if HAS_MEMORY_MAPS:
|
1528
|
+
getters += [('memory_maps', (), {'grouped': False})]
|
1529
|
+
|
1530
|
+
setters = []
|
1531
|
+
if POSIX:
|
1532
|
+
setters += [('nice', (0,), {})]
|
1533
|
+
else:
|
1534
|
+
setters += [('nice', (psutil.NORMAL_PRIORITY_CLASS,), {})]
|
1535
|
+
if HAS_RLIMIT:
|
1536
|
+
setters += [('rlimit', (psutil.RLIMIT_NOFILE, (1024, 4096)), {})]
|
1537
|
+
if HAS_IONICE:
|
1538
|
+
if LINUX:
|
1539
|
+
setters += [('ionice', (psutil.IOPRIO_CLASS_NONE, 0), {})]
|
1540
|
+
else:
|
1541
|
+
setters += [('ionice', (psutil.IOPRIO_NORMAL,), {})]
|
1542
|
+
if HAS_CPU_AFFINITY:
|
1543
|
+
setters += [('cpu_affinity', ([_get_eligible_cpu()],), {})]
|
1544
|
+
|
1545
|
+
killers = [
|
1546
|
+
('send_signal', (signal.SIGTERM,), {}),
|
1547
|
+
('suspend', (), {}),
|
1548
|
+
('resume', (), {}),
|
1549
|
+
('terminate', (), {}),
|
1550
|
+
('kill', (), {}),
|
1551
|
+
]
|
1552
|
+
if WINDOWS:
|
1553
|
+
killers += [('send_signal', (signal.CTRL_C_EVENT,), {})]
|
1554
|
+
killers += [('send_signal', (signal.CTRL_BREAK_EVENT,), {})]
|
1555
|
+
|
1556
|
+
all = utils + getters + setters + killers
|
1557
|
+
|
1558
|
+
def __init__(self, proc):
|
1559
|
+
self._proc = proc
|
1560
|
+
|
1561
|
+
def iter(self, ls, clear_cache=True):
|
1562
|
+
"""Given a list of tuples yields a set of (fun, fun_name) tuples
|
1563
|
+
in random order.
|
1564
|
+
"""
|
1565
|
+
ls = list(ls)
|
1566
|
+
random.shuffle(ls)
|
1567
|
+
for fun_name, args, kwds in ls:
|
1568
|
+
if clear_cache:
|
1569
|
+
self.clear_cache()
|
1570
|
+
fun = getattr(self._proc, fun_name)
|
1571
|
+
fun = functools.partial(fun, *args, **kwds)
|
1572
|
+
yield (fun, fun_name)
|
1573
|
+
|
1574
|
+
def clear_cache(self):
|
1575
|
+
"""Clear the cache of a Process instance."""
|
1576
|
+
self._proc._init(self._proc.pid, _ignore_nsp=True)
|
1577
|
+
|
1578
|
+
@classmethod
|
1579
|
+
def test_class_coverage(cls, test_class, ls):
|
1580
|
+
"""Given a TestCase instance and a list of tuples checks that
|
1581
|
+
the class defines the required test method names.
|
1582
|
+
"""
|
1583
|
+
for fun_name, _, _ in ls:
|
1584
|
+
meth_name = 'test_' + fun_name
|
1585
|
+
if not hasattr(test_class, meth_name):
|
1586
|
+
msg = "%r class should define a '%s' method" % (
|
1587
|
+
test_class.__class__.__name__,
|
1588
|
+
meth_name,
|
1589
|
+
)
|
1590
|
+
raise AttributeError(msg)
|
1591
|
+
|
1592
|
+
@classmethod
|
1593
|
+
def test(cls):
|
1594
|
+
this = set([x[0] for x in cls.all])
|
1595
|
+
ignored = set([x[0] for x in cls.ignored])
|
1596
|
+
klass = set([x for x in dir(psutil.Process) if x[0] != '_'])
|
1597
|
+
leftout = (this | ignored) ^ klass
|
1598
|
+
if leftout:
|
1599
|
+
raise ValueError("uncovered Process class names: %r" % leftout)
|
1600
|
+
|
1601
|
+
|
1602
|
+
class system_namespace:
|
1603
|
+
"""A container that lists all the module-level, system-related APIs.
|
1604
|
+
Utilities such as cpu_percent() are excluded. Usage:
|
1605
|
+
|
1606
|
+
>>> ns = system_namespace
|
1607
|
+
>>> for fun, name in ns.iter(ns.getters):
|
1608
|
+
... fun()
|
1609
|
+
"""
|
1610
|
+
|
1611
|
+
getters = [
|
1612
|
+
('boot_time', (), {}),
|
1613
|
+
('cpu_count', (), {'logical': False}),
|
1614
|
+
('cpu_count', (), {'logical': True}),
|
1615
|
+
('cpu_stats', (), {}),
|
1616
|
+
('cpu_times', (), {'percpu': False}),
|
1617
|
+
('cpu_times', (), {'percpu': True}),
|
1618
|
+
('disk_io_counters', (), {'perdisk': True}),
|
1619
|
+
('disk_partitions', (), {'all': True}),
|
1620
|
+
('disk_usage', (os.getcwd(),), {}),
|
1621
|
+
('net_connections', (), {'kind': 'all'}),
|
1622
|
+
('net_if_addrs', (), {}),
|
1623
|
+
('net_if_stats', (), {}),
|
1624
|
+
('net_io_counters', (), {'pernic': True}),
|
1625
|
+
('pid_exists', (os.getpid(),), {}),
|
1626
|
+
('pids', (), {}),
|
1627
|
+
('swap_memory', (), {}),
|
1628
|
+
('users', (), {}),
|
1629
|
+
('virtual_memory', (), {}),
|
1630
|
+
]
|
1631
|
+
if HAS_CPU_FREQ:
|
1632
|
+
if MACOS and platform.machine() == 'arm64': # skipped due to #1892
|
1633
|
+
pass
|
1634
|
+
else:
|
1635
|
+
getters += [('cpu_freq', (), {'percpu': True})]
|
1636
|
+
if HAS_GETLOADAVG:
|
1637
|
+
getters += [('getloadavg', (), {})]
|
1638
|
+
if HAS_SENSORS_TEMPERATURES:
|
1639
|
+
getters += [('sensors_temperatures', (), {})]
|
1640
|
+
if HAS_SENSORS_FANS:
|
1641
|
+
getters += [('sensors_fans', (), {})]
|
1642
|
+
if HAS_SENSORS_BATTERY:
|
1643
|
+
getters += [('sensors_battery', (), {})]
|
1644
|
+
if WINDOWS:
|
1645
|
+
getters += [('win_service_iter', (), {})]
|
1646
|
+
getters += [('win_service_get', ('alg',), {})]
|
1647
|
+
|
1648
|
+
ignored = [
|
1649
|
+
('process_iter', (), {}),
|
1650
|
+
('wait_procs', ([psutil.Process()],), {}),
|
1651
|
+
('cpu_percent', (), {}),
|
1652
|
+
('cpu_times_percent', (), {}),
|
1653
|
+
]
|
1654
|
+
|
1655
|
+
all = getters
|
1656
|
+
|
1657
|
+
@staticmethod
|
1658
|
+
def iter(ls):
|
1659
|
+
"""Given a list of tuples yields a set of (fun, fun_name) tuples
|
1660
|
+
in random order.
|
1661
|
+
"""
|
1662
|
+
ls = list(ls)
|
1663
|
+
random.shuffle(ls)
|
1664
|
+
for fun_name, args, kwds in ls:
|
1665
|
+
fun = getattr(psutil, fun_name)
|
1666
|
+
fun = functools.partial(fun, *args, **kwds)
|
1667
|
+
yield (fun, fun_name)
|
1668
|
+
|
1669
|
+
test_class_coverage = process_namespace.test_class_coverage
|
1670
|
+
|
1671
|
+
|
1672
|
+
def retry_on_failure(retries=NO_RETRIES):
|
1673
|
+
"""Decorator which runs a test function and retries N times before
|
1674
|
+
actually failing.
|
1675
|
+
"""
|
1676
|
+
|
1677
|
+
def logfun(exc):
|
1678
|
+
print("%r, retrying" % exc, file=sys.stderr) # NOQA
|
1679
|
+
|
1680
|
+
return retry(
|
1681
|
+
exception=AssertionError, timeout=None, retries=retries, logfun=logfun
|
1682
|
+
)
|
1683
|
+
|
1684
|
+
|
1685
|
+
def skip_on_access_denied(only_if=None):
|
1686
|
+
"""Decorator to Ignore AccessDenied exceptions."""
|
1687
|
+
|
1688
|
+
def decorator(fun):
|
1689
|
+
@functools.wraps(fun)
|
1690
|
+
def wrapper(*args, **kwargs):
|
1691
|
+
try:
|
1692
|
+
return fun(*args, **kwargs)
|
1693
|
+
except psutil.AccessDenied:
|
1694
|
+
if only_if is not None:
|
1695
|
+
if not only_if:
|
1696
|
+
raise
|
1697
|
+
raise pytest.skip("raises AccessDenied")
|
1698
|
+
|
1699
|
+
return wrapper
|
1700
|
+
|
1701
|
+
return decorator
|
1702
|
+
|
1703
|
+
|
1704
|
+
def skip_on_not_implemented(only_if=None):
|
1705
|
+
"""Decorator to Ignore NotImplementedError exceptions."""
|
1706
|
+
|
1707
|
+
def decorator(fun):
|
1708
|
+
@functools.wraps(fun)
|
1709
|
+
def wrapper(*args, **kwargs):
|
1710
|
+
try:
|
1711
|
+
return fun(*args, **kwargs)
|
1712
|
+
except NotImplementedError:
|
1713
|
+
if only_if is not None:
|
1714
|
+
if not only_if:
|
1715
|
+
raise
|
1716
|
+
msg = (
|
1717
|
+
"%r was skipped because it raised NotImplementedError"
|
1718
|
+
% fun.__name__
|
1719
|
+
)
|
1720
|
+
raise pytest.skip(msg)
|
1721
|
+
|
1722
|
+
return wrapper
|
1723
|
+
|
1724
|
+
return decorator
|
1725
|
+
|
1726
|
+
|
1727
|
+
# ===================================================================
|
1728
|
+
# --- network
|
1729
|
+
# ===================================================================
|
1730
|
+
|
1731
|
+
|
1732
|
+
# XXX: no longer used
|
1733
|
+
def get_free_port(host='127.0.0.1'):
|
1734
|
+
"""Return an unused TCP port. Subject to race conditions."""
|
1735
|
+
with contextlib.closing(socket.socket()) as sock:
|
1736
|
+
sock.bind((host, 0))
|
1737
|
+
return sock.getsockname()[1]
|
1738
|
+
|
1739
|
+
|
1740
|
+
def bind_socket(family=AF_INET, type=SOCK_STREAM, addr=None):
|
1741
|
+
"""Binds a generic socket."""
|
1742
|
+
if addr is None and family in (AF_INET, AF_INET6):
|
1743
|
+
addr = ("", 0)
|
1744
|
+
sock = socket.socket(family, type)
|
1745
|
+
try:
|
1746
|
+
if os.name not in ('nt', 'cygwin'):
|
1747
|
+
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
1748
|
+
sock.bind(addr)
|
1749
|
+
if type == socket.SOCK_STREAM:
|
1750
|
+
sock.listen(5)
|
1751
|
+
return sock
|
1752
|
+
except Exception:
|
1753
|
+
sock.close()
|
1754
|
+
raise
|
1755
|
+
|
1756
|
+
|
1757
|
+
def bind_unix_socket(name, type=socket.SOCK_STREAM):
|
1758
|
+
"""Bind a UNIX socket."""
|
1759
|
+
assert psutil.POSIX
|
1760
|
+
assert not os.path.exists(name), name
|
1761
|
+
sock = socket.socket(socket.AF_UNIX, type)
|
1762
|
+
try:
|
1763
|
+
sock.bind(name)
|
1764
|
+
if type == socket.SOCK_STREAM:
|
1765
|
+
sock.listen(5)
|
1766
|
+
except Exception:
|
1767
|
+
sock.close()
|
1768
|
+
raise
|
1769
|
+
return sock
|
1770
|
+
|
1771
|
+
|
1772
|
+
def tcp_socketpair(family, addr=("", 0)):
|
1773
|
+
"""Build a pair of TCP sockets connected to each other.
|
1774
|
+
Return a (server, client) tuple.
|
1775
|
+
"""
|
1776
|
+
with contextlib.closing(socket.socket(family, SOCK_STREAM)) as ll:
|
1777
|
+
ll.bind(addr)
|
1778
|
+
ll.listen(5)
|
1779
|
+
addr = ll.getsockname()
|
1780
|
+
c = socket.socket(family, SOCK_STREAM)
|
1781
|
+
try:
|
1782
|
+
c.connect(addr)
|
1783
|
+
caddr = c.getsockname()
|
1784
|
+
while True:
|
1785
|
+
a, addr = ll.accept()
|
1786
|
+
# check that we've got the correct client
|
1787
|
+
if addr == caddr:
|
1788
|
+
return (a, c)
|
1789
|
+
a.close()
|
1790
|
+
except OSError:
|
1791
|
+
c.close()
|
1792
|
+
raise
|
1793
|
+
|
1794
|
+
|
1795
|
+
def unix_socketpair(name):
|
1796
|
+
"""Build a pair of UNIX sockets connected to each other through
|
1797
|
+
the same UNIX file name.
|
1798
|
+
Return a (server, client) tuple.
|
1799
|
+
"""
|
1800
|
+
assert psutil.POSIX
|
1801
|
+
server = client = None
|
1802
|
+
try:
|
1803
|
+
server = bind_unix_socket(name, type=socket.SOCK_STREAM)
|
1804
|
+
server.setblocking(0)
|
1805
|
+
client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
1806
|
+
client.setblocking(0)
|
1807
|
+
client.connect(name)
|
1808
|
+
# new = server.accept()
|
1809
|
+
except Exception:
|
1810
|
+
if server is not None:
|
1811
|
+
server.close()
|
1812
|
+
if client is not None:
|
1813
|
+
client.close()
|
1814
|
+
raise
|
1815
|
+
return (server, client)
|
1816
|
+
|
1817
|
+
|
1818
|
+
@contextlib.contextmanager
|
1819
|
+
def create_sockets():
|
1820
|
+
"""Open as many socket families / types as possible."""
|
1821
|
+
socks = []
|
1822
|
+
fname1 = fname2 = None
|
1823
|
+
try:
|
1824
|
+
socks.append(bind_socket(socket.AF_INET, socket.SOCK_STREAM))
|
1825
|
+
socks.append(bind_socket(socket.AF_INET, socket.SOCK_DGRAM))
|
1826
|
+
if supports_ipv6():
|
1827
|
+
socks.append(bind_socket(socket.AF_INET6, socket.SOCK_STREAM))
|
1828
|
+
socks.append(bind_socket(socket.AF_INET6, socket.SOCK_DGRAM))
|
1829
|
+
if POSIX and HAS_NET_CONNECTIONS_UNIX:
|
1830
|
+
fname1 = get_testfn()
|
1831
|
+
fname2 = get_testfn()
|
1832
|
+
s1, s2 = unix_socketpair(fname1)
|
1833
|
+
s3 = bind_unix_socket(fname2, type=socket.SOCK_DGRAM)
|
1834
|
+
for s in (s1, s2, s3):
|
1835
|
+
socks.append(s)
|
1836
|
+
yield socks
|
1837
|
+
finally:
|
1838
|
+
for s in socks:
|
1839
|
+
s.close()
|
1840
|
+
for fname in (fname1, fname2):
|
1841
|
+
if fname is not None:
|
1842
|
+
safe_rmpath(fname)
|
1843
|
+
|
1844
|
+
|
1845
|
+
def check_net_address(addr, family):
|
1846
|
+
"""Check a net address validity. Supported families are IPv4,
|
1847
|
+
IPv6 and MAC addresses.
|
1848
|
+
"""
|
1849
|
+
import ipaddress # python >= 3.3 / requires "pip install ipaddress"
|
1850
|
+
|
1851
|
+
if enum and PY3 and not PYPY:
|
1852
|
+
assert isinstance(family, enum.IntEnum), family
|
1853
|
+
if family == socket.AF_INET:
|
1854
|
+
octs = [int(x) for x in addr.split('.')]
|
1855
|
+
assert len(octs) == 4, addr
|
1856
|
+
for num in octs:
|
1857
|
+
assert 0 <= num <= 255, addr
|
1858
|
+
if not PY3:
|
1859
|
+
addr = unicode(addr)
|
1860
|
+
ipaddress.IPv4Address(addr)
|
1861
|
+
elif family == socket.AF_INET6:
|
1862
|
+
assert isinstance(addr, str), addr
|
1863
|
+
if not PY3:
|
1864
|
+
addr = unicode(addr)
|
1865
|
+
ipaddress.IPv6Address(addr)
|
1866
|
+
elif family == psutil.AF_LINK:
|
1867
|
+
assert re.match(r'([a-fA-F0-9]{2}[:|\-]?){6}', addr) is not None, addr
|
1868
|
+
else:
|
1869
|
+
raise ValueError("unknown family %r" % family)
|
1870
|
+
|
1871
|
+
|
1872
|
+
def check_connection_ntuple(conn):
|
1873
|
+
"""Check validity of a connection namedtuple."""
|
1874
|
+
|
1875
|
+
def check_ntuple(conn):
|
1876
|
+
has_pid = len(conn) == 7
|
1877
|
+
assert len(conn) in (6, 7), len(conn)
|
1878
|
+
assert conn[0] == conn.fd, conn.fd
|
1879
|
+
assert conn[1] == conn.family, conn.family
|
1880
|
+
assert conn[2] == conn.type, conn.type
|
1881
|
+
assert conn[3] == conn.laddr, conn.laddr
|
1882
|
+
assert conn[4] == conn.raddr, conn.raddr
|
1883
|
+
assert conn[5] == conn.status, conn.status
|
1884
|
+
if has_pid:
|
1885
|
+
assert conn[6] == conn.pid, conn.pid
|
1886
|
+
|
1887
|
+
def check_family(conn):
|
1888
|
+
assert conn.family in (AF_INET, AF_INET6, AF_UNIX), conn.family
|
1889
|
+
if enum is not None:
|
1890
|
+
assert isinstance(conn.family, enum.IntEnum), conn
|
1891
|
+
else:
|
1892
|
+
assert isinstance(conn.family, int), conn
|
1893
|
+
if conn.family == AF_INET:
|
1894
|
+
# actually try to bind the local socket; ignore IPv6
|
1895
|
+
# sockets as their address might be represented as
|
1896
|
+
# an IPv4-mapped-address (e.g. "::127.0.0.1")
|
1897
|
+
# and that's rejected by bind()
|
1898
|
+
s = socket.socket(conn.family, conn.type)
|
1899
|
+
with contextlib.closing(s):
|
1900
|
+
try:
|
1901
|
+
s.bind((conn.laddr[0], 0))
|
1902
|
+
except socket.error as err:
|
1903
|
+
if err.errno != errno.EADDRNOTAVAIL:
|
1904
|
+
raise
|
1905
|
+
elif conn.family == AF_UNIX:
|
1906
|
+
assert conn.status == psutil.CONN_NONE, conn.status
|
1907
|
+
|
1908
|
+
def check_type(conn):
|
1909
|
+
# SOCK_SEQPACKET may happen in case of AF_UNIX socks
|
1910
|
+
SOCK_SEQPACKET = getattr(socket, "SOCK_SEQPACKET", object())
|
1911
|
+
assert conn.type in (
|
1912
|
+
socket.SOCK_STREAM,
|
1913
|
+
socket.SOCK_DGRAM,
|
1914
|
+
SOCK_SEQPACKET,
|
1915
|
+
), conn.type
|
1916
|
+
if enum is not None:
|
1917
|
+
assert isinstance(conn.type, enum.IntEnum), conn
|
1918
|
+
else:
|
1919
|
+
assert isinstance(conn.type, int), conn
|
1920
|
+
if conn.type == socket.SOCK_DGRAM:
|
1921
|
+
assert conn.status == psutil.CONN_NONE, conn.status
|
1922
|
+
|
1923
|
+
def check_addrs(conn):
|
1924
|
+
# check IP address and port sanity
|
1925
|
+
for addr in (conn.laddr, conn.raddr):
|
1926
|
+
if conn.family in (AF_INET, AF_INET6):
|
1927
|
+
assert isinstance(addr, tuple), type(addr)
|
1928
|
+
if not addr:
|
1929
|
+
continue
|
1930
|
+
assert isinstance(addr.port, int), type(addr.port)
|
1931
|
+
assert 0 <= addr.port <= 65535, addr.port
|
1932
|
+
check_net_address(addr.ip, conn.family)
|
1933
|
+
elif conn.family == AF_UNIX:
|
1934
|
+
assert isinstance(addr, str), type(addr)
|
1935
|
+
|
1936
|
+
def check_status(conn):
|
1937
|
+
assert isinstance(conn.status, str), conn.status
|
1938
|
+
valids = [
|
1939
|
+
getattr(psutil, x) for x in dir(psutil) if x.startswith('CONN_')
|
1940
|
+
]
|
1941
|
+
assert conn.status in valids, conn.status
|
1942
|
+
if conn.family in (AF_INET, AF_INET6) and conn.type == SOCK_STREAM:
|
1943
|
+
assert conn.status != psutil.CONN_NONE, conn.status
|
1944
|
+
else:
|
1945
|
+
assert conn.status == psutil.CONN_NONE, conn.status
|
1946
|
+
|
1947
|
+
check_ntuple(conn)
|
1948
|
+
check_family(conn)
|
1949
|
+
check_type(conn)
|
1950
|
+
check_addrs(conn)
|
1951
|
+
check_status(conn)
|
1952
|
+
|
1953
|
+
|
1954
|
+
def filter_proc_net_connections(cons):
|
1955
|
+
"""Our process may start with some open UNIX sockets which are not
|
1956
|
+
initialized by us, invalidating unit tests.
|
1957
|
+
"""
|
1958
|
+
new = []
|
1959
|
+
for conn in cons:
|
1960
|
+
if POSIX and conn.family == socket.AF_UNIX:
|
1961
|
+
if MACOS and "/syslog" in conn.raddr:
|
1962
|
+
debug("skipping %s" % str(conn))
|
1963
|
+
continue
|
1964
|
+
new.append(conn)
|
1965
|
+
return new
|
1966
|
+
|
1967
|
+
|
1968
|
+
# ===================================================================
|
1969
|
+
# --- compatibility
|
1970
|
+
# ===================================================================
|
1971
|
+
|
1972
|
+
|
1973
|
+
def reload_module(module):
|
1974
|
+
"""Backport of importlib.reload of Python 3.3+."""
|
1975
|
+
try:
|
1976
|
+
import importlib
|
1977
|
+
|
1978
|
+
if not hasattr(importlib, 'reload'): # python <=3.3
|
1979
|
+
raise ImportError
|
1980
|
+
except ImportError:
|
1981
|
+
import imp
|
1982
|
+
|
1983
|
+
return imp.reload(module)
|
1984
|
+
else:
|
1985
|
+
return importlib.reload(module)
|
1986
|
+
|
1987
|
+
|
1988
|
+
def import_module_by_path(path):
|
1989
|
+
name = os.path.splitext(os.path.basename(path))[0]
|
1990
|
+
if sys.version_info[0] < 3:
|
1991
|
+
import imp
|
1992
|
+
|
1993
|
+
return imp.load_source(name, path)
|
1994
|
+
else:
|
1995
|
+
import importlib.util
|
1996
|
+
|
1997
|
+
spec = importlib.util.spec_from_file_location(name, path)
|
1998
|
+
mod = importlib.util.module_from_spec(spec)
|
1999
|
+
spec.loader.exec_module(mod)
|
2000
|
+
return mod
|
2001
|
+
|
2002
|
+
|
2003
|
+
# ===================================================================
|
2004
|
+
# --- others
|
2005
|
+
# ===================================================================
|
2006
|
+
|
2007
|
+
|
2008
|
+
def warn(msg):
|
2009
|
+
"""Raise a warning msg."""
|
2010
|
+
warnings.warn(msg, UserWarning, stacklevel=2)
|
2011
|
+
|
2012
|
+
|
2013
|
+
def is_namedtuple(x):
|
2014
|
+
"""Check if object is an instance of namedtuple."""
|
2015
|
+
t = type(x)
|
2016
|
+
b = t.__bases__
|
2017
|
+
if len(b) != 1 or b[0] is not tuple:
|
2018
|
+
return False
|
2019
|
+
f = getattr(t, '_fields', None)
|
2020
|
+
if not isinstance(f, tuple):
|
2021
|
+
return False
|
2022
|
+
return all(isinstance(n, str) for n in f)
|
2023
|
+
|
2024
|
+
|
2025
|
+
if POSIX:
|
2026
|
+
|
2027
|
+
@contextlib.contextmanager
|
2028
|
+
def copyload_shared_lib(suffix=""):
|
2029
|
+
"""Ctx manager which picks up a random shared CO lib used
|
2030
|
+
by this process, copies it in another location and loads it
|
2031
|
+
in memory via ctypes. Return the new absolutized path.
|
2032
|
+
"""
|
2033
|
+
exe = 'pypy' if PYPY else 'python'
|
2034
|
+
ext = ".so"
|
2035
|
+
dst = get_testfn(suffix=suffix + ext)
|
2036
|
+
libs = [
|
2037
|
+
x.path
|
2038
|
+
for x in psutil.Process().memory_maps()
|
2039
|
+
if os.path.splitext(x.path)[1] == ext and exe in x.path.lower()
|
2040
|
+
]
|
2041
|
+
src = random.choice(libs)
|
2042
|
+
shutil.copyfile(src, dst)
|
2043
|
+
try:
|
2044
|
+
ctypes.CDLL(dst)
|
2045
|
+
yield dst
|
2046
|
+
finally:
|
2047
|
+
safe_rmpath(dst)
|
2048
|
+
|
2049
|
+
else:
|
2050
|
+
|
2051
|
+
@contextlib.contextmanager
|
2052
|
+
def copyload_shared_lib(suffix=""):
|
2053
|
+
"""Ctx manager which picks up a random shared DLL lib used
|
2054
|
+
by this process, copies it in another location and loads it
|
2055
|
+
in memory via ctypes.
|
2056
|
+
Return the new absolutized, normcased path.
|
2057
|
+
"""
|
2058
|
+
from ctypes import WinError
|
2059
|
+
from ctypes import wintypes
|
2060
|
+
|
2061
|
+
ext = ".dll"
|
2062
|
+
dst = get_testfn(suffix=suffix + ext)
|
2063
|
+
libs = [
|
2064
|
+
x.path
|
2065
|
+
for x in psutil.Process().memory_maps()
|
2066
|
+
if x.path.lower().endswith(ext)
|
2067
|
+
and 'python' in os.path.basename(x.path).lower()
|
2068
|
+
and 'wow64' not in x.path.lower()
|
2069
|
+
]
|
2070
|
+
if PYPY and not libs:
|
2071
|
+
libs = [
|
2072
|
+
x.path
|
2073
|
+
for x in psutil.Process().memory_maps()
|
2074
|
+
if 'pypy' in os.path.basename(x.path).lower()
|
2075
|
+
]
|
2076
|
+
src = random.choice(libs)
|
2077
|
+
shutil.copyfile(src, dst)
|
2078
|
+
cfile = None
|
2079
|
+
try:
|
2080
|
+
cfile = ctypes.WinDLL(dst)
|
2081
|
+
yield dst
|
2082
|
+
finally:
|
2083
|
+
# Work around OverflowError:
|
2084
|
+
# - https://ci.appveyor.com/project/giampaolo/psutil/build/1207/
|
2085
|
+
# job/o53330pbnri9bcw7
|
2086
|
+
# - http://bugs.python.org/issue30286
|
2087
|
+
# - http://stackoverflow.com/questions/23522055
|
2088
|
+
if cfile is not None:
|
2089
|
+
FreeLibrary = ctypes.windll.kernel32.FreeLibrary
|
2090
|
+
FreeLibrary.argtypes = [wintypes.HMODULE]
|
2091
|
+
ret = FreeLibrary(cfile._handle)
|
2092
|
+
if ret == 0:
|
2093
|
+
WinError()
|
2094
|
+
safe_rmpath(dst)
|
2095
|
+
|
2096
|
+
|
2097
|
+
# ===================================================================
|
2098
|
+
# --- Exit funs (first is executed last)
|
2099
|
+
# ===================================================================
|
2100
|
+
|
2101
|
+
|
2102
|
+
# this is executed first
|
2103
|
+
@atexit.register
|
2104
|
+
def cleanup_test_procs():
|
2105
|
+
reap_children(recursive=True)
|
2106
|
+
|
2107
|
+
|
2108
|
+
# atexit module does not execute exit functions in case of SIGTERM, which
|
2109
|
+
# gets sent to test subprocesses, which is a problem if they import this
|
2110
|
+
# module. With this it will. See:
|
2111
|
+
# https://gmpy.dev/blog/2016/how-to-always-execute-exit-functions-in-python
|
2112
|
+
if POSIX:
|
2113
|
+
signal.signal(signal.SIGTERM, lambda sig, _: sys.exit(sig))
|