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.
Files changed (2380) hide show
  1. py2docfx/__main__.py +15 -90
  2. py2docfx/convert_prepare/constants.py +3 -0
  3. py2docfx/convert_prepare/environment.py +1 -1
  4. py2docfx/convert_prepare/generate_document.py +2 -15
  5. py2docfx/convert_prepare/get_source.py +5 -23
  6. py2docfx/convert_prepare/git.py +0 -1
  7. py2docfx/convert_prepare/pack.py +0 -1
  8. py2docfx/convert_prepare/sphinx_caller.py +23 -39
  9. py2docfx/convert_prepare/tests/test_environment.py +53 -0
  10. py2docfx/convert_prepare/tests/test_generate_document.py +2 -0
  11. py2docfx/convert_prepare/tests/test_sphinx_caller.py +2 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +32 -8
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +21 -3
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +5 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +69 -28
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +25 -0
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +4 -4
  18. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +81 -0
  19. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +281 -0
  20. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +1157 -0
  21. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +724 -0
  22. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +72 -0
  23. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +21 -0
  24. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +41 -0
  25. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +41 -0
  26. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +34 -0
  27. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +137 -0
  28. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +16 -0
  29. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +68 -0
  30. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +1599 -0
  31. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +184 -0
  32. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +885 -0
  33. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +34 -0
  34. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +97 -0
  35. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +195 -0
  36. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +30 -0
  37. py2docfx/venv/venv1/Lib/site-packages/azure/core/__init__.py +43 -0
  38. py2docfx/venv/venv1/Lib/site-packages/azure/core/_azure_clouds.py +41 -0
  39. py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +66 -0
  40. py2docfx/venv/venv1/Lib/site-packages/azure/core/_match_conditions.py +46 -0
  41. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +201 -0
  42. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +289 -0
  43. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +12 -0
  44. py2docfx/venv/venv1/Lib/site-packages/azure/core/async_paging.py +151 -0
  45. py2docfx/venv/venv1/Lib/site-packages/azure/core/configuration.py +148 -0
  46. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +250 -0
  47. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials_async.py +84 -0
  48. py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +579 -0
  49. py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +229 -0
  50. py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +125 -0
  51. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +189 -0
  52. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +229 -0
  53. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +219 -0
  54. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +84 -0
  55. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools_async.py +73 -0
  56. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/__init__.py +76 -0
  57. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +270 -0
  58. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +188 -0
  59. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_base.py +140 -0
  60. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_base_async.py +57 -0
  61. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +79 -0
  62. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +147 -0
  63. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +211 -0
  64. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +87 -0
  65. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +563 -0
  66. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +215 -0
  67. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +77 -0
  68. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +750 -0
  69. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +104 -0
  70. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +120 -0
  71. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +564 -0
  72. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +863 -0
  73. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +169 -0
  74. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_requests_async.py +55 -0
  75. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_bigger_block_size_http_adapters.py +48 -0
  76. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +297 -0
  77. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +413 -0
  78. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +303 -0
  79. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/__init__.py +42 -0
  80. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +208 -0
  81. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +303 -0
  82. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +180 -0
  83. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +857 -0
  84. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/__init__.py +36 -0
  85. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +228 -0
  86. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +421 -0
  87. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +475 -0
  88. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl_async.py +155 -0
  89. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +47 -0
  90. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +102 -0
  91. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_trio.py +42 -0
  92. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_rest_py3.py +418 -0
  93. py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +125 -0
  94. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +520 -0
  95. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/__init__.py +12 -0
  96. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +311 -0
  97. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +108 -0
  98. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +109 -0
  99. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +109 -0
  100. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +303 -0
  101. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +6 -0
  102. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/__init__.py +35 -0
  103. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_connection_string_parser.py +44 -0
  104. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_messaging_shared.py +46 -0
  105. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +420 -0
  106. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +62 -0
  107. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +188 -0
  108. py2docfx/venv/venv1/Lib/site-packages/azure/identity/__init__.py +66 -0
  109. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_auth_record.py +114 -0
  110. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_bearer_token_provider.py +46 -0
  111. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +67 -0
  112. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/__init__.py +47 -0
  113. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/app_service.py +39 -0
  114. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +119 -0
  115. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/authorization_code.py +141 -0
  116. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azd_cli.py +284 -0
  117. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_arc.py +123 -0
  118. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_cli.py +258 -0
  119. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_ml.py +80 -0
  120. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_pipelines.py +176 -0
  121. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/azure_powershell.py +265 -0
  122. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/browser.py +157 -0
  123. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/certificate.py +182 -0
  124. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/chained.py +219 -0
  125. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/client_assertion.py +77 -0
  126. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/client_secret.py +53 -0
  127. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/cloud_shell.py +47 -0
  128. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +257 -0
  129. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/device_code.py +118 -0
  130. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +183 -0
  131. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/imds.py +129 -0
  132. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/managed_identity.py +185 -0
  133. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/on_behalf_of.py +168 -0
  134. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +39 -0
  135. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/shared_cache.py +202 -0
  136. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/silent.py +224 -0
  137. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +79 -0
  138. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +216 -0
  139. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/workload_identity.py +97 -0
  140. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_enums.py +67 -0
  141. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_exceptions.py +50 -0
  142. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/__init__.py +56 -0
  143. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aad_client.py +77 -0
  144. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aad_client_base.py +420 -0
  145. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/aadclient_certificate.py +46 -0
  146. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +62 -0
  147. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/client_credential_base.py +57 -0
  148. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/decorators.py +74 -0
  149. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/get_token_mixin.py +165 -0
  150. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/interactive.py +302 -0
  151. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/linux_vscode_adapter.py +100 -0
  152. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/macos_vscode_adapter.py +34 -0
  153. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/managed_identity_base.py +61 -0
  154. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/managed_identity_client.py +151 -0
  155. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +145 -0
  156. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_credentials.py +147 -0
  157. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_managed_identity_client.py +210 -0
  158. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/pipeline.py +94 -0
  159. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/shared_token_cache.py +291 -0
  160. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/user_agent.py +9 -0
  161. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/utils.py +120 -0
  162. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/win_vscode_adapter.py +77 -0
  163. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +116 -0
  164. py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +5 -0
  165. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/__init__.py +46 -0
  166. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_bearer_token_provider.py +47 -0
  167. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/__init__.py +40 -0
  168. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/app_service.py +20 -0
  169. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +121 -0
  170. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/authorization_code.py +147 -0
  171. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +232 -0
  172. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_arc.py +45 -0
  173. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +209 -0
  174. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_ml.py +20 -0
  175. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_pipelines.py +146 -0
  176. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +186 -0
  177. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/certificate.py +77 -0
  178. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +192 -0
  179. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/client_assertion.py +75 -0
  180. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/client_secret.py +67 -0
  181. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/cloud_shell.py +29 -0
  182. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +242 -0
  183. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +153 -0
  184. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/imds.py +85 -0
  185. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/managed_identity.py +170 -0
  186. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/on_behalf_of.py +135 -0
  187. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +20 -0
  188. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/shared_cache.py +154 -0
  189. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +127 -0
  190. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/workload_identity.py +77 -0
  191. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/__init__.py +32 -0
  192. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/aad_client.py +97 -0
  193. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/decorators.py +74 -0
  194. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/get_token_mixin.py +165 -0
  195. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/managed_identity_base.py +68 -0
  196. py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_internal/managed_identity_client.py +39 -0
  197. py2docfx/venv/venv1/Lib/site-packages/cachetools/__init__.py +859 -0
  198. py2docfx/venv/venv1/Lib/site-packages/cachetools/func.py +121 -0
  199. py2docfx/venv/venv1/Lib/site-packages/cachetools/keys.py +62 -0
  200. py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +4 -0
  201. py2docfx/venv/venv1/Lib/site-packages/certifi/__main__.py +12 -0
  202. py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +114 -0
  203. py2docfx/venv/venv1/Lib/site-packages/cffi/__init__.py +14 -0
  204. py2docfx/venv/venv1/Lib/site-packages/cffi/_imp_emulation.py +83 -0
  205. py2docfx/venv/venv1/Lib/site-packages/cffi/_shimmed_dist_utils.py +45 -0
  206. py2docfx/venv/venv1/Lib/site-packages/cffi/api.py +967 -0
  207. py2docfx/venv/venv1/Lib/site-packages/cffi/backend_ctypes.py +1121 -0
  208. py2docfx/venv/venv1/Lib/site-packages/cffi/cffi_opcode.py +187 -0
  209. py2docfx/venv/venv1/Lib/site-packages/cffi/commontypes.py +82 -0
  210. py2docfx/venv/venv1/Lib/site-packages/cffi/cparser.py +1015 -0
  211. py2docfx/venv/venv1/Lib/site-packages/cffi/error.py +31 -0
  212. py2docfx/venv/venv1/Lib/site-packages/cffi/ffiplatform.py +113 -0
  213. py2docfx/venv/venv1/Lib/site-packages/cffi/lock.py +30 -0
  214. py2docfx/venv/venv1/Lib/site-packages/cffi/model.py +618 -0
  215. py2docfx/venv/venv1/Lib/site-packages/cffi/pkgconfig.py +121 -0
  216. py2docfx/venv/venv1/Lib/site-packages/cffi/recompiler.py +1598 -0
  217. py2docfx/venv/venv1/Lib/site-packages/cffi/setuptools_ext.py +216 -0
  218. py2docfx/venv/venv1/Lib/site-packages/cffi/vengine_cpy.py +1084 -0
  219. py2docfx/venv/venv1/Lib/site-packages/cffi/vengine_gen.py +679 -0
  220. py2docfx/venv/venv1/Lib/site-packages/cffi/verifier.py +306 -0
  221. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/__init__.py +46 -0
  222. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/__main__.py +4 -0
  223. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/api.py +668 -0
  224. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cd.py +395 -0
  225. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__init__.py +6 -0
  226. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +320 -0
  227. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +1997 -0
  228. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +65 -0
  229. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +628 -0
  230. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/models.py +359 -0
  231. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +421 -0
  232. py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +6 -0
  233. py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +17 -0
  234. py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +13 -0
  235. py2docfx/venv/venv1/Lib/site-packages/cryptography/exceptions.py +52 -0
  236. py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +215 -0
  237. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/__init__.py +13 -0
  238. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +313 -0
  239. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/__init__.py +13 -0
  240. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/__init__.py +9 -0
  241. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +291 -0
  242. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/__init__.py +3 -0
  243. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/__init__.py +3 -0
  244. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +183 -0
  245. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +121 -0
  246. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/__init__.py +5 -0
  247. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py +5 -0
  248. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +107 -0
  249. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/__init__.py +3 -0
  250. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_asymmetric.py +19 -0
  251. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +58 -0
  252. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +169 -0
  253. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py +3 -0
  254. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +135 -0
  255. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +154 -0
  256. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +403 -0
  257. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +116 -0
  258. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +118 -0
  259. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py +113 -0
  260. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +260 -0
  261. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/types.py +111 -0
  262. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py +24 -0
  263. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +109 -0
  264. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +112 -0
  265. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py +27 -0
  266. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/aead.py +23 -0
  267. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +177 -0
  268. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +145 -0
  269. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +268 -0
  270. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/cmac.py +10 -0
  271. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/constant_time.py +14 -0
  272. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +242 -0
  273. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hmac.py +13 -0
  274. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/__init__.py +23 -0
  275. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +124 -0
  276. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +101 -0
  277. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +302 -0
  278. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +62 -0
  279. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py +80 -0
  280. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +61 -0
  281. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/keywrap.py +177 -0
  282. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +204 -0
  283. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/poly1305.py +11 -0
  284. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +63 -0
  285. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/base.py +14 -0
  286. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +156 -0
  287. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +336 -0
  288. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +1569 -0
  289. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py +9 -0
  290. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +92 -0
  291. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +50 -0
  292. py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +127 -0
  293. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +259 -0
  294. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +1226 -0
  295. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/certificate_transparency.py +97 -0
  296. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +2196 -0
  297. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/general_name.py +281 -0
  298. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +465 -0
  299. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +678 -0
  300. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +35 -0
  301. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +28 -0
  302. py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.py +46 -0
  303. py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.py +52 -0
  304. py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.py +52 -0
  305. py2docfx/venv/venv1/Lib/site-packages/google/api/billing_pb2.py +44 -0
  306. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +93 -0
  307. py2docfx/venv/venv1/Lib/site-packages/google/api/config_change_pb2.py +48 -0
  308. py2docfx/venv/venv1/Lib/site-packages/google/api/consumer_pb2.py +46 -0
  309. py2docfx/venv/venv1/Lib/site-packages/google/api/context_pb2.py +44 -0
  310. py2docfx/venv/venv1/Lib/site-packages/google/api/control_pb2.py +45 -0
  311. py2docfx/venv/venv1/Lib/site-packages/google/api/distribution_pb2.py +60 -0
  312. py2docfx/venv/venv1/Lib/site-packages/google/api/documentation_pb2.py +48 -0
  313. py2docfx/venv/venv1/Lib/site-packages/google/api/endpoint_pb2.py +42 -0
  314. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +44 -0
  315. py2docfx/venv/venv1/Lib/site-packages/google/api/field_behavior_pb2.py +49 -0
  316. py2docfx/venv/venv1/Lib/site-packages/google/api/field_info_pb2.py +51 -0
  317. py2docfx/venv/venv1/Lib/site-packages/google/api/http_pb2.py +46 -0
  318. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +45 -0
  319. py2docfx/venv/venv1/Lib/site-packages/google/api/label_pb2.py +44 -0
  320. py2docfx/venv/venv1/Lib/site-packages/google/api/launch_stage_pb2.py +44 -0
  321. py2docfx/venv/venv1/Lib/site-packages/google/api/log_pb2.py +45 -0
  322. py2docfx/venv/venv1/Lib/site-packages/google/api/logging_pb2.py +44 -0
  323. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +65 -0
  324. py2docfx/venv/venv1/Lib/site-packages/google/api/monitored_resource_pb2.py +61 -0
  325. py2docfx/venv/venv1/Lib/site-packages/google/api/monitoring_pb2.py +46 -0
  326. py2docfx/venv/venv1/Lib/site-packages/google/api/policy_pb2.py +47 -0
  327. py2docfx/venv/venv1/Lib/site-packages/google/api/quota_pb2.py +54 -0
  328. py2docfx/venv/venv1/Lib/site-packages/google/api/resource_pb2.py +51 -0
  329. py2docfx/venv/venv1/Lib/site-packages/google/api/routing_pb2.py +47 -0
  330. py2docfx/venv/venv1/Lib/site-packages/google/api/service_pb2.py +67 -0
  331. py2docfx/venv/venv1/Lib/site-packages/google/api/source_info_pb2.py +47 -0
  332. py2docfx/venv/venv1/Lib/site-packages/google/api/system_parameter_pb2.py +48 -0
  333. py2docfx/venv/venv1/Lib/site-packages/google/api/usage_pb2.py +44 -0
  334. py2docfx/venv/venv1/Lib/site-packages/google/api/visibility_pb2.py +49 -0
  335. py2docfx/venv/venv1/Lib/site-packages/google/api_core/__init__.py +22 -0
  336. py2docfx/venv/venv1/Lib/site-packages/google/api_core/_rest_streaming_base.py +118 -0
  337. py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +743 -0
  338. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +108 -0
  339. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +137 -0
  340. py2docfx/venv/venv1/Lib/site-packages/google/api_core/datetime_helpers.py +298 -0
  341. py2docfx/venv/venv1/Lib/site-packages/google/api_core/exceptions.py +670 -0
  342. py2docfx/venv/venv1/Lib/site-packages/google/api_core/extended_operation.py +225 -0
  343. py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/__init__.py +19 -0
  344. py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/_helpers.py +39 -0
  345. py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/async_future.py +162 -0
  346. py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/base.py +64 -0
  347. py2docfx/venv/venv1/Lib/site-packages/google/api_core/future/polling.py +323 -0
  348. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/__init__.py +29 -0
  349. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +57 -0
  350. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/config.py +175 -0
  351. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/config_async.py +42 -0
  352. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/method.py +253 -0
  353. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/method_async.py +59 -0
  354. py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/routing_header.py +87 -0
  355. py2docfx/venv/venv1/Lib/site-packages/google/api_core/general_helpers.py +16 -0
  356. py2docfx/venv/venv1/Lib/site-packages/google/api_core/grpc_helpers.py +622 -0
  357. py2docfx/venv/venv1/Lib/site-packages/google/api_core/grpc_helpers_async.py +331 -0
  358. py2docfx/venv/venv1/Lib/site-packages/google/api_core/iam.py +427 -0
  359. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operation.py +365 -0
  360. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operation_async.py +225 -0
  361. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/__init__.py +40 -0
  362. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/abstract_operations_base_client.py +370 -0
  363. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/abstract_operations_client.py +387 -0
  364. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_async_client.py +364 -0
  365. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_client.py +378 -0
  366. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_client_config.py +60 -0
  367. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/operations_rest_client_async.py +345 -0
  368. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers.py +67 -0
  369. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers_async.py +71 -0
  370. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/pagers_base.py +73 -0
  371. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/__init__.py +39 -0
  372. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/base.py +282 -0
  373. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/rest.py +473 -0
  374. py2docfx/venv/venv1/Lib/site-packages/google/api_core/operations_v1/transports/rest_asyncio.py +560 -0
  375. py2docfx/venv/venv1/Lib/site-packages/google/api_core/page_iterator.py +571 -0
  376. py2docfx/venv/venv1/Lib/site-packages/google/api_core/page_iterator_async.py +285 -0
  377. py2docfx/venv/venv1/Lib/site-packages/google/api_core/path_template.py +346 -0
  378. py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +373 -0
  379. py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_helpers.py +109 -0
  380. py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_streaming.py +66 -0
  381. py2docfx/venv/venv1/Lib/site-packages/google/api_core/rest_streaming_async.py +89 -0
  382. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/__init__.py +52 -0
  383. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +361 -0
  384. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +263 -0
  385. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +325 -0
  386. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +301 -0
  387. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +238 -0
  388. py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry_async.py +34 -0
  389. py2docfx/venv/venv1/Lib/site-packages/google/api_core/timeout.py +284 -0
  390. py2docfx/venv/venv1/Lib/site-packages/google/api_core/universe.py +82 -0
  391. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +15 -0
  392. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version_header.py +29 -0
  393. py2docfx/venv/venv1/Lib/site-packages/google/auth/__init__.py +53 -0
  394. py2docfx/venv/venv1/Lib/site-packages/google/auth/_cloud_sdk.py +153 -0
  395. py2docfx/venv/venv1/Lib/site-packages/google/auth/_credentials_async.py +171 -0
  396. py2docfx/venv/venv1/Lib/site-packages/google/auth/_credentials_base.py +75 -0
  397. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +693 -0
  398. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default_async.py +282 -0
  399. py2docfx/venv/venv1/Lib/site-packages/google/auth/_exponential_backoff.py +164 -0
  400. py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +273 -0
  401. py2docfx/venv/venv1/Lib/site-packages/google/auth/_jwt_async.py +164 -0
  402. py2docfx/venv/venv1/Lib/site-packages/google/auth/_oauth2client.py +167 -0
  403. py2docfx/venv/venv1/Lib/site-packages/google/auth/_refresh_worker.py +109 -0
  404. py2docfx/venv/venv1/Lib/site-packages/google/auth/_service_account_info.py +80 -0
  405. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/__init__.py +25 -0
  406. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/credentials.py +143 -0
  407. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/__init__.py +144 -0
  408. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +184 -0
  409. py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/sessions.py +268 -0
  410. py2docfx/venv/venv1/Lib/site-packages/google/auth/api_key.py +76 -0
  411. py2docfx/venv/venv1/Lib/site-packages/google/auth/app_engine.py +180 -0
  412. py2docfx/venv/venv1/Lib/site-packages/google/auth/aws.py +861 -0
  413. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/__init__.py +22 -0
  414. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +367 -0
  415. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +496 -0
  416. py2docfx/venv/venv1/Lib/site-packages/google/auth/credentials.py +522 -0
  417. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/__init__.py +98 -0
  418. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/_cryptography_rsa.py +151 -0
  419. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/_python_rsa.py +175 -0
  420. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/base.py +127 -0
  421. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/es256.py +175 -0
  422. py2docfx/venv/venv1/Lib/site-packages/google/auth/crypt/rsa.py +30 -0
  423. py2docfx/venv/venv1/Lib/site-packages/google/auth/downscoped.py +512 -0
  424. py2docfx/venv/venv1/Lib/site-packages/google/auth/environment_vars.py +84 -0
  425. py2docfx/venv/venv1/Lib/site-packages/google/auth/exceptions.py +108 -0
  426. py2docfx/venv/venv1/Lib/site-packages/google/auth/external_account.py +628 -0
  427. py2docfx/venv/venv1/Lib/site-packages/google/auth/external_account_authorized_user.py +380 -0
  428. py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +114 -0
  429. py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +439 -0
  430. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +462 -0
  431. py2docfx/venv/venv1/Lib/site-packages/google/auth/jwt.py +878 -0
  432. py2docfx/venv/venv1/Lib/site-packages/google/auth/metrics.py +154 -0
  433. py2docfx/venv/venv1/Lib/site-packages/google/auth/pluggable.py +429 -0
  434. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +103 -0
  435. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +391 -0
  436. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_custom_tls_signer.py +283 -0
  437. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +113 -0
  438. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_mtls_helper.py +407 -0
  439. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +52 -0
  440. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/grpc.py +343 -0
  441. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/mtls.py +112 -0
  442. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +600 -0
  443. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +444 -0
  444. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +15 -0
  445. py2docfx/venv/venv1/Lib/site-packages/google/cloud/extended_operations_pb2.py +47 -0
  446. py2docfx/venv/venv1/Lib/site-packages/google/cloud/location/locations_pb2.py +71 -0
  447. py2docfx/venv/venv1/Lib/site-packages/google/gapic/metadata/gapic_metadata_pb2.py +62 -0
  448. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/http_request_pb2.py +47 -0
  449. py2docfx/venv/venv1/Lib/site-packages/google/logging/type/log_severity_pb2.py +44 -0
  450. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_grpc.py +19 -0
  451. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_grpc_pb2.py +15 -0
  452. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_pb2.py +42 -0
  453. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_pb2_grpc.py +341 -0
  454. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto.py +5 -0
  455. py2docfx/venv/venv1/Lib/site-packages/google/longrunning/operations_proto_pb2.py +95 -0
  456. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/__init__.py +36 -0
  457. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +500 -0
  458. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client_async.py +286 -0
  459. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_credentials_async.py +118 -0
  460. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_id_token_async.py +285 -0
  461. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_reauth_async.py +328 -0
  462. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_service_account_async.py +132 -0
  463. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/challenges.py +281 -0
  464. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/credentials.py +614 -0
  465. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/gdch_credentials.py +251 -0
  466. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +340 -0
  467. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/reauth.py +369 -0
  468. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +846 -0
  469. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/sts.py +176 -0
  470. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/utils.py +168 -0
  471. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_handler.py +82 -0
  472. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_handler_factory.py +16 -0
  473. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +156 -0
  474. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +10 -0
  475. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +37 -0
  476. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +43 -0
  477. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +46 -0
  478. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +1511 -0
  479. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +154 -0
  480. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +3169 -0
  481. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +1355 -0
  482. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +37 -0
  483. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +37 -0
  484. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +37 -0
  485. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/__init__.py +7 -0
  486. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +420 -0
  487. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/api_implementation.py +142 -0
  488. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +117 -0
  489. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +677 -0
  490. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +1036 -0
  491. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/encoder.py +806 -0
  492. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/enum_type_wrapper.py +112 -0
  493. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/extension_dict.py +194 -0
  494. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +310 -0
  495. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/message_listener.py +55 -0
  496. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +5 -0
  497. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +1580 -0
  498. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +119 -0
  499. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +408 -0
  500. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +678 -0
  501. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/wire_format.py +245 -0
  502. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +1069 -0
  503. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +422 -0
  504. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +237 -0
  505. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +116 -0
  506. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_builder.py +111 -0
  507. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_json.py +83 -0
  508. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/pyext/cpp_message.py +49 -0
  509. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +85 -0
  510. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +123 -0
  511. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +213 -0
  512. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service_reflection.py +272 -0
  513. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +37 -0
  514. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +47 -0
  515. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +197 -0
  516. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_encoding.py +106 -0
  517. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +1864 -0
  518. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +37 -0
  519. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +53 -0
  520. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +97 -0
  521. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +53 -0
  522. py2docfx/venv/venv1/Lib/site-packages/google/rpc/code_pb2.py +42 -0
  523. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/attribute_context_pb2.py +82 -0
  524. py2docfx/venv/venv1/Lib/site-packages/google/rpc/context/audit_context_pb2.py +47 -0
  525. py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +77 -0
  526. py2docfx/venv/venv1/Lib/site-packages/google/rpc/http_pb2.py +46 -0
  527. py2docfx/venv/venv1/Lib/site-packages/google/rpc/status_pb2.py +45 -0
  528. py2docfx/venv/venv1/Lib/site-packages/google/type/calendar_period_pb2.py +44 -0
  529. py2docfx/venv/venv1/Lib/site-packages/google/type/color_pb2.py +45 -0
  530. py2docfx/venv/venv1/Lib/site-packages/google/type/date_pb2.py +42 -0
  531. py2docfx/venv/venv1/Lib/site-packages/google/type/datetime_pb2.py +49 -0
  532. py2docfx/venv/venv1/Lib/site-packages/google/type/dayofweek_pb2.py +44 -0
  533. py2docfx/venv/venv1/Lib/site-packages/google/type/decimal_pb2.py +42 -0
  534. py2docfx/venv/venv1/Lib/site-packages/google/type/expr_pb2.py +42 -0
  535. py2docfx/venv/venv1/Lib/site-packages/google/type/fraction_pb2.py +44 -0
  536. py2docfx/venv/venv1/Lib/site-packages/google/type/interval_pb2.py +47 -0
  537. py2docfx/venv/venv1/Lib/site-packages/google/type/latlng_pb2.py +42 -0
  538. py2docfx/venv/venv1/Lib/site-packages/google/type/localized_text_pb2.py +44 -0
  539. py2docfx/venv/venv1/Lib/site-packages/google/type/money_pb2.py +42 -0
  540. py2docfx/venv/venv1/Lib/site-packages/google/type/month_pb2.py +42 -0
  541. py2docfx/venv/venv1/Lib/site-packages/google/type/phone_number_pb2.py +46 -0
  542. py2docfx/venv/venv1/Lib/site-packages/google/type/postal_address_pb2.py +44 -0
  543. py2docfx/venv/venv1/Lib/site-packages/google/type/quaternion_pb2.py +44 -0
  544. py2docfx/venv/venv1/Lib/site-packages/google/type/timeofday_pb2.py +44 -0
  545. py2docfx/venv/venv1/Lib/site-packages/idna/__init__.py +45 -0
  546. py2docfx/venv/venv1/Lib/site-packages/idna/codec.py +122 -0
  547. py2docfx/venv/venv1/Lib/site-packages/idna/compat.py +15 -0
  548. py2docfx/venv/venv1/Lib/site-packages/idna/core.py +437 -0
  549. py2docfx/venv/venv1/Lib/site-packages/idna/idnadata.py +4243 -0
  550. py2docfx/venv/venv1/Lib/site-packages/idna/intranges.py +57 -0
  551. py2docfx/venv/venv1/Lib/site-packages/idna/package_data.py +1 -0
  552. py2docfx/venv/venv1/Lib/site-packages/idna/uts46data.py +8681 -0
  553. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +39 -0
  554. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +812 -0
  555. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +121 -0
  556. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +218 -0
  557. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +116 -0
  558. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +85 -0
  559. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +161 -0
  560. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +195 -0
  561. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +72 -0
  562. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +114 -0
  563. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +190 -0
  564. py2docfx/venv/venv1/Lib/site-packages/jwt/__init__.py +74 -0
  565. py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +860 -0
  566. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwk.py +144 -0
  567. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +335 -0
  568. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +377 -0
  569. py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +74 -0
  570. py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +64 -0
  571. py2docfx/venv/venv1/Lib/site-packages/jwt/jwk_set_cache.py +31 -0
  572. py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +124 -0
  573. py2docfx/venv/venv1/Lib/site-packages/jwt/types.py +5 -0
  574. py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +145 -0
  575. py2docfx/venv/venv1/Lib/site-packages/jwt/warnings.py +2 -0
  576. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +48 -0
  577. py2docfx/venv/venv1/Lib/site-packages/msal/__main__.py +343 -0
  578. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +2432 -0
  579. py2docfx/venv/venv1/Lib/site-packages/msal/auth_scheme.py +34 -0
  580. py2docfx/venv/venv1/Lib/site-packages/msal/authority.py +225 -0
  581. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +265 -0
  582. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +122 -0
  583. py2docfx/venv/venv1/Lib/site-packages/msal/exceptions.py +38 -0
  584. py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +286 -0
  585. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +649 -0
  586. py2docfx/venv/venv1/Lib/site-packages/msal/mex.py +137 -0
  587. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/__init__.py +7 -0
  588. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/assertion.py +137 -0
  589. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/authcode.py +379 -0
  590. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/http.py +74 -0
  591. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oauth2.py +865 -0
  592. py2docfx/venv/venv1/Lib/site-packages/msal/oauth2cli/oidc.py +338 -0
  593. py2docfx/venv/venv1/Lib/site-packages/msal/region.py +45 -0
  594. py2docfx/venv/venv1/Lib/site-packages/msal/telemetry.py +78 -0
  595. py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +148 -0
  596. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +418 -0
  597. py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_request.py +129 -0
  598. py2docfx/venv/venv1/Lib/site-packages/msal/wstrust_response.py +94 -0
  599. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +13 -0
  600. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +71 -0
  601. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +134 -0
  602. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/osx.py +252 -0
  603. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/persistence.py +344 -0
  604. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +88 -0
  605. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/windows.py +123 -0
  606. py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -0
  607. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/__init__.py +1 -0
  608. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/backports/__init__.py +79 -0
  609. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/configuration/__init__.py +46 -0
  610. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/http_handler/__init__.py +43 -0
  611. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/aws_identity_doc_utils.py +95 -0
  612. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/gcp_metadata_config.py +115 -0
  613. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/k8s_utils.py +64 -0
  614. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/monitored_resource/monitored_resource.py +68 -0
  615. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/resource/__init__.py +218 -0
  616. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/runtime_context/__init__.py +177 -0
  617. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/runtime_context/version.py +15 -0
  618. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/schedule/__init__.py +149 -0
  619. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/__init__.py +13 -0
  620. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/async_.py +231 -0
  621. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/base.py +31 -0
  622. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/transports/sync.py +28 -0
  623. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/utils/__init__.py +131 -0
  624. py2docfx/venv/venv1/Lib/site-packages/opencensus/common/version/__init__.py +15 -0
  625. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -0
  626. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -0
  627. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -0
  628. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -0
  629. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -0
  630. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -0
  631. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -0
  632. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +358 -0
  633. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -0
  634. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -0
  635. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -0
  636. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -0
  637. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -0
  638. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -0
  639. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -0
  640. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -0
  641. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -0
  642. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -0
  643. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -0
  644. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -0
  645. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -0
  646. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -0
  647. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/threading/__init__.py +13 -0
  648. py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/threading/trace.py +154 -0
  649. py2docfx/venv/venv1/Lib/site-packages/opencensus/log/__init__.py +115 -0
  650. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/cumulative.py +87 -0
  651. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/gauge.py +513 -0
  652. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric.py +79 -0
  653. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric_descriptor.py +174 -0
  654. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/metric_producer.py +81 -0
  655. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/point.py +47 -0
  656. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/summary.py +144 -0
  657. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/time_series.py +90 -0
  658. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/export/value.py +307 -0
  659. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/label_key.py +51 -0
  660. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/label_value.py +42 -0
  661. py2docfx/venv/venv1/Lib/site-packages/opencensus/metrics/transport.py +145 -0
  662. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/__init__.py +13 -0
  663. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/aggregation.py +144 -0
  664. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/aggregation_data.py +399 -0
  665. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/base_exporter.py +42 -0
  666. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/bucket_boundaries.py +41 -0
  667. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/execution_context.py +32 -0
  668. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measure.py +60 -0
  669. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measure_to_view_map.py +163 -0
  670. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measurement.py +50 -0
  671. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/measurement_map.py +118 -0
  672. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/metric_utils.py +79 -0
  673. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/stats.py +43 -0
  674. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/stats_recorder.py +34 -0
  675. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view.py +106 -0
  676. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view_data.py +96 -0
  677. py2docfx/venv/venv1/Lib/site-packages/opencensus/stats/view_manager.py +55 -0
  678. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/__init__.py +23 -0
  679. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/propagation/__init__.py +13 -0
  680. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/propagation/binary_serializer.py +109 -0
  681. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag.py +38 -0
  682. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_key.py +35 -0
  683. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_map.py +104 -0
  684. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/tag_value.py +35 -0
  685. py2docfx/venv/venv1/Lib/site-packages/opencensus/tags/validation.py +42 -0
  686. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/__init__.py +17 -0
  687. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/attributes.py +74 -0
  688. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/attributes_helper.py +43 -0
  689. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/base_exporter.py +43 -0
  690. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/base_span.py +109 -0
  691. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/blank_span.py +165 -0
  692. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/config_integration.py +38 -0
  693. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/exceptions_status.py +25 -0
  694. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/execution_context.py +89 -0
  695. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/file_exporter.py +71 -0
  696. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/integrations.py +52 -0
  697. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/link.py +71 -0
  698. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/logging_exporter.py +85 -0
  699. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/print_exporter.py +51 -0
  700. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/__init__.py +13 -0
  701. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/b3_format.py +117 -0
  702. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/binary_format.py +168 -0
  703. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/google_cloud_format.py +128 -0
  704. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/text_format.py +85 -0
  705. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/trace_context_http_header_format.py +115 -0
  706. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/propagation/tracestate_string_format.py +43 -0
  707. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/samplers/__init__.py +94 -0
  708. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span.py +457 -0
  709. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span_context.py +168 -0
  710. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/span_data.py +184 -0
  711. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/stack_trace.py +189 -0
  712. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/status.py +84 -0
  713. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/time_event.py +117 -0
  714. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/trace_options.py +78 -0
  715. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracer.py +144 -0
  716. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/__init__.py +13 -0
  717. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/base.py +82 -0
  718. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/context_tracer.py +176 -0
  719. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracers/noop_tracer.py +85 -0
  720. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/tracestate.py +65 -0
  721. py2docfx/venv/venv1/Lib/site-packages/opencensus/trace/utils.py +128 -0
  722. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +6 -0
  723. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +79 -0
  724. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +122 -0
  725. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +59 -0
  726. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +27 -0
  727. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +154 -0
  728. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +236 -0
  729. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +569 -0
  730. py2docfx/venv/venv1/Lib/site-packages/proto/__init__.py +72 -0
  731. py2docfx/venv/venv1/Lib/site-packages/proto/_file_info.py +196 -0
  732. py2docfx/venv/venv1/Lib/site-packages/proto/_package_info.py +50 -0
  733. py2docfx/venv/venv1/Lib/site-packages/proto/datetime_helpers.py +225 -0
  734. py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +161 -0
  735. py2docfx/venv/venv1/Lib/site-packages/proto/fields.py +165 -0
  736. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/__init__.py +18 -0
  737. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/__init__.py +24 -0
  738. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/maps.py +82 -0
  739. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +184 -0
  740. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +67 -0
  741. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/marshal.py +297 -0
  742. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/__init__.py +13 -0
  743. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/bytes.py +44 -0
  744. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/dates.py +85 -0
  745. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/enums.py +59 -0
  746. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/field_mask.py +36 -0
  747. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +48 -0
  748. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/stringy_numbers.py +71 -0
  749. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/struct.py +143 -0
  750. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/wrappers.py +84 -0
  751. py2docfx/venv/venv1/Lib/site-packages/proto/message.py +998 -0
  752. py2docfx/venv/venv1/Lib/site-packages/proto/modules.py +50 -0
  753. py2docfx/venv/venv1/Lib/site-packages/proto/primitives.py +38 -0
  754. py2docfx/venv/venv1/Lib/site-packages/proto/utils.py +58 -0
  755. py2docfx/venv/venv1/Lib/site-packages/proto/version.py +15 -0
  756. py2docfx/venv/venv1/Lib/site-packages/psutil/__init__.py +2486 -0
  757. py2docfx/venv/venv1/Lib/site-packages/psutil/_common.py +994 -0
  758. py2docfx/venv/venv1/Lib/site-packages/psutil/_compat.py +477 -0
  759. py2docfx/venv/venv1/Lib/site-packages/psutil/_psaix.py +579 -0
  760. py2docfx/venv/venv1/Lib/site-packages/psutil/_psbsd.py +985 -0
  761. py2docfx/venv/venv1/Lib/site-packages/psutil/_pslinux.py +2375 -0
  762. py2docfx/venv/venv1/Lib/site-packages/psutil/_psosx.py +552 -0
  763. py2docfx/venv/venv1/Lib/site-packages/psutil/_psposix.py +243 -0
  764. py2docfx/venv/venv1/Lib/site-packages/psutil/_pssunos.py +753 -0
  765. py2docfx/venv/venv1/Lib/site-packages/psutil/_pswindows.py +1174 -0
  766. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/__init__.py +2113 -0
  767. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/__main__.py +12 -0
  768. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_aix.py +115 -0
  769. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_bsd.py +592 -0
  770. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_connections.py +567 -0
  771. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_contracts.py +339 -0
  772. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_linux.py +2348 -0
  773. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_memleaks.py +493 -0
  774. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_misc.py +1058 -0
  775. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_osx.py +192 -0
  776. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_posix.py +496 -0
  777. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_process.py +1746 -0
  778. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_process_all.py +543 -0
  779. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_sunos.py +39 -0
  780. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_system.py +987 -0
  781. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_testutils.py +587 -0
  782. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_unicode.py +369 -0
  783. py2docfx/venv/venv1/Lib/site-packages/psutil/tests/test_windows.py +934 -0
  784. py2docfx/venv/venv1/Lib/site-packages/pyasn1/__init__.py +2 -0
  785. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/__init__.py +1 -0
  786. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/__init__.py +1 -0
  787. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/decoder.py +2189 -0
  788. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/encoder.py +954 -0
  789. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/ber/eoo.py +28 -0
  790. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/__init__.py +1 -0
  791. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/decoder.py +149 -0
  792. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/cer/encoder.py +331 -0
  793. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/__init__.py +1 -0
  794. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/decoder.py +120 -0
  795. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/der/encoder.py +126 -0
  796. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/__init__.py +1 -0
  797. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/decoder.py +244 -0
  798. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/native/encoder.py +285 -0
  799. py2docfx/venv/venv1/Lib/site-packages/pyasn1/codec/streaming.py +234 -0
  800. py2docfx/venv/venv1/Lib/site-packages/pyasn1/compat/__init__.py +4 -0
  801. py2docfx/venv/venv1/Lib/site-packages/pyasn1/compat/integer.py +13 -0
  802. py2docfx/venv/venv1/Lib/site-packages/pyasn1/debug.py +146 -0
  803. py2docfx/venv/venv1/Lib/site-packages/pyasn1/error.py +116 -0
  804. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/__init__.py +1 -0
  805. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/base.py +699 -0
  806. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/char.py +288 -0
  807. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/constraint.py +751 -0
  808. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/error.py +11 -0
  809. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/namedtype.py +550 -0
  810. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/namedval.py +192 -0
  811. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/opentype.py +104 -0
  812. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/tag.py +335 -0
  813. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/tagmap.py +96 -0
  814. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/univ.py +3327 -0
  815. py2docfx/venv/venv1/Lib/site-packages/pyasn1/type/useful.py +189 -0
  816. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/__init__.py +2 -0
  817. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/pem.py +58 -0
  818. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1155.py +96 -0
  819. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1157.py +126 -0
  820. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1901.py +22 -0
  821. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1902.py +129 -0
  822. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc1905.py +135 -0
  823. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2251.py +563 -0
  824. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2314.py +48 -0
  825. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2315.py +294 -0
  826. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2437.py +69 -0
  827. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2459.py +1339 -0
  828. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2511.py +258 -0
  829. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2560.py +225 -0
  830. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2631.py +37 -0
  831. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2634.py +336 -0
  832. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2876.py +56 -0
  833. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2985.py +588 -0
  834. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc2986.py +75 -0
  835. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3058.py +42 -0
  836. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3114.py +77 -0
  837. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3125.py +469 -0
  838. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3161.py +142 -0
  839. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3274.py +59 -0
  840. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3279.py +260 -0
  841. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3280.py +1543 -0
  842. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3281.py +331 -0
  843. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3370.py +146 -0
  844. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3412.py +53 -0
  845. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3414.py +28 -0
  846. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3447.py +45 -0
  847. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3537.py +34 -0
  848. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3560.py +74 -0
  849. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3565.py +57 -0
  850. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3657.py +66 -0
  851. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3709.py +207 -0
  852. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3739.py +203 -0
  853. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3770.py +75 -0
  854. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3779.py +137 -0
  855. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3820.py +65 -0
  856. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc3852.py +706 -0
  857. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4010.py +58 -0
  858. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4043.py +43 -0
  859. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4055.py +258 -0
  860. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4073.py +59 -0
  861. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4108.py +350 -0
  862. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4210.py +803 -0
  863. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4211.py +396 -0
  864. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4334.py +75 -0
  865. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4357.py +477 -0
  866. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4387.py +23 -0
  867. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4476.py +93 -0
  868. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4490.py +113 -0
  869. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4491.py +44 -0
  870. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4683.py +72 -0
  871. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc4985.py +49 -0
  872. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5035.py +199 -0
  873. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5083.py +52 -0
  874. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5084.py +97 -0
  875. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5126.py +577 -0
  876. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5208.py +56 -0
  877. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5275.py +404 -0
  878. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5280.py +1658 -0
  879. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5480.py +190 -0
  880. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5636.py +113 -0
  881. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5639.py +49 -0
  882. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5649.py +33 -0
  883. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5652.py +761 -0
  884. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5697.py +70 -0
  885. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5751.py +124 -0
  886. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5752.py +49 -0
  887. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5753.py +157 -0
  888. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5755.py +398 -0
  889. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5913.py +44 -0
  890. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5914.py +119 -0
  891. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5915.py +32 -0
  892. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5916.py +35 -0
  893. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5917.py +55 -0
  894. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5924.py +19 -0
  895. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5934.py +786 -0
  896. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5940.py +59 -0
  897. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5958.py +98 -0
  898. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc5990.py +237 -0
  899. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6010.py +88 -0
  900. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6019.py +45 -0
  901. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6031.py +469 -0
  902. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6032.py +68 -0
  903. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6120.py +43 -0
  904. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6170.py +17 -0
  905. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6187.py +22 -0
  906. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6210.py +42 -0
  907. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6211.py +72 -0
  908. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6402.py +628 -0
  909. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6482.py +74 -0
  910. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6486.py +68 -0
  911. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6487.py +22 -0
  912. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6664.py +147 -0
  913. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6955.py +108 -0
  914. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc6960.py +223 -0
  915. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7030.py +66 -0
  916. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7191.py +261 -0
  917. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7229.py +29 -0
  918. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7292.py +357 -0
  919. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7296.py +32 -0
  920. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7508.py +90 -0
  921. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7585.py +50 -0
  922. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7633.py +38 -0
  923. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7773.py +52 -0
  924. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7894.py +92 -0
  925. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7906.py +736 -0
  926. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc7914.py +49 -0
  927. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8017.py +153 -0
  928. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8018.py +260 -0
  929. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8103.py +36 -0
  930. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8209.py +20 -0
  931. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8226.py +149 -0
  932. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8358.py +50 -0
  933. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8360.py +44 -0
  934. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8398.py +52 -0
  935. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8410.py +43 -0
  936. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8418.py +36 -0
  937. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8419.py +68 -0
  938. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8479.py +45 -0
  939. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8494.py +80 -0
  940. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8520.py +63 -0
  941. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8619.py +45 -0
  942. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8649.py +40 -0
  943. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8692.py +79 -0
  944. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8696.py +104 -0
  945. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8702.py +105 -0
  946. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8708.py +41 -0
  947. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/rfc8769.py +21 -0
  948. py2docfx/venv/venv1/Lib/site-packages/pycparser/__init__.py +93 -0
  949. py2docfx/venv/venv1/Lib/site-packages/pycparser/_ast_gen.py +336 -0
  950. py2docfx/venv/venv1/Lib/site-packages/pycparser/_build_tables.py +40 -0
  951. py2docfx/venv/venv1/Lib/site-packages/pycparser/ast_transforms.py +164 -0
  952. py2docfx/venv/venv1/Lib/site-packages/pycparser/c_ast.py +1125 -0
  953. py2docfx/venv/venv1/Lib/site-packages/pycparser/c_generator.py +502 -0
  954. py2docfx/venv/venv1/Lib/site-packages/pycparser/c_lexer.py +555 -0
  955. py2docfx/venv/venv1/Lib/site-packages/pycparser/c_parser.py +1950 -0
  956. py2docfx/venv/venv1/Lib/site-packages/pycparser/lextab.py +10 -0
  957. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/__init__.py +5 -0
  958. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/cpp.py +905 -0
  959. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/ctokens.py +133 -0
  960. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/lex.py +1099 -0
  961. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/yacc.py +3494 -0
  962. py2docfx/venv/venv1/Lib/site-packages/pycparser/ply/ygen.py +74 -0
  963. py2docfx/venv/venv1/Lib/site-packages/pycparser/plyparser.py +133 -0
  964. py2docfx/venv/venv1/Lib/site-packages/pycparser/yacctab.py +369 -0
  965. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +4 -0
  966. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +258 -0
  967. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +185 -0
  968. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +65 -0
  969. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +51 -0
  970. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +71 -0
  971. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +53 -0
  972. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +116 -0
  973. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +114 -0
  974. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +65 -0
  975. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +73 -0
  976. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +145 -0
  977. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +104 -0
  978. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +85 -0
  979. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +80 -0
  980. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +138 -0
  981. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +13 -0
  982. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +57 -0
  983. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +65 -0
  984. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +95 -0
  985. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +159 -0
  986. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +133 -0
  987. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +244 -0
  988. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +72 -0
  989. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +370 -0
  990. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +105 -0
  991. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +76 -0
  992. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +79 -0
  993. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +189 -0
  994. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +106 -0
  995. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +3 -0
  996. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +133 -0
  997. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +34 -0
  998. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +32 -0
  999. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +48 -0
  1000. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +1098 -0
  1001. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +54 -0
  1002. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +139 -0
  1003. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +143 -0
  1004. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +156 -0
  1005. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +242 -0
  1006. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +677 -0
  1007. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +414 -0
  1008. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +168 -0
  1009. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +54 -0
  1010. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +189 -0
  1011. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +76 -0
  1012. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +235 -0
  1013. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +103 -0
  1014. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +646 -0
  1015. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +299 -0
  1016. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +380 -0
  1017. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +511 -0
  1018. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +74 -0
  1019. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +59 -0
  1020. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +104 -0
  1021. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +172 -0
  1022. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +995 -0
  1023. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +554 -0
  1024. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +60 -0
  1025. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/mdi_pychecker.py +850 -0
  1026. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +686 -0
  1027. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +758 -0
  1028. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +70 -0
  1029. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +171 -0
  1030. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +281 -0
  1031. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +14 -0
  1032. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +589 -0
  1033. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +95 -0
  1034. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +536 -0
  1035. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +218 -0
  1036. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +166 -0
  1037. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +87 -0
  1038. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +585 -0
  1039. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +1 -0
  1040. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +80 -0
  1041. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +501 -0
  1042. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +280 -0
  1043. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +151 -0
  1044. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +66 -0
  1045. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +25 -0
  1046. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +50 -0
  1047. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +597 -0
  1048. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +1 -0
  1049. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +178 -0
  1050. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +365 -0
  1051. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +292 -0
  1052. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +565 -0
  1053. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +312 -0
  1054. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +511 -0
  1055. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +704 -0
  1056. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +190 -0
  1057. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +1983 -0
  1058. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +845 -0
  1059. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +79 -0
  1060. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +323 -0
  1061. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +506 -0
  1062. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +353 -0
  1063. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +382 -0
  1064. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +80 -0
  1065. py2docfx/venv/venv1/Lib/site-packages/requests/__init__.py +184 -0
  1066. py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +14 -0
  1067. py2docfx/venv/venv1/Lib/site-packages/requests/_internal_utils.py +50 -0
  1068. py2docfx/venv/venv1/Lib/site-packages/requests/adapters.py +719 -0
  1069. py2docfx/venv/venv1/Lib/site-packages/requests/api.py +157 -0
  1070. py2docfx/venv/venv1/Lib/site-packages/requests/auth.py +314 -0
  1071. py2docfx/venv/venv1/Lib/site-packages/requests/certs.py +17 -0
  1072. py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +94 -0
  1073. py2docfx/venv/venv1/Lib/site-packages/requests/cookies.py +561 -0
  1074. py2docfx/venv/venv1/Lib/site-packages/requests/exceptions.py +151 -0
  1075. py2docfx/venv/venv1/Lib/site-packages/requests/help.py +134 -0
  1076. py2docfx/venv/venv1/Lib/site-packages/requests/hooks.py +33 -0
  1077. py2docfx/venv/venv1/Lib/site-packages/requests/models.py +1037 -0
  1078. py2docfx/venv/venv1/Lib/site-packages/requests/packages.py +23 -0
  1079. py2docfx/venv/venv1/Lib/site-packages/requests/sessions.py +831 -0
  1080. py2docfx/venv/venv1/Lib/site-packages/requests/status_codes.py +128 -0
  1081. py2docfx/venv/venv1/Lib/site-packages/requests/structures.py +99 -0
  1082. py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +1096 -0
  1083. py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +60 -0
  1084. py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -0
  1085. py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -0
  1086. py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -0
  1087. py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -0
  1088. py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -0
  1089. py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -0
  1090. py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -0
  1091. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -0
  1092. py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -0
  1093. py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -0
  1094. py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -0
  1095. py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -0
  1096. py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -0
  1097. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  1098. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  1099. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  1100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  1101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  1102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  1103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
  1104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
  1105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
  1106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
  1107. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +554 -0
  1108. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +653 -0
  1109. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +721 -0
  1110. py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/__init__.py +0 -0
  1111. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +996 -0
  1112. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
  1113. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
  1114. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
  1115. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +646 -0
  1116. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +280 -0
  1117. py2docfx/venv/venv1/Lib/site-packages/six.py +998 -0
  1118. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +3641 -0
  1119. py2docfx/venv/venv1/Lib/site-packages/urllib3/__init__.py +211 -0
  1120. py2docfx/venv/venv1/Lib/site-packages/urllib3/_base_connection.py +172 -0
  1121. py2docfx/venv/venv1/Lib/site-packages/urllib3/_collections.py +483 -0
  1122. py2docfx/venv/venv1/Lib/site-packages/urllib3/_request_methods.py +278 -0
  1123. py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +16 -0
  1124. py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +1033 -0
  1125. py2docfx/venv/venv1/Lib/site-packages/urllib3/connectionpool.py +1182 -0
  1126. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
  1127. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/__init__.py +16 -0
  1128. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/connection.py +254 -0
  1129. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +418 -0
  1130. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/request.py +22 -0
  1131. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/response.py +285 -0
  1132. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/pyopenssl.py +552 -0
  1133. py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/socks.py +228 -0
  1134. py2docfx/venv/venv1/Lib/site-packages/urllib3/exceptions.py +321 -0
  1135. py2docfx/venv/venv1/Lib/site-packages/urllib3/fields.py +341 -0
  1136. py2docfx/venv/venv1/Lib/site-packages/urllib3/filepost.py +89 -0
  1137. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/__init__.py +53 -0
  1138. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/connection.py +356 -0
  1139. py2docfx/venv/venv1/Lib/site-packages/urllib3/http2/probe.py +87 -0
  1140. py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +637 -0
  1141. py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +1265 -0
  1142. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/__init__.py +42 -0
  1143. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/connection.py +137 -0
  1144. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/proxy.py +43 -0
  1145. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +256 -0
  1146. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/response.py +101 -0
  1147. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/retry.py +533 -0
  1148. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +513 -0
  1149. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +159 -0
  1150. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssltransport.py +276 -0
  1151. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/timeout.py +275 -0
  1152. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/url.py +471 -0
  1153. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/util.py +42 -0
  1154. py2docfx/venv/venv1/Lib/site-packages/urllib3/util/wait.py +124 -0
  1155. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  1156. py2docfx/venv/venv1/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  1157. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +119 -0
  1158. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +137 -0
  1159. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +57 -0
  1160. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +122 -0
  1161. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +83 -0
  1162. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +28 -0
  1163. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +25 -0
  1164. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +137 -0
  1165. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +43 -0
  1166. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +127 -0
  1167. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +66 -0
  1168. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +60 -0
  1169. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +71 -0
  1170. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +210 -0
  1171. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +26 -0
  1172. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +18 -0
  1173. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +42 -0
  1174. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +246 -0
  1175. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +143 -0
  1176. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +33 -0
  1177. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +101 -0
  1178. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +17 -0
  1179. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +114 -0
  1180. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +113 -0
  1181. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +168 -0
  1182. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +110 -0
  1183. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +51 -0
  1184. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +171 -0
  1185. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +42 -0
  1186. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +37 -0
  1187. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +65 -0
  1188. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +14 -0
  1189. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +12 -0
  1190. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +25 -0
  1191. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +61 -0
  1192. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +36 -0
  1193. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +8 -0
  1194. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +336 -0
  1195. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +107 -0
  1196. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +74 -0
  1197. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +28 -0
  1198. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +135 -0
  1199. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +131 -0
  1200. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +132 -0
  1201. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +103 -0
  1202. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +158 -0
  1203. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +72 -0
  1204. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +200 -0
  1205. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +41 -0
  1206. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +63 -0
  1207. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +184 -0
  1208. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +155 -0
  1209. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +98 -0
  1210. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +72 -0
  1211. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +143 -0
  1212. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +117 -0
  1213. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +144 -0
  1214. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +135 -0
  1215. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +82 -0
  1216. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +41 -0
  1217. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +177 -0
  1218. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +107 -0
  1219. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +445 -0
  1220. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +409 -0
  1221. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +136 -0
  1222. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +275 -0
  1223. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +86 -0
  1224. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +23 -0
  1225. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +25 -0
  1226. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +123 -0
  1227. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +100 -0
  1228. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +230 -0
  1229. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +164 -0
  1230. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +8 -0
  1231. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +1551 -0
  1232. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +956 -0
  1233. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +295 -0
  1234. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +731 -0
  1235. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +29 -0
  1236. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +291 -0
  1237. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +124 -0
  1238. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +40 -0
  1239. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +161 -0
  1240. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +395 -0
  1241. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +413 -0
  1242. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +477 -0
  1243. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +7 -0
  1244. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +5083 -0
  1245. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +1925 -0
  1246. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +226 -0
  1247. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +957 -0
  1248. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +1086 -0
  1249. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +627 -0
  1250. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +571 -0
  1251. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +212 -0
  1252. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +673 -0
  1253. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +1075 -0
  1254. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +1018 -0
  1255. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +59 -0
  1256. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +235 -0
  1257. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +3040 -0
  1258. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +1079 -0
  1259. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +1347 -0
  1260. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +236 -0
  1261. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +8 -0
  1262. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +594 -0
  1263. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +97 -0
  1264. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +156 -0
  1265. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +201 -0
  1266. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +46 -0
  1267. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +62 -0
  1268. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +98 -0
  1269. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +610 -0
  1270. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +111 -0
  1271. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +167 -0
  1272. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +126 -0
  1273. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +213 -0
  1274. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +264 -0
  1275. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +111 -0
  1276. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +166 -0
  1277. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +229 -0
  1278. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +269 -0
  1279. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +60 -0
  1280. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +92 -0
  1281. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +131 -0
  1282. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +119 -0
  1283. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +1080 -0
  1284. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +228 -0
  1285. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +336 -0
  1286. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +91 -0
  1287. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +24 -0
  1288. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +148 -0
  1289. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +24 -0
  1290. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +19 -0
  1291. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +70 -0
  1292. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +16 -0
  1293. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +366 -0
  1294. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +174 -0
  1295. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +223 -0
  1296. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +21 -0
  1297. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +134 -0
  1298. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +58 -0
  1299. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +685 -0
  1300. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +771 -0
  1301. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +620 -0
  1302. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +48 -0
  1303. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +699 -0
  1304. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +807 -0
  1305. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +1398 -0
  1306. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +449 -0
  1307. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +183 -0
  1308. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +277 -0
  1309. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +103 -0
  1310. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  1311. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +96 -0
  1312. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +74 -0
  1313. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +98 -0
  1314. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +92 -0
  1315. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +169 -0
  1316. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +434 -0
  1317. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +217 -0
  1318. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +368 -0
  1319. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +137 -0
  1320. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +78 -0
  1321. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +1 -0
  1322. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +626 -0
  1323. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +335 -0
  1324. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +1019 -0
  1325. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +70 -0
  1326. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +1 -0
  1327. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +85 -0
  1328. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +243 -0
  1329. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +99 -0
  1330. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +26 -0
  1331. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +53 -0
  1332. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +817 -0
  1333. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +678 -0
  1334. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +229 -0
  1335. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +47 -0
  1336. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  1337. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +136 -0
  1338. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +59 -0
  1339. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +36 -0
  1340. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +182 -0
  1341. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +142 -0
  1342. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +97 -0
  1343. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +1 -0
  1344. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +88 -0
  1345. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +243 -0
  1346. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +99 -0
  1347. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +115 -0
  1348. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +100 -0
  1349. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +45 -0
  1350. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +185 -0
  1351. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +99 -0
  1352. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +169 -0
  1353. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +159 -0
  1354. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +35 -0
  1355. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +50 -0
  1356. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +74 -0
  1357. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +100 -0
  1358. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +85 -0
  1359. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +126 -0
  1360. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +139 -0
  1361. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +142 -0
  1362. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +149 -0
  1363. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +140 -0
  1364. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +201 -0
  1365. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +138 -0
  1366. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +160 -0
  1367. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testNetscape.py +24 -0
  1368. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +227 -0
  1369. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +81 -0
  1370. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +782 -0
  1371. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +29 -0
  1372. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +52 -0
  1373. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +272 -0
  1374. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +88 -0
  1375. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +147 -0
  1376. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +18 -0
  1377. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +321 -0
  1378. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +55 -0
  1379. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +579 -0
  1380. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +40 -0
  1381. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +34 -0
  1382. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +264 -0
  1383. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +226 -0
  1384. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +35 -0
  1385. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +113 -0
  1386. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +340 -0
  1387. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +68 -0
  1388. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +565 -0
  1389. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +152 -0
  1390. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +274 -0
  1391. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +6 -0
  1392. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +252 -0
  1393. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +239 -0
  1394. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +4 -0
  1395. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +4 -0
  1396. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +473 -0
  1397. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +275 -0
  1398. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +60 -0
  1399. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +238 -0
  1400. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +136 -0
  1401. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +59 -0
  1402. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +212 -0
  1403. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +583 -0
  1404. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +178 -0
  1405. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +105 -0
  1406. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +4 -0
  1407. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +13 -0
  1408. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +1 -0
  1409. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +235 -0
  1410. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +263 -0
  1411. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +1291 -0
  1412. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +79 -0
  1413. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +443 -0
  1414. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +54 -0
  1415. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +104 -0
  1416. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  1417. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +146 -0
  1418. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +186 -0
  1419. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +240 -0
  1420. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +86 -0
  1421. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +6 -0
  1422. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +48 -0
  1423. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +119 -0
  1424. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +4 -0
  1425. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +1 -0
  1426. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +60 -0
  1427. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +402 -0
  1428. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +1 -0
  1429. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +300 -0
  1430. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +110 -0
  1431. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +4 -0
  1432. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +261 -0
  1433. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +21 -0
  1434. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +98 -0
  1435. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +874 -0
  1436. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +1025 -0
  1437. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +211 -0
  1438. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +1 -0
  1439. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +838 -0
  1440. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +5 -0
  1441. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +4 -0
  1442. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +83 -0
  1443. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +179 -0
  1444. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +67 -0
  1445. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +91 -0
  1446. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +56 -0
  1447. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +45 -0
  1448. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +73 -0
  1449. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +58 -0
  1450. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +143 -0
  1451. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +126 -0
  1452. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +122 -0
  1453. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +84 -0
  1454. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +188 -0
  1455. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +866 -0
  1456. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +82 -0
  1457. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +972 -0
  1458. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +19 -0
  1459. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +68 -0
  1460. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +24 -0
  1461. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +1615 -0
  1462. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +75 -0
  1463. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +21 -0
  1464. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +69 -0
  1465. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +6 -0
  1466. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +66 -0
  1467. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +68 -0
  1468. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +50 -0
  1469. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +3 -0
  1470. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +778 -0
  1471. py2docfx/venv/venv1/Scripts/pywin32_testall.py +125 -0
  1472. py2docfx-0.1.9.dev1897554.dist-info/METADATA +16 -0
  1473. py2docfx-0.1.9.dev1897554.dist-info/RECORD +4241 -0
  1474. py2docfx/venv/venv0/Lib/site-packages/setuptools/build_meta.py +0 -530
  1475. py2docfx/venv/venv0/Lib/site-packages/setuptools/command/bdist_wheel.py +0 -635
  1476. py2docfx/venv/venv0/Lib/site-packages/setuptools/command/egg_info.py +0 -717
  1477. py2docfx/venv/venv0/Lib/site-packages/setuptools/dist.py +0 -955
  1478. py2docfx/venv/venv0/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +0 -621
  1479. py2docfx/venv/venv0/Lib/site-packages/setuptools/tests/test_dist.py +0 -280
  1480. py2docfx-0.1.9.dev1886355.dist-info/METADATA +0 -16
  1481. py2docfx-0.1.9.dev1886355.dist-info/RECORD +0 -2791
  1482. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/_distutils_hack/__init__.py +0 -0
  1483. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/_distutils_hack/override.py +0 -0
  1484. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/operations → venv1/Lib/site-packages/azure/core/tracing/ext}/__init__.py +0 -0
  1485. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/operations/build/__init__.py → venv1/Lib/site-packages/google/auth/crypt/_helpers.py} +0 -0
  1486. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution → venv1/Lib/site-packages/google/protobuf/compiler}/__init__.py +0 -0
  1487. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution/legacy → venv1/Lib/site-packages/google/protobuf/pyext}/__init__.py +0 -0
  1488. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/resolution/resolvelib → venv1/Lib/site-packages/google/protobuf/testdata}/__init__.py +0 -0
  1489. /py2docfx/venv/{venv0/Lib/site-packages/pip/_internal/utils → venv1/Lib/site-packages/google/protobuf/util}/__init__.py +0 -0
  1490. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/chardet/cli → venv1/Lib/site-packages/opencensus/common/monitored_resource}/__init__.py +0 -0
  1491. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/chardet/metadata → venv1/Lib/site-packages/opencensus/metrics}/__init__.py +0 -0
  1492. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/resolvelib/compat → venv1/Lib/site-packages/opencensus/metrics/export}/__init__.py +0 -0
  1493. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__init__.py +0 -0
  1494. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__main__.py +0 -0
  1495. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/__pip-runner__.py +0 -0
  1496. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/__init__.py +0 -0
  1497. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/build_env.py +0 -0
  1498. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cache.py +0 -0
  1499. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/__init__.py +0 -0
  1500. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -0
  1501. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/base_command.py +0 -0
  1502. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -0
  1503. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/command_context.py +0 -0
  1504. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/main.py +0 -0
  1505. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -0
  1506. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/parser.py +0 -0
  1507. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -0
  1508. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/req_command.py +0 -0
  1509. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/spinners.py +0 -0
  1510. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -0
  1511. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/__init__.py +0 -0
  1512. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/cache.py +0 -0
  1513. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/check.py +0 -0
  1514. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/completion.py +0 -0
  1515. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/configuration.py +0 -0
  1516. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/debug.py +0 -0
  1517. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/download.py +0 -0
  1518. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/freeze.py +0 -0
  1519. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/hash.py +0 -0
  1520. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/help.py +0 -0
  1521. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/index.py +0 -0
  1522. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/inspect.py +0 -0
  1523. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/install.py +0 -0
  1524. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/list.py +0 -0
  1525. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/search.py +0 -0
  1526. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/show.py +0 -0
  1527. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -0
  1528. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/commands/wheel.py +0 -0
  1529. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/configuration.py +0 -0
  1530. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -0
  1531. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/base.py +0 -0
  1532. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/installed.py +0 -0
  1533. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -0
  1534. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -0
  1535. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/exceptions.py +0 -0
  1536. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/__init__.py +0 -0
  1537. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/collector.py +0 -0
  1538. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/package_finder.py +0 -0
  1539. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/index/sources.py +0 -0
  1540. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/__init__.py +0 -0
  1541. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -0
  1542. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -0
  1543. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/locations/base.py +0 -0
  1544. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/main.py +0 -0
  1545. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -0
  1546. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/_json.py +0 -0
  1547. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/base.py +0 -0
  1548. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -0
  1549. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -0
  1550. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -0
  1551. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -0
  1552. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -0
  1553. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/__init__.py +0 -0
  1554. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/candidate.py +0 -0
  1555. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/direct_url.py +0 -0
  1556. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/format_control.py +0 -0
  1557. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/index.py +0 -0
  1558. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/installation_report.py +0 -0
  1559. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/link.py +0 -0
  1560. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/scheme.py +0 -0
  1561. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/search_scope.py +0 -0
  1562. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -0
  1563. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/target_python.py +0 -0
  1564. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/models/wheel.py +0 -0
  1565. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/__init__.py +0 -0
  1566. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/auth.py +0 -0
  1567. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/cache.py +0 -0
  1568. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/download.py +0 -0
  1569. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -0
  1570. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/session.py +0 -0
  1571. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/utils.py +0 -0
  1572. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -0
  1573. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/contrib → venv1/Lib/site-packages/pip/_internal/operations}/__init__.py +0 -0
  1574. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport → venv1/Lib/site-packages/pip/_internal/operations/build}/__init__.py +0 -0
  1575. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -0
  1576. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -0
  1577. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -0
  1578. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -0
  1579. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -0
  1580. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -0
  1581. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -0
  1582. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/check.py +0 -0
  1583. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/freeze.py +0 -0
  1584. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -0
  1585. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -0
  1586. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -0
  1587. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/operations/prepare.py +0 -0
  1588. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/pyproject.py +0 -0
  1589. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/__init__.py +0 -0
  1590. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/constructors.py +0 -0
  1591. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_file.py +0 -0
  1592. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_install.py +0 -0
  1593. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_set.py +0 -0
  1594. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -0
  1595. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/packages → venv1/Lib/site-packages/pip/_internal/resolution}/__init__.py +0 -0
  1596. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/base.py +0 -0
  1597. /py2docfx/venv/{venv0/Lib/site-packages/pip/_vendor/urllib3/packages/backports → venv1/Lib/site-packages/pip/_internal/resolution/legacy}/__init__.py +0 -0
  1598. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -0
  1599. /py2docfx/venv/{venv0/Lib/site-packages/pkg_resources/tests → venv1/Lib/site-packages/pip/_internal/resolution/resolvelib}/__init__.py +0 -0
  1600. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -0
  1601. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -0
  1602. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -0
  1603. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -0
  1604. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -0
  1605. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -0
  1606. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -0
  1607. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -0
  1608. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -0
  1609. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_distutils/tests/compat → venv1/Lib/site-packages/pip/_internal/utils}/__init__.py +0 -0
  1610. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -0
  1611. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/_log.py +0 -0
  1612. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -0
  1613. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/compat.py +0 -0
  1614. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -0
  1615. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/datetime.py +0 -0
  1616. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -0
  1617. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -0
  1618. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -0
  1619. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/encoding.py +0 -0
  1620. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -0
  1621. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -0
  1622. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -0
  1623. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/glibc.py +0 -0
  1624. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/hashes.py +0 -0
  1625. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/logging.py +0 -0
  1626. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/misc.py +0 -0
  1627. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/models.py +0 -0
  1628. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/packaging.py +0 -0
  1629. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -0
  1630. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -0
  1631. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -0
  1632. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -0
  1633. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/urls.py +0 -0
  1634. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -0
  1635. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/utils/wheel.py +0 -0
  1636. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -0
  1637. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -0
  1638. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/git.py +0 -0
  1639. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -0
  1640. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -0
  1641. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -0
  1642. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_internal/wheel_builder.py +0 -0
  1643. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/__init__.py +0 -0
  1644. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -0
  1645. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -0
  1646. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -0
  1647. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -0
  1648. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
  1649. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
  1650. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
  1651. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -0
  1652. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -0
  1653. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -0
  1654. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -0
  1655. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -0
  1656. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -0
  1657. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -0
  1658. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/certifi/core.py +0 -0
  1659. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/__init__.py +0 -0
  1660. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/big5freq.py +0 -0
  1661. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/big5prober.py +0 -0
  1662. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +0 -0
  1663. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -0
  1664. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +0 -0
  1665. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat → venv1/Lib/site-packages/pip/_vendor/chardet/cli}/__init__.py +0 -0
  1666. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -0
  1667. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -0
  1668. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/codingstatemachinedict.py +0 -0
  1669. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +0 -0
  1670. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/enums.py +0 -0
  1671. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/escprober.py +0 -0
  1672. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/escsm.py +0 -0
  1673. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -0
  1674. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -0
  1675. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +0 -0
  1676. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -0
  1677. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +0 -0
  1678. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -0
  1679. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -0
  1680. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -0
  1681. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +0 -0
  1682. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/johabfreq.py +0 -0
  1683. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/johabprober.py +0 -0
  1684. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +0 -0
  1685. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -0
  1686. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -0
  1687. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -0
  1688. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -0
  1689. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -0
  1690. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -0
  1691. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -0
  1692. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +0 -0
  1693. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/macromanprober.py +0 -0
  1694. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -0
  1695. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -0
  1696. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +0 -0
  1697. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat → venv1/Lib/site-packages/pip/_vendor/chardet/metadata}/__init__.py +0 -0
  1698. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -0
  1699. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/resultdict.py +0 -0
  1700. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -0
  1701. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -0
  1702. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +0 -0
  1703. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +0 -0
  1704. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/utf1632prober.py +0 -0
  1705. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +0 -0
  1706. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/chardet/version.py +0 -0
  1707. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/__init__.py +0 -0
  1708. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/ansi.py +0 -0
  1709. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -0
  1710. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/initialise.py +0 -0
  1711. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/__init__.py +0 -0
  1712. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/ansi_test.py +0 -0
  1713. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py +0 -0
  1714. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/initialise_test.py +0 -0
  1715. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/isatty_test.py +0 -0
  1716. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/utils.py +0 -0
  1717. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/tests/winterm_test.py +0 -0
  1718. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/win32.py +0 -0
  1719. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/colorama/winterm.py +0 -0
  1720. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -0
  1721. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -0
  1722. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/database.py +0 -0
  1723. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/index.py +0 -0
  1724. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -0
  1725. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -0
  1726. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -0
  1727. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -0
  1728. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -0
  1729. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -0
  1730. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/util.py +0 -0
  1731. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/version.py +0 -0
  1732. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -0
  1733. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -0
  1734. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -0
  1735. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/distro/distro.py +0 -0
  1736. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -0
  1737. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/codec.py +0 -0
  1738. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/compat.py +0 -0
  1739. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/core.py +0 -0
  1740. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -0
  1741. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -0
  1742. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -0
  1743. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -0
  1744. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -0
  1745. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -0
  1746. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -0
  1747. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -0
  1748. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/__about__.py +0 -0
  1749. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -0
  1750. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -0
  1751. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -0
  1752. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -0
  1753. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -0
  1754. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -0
  1755. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -0
  1756. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -0
  1757. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -0
  1758. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/packaging/version.py +0 -0
  1759. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -0
  1760. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -0
  1761. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -0
  1762. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -0
  1763. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -0
  1764. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -0
  1765. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -0
  1766. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -0
  1767. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -0
  1768. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -0
  1769. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -0
  1770. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -0
  1771. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/console.py +0 -0
  1772. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -0
  1773. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -0
  1774. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -0
  1775. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -0
  1776. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -0
  1777. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -0
  1778. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -0
  1779. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -0
  1780. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -0
  1781. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -0
  1782. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -0
  1783. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -0
  1784. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -0
  1785. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -0
  1786. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -0
  1787. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -0
  1788. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -0
  1789. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -0
  1790. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -0
  1791. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -0
  1792. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -0
  1793. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -0
  1794. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -0
  1795. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -0
  1796. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -0
  1797. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -0
  1798. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/style.py +0 -0
  1799. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -0
  1800. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/token.py +0 -0
  1801. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -0
  1802. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pygments/util.py +0 -0
  1803. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/__init__.py +0 -0
  1804. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/actions.py +0 -0
  1805. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/common.py +0 -0
  1806. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/core.py +0 -0
  1807. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/diagram/__init__.py +0 -0
  1808. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/exceptions.py +0 -0
  1809. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/helpers.py +0 -0
  1810. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/results.py +0 -0
  1811. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/testing.py +0 -0
  1812. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/unicode.py +0 -0
  1813. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyparsing/util.py +0 -0
  1814. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -0
  1815. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +0 -0
  1816. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -0
  1817. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -0
  1818. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -0
  1819. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -0
  1820. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -0
  1821. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -0
  1822. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -0
  1823. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/api.py +0 -0
  1824. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/auth.py +0 -0
  1825. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/certs.py +0 -0
  1826. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/compat.py +0 -0
  1827. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -0
  1828. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -0
  1829. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/help.py +0 -0
  1830. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -0
  1831. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/models.py +0 -0
  1832. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/packages.py +0 -0
  1833. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -0
  1834. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -0
  1835. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/structures.py +0 -0
  1836. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/requests/utils.py +0 -0
  1837. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -0
  1838. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources → venv1/Lib/site-packages/pip/_vendor/resolvelib}/compat/__init__.py +0 -0
  1839. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -0
  1840. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -0
  1841. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -0
  1842. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -0
  1843. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -0
  1844. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -0
  1845. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -0
  1846. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -0
  1847. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -0
  1848. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -0
  1849. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -0
  1850. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -0
  1851. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -0
  1852. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -0
  1853. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -0
  1854. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -0
  1855. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -0
  1856. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -0
  1857. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -0
  1858. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -0
  1859. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -0
  1860. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -0
  1861. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -0
  1862. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -0
  1863. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -0
  1864. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -0
  1865. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -0
  1866. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/abc.py +0 -0
  1867. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/align.py +0 -0
  1868. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -0
  1869. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/bar.py +0 -0
  1870. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/box.py +0 -0
  1871. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/cells.py +0 -0
  1872. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/color.py +0 -0
  1873. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -0
  1874. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/columns.py +0 -0
  1875. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/console.py +0 -0
  1876. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -0
  1877. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/containers.py +0 -0
  1878. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/control.py +0 -0
  1879. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -0
  1880. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -0
  1881. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -0
  1882. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/errors.py +0 -0
  1883. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -0
  1884. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -0
  1885. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -0
  1886. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/json.py +0 -0
  1887. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -0
  1888. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/layout.py +0 -0
  1889. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/live.py +0 -0
  1890. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -0
  1891. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/logging.py +0 -0
  1892. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/markup.py +0 -0
  1893. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/measure.py +0 -0
  1894. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/padding.py +0 -0
  1895. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/pager.py +0 -0
  1896. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/palette.py +0 -0
  1897. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/panel.py +0 -0
  1898. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -0
  1899. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/progress.py +0 -0
  1900. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -0
  1901. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -0
  1902. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -0
  1903. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/region.py +0 -0
  1904. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/repr.py +0 -0
  1905. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/rule.py +0 -0
  1906. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/scope.py +0 -0
  1907. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/screen.py +0 -0
  1908. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/segment.py +0 -0
  1909. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -0
  1910. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/status.py +0 -0
  1911. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/style.py +0 -0
  1912. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/styled.py +0 -0
  1913. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -0
  1914. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/table.py +0 -0
  1915. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -0
  1916. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/text.py +0 -0
  1917. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/theme.py +0 -0
  1918. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/themes.py +0 -0
  1919. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -0
  1920. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/rich/tree.py +0 -0
  1921. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/six.py +0 -0
  1922. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/__init__.py +0 -0
  1923. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -0
  1924. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/_utils.py +0 -0
  1925. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/after.py +0 -0
  1926. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/before.py +0 -0
  1927. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -0
  1928. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/nap.py +0 -0
  1929. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/retry.py +0 -0
  1930. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/stop.py +0 -0
  1931. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -0
  1932. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tenacity/wait.py +0 -0
  1933. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -0
  1934. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -0
  1935. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -0
  1936. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -0
  1937. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -0
  1938. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -0
  1939. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -0
  1940. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -0
  1941. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -0
  1942. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -0
  1943. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -0
  1944. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -0
  1945. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -0
  1946. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -0
  1947. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -0
  1948. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -0
  1949. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/future → venv1/Lib/site-packages/pip/_vendor/urllib3/contrib}/__init__.py +0 -0
  1950. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
  1951. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests → venv1/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport}/__init__.py +0 -0
  1952. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
  1953. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
  1954. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -0
  1955. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
  1956. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
  1957. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
  1958. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -0
  1959. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -0
  1960. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -0
  1961. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -0
  1962. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat → venv1/Lib/site-packages/pip/_vendor/urllib3/packages}/__init__.py +0 -0
  1963. /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
  1964. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
  1965. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -0
  1966. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -0
  1967. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -0
  1968. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -0
  1969. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -0
  1970. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -0
  1971. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -0
  1972. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -0
  1973. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -0
  1974. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -0
  1975. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -0
  1976. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -0
  1977. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -0
  1978. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -0
  1979. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -0
  1980. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -0
  1981. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -0
  1982. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -0
  1983. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/__init__.py +0 -0
  1984. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/labels.py +0 -0
  1985. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +0 -0
  1986. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/tests.py +0 -0
  1987. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -0
  1988. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/__init__.py +0 -0
  1989. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory → venv1/Lib/site-packages/pkg_resources/tests}/__init__.py +0 -0
  1990. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -0
  1991. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +0 -0
  1992. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +0 -0
  1993. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_markers.py +0 -0
  1994. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +0 -0
  1995. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_resources.py +0 -0
  1996. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/pkg_resources/tests/test_working_set.py +0 -0
  1997. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02 → venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx}/__init__.py +0 -0
  1998. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one → venv1/Lib/site-packages/pythonwin/pywin/dialogs}/__init__.py +0 -0
  1999. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two → venv1/Lib/site-packages/pythonwin/pywin/docking}/__init__.py +0 -0
  2000. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/inflect/compat → venv1/Lib/site-packages/pythonwin/pywin/framework}/__init__.py +0 -0
  2001. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/wheel/vendored → venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color}/__init__.py +0 -0
  2002. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging → venv1/Lib/site-packages/pythonwin/pywin/mfc}/__init__.py +0 -0
  2003. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/_vendor/zipp/compat → venv1/Lib/site-packages/pythonwin/pywin/tools}/__init__.py +0 -0
  2004. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/__init__.py +0 -0
  2005. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_core_metadata.py +0 -0
  2006. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/__init__.py +0 -0
  2007. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_log.py +0 -0
  2008. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_macos_compat.py +0 -0
  2009. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_modified.py +0 -0
  2010. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +0 -0
  2011. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/archive_util.py +0 -0
  2012. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/ccompiler.py +0 -0
  2013. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/cmd.py +0 -0
  2014. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/__init__.py +0 -0
  2015. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +0 -0
  2016. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist.py +0 -0
  2017. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -0
  2018. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -0
  2019. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build.py +0 -0
  2020. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_clib.py +0 -0
  2021. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_ext.py +0 -0
  2022. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_py.py +0 -0
  2023. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +0 -0
  2024. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/check.py +0 -0
  2025. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/clean.py +0 -0
  2026. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/config.py +0 -0
  2027. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install.py +0 -0
  2028. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_data.py +0 -0
  2029. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -0
  2030. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_headers.py +0 -0
  2031. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_lib.py +0 -0
  2032. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +0 -0
  2033. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/command/sdist.py +0 -0
  2034. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/__init__.py +0 -0
  2035. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/py38.py +0 -0
  2036. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/compat/py39.py +0 -0
  2037. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/core.py +0 -0
  2038. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -0
  2039. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/debug.py +0 -0
  2040. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dep_util.py +0 -0
  2041. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dir_util.py +0 -0
  2042. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/dist.py +0 -0
  2043. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/errors.py +0 -0
  2044. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/extension.py +0 -0
  2045. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +0 -0
  2046. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/file_util.py +0 -0
  2047. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/filelist.py +0 -0
  2048. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/log.py +0 -0
  2049. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/spawn.py +0 -0
  2050. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -0
  2051. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/__init__.py +0 -0
  2052. /py2docfx/venv/{venv0/Lib/site-packages/setuptools → venv1/Lib/site-packages/setuptools/_distutils/tests}/compat/__init__.py +0 -0
  2053. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/compat/py38.py +0 -0
  2054. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/support.py +0 -0
  2055. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +0 -0
  2056. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +0 -0
  2057. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +0 -0
  2058. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +0 -0
  2059. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build.py +0 -0
  2060. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +0 -0
  2061. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +0 -0
  2062. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +0 -0
  2063. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +0 -0
  2064. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_ccompiler.py +0 -0
  2065. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_check.py +0 -0
  2066. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +0 -0
  2067. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +0 -0
  2068. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +0 -0
  2069. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_core.py +0 -0
  2070. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py +0 -0
  2071. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +0 -0
  2072. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +0 -0
  2073. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +0 -0
  2074. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +0 -0
  2075. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +0 -0
  2076. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install.py +0 -0
  2077. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +0 -0
  2078. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +0 -0
  2079. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +0 -0
  2080. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +0 -0
  2081. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_log.py +0 -0
  2082. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_mingwccompiler.py +0 -0
  2083. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +0 -0
  2084. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py +0 -0
  2085. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +0 -0
  2086. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +0 -0
  2087. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +0 -0
  2088. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +0 -0
  2089. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_unixccompiler.py +0 -0
  2090. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_util.py +0 -0
  2091. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_version.py +0 -0
  2092. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
  2093. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +0 -0
  2094. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/text_file.py +0 -0
  2095. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/unixccompiler.py +0 -0
  2096. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/util.py +0 -0
  2097. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/version.py +0 -0
  2098. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/versionpredicate.py +0 -0
  2099. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_distutils/zosccompiler.py +0 -0
  2100. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_entry_points.py +0 -0
  2101. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_imp.py +0 -0
  2102. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_importlib.py +0 -0
  2103. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_itertools.py +0 -0
  2104. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_normalization.py +0 -0
  2105. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_path.py +0 -0
  2106. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_reqs.py +0 -0
  2107. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +0 -0
  2108. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +0 -0
  2109. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +0 -0
  2110. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +0 -0
  2111. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +0 -0
  2112. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +0 -0
  2113. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/__init__.py +0 -0
  2114. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +0 -0
  2115. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +0 -0
  2116. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests → venv1/Lib/site-packages/setuptools/_vendor/backports/tarfile}/compat/__init__.py +0 -0
  2117. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +0 -0
  2118. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +0 -0
  2119. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +0 -0
  2120. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +0 -0
  2121. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +0 -0
  2122. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +0 -0
  2123. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +0 -0
  2124. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +0 -0
  2125. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +0 -0
  2126. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests/config → venv1/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat}/__init__.py +0 -0
  2127. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +0 -0
  2128. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +0 -0
  2129. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +0 -0
  2130. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -0
  2131. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -0
  2132. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -0
  2133. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -0
  2134. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -0
  2135. /py2docfx/venv/{venv0/Lib/site-packages/setuptools/tests/integration → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat}/__init__.py +0 -0
  2136. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -0
  2137. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -0
  2138. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -0
  2139. /py2docfx/venv/{venv0/Lib/site-packages/wheel/vendored → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future}/__init__.py +0 -0
  2140. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -0
  2141. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -0
  2142. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -0
  2143. /py2docfx/venv/{venv0/Lib/site-packages/wheel/vendored/packaging → venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests}/__init__.py +0 -0
  2144. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -0
  2145. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -0
  2146. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -0
  2147. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -0
  2148. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -0
  2149. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -0
  2150. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -0
  2151. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -0
  2152. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -0
  2153. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -0
  2154. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -0
  2155. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -0
  2156. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -0
  2157. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -0
  2158. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -0
  2159. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +0 -0
  2160. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +0 -0
  2161. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +0 -0
  2162. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/context.py +0 -0
  2163. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +0 -0
  2164. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +0 -0
  2165. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +0 -0
  2166. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +0 -0
  2167. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +0 -0
  2168. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +0 -0
  2169. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +0 -0
  2170. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -0
  2171. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +0 -0
  2172. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -0
  2173. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +0 -0
  2174. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +0 -0
  2175. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -0
  2176. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -0
  2177. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +0 -0
  2178. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +0 -0
  2179. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +0 -0
  2180. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/markers.py +0 -0
  2181. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +0 -0
  2182. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +0 -0
  2183. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -0
  2184. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/tags.py +0 -0
  2185. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/utils.py +0 -0
  2186. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/packaging/version.py +0 -0
  2187. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +0 -0
  2188. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +0 -0
  2189. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +0 -0
  2190. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +0 -0
  2191. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +0 -0
  2192. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +0 -0
  2193. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +0 -0
  2194. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +0 -0
  2195. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +0 -0
  2196. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +0 -0
  2197. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_re.py +0 -0
  2198. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/tomli/_types.py +0 -0
  2199. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +0 -0
  2200. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +0 -0
  2201. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +0 -0
  2202. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +0 -0
  2203. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +0 -0
  2204. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +0 -0
  2205. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +0 -0
  2206. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +0 -0
  2207. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +0 -0
  2208. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +0 -0
  2209. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +0 -0
  2210. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +0 -0
  2211. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +0 -0
  2212. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/typing_extensions.py +0 -0
  2213. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +0 -0
  2214. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +0 -0
  2215. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +0 -0
  2216. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +0 -0
  2217. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +0 -0
  2218. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +0 -0
  2219. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +0 -0
  2220. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +0 -0
  2221. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +0 -0
  2222. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +0 -0
  2223. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +0 -0
  2224. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -0
  2225. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +0 -0
  2226. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +0 -0
  2227. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +0 -0
  2228. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +0 -0
  2229. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +0 -0
  2230. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +0 -0
  2231. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +0 -0
  2232. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +0 -0
  2233. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +0 -0
  2234. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +0 -0
  2235. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +0 -0
  2236. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +0 -0
  2237. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +0 -0
  2238. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +0 -0
  2239. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +0 -0
  2240. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/_vendor/zipp/glob.py +0 -0
  2241. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/archive_util.py +0 -0
  2242. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/__init__.py +0 -0
  2243. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/_requirestxt.py +0 -0
  2244. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/alias.py +0 -0
  2245. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/bdist_egg.py +0 -0
  2246. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/bdist_rpm.py +0 -0
  2247. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build.py +0 -0
  2248. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_clib.py +0 -0
  2249. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_ext.py +0 -0
  2250. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/build_py.py +0 -0
  2251. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/develop.py +0 -0
  2252. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/dist_info.py +0 -0
  2253. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/easy_install.py +0 -0
  2254. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/editable_wheel.py +0 -0
  2255. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install.py +0 -0
  2256. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_egg_info.py +0 -0
  2257. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_lib.py +0 -0
  2258. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/install_scripts.py +0 -0
  2259. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/rotate.py +0 -0
  2260. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/saveopts.py +0 -0
  2261. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/sdist.py +0 -0
  2262. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/setopt.py +0 -0
  2263. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/command/test.py +0 -0
  2264. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py310.py +0 -0
  2265. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py311.py +0 -0
  2266. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py312.py +0 -0
  2267. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/compat/py39.py +0 -0
  2268. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/__init__.py +0 -0
  2269. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +0 -0
  2270. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +0 -0
  2271. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +0 -0
  2272. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +0 -0
  2273. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +0 -0
  2274. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +0 -0
  2275. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +0 -0
  2276. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/expand.py +0 -0
  2277. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/pyprojecttoml.py +0 -0
  2278. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/config/setupcfg.py +0 -0
  2279. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/depends.py +0 -0
  2280. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/discovery.py +0 -0
  2281. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/errors.py +0 -0
  2282. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/extension.py +0 -0
  2283. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/glob.py +0 -0
  2284. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/installer.py +0 -0
  2285. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/launch.py +0 -0
  2286. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/logging.py +0 -0
  2287. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/modified.py +0 -0
  2288. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/monkey.py +0 -0
  2289. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/msvc.py +0 -0
  2290. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/namespaces.py +0 -0
  2291. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/package_index.py +0 -0
  2292. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/sandbox.py +0 -0
  2293. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/__init__.py +0 -0
  2294. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/compat/py39.py +0 -0
  2295. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +0 -0
  2296. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/downloads/preload.py +0 -0
  2297. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +0 -0
  2298. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_expand.py +0 -0
  2299. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +0 -0
  2300. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +0 -0
  2301. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +0 -0
  2302. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/contexts.py +0 -0
  2303. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/environment.py +0 -0
  2304. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/fixtures.py +0 -0
  2305. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/integration/helpers.py +0 -0
  2306. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -0
  2307. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/mod_with_constant.py +0 -0
  2308. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/namespaces.py +0 -0
  2309. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/script-with-bom.py +0 -0
  2310. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/server.py +0 -0
  2311. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_archive_util.py +0 -0
  2312. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +0 -0
  2313. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_bdist_egg.py +0 -0
  2314. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build.py +0 -0
  2315. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_clib.py +0 -0
  2316. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_ext.py +0 -0
  2317. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -0
  2318. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_build_py.py +0 -0
  2319. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_config_discovery.py +0 -0
  2320. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_core_metadata.py +0 -0
  2321. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_depends.py +0 -0
  2322. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_develop.py +0 -0
  2323. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -0
  2324. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +0 -0
  2325. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -0
  2326. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_editable_install.py +0 -0
  2327. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_egg_info.py +0 -0
  2328. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_extern.py +0 -0
  2329. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_find_packages.py +0 -0
  2330. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_find_py_modules.py +0 -0
  2331. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_glob.py +0 -0
  2332. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_install_scripts.py +0 -0
  2333. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_logging.py +0 -0
  2334. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_manifest.py +0 -0
  2335. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_namespaces.py +0 -0
  2336. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -0
  2337. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -0
  2338. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_sdist.py +0 -0
  2339. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_setopt.py +0 -0
  2340. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_setuptools.py +0 -0
  2341. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_unicode_utils.py +0 -0
  2342. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_virtualenv.py +0 -0
  2343. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_warnings.py +0 -0
  2344. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_wheel.py +0 -0
  2345. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +0 -0
  2346. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/text.py +0 -0
  2347. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/tests/textwrap.py +0 -0
  2348. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/unicode_utils.py +0 -0
  2349. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/version.py +0 -0
  2350. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/warnings.py +0 -0
  2351. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/wheel.py +0 -0
  2352. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/setuptools/windows_support.py +0 -0
  2353. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/__init__.py +0 -0
  2354. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/__main__.py +0 -0
  2355. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/_bdist_wheel.py +0 -0
  2356. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/_setuptools_logging.py +0 -0
  2357. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/bdist_wheel.py +0 -0
  2358. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/__init__.py +0 -0
  2359. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/convert.py +0 -0
  2360. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/pack.py +0 -0
  2361. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/tags.py +0 -0
  2362. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/cli/unpack.py +0 -0
  2363. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/macosx_libfile.py +0 -0
  2364. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/metadata.py +0 -0
  2365. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/util.py +0 -0
  2366. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -0
  2367. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -0
  2368. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -0
  2369. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -0
  2370. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -0
  2371. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -0
  2372. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -0
  2373. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -0
  2374. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -0
  2375. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -0
  2376. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -0
  2377. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/vendored/packaging/version.py +0 -0
  2378. /py2docfx/venv/{venv0 → venv1}/Lib/site-packages/wheel/wheelfile.py +0 -0
  2379. {py2docfx-0.1.9.dev1886355.dist-info → py2docfx-0.1.9.dev1897554.dist-info}/WHEEL +0 -0
  2380. {py2docfx-0.1.9.dev1886355.dist-info → py2docfx-0.1.9.dev1897554.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2375 @@
1
+ # Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
2
+ # Use of this source code is governed by a BSD-style license that can be
3
+ # found in the LICENSE file.
4
+
5
+ """Linux platform implementation."""
6
+
7
+ from __future__ import division
8
+
9
+ import base64
10
+ import collections
11
+ import errno
12
+ import functools
13
+ import glob
14
+ import os
15
+ import re
16
+ import socket
17
+ import struct
18
+ import sys
19
+ import warnings
20
+ from collections import defaultdict
21
+ from collections import namedtuple
22
+
23
+ from . import _common
24
+ from . import _psposix
25
+ from . import _psutil_linux as cext
26
+ from . import _psutil_posix as cext_posix
27
+ from ._common import NIC_DUPLEX_FULL
28
+ from ._common import NIC_DUPLEX_HALF
29
+ from ._common import NIC_DUPLEX_UNKNOWN
30
+ from ._common import AccessDenied
31
+ from ._common import NoSuchProcess
32
+ from ._common import ZombieProcess
33
+ from ._common import bcat
34
+ from ._common import cat
35
+ from ._common import debug
36
+ from ._common import decode
37
+ from ._common import get_procfs_path
38
+ from ._common import isfile_strict
39
+ from ._common import memoize
40
+ from ._common import memoize_when_activated
41
+ from ._common import open_binary
42
+ from ._common import open_text
43
+ from ._common import parse_environ_block
44
+ from ._common import path_exists_strict
45
+ from ._common import supports_ipv6
46
+ from ._common import usage_percent
47
+ from ._compat import PY3
48
+ from ._compat import FileNotFoundError
49
+ from ._compat import PermissionError
50
+ from ._compat import ProcessLookupError
51
+ from ._compat import b
52
+ from ._compat import basestring
53
+
54
+
55
+ if PY3:
56
+ import enum
57
+ else:
58
+ enum = None
59
+
60
+
61
+ # fmt: off
62
+ __extra__all__ = [
63
+ 'PROCFS_PATH',
64
+ # io prio constants
65
+ "IOPRIO_CLASS_NONE", "IOPRIO_CLASS_RT", "IOPRIO_CLASS_BE",
66
+ "IOPRIO_CLASS_IDLE",
67
+ # connection status constants
68
+ "CONN_ESTABLISHED", "CONN_SYN_SENT", "CONN_SYN_RECV", "CONN_FIN_WAIT1",
69
+ "CONN_FIN_WAIT2", "CONN_TIME_WAIT", "CONN_CLOSE", "CONN_CLOSE_WAIT",
70
+ "CONN_LAST_ACK", "CONN_LISTEN", "CONN_CLOSING",
71
+ ]
72
+ # fmt: on
73
+
74
+
75
+ # =====================================================================
76
+ # --- globals
77
+ # =====================================================================
78
+
79
+
80
+ POWER_SUPPLY_PATH = "/sys/class/power_supply"
81
+ HAS_PROC_SMAPS = os.path.exists('/proc/%s/smaps' % os.getpid())
82
+ HAS_PROC_SMAPS_ROLLUP = os.path.exists('/proc/%s/smaps_rollup' % os.getpid())
83
+ HAS_PROC_IO_PRIORITY = hasattr(cext, "proc_ioprio_get")
84
+ HAS_CPU_AFFINITY = hasattr(cext, "proc_cpu_affinity_get")
85
+
86
+ # Number of clock ticks per second
87
+ CLOCK_TICKS = os.sysconf("SC_CLK_TCK")
88
+ PAGESIZE = cext_posix.getpagesize()
89
+ BOOT_TIME = None # set later
90
+ LITTLE_ENDIAN = sys.byteorder == 'little'
91
+
92
+ # "man iostat" states that sectors are equivalent with blocks and have
93
+ # a size of 512 bytes. Despite this value can be queried at runtime
94
+ # via /sys/block/{DISK}/queue/hw_sector_size and results may vary
95
+ # between 1k, 2k, or 4k... 512 appears to be a magic constant used
96
+ # throughout Linux source code:
97
+ # * https://stackoverflow.com/a/38136179/376587
98
+ # * https://lists.gt.net/linux/kernel/2241060
99
+ # * https://github.com/giampaolo/psutil/issues/1305
100
+ # * https://github.com/torvalds/linux/blob/
101
+ # 4f671fe2f9523a1ea206f63fe60a7c7b3a56d5c7/include/linux/bio.h#L99
102
+ # * https://lkml.org/lkml/2015/8/17/234
103
+ DISK_SECTOR_SIZE = 512
104
+
105
+ if enum is None:
106
+ AF_LINK = socket.AF_PACKET
107
+ else:
108
+ AddressFamily = enum.IntEnum(
109
+ 'AddressFamily', {'AF_LINK': int(socket.AF_PACKET)}
110
+ )
111
+ AF_LINK = AddressFamily.AF_LINK
112
+
113
+ # ioprio_* constants http://linux.die.net/man/2/ioprio_get
114
+ if enum is None:
115
+ IOPRIO_CLASS_NONE = 0
116
+ IOPRIO_CLASS_RT = 1
117
+ IOPRIO_CLASS_BE = 2
118
+ IOPRIO_CLASS_IDLE = 3
119
+ else:
120
+
121
+ class IOPriority(enum.IntEnum):
122
+ IOPRIO_CLASS_NONE = 0
123
+ IOPRIO_CLASS_RT = 1
124
+ IOPRIO_CLASS_BE = 2
125
+ IOPRIO_CLASS_IDLE = 3
126
+
127
+ globals().update(IOPriority.__members__)
128
+
129
+ # See:
130
+ # https://github.com/torvalds/linux/blame/master/fs/proc/array.c
131
+ # ...and (TASK_* constants):
132
+ # https://github.com/torvalds/linux/blob/master/include/linux/sched.h
133
+ PROC_STATUSES = {
134
+ "R": _common.STATUS_RUNNING,
135
+ "S": _common.STATUS_SLEEPING,
136
+ "D": _common.STATUS_DISK_SLEEP,
137
+ "T": _common.STATUS_STOPPED,
138
+ "t": _common.STATUS_TRACING_STOP,
139
+ "Z": _common.STATUS_ZOMBIE,
140
+ "X": _common.STATUS_DEAD,
141
+ "x": _common.STATUS_DEAD,
142
+ "K": _common.STATUS_WAKE_KILL,
143
+ "W": _common.STATUS_WAKING,
144
+ "I": _common.STATUS_IDLE,
145
+ "P": _common.STATUS_PARKED,
146
+ }
147
+
148
+ # https://github.com/torvalds/linux/blob/master/include/net/tcp_states.h
149
+ TCP_STATUSES = {
150
+ "01": _common.CONN_ESTABLISHED,
151
+ "02": _common.CONN_SYN_SENT,
152
+ "03": _common.CONN_SYN_RECV,
153
+ "04": _common.CONN_FIN_WAIT1,
154
+ "05": _common.CONN_FIN_WAIT2,
155
+ "06": _common.CONN_TIME_WAIT,
156
+ "07": _common.CONN_CLOSE,
157
+ "08": _common.CONN_CLOSE_WAIT,
158
+ "09": _common.CONN_LAST_ACK,
159
+ "0A": _common.CONN_LISTEN,
160
+ "0B": _common.CONN_CLOSING,
161
+ }
162
+
163
+
164
+ # =====================================================================
165
+ # --- named tuples
166
+ # =====================================================================
167
+
168
+
169
+ # fmt: off
170
+ # psutil.virtual_memory()
171
+ svmem = namedtuple(
172
+ 'svmem', ['total', 'available', 'percent', 'used', 'free',
173
+ 'active', 'inactive', 'buffers', 'cached', 'shared', 'slab'])
174
+ # psutil.disk_io_counters()
175
+ sdiskio = namedtuple(
176
+ 'sdiskio', ['read_count', 'write_count',
177
+ 'read_bytes', 'write_bytes',
178
+ 'read_time', 'write_time',
179
+ 'read_merged_count', 'write_merged_count',
180
+ 'busy_time'])
181
+ # psutil.Process().open_files()
182
+ popenfile = namedtuple(
183
+ 'popenfile', ['path', 'fd', 'position', 'mode', 'flags'])
184
+ # psutil.Process().memory_info()
185
+ pmem = namedtuple('pmem', 'rss vms shared text lib data dirty')
186
+ # psutil.Process().memory_full_info()
187
+ pfullmem = namedtuple('pfullmem', pmem._fields + ('uss', 'pss', 'swap'))
188
+ # psutil.Process().memory_maps(grouped=True)
189
+ pmmap_grouped = namedtuple(
190
+ 'pmmap_grouped',
191
+ ['path', 'rss', 'size', 'pss', 'shared_clean', 'shared_dirty',
192
+ 'private_clean', 'private_dirty', 'referenced', 'anonymous', 'swap'])
193
+ # psutil.Process().memory_maps(grouped=False)
194
+ pmmap_ext = namedtuple(
195
+ 'pmmap_ext', 'addr perms ' + ' '.join(pmmap_grouped._fields))
196
+ # psutil.Process.io_counters()
197
+ pio = namedtuple('pio', ['read_count', 'write_count',
198
+ 'read_bytes', 'write_bytes',
199
+ 'read_chars', 'write_chars'])
200
+ # psutil.Process.cpu_times()
201
+ pcputimes = namedtuple('pcputimes',
202
+ ['user', 'system', 'children_user', 'children_system',
203
+ 'iowait'])
204
+ # fmt: on
205
+
206
+
207
+ # =====================================================================
208
+ # --- utils
209
+ # =====================================================================
210
+
211
+
212
+ def readlink(path):
213
+ """Wrapper around os.readlink()."""
214
+ assert isinstance(path, basestring), path
215
+ path = os.readlink(path)
216
+ # readlink() might return paths containing null bytes ('\x00')
217
+ # resulting in "TypeError: must be encoded string without NULL
218
+ # bytes, not str" errors when the string is passed to other
219
+ # fs-related functions (os.*, open(), ...).
220
+ # Apparently everything after '\x00' is garbage (we can have
221
+ # ' (deleted)', 'new' and possibly others), see:
222
+ # https://github.com/giampaolo/psutil/issues/717
223
+ path = path.split('\x00')[0]
224
+ # Certain paths have ' (deleted)' appended. Usually this is
225
+ # bogus as the file actually exists. Even if it doesn't we
226
+ # don't care.
227
+ if path.endswith(' (deleted)') and not path_exists_strict(path):
228
+ path = path[:-10]
229
+ return path
230
+
231
+
232
+ def file_flags_to_mode(flags):
233
+ """Convert file's open() flags into a readable string.
234
+ Used by Process.open_files().
235
+ """
236
+ modes_map = {os.O_RDONLY: 'r', os.O_WRONLY: 'w', os.O_RDWR: 'w+'}
237
+ mode = modes_map[flags & (os.O_RDONLY | os.O_WRONLY | os.O_RDWR)]
238
+ if flags & os.O_APPEND:
239
+ mode = mode.replace('w', 'a', 1)
240
+ mode = mode.replace('w+', 'r+')
241
+ # possible values: r, w, a, r+, a+
242
+ return mode
243
+
244
+
245
+ def is_storage_device(name):
246
+ """Return True if the given name refers to a root device (e.g.
247
+ "sda", "nvme0n1") as opposed to a logical partition (e.g. "sda1",
248
+ "nvme0n1p1"). If name is a virtual device (e.g. "loop1", "ram")
249
+ return True.
250
+ """
251
+ # Re-adapted from iostat source code, see:
252
+ # https://github.com/sysstat/sysstat/blob/
253
+ # 97912938cd476645b267280069e83b1c8dc0e1c7/common.c#L208
254
+ # Some devices may have a slash in their name (e.g. cciss/c0d0...).
255
+ name = name.replace('/', '!')
256
+ including_virtual = True
257
+ if including_virtual:
258
+ path = "/sys/block/%s" % name
259
+ else:
260
+ path = "/sys/block/%s/device" % name
261
+ return os.access(path, os.F_OK)
262
+
263
+
264
+ @memoize
265
+ def set_scputimes_ntuple(procfs_path):
266
+ """Set a namedtuple of variable fields depending on the CPU times
267
+ available on this Linux kernel version which may be:
268
+ (user, nice, system, idle, iowait, irq, softirq, [steal, [guest,
269
+ [guest_nice]]])
270
+ Used by cpu_times() function.
271
+ """
272
+ global scputimes
273
+ with open_binary('%s/stat' % procfs_path) as f:
274
+ values = f.readline().split()[1:]
275
+ fields = ['user', 'nice', 'system', 'idle', 'iowait', 'irq', 'softirq']
276
+ vlen = len(values)
277
+ if vlen >= 8:
278
+ # Linux >= 2.6.11
279
+ fields.append('steal')
280
+ if vlen >= 9:
281
+ # Linux >= 2.6.24
282
+ fields.append('guest')
283
+ if vlen >= 10:
284
+ # Linux >= 3.2.0
285
+ fields.append('guest_nice')
286
+ scputimes = namedtuple('scputimes', fields)
287
+
288
+
289
+ try:
290
+ set_scputimes_ntuple("/proc")
291
+ except Exception as err: # noqa: BLE001
292
+ # Don't want to crash at import time.
293
+ debug("ignoring exception on import: %r" % err)
294
+ scputimes = namedtuple('scputimes', 'user system idle')(0.0, 0.0, 0.0)
295
+
296
+
297
+ # =====================================================================
298
+ # --- prlimit
299
+ # =====================================================================
300
+
301
+ # Backport of resource.prlimit() for Python 2. Originally this was done
302
+ # in C, but CentOS-6 which we use to create manylinux wheels is too old
303
+ # and does not support prlimit() syscall. As such the resulting wheel
304
+ # would not include prlimit(), even when installed on newer systems.
305
+ # This is the only part of psutil using ctypes.
306
+
307
+ prlimit = None
308
+ try:
309
+ from resource import prlimit # python >= 3.4
310
+ except ImportError:
311
+ import ctypes
312
+
313
+ libc = ctypes.CDLL(None, use_errno=True)
314
+
315
+ if hasattr(libc, "prlimit"):
316
+
317
+ def prlimit(pid, resource_, limits=None):
318
+ class StructRlimit(ctypes.Structure):
319
+ _fields_ = [
320
+ ('rlim_cur', ctypes.c_longlong),
321
+ ('rlim_max', ctypes.c_longlong),
322
+ ]
323
+
324
+ current = StructRlimit()
325
+ if limits is None:
326
+ # get
327
+ ret = libc.prlimit(pid, resource_, None, ctypes.byref(current))
328
+ else:
329
+ # set
330
+ new = StructRlimit()
331
+ new.rlim_cur = limits[0]
332
+ new.rlim_max = limits[1]
333
+ ret = libc.prlimit(
334
+ pid, resource_, ctypes.byref(new), ctypes.byref(current)
335
+ )
336
+
337
+ if ret != 0:
338
+ errno_ = ctypes.get_errno()
339
+ raise OSError(errno_, os.strerror(errno_))
340
+ return (current.rlim_cur, current.rlim_max)
341
+
342
+
343
+ if prlimit is not None:
344
+ __extra__all__.extend(
345
+ [x for x in dir(cext) if x.startswith('RLIM') and x.isupper()]
346
+ )
347
+
348
+
349
+ # =====================================================================
350
+ # --- system memory
351
+ # =====================================================================
352
+
353
+
354
+ def calculate_avail_vmem(mems):
355
+ """Fallback for kernels < 3.14 where /proc/meminfo does not provide
356
+ "MemAvailable", see:
357
+ https://blog.famzah.net/2014/09/24/.
358
+
359
+ This code reimplements the algorithm outlined here:
360
+ https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
361
+ commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
362
+
363
+ We use this function also when "MemAvailable" returns 0 (possibly a
364
+ kernel bug, see: https://github.com/giampaolo/psutil/issues/1915).
365
+ In that case this routine matches "free" CLI tool result ("available"
366
+ column).
367
+
368
+ XXX: on recent kernels this calculation may differ by ~1.5% compared
369
+ to "MemAvailable:", as it's calculated slightly differently.
370
+ It is still way more realistic than doing (free + cached) though.
371
+ See:
372
+ * https://gitlab.com/procps-ng/procps/issues/42
373
+ * https://github.com/famzah/linux-memavailable-procfs/issues/2
374
+ """
375
+ # Note about "fallback" value. According to:
376
+ # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
377
+ # commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
378
+ # ...long ago "available" memory was calculated as (free + cached),
379
+ # We use fallback when one of these is missing from /proc/meminfo:
380
+ # "Active(file)": introduced in 2.6.28 / Dec 2008
381
+ # "Inactive(file)": introduced in 2.6.28 / Dec 2008
382
+ # "SReclaimable": introduced in 2.6.19 / Nov 2006
383
+ # /proc/zoneinfo: introduced in 2.6.13 / Aug 2005
384
+ free = mems[b'MemFree:']
385
+ fallback = free + mems.get(b"Cached:", 0)
386
+ try:
387
+ lru_active_file = mems[b'Active(file):']
388
+ lru_inactive_file = mems[b'Inactive(file):']
389
+ slab_reclaimable = mems[b'SReclaimable:']
390
+ except KeyError as err:
391
+ debug(
392
+ "%s is missing from /proc/meminfo; using an approximation for "
393
+ "calculating available memory"
394
+ % err.args[0]
395
+ )
396
+ return fallback
397
+ try:
398
+ f = open_binary('%s/zoneinfo' % get_procfs_path())
399
+ except IOError:
400
+ return fallback # kernel 2.6.13
401
+
402
+ watermark_low = 0
403
+ with f:
404
+ for line in f:
405
+ line = line.strip()
406
+ if line.startswith(b'low'):
407
+ watermark_low += int(line.split()[1])
408
+ watermark_low *= PAGESIZE
409
+
410
+ avail = free - watermark_low
411
+ pagecache = lru_active_file + lru_inactive_file
412
+ pagecache -= min(pagecache / 2, watermark_low)
413
+ avail += pagecache
414
+ avail += slab_reclaimable - min(slab_reclaimable / 2.0, watermark_low)
415
+ return int(avail)
416
+
417
+
418
+ def virtual_memory():
419
+ """Report virtual memory stats.
420
+ This implementation mimics procps-ng-3.3.12, aka "free" CLI tool:
421
+ https://gitlab.com/procps-ng/procps/blob/
422
+ 24fd2605c51fccc375ab0287cec33aa767f06718/proc/sysinfo.c#L778-791
423
+ The returned values are supposed to match both "free" and "vmstat -s"
424
+ CLI tools.
425
+ """
426
+ missing_fields = []
427
+ mems = {}
428
+ with open_binary('%s/meminfo' % get_procfs_path()) as f:
429
+ for line in f:
430
+ fields = line.split()
431
+ mems[fields[0]] = int(fields[1]) * 1024
432
+
433
+ # /proc doc states that the available fields in /proc/meminfo vary
434
+ # by architecture and compile options, but these 3 values are also
435
+ # returned by sysinfo(2); as such we assume they are always there.
436
+ total = mems[b'MemTotal:']
437
+ free = mems[b'MemFree:']
438
+ try:
439
+ buffers = mems[b'Buffers:']
440
+ except KeyError:
441
+ # https://github.com/giampaolo/psutil/issues/1010
442
+ buffers = 0
443
+ missing_fields.append('buffers')
444
+ try:
445
+ cached = mems[b"Cached:"]
446
+ except KeyError:
447
+ cached = 0
448
+ missing_fields.append('cached')
449
+ else:
450
+ # "free" cmdline utility sums reclaimable to cached.
451
+ # Older versions of procps used to add slab memory instead.
452
+ # This got changed in:
453
+ # https://gitlab.com/procps-ng/procps/commit/
454
+ # 05d751c4f076a2f0118b914c5e51cfbb4762ad8e
455
+ cached += mems.get(b"SReclaimable:", 0) # since kernel 2.6.19
456
+
457
+ try:
458
+ shared = mems[b'Shmem:'] # since kernel 2.6.32
459
+ except KeyError:
460
+ try:
461
+ shared = mems[b'MemShared:'] # kernels 2.4
462
+ except KeyError:
463
+ shared = 0
464
+ missing_fields.append('shared')
465
+
466
+ try:
467
+ active = mems[b"Active:"]
468
+ except KeyError:
469
+ active = 0
470
+ missing_fields.append('active')
471
+
472
+ try:
473
+ inactive = mems[b"Inactive:"]
474
+ except KeyError:
475
+ try:
476
+ inactive = (
477
+ mems[b"Inact_dirty:"]
478
+ + mems[b"Inact_clean:"]
479
+ + mems[b"Inact_laundry:"]
480
+ )
481
+ except KeyError:
482
+ inactive = 0
483
+ missing_fields.append('inactive')
484
+
485
+ try:
486
+ slab = mems[b"Slab:"]
487
+ except KeyError:
488
+ slab = 0
489
+
490
+ used = total - free - cached - buffers
491
+ if used < 0:
492
+ # May be symptomatic of running within a LCX container where such
493
+ # values will be dramatically distorted over those of the host.
494
+ used = total - free
495
+
496
+ # - starting from 4.4.0 we match free's "available" column.
497
+ # Before 4.4.0 we calculated it as (free + buffers + cached)
498
+ # which matched htop.
499
+ # - free and htop available memory differs as per:
500
+ # http://askubuntu.com/a/369589
501
+ # http://unix.stackexchange.com/a/65852/168884
502
+ # - MemAvailable has been introduced in kernel 3.14
503
+ try:
504
+ avail = mems[b'MemAvailable:']
505
+ except KeyError:
506
+ avail = calculate_avail_vmem(mems)
507
+ else:
508
+ if avail == 0:
509
+ # Yes, it can happen (probably a kernel bug):
510
+ # https://github.com/giampaolo/psutil/issues/1915
511
+ # In this case "free" CLI tool makes an estimate. We do the same,
512
+ # and it matches "free" CLI tool.
513
+ avail = calculate_avail_vmem(mems)
514
+
515
+ if avail < 0:
516
+ avail = 0
517
+ missing_fields.append('available')
518
+ elif avail > total:
519
+ # If avail is greater than total or our calculation overflows,
520
+ # that's symptomatic of running within a LCX container where such
521
+ # values will be dramatically distorted over those of the host.
522
+ # https://gitlab.com/procps-ng/procps/blob/
523
+ # 24fd2605c51fccc375ab0287cec33aa767f06718/proc/sysinfo.c#L764
524
+ avail = free
525
+
526
+ percent = usage_percent((total - avail), total, round_=1)
527
+
528
+ # Warn about missing metrics which are set to 0.
529
+ if missing_fields:
530
+ msg = "%s memory stats couldn't be determined and %s set to 0" % (
531
+ ", ".join(missing_fields),
532
+ "was" if len(missing_fields) == 1 else "were",
533
+ )
534
+ warnings.warn(msg, RuntimeWarning, stacklevel=2)
535
+
536
+ return svmem(
537
+ total,
538
+ avail,
539
+ percent,
540
+ used,
541
+ free,
542
+ active,
543
+ inactive,
544
+ buffers,
545
+ cached,
546
+ shared,
547
+ slab,
548
+ )
549
+
550
+
551
+ def swap_memory():
552
+ """Return swap memory metrics."""
553
+ mems = {}
554
+ with open_binary('%s/meminfo' % get_procfs_path()) as f:
555
+ for line in f:
556
+ fields = line.split()
557
+ mems[fields[0]] = int(fields[1]) * 1024
558
+ # We prefer /proc/meminfo over sysinfo() syscall so that
559
+ # psutil.PROCFS_PATH can be used in order to allow retrieval
560
+ # for linux containers, see:
561
+ # https://github.com/giampaolo/psutil/issues/1015
562
+ try:
563
+ total = mems[b'SwapTotal:']
564
+ free = mems[b'SwapFree:']
565
+ except KeyError:
566
+ _, _, _, _, total, free, unit_multiplier = cext.linux_sysinfo()
567
+ total *= unit_multiplier
568
+ free *= unit_multiplier
569
+
570
+ used = total - free
571
+ percent = usage_percent(used, total, round_=1)
572
+ # get pgin/pgouts
573
+ try:
574
+ f = open_binary("%s/vmstat" % get_procfs_path())
575
+ except IOError as err:
576
+ # see https://github.com/giampaolo/psutil/issues/722
577
+ msg = (
578
+ "'sin' and 'sout' swap memory stats couldn't "
579
+ + "be determined and were set to 0 (%s)" % str(err)
580
+ )
581
+ warnings.warn(msg, RuntimeWarning, stacklevel=2)
582
+ sin = sout = 0
583
+ else:
584
+ with f:
585
+ sin = sout = None
586
+ for line in f:
587
+ # values are expressed in 4 kilo bytes, we want
588
+ # bytes instead
589
+ if line.startswith(b'pswpin'):
590
+ sin = int(line.split(b' ')[1]) * 4 * 1024
591
+ elif line.startswith(b'pswpout'):
592
+ sout = int(line.split(b' ')[1]) * 4 * 1024
593
+ if sin is not None and sout is not None:
594
+ break
595
+ else:
596
+ # we might get here when dealing with exotic Linux
597
+ # flavors, see:
598
+ # https://github.com/giampaolo/psutil/issues/313
599
+ msg = "'sin' and 'sout' swap memory stats couldn't "
600
+ msg += "be determined and were set to 0"
601
+ warnings.warn(msg, RuntimeWarning, stacklevel=2)
602
+ sin = sout = 0
603
+ return _common.sswap(total, used, free, percent, sin, sout)
604
+
605
+
606
+ # =====================================================================
607
+ # --- CPU
608
+ # =====================================================================
609
+
610
+
611
+ def cpu_times():
612
+ """Return a named tuple representing the following system-wide
613
+ CPU times:
614
+ (user, nice, system, idle, iowait, irq, softirq [steal, [guest,
615
+ [guest_nice]]])
616
+ Last 3 fields may not be available on all Linux kernel versions.
617
+ """
618
+ procfs_path = get_procfs_path()
619
+ set_scputimes_ntuple(procfs_path)
620
+ with open_binary('%s/stat' % procfs_path) as f:
621
+ values = f.readline().split()
622
+ fields = values[1 : len(scputimes._fields) + 1]
623
+ fields = [float(x) / CLOCK_TICKS for x in fields]
624
+ return scputimes(*fields)
625
+
626
+
627
+ def per_cpu_times():
628
+ """Return a list of namedtuple representing the CPU times
629
+ for every CPU available on the system.
630
+ """
631
+ procfs_path = get_procfs_path()
632
+ set_scputimes_ntuple(procfs_path)
633
+ cpus = []
634
+ with open_binary('%s/stat' % procfs_path) as f:
635
+ # get rid of the first line which refers to system wide CPU stats
636
+ f.readline()
637
+ for line in f:
638
+ if line.startswith(b'cpu'):
639
+ values = line.split()
640
+ fields = values[1 : len(scputimes._fields) + 1]
641
+ fields = [float(x) / CLOCK_TICKS for x in fields]
642
+ entry = scputimes(*fields)
643
+ cpus.append(entry)
644
+ return cpus
645
+
646
+
647
+ def cpu_count_logical():
648
+ """Return the number of logical CPUs in the system."""
649
+ try:
650
+ return os.sysconf("SC_NPROCESSORS_ONLN")
651
+ except ValueError:
652
+ # as a second fallback we try to parse /proc/cpuinfo
653
+ num = 0
654
+ with open_binary('%s/cpuinfo' % get_procfs_path()) as f:
655
+ for line in f:
656
+ if line.lower().startswith(b'processor'):
657
+ num += 1
658
+
659
+ # unknown format (e.g. amrel/sparc architectures), see:
660
+ # https://github.com/giampaolo/psutil/issues/200
661
+ # try to parse /proc/stat as a last resort
662
+ if num == 0:
663
+ search = re.compile(r'cpu\d')
664
+ with open_text('%s/stat' % get_procfs_path()) as f:
665
+ for line in f:
666
+ line = line.split(' ')[0]
667
+ if search.match(line):
668
+ num += 1
669
+
670
+ if num == 0:
671
+ # mimic os.cpu_count()
672
+ return None
673
+ return num
674
+
675
+
676
+ def cpu_count_cores():
677
+ """Return the number of CPU cores in the system."""
678
+ # Method #1
679
+ ls = set()
680
+ # These 2 files are the same but */core_cpus_list is newer while
681
+ # */thread_siblings_list is deprecated and may disappear in the future.
682
+ # https://www.kernel.org/doc/Documentation/admin-guide/cputopology.rst
683
+ # https://github.com/giampaolo/psutil/pull/1727#issuecomment-707624964
684
+ # https://lkml.org/lkml/2019/2/26/41
685
+ p1 = "/sys/devices/system/cpu/cpu[0-9]*/topology/core_cpus_list"
686
+ p2 = "/sys/devices/system/cpu/cpu[0-9]*/topology/thread_siblings_list"
687
+ for path in glob.glob(p1) or glob.glob(p2):
688
+ with open_binary(path) as f:
689
+ ls.add(f.read().strip())
690
+ result = len(ls)
691
+ if result != 0:
692
+ return result
693
+
694
+ # Method #2
695
+ mapping = {}
696
+ current_info = {}
697
+ with open_binary('%s/cpuinfo' % get_procfs_path()) as f:
698
+ for line in f:
699
+ line = line.strip().lower()
700
+ if not line:
701
+ # new section
702
+ try:
703
+ mapping[current_info[b'physical id']] = current_info[
704
+ b'cpu cores'
705
+ ]
706
+ except KeyError:
707
+ pass
708
+ current_info = {}
709
+ else:
710
+ # ongoing section
711
+ if line.startswith((b'physical id', b'cpu cores')):
712
+ key, value = line.split(b'\t:', 1)
713
+ current_info[key] = int(value)
714
+
715
+ result = sum(mapping.values())
716
+ return result or None # mimic os.cpu_count()
717
+
718
+
719
+ def cpu_stats():
720
+ """Return various CPU stats as a named tuple."""
721
+ with open_binary('%s/stat' % get_procfs_path()) as f:
722
+ ctx_switches = None
723
+ interrupts = None
724
+ soft_interrupts = None
725
+ for line in f:
726
+ if line.startswith(b'ctxt'):
727
+ ctx_switches = int(line.split()[1])
728
+ elif line.startswith(b'intr'):
729
+ interrupts = int(line.split()[1])
730
+ elif line.startswith(b'softirq'):
731
+ soft_interrupts = int(line.split()[1])
732
+ if (
733
+ ctx_switches is not None
734
+ and soft_interrupts is not None
735
+ and interrupts is not None
736
+ ):
737
+ break
738
+ syscalls = 0
739
+ return _common.scpustats(
740
+ ctx_switches, interrupts, soft_interrupts, syscalls
741
+ )
742
+
743
+
744
+ def _cpu_get_cpuinfo_freq():
745
+ """Return current CPU frequency from cpuinfo if available."""
746
+ ret = []
747
+ with open_binary('%s/cpuinfo' % get_procfs_path()) as f:
748
+ for line in f:
749
+ if line.lower().startswith(b'cpu mhz'):
750
+ ret.append(float(line.split(b':', 1)[1]))
751
+ return ret
752
+
753
+
754
+ if os.path.exists("/sys/devices/system/cpu/cpufreq/policy0") or os.path.exists(
755
+ "/sys/devices/system/cpu/cpu0/cpufreq"
756
+ ):
757
+
758
+ def cpu_freq():
759
+ """Return frequency metrics for all CPUs.
760
+ Contrarily to other OSes, Linux updates these values in
761
+ real-time.
762
+ """
763
+ cpuinfo_freqs = _cpu_get_cpuinfo_freq()
764
+ paths = glob.glob(
765
+ "/sys/devices/system/cpu/cpufreq/policy[0-9]*"
766
+ ) or glob.glob("/sys/devices/system/cpu/cpu[0-9]*/cpufreq")
767
+ paths.sort(key=lambda x: int(re.search(r"[0-9]+", x).group()))
768
+ ret = []
769
+ pjoin = os.path.join
770
+ for i, path in enumerate(paths):
771
+ if len(paths) == len(cpuinfo_freqs):
772
+ # take cached value from cpuinfo if available, see:
773
+ # https://github.com/giampaolo/psutil/issues/1851
774
+ curr = cpuinfo_freqs[i] * 1000
775
+ else:
776
+ curr = bcat(pjoin(path, "scaling_cur_freq"), fallback=None)
777
+ if curr is None:
778
+ # Likely an old RedHat, see:
779
+ # https://github.com/giampaolo/psutil/issues/1071
780
+ curr = bcat(pjoin(path, "cpuinfo_cur_freq"), fallback=None)
781
+ if curr is None:
782
+ online_path = (
783
+ "/sys/devices/system/cpu/cpu{}/online".format(i)
784
+ )
785
+ # if cpu core is offline, set to all zeroes
786
+ if cat(online_path, fallback=None) == "0\n":
787
+ ret.append(_common.scpufreq(0.0, 0.0, 0.0))
788
+ continue
789
+ msg = "can't find current frequency file"
790
+ raise NotImplementedError(msg)
791
+ curr = int(curr) / 1000
792
+ max_ = int(bcat(pjoin(path, "scaling_max_freq"))) / 1000
793
+ min_ = int(bcat(pjoin(path, "scaling_min_freq"))) / 1000
794
+ ret.append(_common.scpufreq(curr, min_, max_))
795
+ return ret
796
+
797
+ else:
798
+
799
+ def cpu_freq():
800
+ """Alternate implementation using /proc/cpuinfo.
801
+ min and max frequencies are not available and are set to None.
802
+ """
803
+ return [_common.scpufreq(x, 0.0, 0.0) for x in _cpu_get_cpuinfo_freq()]
804
+
805
+
806
+ # =====================================================================
807
+ # --- network
808
+ # =====================================================================
809
+
810
+
811
+ net_if_addrs = cext_posix.net_if_addrs
812
+
813
+
814
+ class _Ipv6UnsupportedError(Exception):
815
+ pass
816
+
817
+
818
+ class NetConnections:
819
+ """A wrapper on top of /proc/net/* files, retrieving per-process
820
+ and system-wide open connections (TCP, UDP, UNIX) similarly to
821
+ "netstat -an".
822
+
823
+ Note: in case of UNIX sockets we're only able to determine the
824
+ local endpoint/path, not the one it's connected to.
825
+ According to [1] it would be possible but not easily.
826
+
827
+ [1] http://serverfault.com/a/417946
828
+ """
829
+
830
+ def __init__(self):
831
+ # The string represents the basename of the corresponding
832
+ # /proc/net/{proto_name} file.
833
+ tcp4 = ("tcp", socket.AF_INET, socket.SOCK_STREAM)
834
+ tcp6 = ("tcp6", socket.AF_INET6, socket.SOCK_STREAM)
835
+ udp4 = ("udp", socket.AF_INET, socket.SOCK_DGRAM)
836
+ udp6 = ("udp6", socket.AF_INET6, socket.SOCK_DGRAM)
837
+ unix = ("unix", socket.AF_UNIX, None)
838
+ self.tmap = {
839
+ "all": (tcp4, tcp6, udp4, udp6, unix),
840
+ "tcp": (tcp4, tcp6),
841
+ "tcp4": (tcp4,),
842
+ "tcp6": (tcp6,),
843
+ "udp": (udp4, udp6),
844
+ "udp4": (udp4,),
845
+ "udp6": (udp6,),
846
+ "unix": (unix,),
847
+ "inet": (tcp4, tcp6, udp4, udp6),
848
+ "inet4": (tcp4, udp4),
849
+ "inet6": (tcp6, udp6),
850
+ }
851
+ self._procfs_path = None
852
+
853
+ def get_proc_inodes(self, pid):
854
+ inodes = defaultdict(list)
855
+ for fd in os.listdir("%s/%s/fd" % (self._procfs_path, pid)):
856
+ try:
857
+ inode = readlink("%s/%s/fd/%s" % (self._procfs_path, pid, fd))
858
+ except (FileNotFoundError, ProcessLookupError):
859
+ # ENOENT == file which is gone in the meantime;
860
+ # os.stat('/proc/%s' % self.pid) will be done later
861
+ # to force NSP (if it's the case)
862
+ continue
863
+ except OSError as err:
864
+ if err.errno == errno.EINVAL:
865
+ # not a link
866
+ continue
867
+ if err.errno == errno.ENAMETOOLONG:
868
+ # file name too long
869
+ debug(err)
870
+ continue
871
+ raise
872
+ else:
873
+ if inode.startswith('socket:['):
874
+ # the process is using a socket
875
+ inode = inode[8:][:-1]
876
+ inodes[inode].append((pid, int(fd)))
877
+ return inodes
878
+
879
+ def get_all_inodes(self):
880
+ inodes = {}
881
+ for pid in pids():
882
+ try:
883
+ inodes.update(self.get_proc_inodes(pid))
884
+ except (FileNotFoundError, ProcessLookupError, PermissionError):
885
+ # os.listdir() is gonna raise a lot of access denied
886
+ # exceptions in case of unprivileged user; that's fine
887
+ # as we'll just end up returning a connection with PID
888
+ # and fd set to None anyway.
889
+ # Both netstat -an and lsof does the same so it's
890
+ # unlikely we can do any better.
891
+ # ENOENT just means a PID disappeared on us.
892
+ continue
893
+ return inodes
894
+
895
+ @staticmethod
896
+ def decode_address(addr, family):
897
+ """Accept an "ip:port" address as displayed in /proc/net/*
898
+ and convert it into a human readable form, like:
899
+
900
+ "0500000A:0016" -> ("10.0.0.5", 22)
901
+ "0000000000000000FFFF00000100007F:9E49" -> ("::ffff:127.0.0.1", 40521)
902
+
903
+ The IP address portion is a little or big endian four-byte
904
+ hexadecimal number; that is, the least significant byte is listed
905
+ first, so we need to reverse the order of the bytes to convert it
906
+ to an IP address.
907
+ The port is represented as a two-byte hexadecimal number.
908
+
909
+ Reference:
910
+ http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html
911
+ """
912
+ ip, port = addr.split(':')
913
+ port = int(port, 16)
914
+ # this usually refers to a local socket in listen mode with
915
+ # no end-points connected
916
+ if not port:
917
+ return ()
918
+ if PY3:
919
+ ip = ip.encode('ascii')
920
+ if family == socket.AF_INET:
921
+ # see: https://github.com/giampaolo/psutil/issues/201
922
+ if LITTLE_ENDIAN:
923
+ ip = socket.inet_ntop(family, base64.b16decode(ip)[::-1])
924
+ else:
925
+ ip = socket.inet_ntop(family, base64.b16decode(ip))
926
+ else: # IPv6
927
+ ip = base64.b16decode(ip)
928
+ try:
929
+ # see: https://github.com/giampaolo/psutil/issues/201
930
+ if LITTLE_ENDIAN:
931
+ ip = socket.inet_ntop(
932
+ socket.AF_INET6,
933
+ struct.pack('>4I', *struct.unpack('<4I', ip)),
934
+ )
935
+ else:
936
+ ip = socket.inet_ntop(
937
+ socket.AF_INET6,
938
+ struct.pack('<4I', *struct.unpack('<4I', ip)),
939
+ )
940
+ except ValueError:
941
+ # see: https://github.com/giampaolo/psutil/issues/623
942
+ if not supports_ipv6():
943
+ raise _Ipv6UnsupportedError
944
+ else:
945
+ raise
946
+ return _common.addr(ip, port)
947
+
948
+ @staticmethod
949
+ def process_inet(file, family, type_, inodes, filter_pid=None):
950
+ """Parse /proc/net/tcp* and /proc/net/udp* files."""
951
+ if file.endswith('6') and not os.path.exists(file):
952
+ # IPv6 not supported
953
+ return
954
+ with open_text(file) as f:
955
+ f.readline() # skip the first line
956
+ for lineno, line in enumerate(f, 1):
957
+ try:
958
+ _, laddr, raddr, status, _, _, _, _, _, inode = (
959
+ line.split()[:10]
960
+ )
961
+ except ValueError:
962
+ raise RuntimeError(
963
+ "error while parsing %s; malformed line %s %r"
964
+ % (file, lineno, line)
965
+ )
966
+ if inode in inodes:
967
+ # # We assume inet sockets are unique, so we error
968
+ # # out if there are multiple references to the
969
+ # # same inode. We won't do this for UNIX sockets.
970
+ # if len(inodes[inode]) > 1 and family != socket.AF_UNIX:
971
+ # raise ValueError("ambiguous inode with multiple "
972
+ # "PIDs references")
973
+ pid, fd = inodes[inode][0]
974
+ else:
975
+ pid, fd = None, -1
976
+ if filter_pid is not None and filter_pid != pid:
977
+ continue
978
+ else:
979
+ if type_ == socket.SOCK_STREAM:
980
+ status = TCP_STATUSES[status]
981
+ else:
982
+ status = _common.CONN_NONE
983
+ try:
984
+ laddr = NetConnections.decode_address(laddr, family)
985
+ raddr = NetConnections.decode_address(raddr, family)
986
+ except _Ipv6UnsupportedError:
987
+ continue
988
+ yield (fd, family, type_, laddr, raddr, status, pid)
989
+
990
+ @staticmethod
991
+ def process_unix(file, family, inodes, filter_pid=None):
992
+ """Parse /proc/net/unix files."""
993
+ with open_text(file) as f:
994
+ f.readline() # skip the first line
995
+ for line in f:
996
+ tokens = line.split()
997
+ try:
998
+ _, _, _, _, type_, _, inode = tokens[0:7]
999
+ except ValueError:
1000
+ if ' ' not in line:
1001
+ # see: https://github.com/giampaolo/psutil/issues/766
1002
+ continue
1003
+ raise RuntimeError(
1004
+ "error while parsing %s; malformed line %r"
1005
+ % (file, line)
1006
+ )
1007
+ if inode in inodes: # noqa
1008
+ # With UNIX sockets we can have a single inode
1009
+ # referencing many file descriptors.
1010
+ pairs = inodes[inode]
1011
+ else:
1012
+ pairs = [(None, -1)]
1013
+ for pid, fd in pairs:
1014
+ if filter_pid is not None and filter_pid != pid:
1015
+ continue
1016
+ else:
1017
+ path = tokens[-1] if len(tokens) == 8 else ''
1018
+ type_ = _common.socktype_to_enum(int(type_))
1019
+ # XXX: determining the remote endpoint of a
1020
+ # UNIX socket on Linux is not possible, see:
1021
+ # https://serverfault.com/questions/252723/
1022
+ raddr = ""
1023
+ status = _common.CONN_NONE
1024
+ yield (fd, family, type_, path, raddr, status, pid)
1025
+
1026
+ def retrieve(self, kind, pid=None):
1027
+ if kind not in self.tmap:
1028
+ raise ValueError(
1029
+ "invalid %r kind argument; choose between %s"
1030
+ % (kind, ', '.join([repr(x) for x in self.tmap]))
1031
+ )
1032
+ self._procfs_path = get_procfs_path()
1033
+ if pid is not None:
1034
+ inodes = self.get_proc_inodes(pid)
1035
+ if not inodes:
1036
+ # no connections for this process
1037
+ return []
1038
+ else:
1039
+ inodes = self.get_all_inodes()
1040
+ ret = set()
1041
+ for proto_name, family, type_ in self.tmap[kind]:
1042
+ path = "%s/net/%s" % (self._procfs_path, proto_name)
1043
+ if family in (socket.AF_INET, socket.AF_INET6):
1044
+ ls = self.process_inet(
1045
+ path, family, type_, inodes, filter_pid=pid
1046
+ )
1047
+ else:
1048
+ ls = self.process_unix(path, family, inodes, filter_pid=pid)
1049
+ for fd, family, type_, laddr, raddr, status, bound_pid in ls:
1050
+ if pid:
1051
+ conn = _common.pconn(
1052
+ fd, family, type_, laddr, raddr, status
1053
+ )
1054
+ else:
1055
+ conn = _common.sconn(
1056
+ fd, family, type_, laddr, raddr, status, bound_pid
1057
+ )
1058
+ ret.add(conn)
1059
+ return list(ret)
1060
+
1061
+
1062
+ _net_connections = NetConnections()
1063
+
1064
+
1065
+ def net_connections(kind='inet'):
1066
+ """Return system-wide open connections."""
1067
+ return _net_connections.retrieve(kind)
1068
+
1069
+
1070
+ def net_io_counters():
1071
+ """Return network I/O statistics for every network interface
1072
+ installed on the system as a dict of raw tuples.
1073
+ """
1074
+ with open_text("%s/net/dev" % get_procfs_path()) as f:
1075
+ lines = f.readlines()
1076
+ retdict = {}
1077
+ for line in lines[2:]:
1078
+ colon = line.rfind(':')
1079
+ assert colon > 0, repr(line)
1080
+ name = line[:colon].strip()
1081
+ fields = line[colon + 1 :].strip().split()
1082
+
1083
+ (
1084
+ # in
1085
+ bytes_recv,
1086
+ packets_recv,
1087
+ errin,
1088
+ dropin,
1089
+ _fifoin, # unused
1090
+ _framein, # unused
1091
+ _compressedin, # unused
1092
+ _multicastin, # unused
1093
+ # out
1094
+ bytes_sent,
1095
+ packets_sent,
1096
+ errout,
1097
+ dropout,
1098
+ _fifoout, # unused
1099
+ _collisionsout, # unused
1100
+ _carrierout, # unused
1101
+ _compressedout, # unused
1102
+ ) = map(int, fields)
1103
+
1104
+ retdict[name] = (
1105
+ bytes_sent,
1106
+ bytes_recv,
1107
+ packets_sent,
1108
+ packets_recv,
1109
+ errin,
1110
+ errout,
1111
+ dropin,
1112
+ dropout,
1113
+ )
1114
+ return retdict
1115
+
1116
+
1117
+ def net_if_stats():
1118
+ """Get NIC stats (isup, duplex, speed, mtu)."""
1119
+ duplex_map = {
1120
+ cext.DUPLEX_FULL: NIC_DUPLEX_FULL,
1121
+ cext.DUPLEX_HALF: NIC_DUPLEX_HALF,
1122
+ cext.DUPLEX_UNKNOWN: NIC_DUPLEX_UNKNOWN,
1123
+ }
1124
+ names = net_io_counters().keys()
1125
+ ret = {}
1126
+ for name in names:
1127
+ try:
1128
+ mtu = cext_posix.net_if_mtu(name)
1129
+ flags = cext_posix.net_if_flags(name)
1130
+ duplex, speed = cext.net_if_duplex_speed(name)
1131
+ except OSError as err:
1132
+ # https://github.com/giampaolo/psutil/issues/1279
1133
+ if err.errno != errno.ENODEV:
1134
+ raise
1135
+ else:
1136
+ debug(err)
1137
+ else:
1138
+ output_flags = ','.join(flags)
1139
+ isup = 'running' in flags
1140
+ ret[name] = _common.snicstats(
1141
+ isup, duplex_map[duplex], speed, mtu, output_flags
1142
+ )
1143
+ return ret
1144
+
1145
+
1146
+ # =====================================================================
1147
+ # --- disks
1148
+ # =====================================================================
1149
+
1150
+
1151
+ disk_usage = _psposix.disk_usage
1152
+
1153
+
1154
+ def disk_io_counters(perdisk=False):
1155
+ """Return disk I/O statistics for every disk installed on the
1156
+ system as a dict of raw tuples.
1157
+ """
1158
+
1159
+ def read_procfs():
1160
+ # OK, this is a bit confusing. The format of /proc/diskstats can
1161
+ # have 3 variations.
1162
+ # On Linux 2.4 each line has always 15 fields, e.g.:
1163
+ # "3 0 8 hda 8 8 8 8 8 8 8 8 8 8 8"
1164
+ # On Linux 2.6+ each line *usually* has 14 fields, and the disk
1165
+ # name is in another position, like this:
1166
+ # "3 0 hda 8 8 8 8 8 8 8 8 8 8 8"
1167
+ # ...unless (Linux 2.6) the line refers to a partition instead
1168
+ # of a disk, in which case the line has less fields (7):
1169
+ # "3 1 hda1 8 8 8 8"
1170
+ # 4.18+ has 4 fields added:
1171
+ # "3 0 hda 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0"
1172
+ # 5.5 has 2 more fields.
1173
+ # See:
1174
+ # https://www.kernel.org/doc/Documentation/iostats.txt
1175
+ # https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats
1176
+ with open_text("%s/diskstats" % get_procfs_path()) as f:
1177
+ lines = f.readlines()
1178
+ for line in lines:
1179
+ fields = line.split()
1180
+ flen = len(fields)
1181
+ # fmt: off
1182
+ if flen == 15:
1183
+ # Linux 2.4
1184
+ name = fields[3]
1185
+ reads = int(fields[2])
1186
+ (reads_merged, rbytes, rtime, writes, writes_merged,
1187
+ wbytes, wtime, _, busy_time, _) = map(int, fields[4:14])
1188
+ elif flen == 14 or flen >= 18:
1189
+ # Linux 2.6+, line referring to a disk
1190
+ name = fields[2]
1191
+ (reads, reads_merged, rbytes, rtime, writes, writes_merged,
1192
+ wbytes, wtime, _, busy_time, _) = map(int, fields[3:14])
1193
+ elif flen == 7:
1194
+ # Linux 2.6+, line referring to a partition
1195
+ name = fields[2]
1196
+ reads, rbytes, writes, wbytes = map(int, fields[3:])
1197
+ rtime = wtime = reads_merged = writes_merged = busy_time = 0
1198
+ else:
1199
+ raise ValueError("not sure how to interpret line %r" % line)
1200
+ yield (name, reads, writes, rbytes, wbytes, rtime, wtime,
1201
+ reads_merged, writes_merged, busy_time)
1202
+ # fmt: on
1203
+
1204
+ def read_sysfs():
1205
+ for block in os.listdir('/sys/block'):
1206
+ for root, _, files in os.walk(os.path.join('/sys/block', block)):
1207
+ if 'stat' not in files:
1208
+ continue
1209
+ with open_text(os.path.join(root, 'stat')) as f:
1210
+ fields = f.read().strip().split()
1211
+ name = os.path.basename(root)
1212
+ # fmt: off
1213
+ (reads, reads_merged, rbytes, rtime, writes, writes_merged,
1214
+ wbytes, wtime, _, busy_time) = map(int, fields[:10])
1215
+ yield (name, reads, writes, rbytes, wbytes, rtime,
1216
+ wtime, reads_merged, writes_merged, busy_time)
1217
+ # fmt: on
1218
+
1219
+ if os.path.exists('%s/diskstats' % get_procfs_path()):
1220
+ gen = read_procfs()
1221
+ elif os.path.exists('/sys/block'):
1222
+ gen = read_sysfs()
1223
+ else:
1224
+ raise NotImplementedError(
1225
+ "%s/diskstats nor /sys/block filesystem are available on this "
1226
+ "system"
1227
+ % get_procfs_path()
1228
+ )
1229
+
1230
+ retdict = {}
1231
+ for entry in gen:
1232
+ # fmt: off
1233
+ (name, reads, writes, rbytes, wbytes, rtime, wtime, reads_merged,
1234
+ writes_merged, busy_time) = entry
1235
+ if not perdisk and not is_storage_device(name):
1236
+ # perdisk=False means we want to calculate totals so we skip
1237
+ # partitions (e.g. 'sda1', 'nvme0n1p1') and only include
1238
+ # base disk devices (e.g. 'sda', 'nvme0n1'). Base disks
1239
+ # include a total of all their partitions + some extra size
1240
+ # of their own:
1241
+ # $ cat /proc/diskstats
1242
+ # 259 0 sda 10485760 ...
1243
+ # 259 1 sda1 5186039 ...
1244
+ # 259 1 sda2 5082039 ...
1245
+ # See:
1246
+ # https://github.com/giampaolo/psutil/pull/1313
1247
+ continue
1248
+
1249
+ rbytes *= DISK_SECTOR_SIZE
1250
+ wbytes *= DISK_SECTOR_SIZE
1251
+ retdict[name] = (reads, writes, rbytes, wbytes, rtime, wtime,
1252
+ reads_merged, writes_merged, busy_time)
1253
+ # fmt: on
1254
+
1255
+ return retdict
1256
+
1257
+
1258
+ class RootFsDeviceFinder:
1259
+ """disk_partitions() may return partitions with device == "/dev/root"
1260
+ or "rootfs". This container class uses different strategies to try to
1261
+ obtain the real device path. Resources:
1262
+ https://bootlin.com/blog/find-root-device/
1263
+ https://www.systutorials.com/how-to-find-the-disk-where-root-is-on-in-bash-on-linux/.
1264
+ """
1265
+
1266
+ __slots__ = ['major', 'minor']
1267
+
1268
+ def __init__(self):
1269
+ dev = os.stat("/").st_dev
1270
+ self.major = os.major(dev)
1271
+ self.minor = os.minor(dev)
1272
+
1273
+ def ask_proc_partitions(self):
1274
+ with open_text("%s/partitions" % get_procfs_path()) as f:
1275
+ for line in f.readlines()[2:]:
1276
+ fields = line.split()
1277
+ if len(fields) < 4: # just for extra safety
1278
+ continue
1279
+ major = int(fields[0]) if fields[0].isdigit() else None
1280
+ minor = int(fields[1]) if fields[1].isdigit() else None
1281
+ name = fields[3]
1282
+ if major == self.major and minor == self.minor:
1283
+ if name: # just for extra safety
1284
+ return "/dev/%s" % name
1285
+
1286
+ def ask_sys_dev_block(self):
1287
+ path = "/sys/dev/block/%s:%s/uevent" % (self.major, self.minor)
1288
+ with open_text(path) as f:
1289
+ for line in f:
1290
+ if line.startswith("DEVNAME="):
1291
+ name = line.strip().rpartition("DEVNAME=")[2]
1292
+ if name: # just for extra safety
1293
+ return "/dev/%s" % name
1294
+
1295
+ def ask_sys_class_block(self):
1296
+ needle = "%s:%s" % (self.major, self.minor)
1297
+ files = glob.iglob("/sys/class/block/*/dev")
1298
+ for file in files:
1299
+ try:
1300
+ f = open_text(file)
1301
+ except FileNotFoundError: # race condition
1302
+ continue
1303
+ else:
1304
+ with f:
1305
+ data = f.read().strip()
1306
+ if data == needle:
1307
+ name = os.path.basename(os.path.dirname(file))
1308
+ return "/dev/%s" % name
1309
+
1310
+ def find(self):
1311
+ path = None
1312
+ if path is None:
1313
+ try:
1314
+ path = self.ask_proc_partitions()
1315
+ except (IOError, OSError) as err:
1316
+ debug(err)
1317
+ if path is None:
1318
+ try:
1319
+ path = self.ask_sys_dev_block()
1320
+ except (IOError, OSError) as err:
1321
+ debug(err)
1322
+ if path is None:
1323
+ try:
1324
+ path = self.ask_sys_class_block()
1325
+ except (IOError, OSError) as err:
1326
+ debug(err)
1327
+ # We use exists() because the "/dev/*" part of the path is hard
1328
+ # coded, so we want to be sure.
1329
+ if path is not None and os.path.exists(path):
1330
+ return path
1331
+
1332
+
1333
+ def disk_partitions(all=False):
1334
+ """Return mounted disk partitions as a list of namedtuples."""
1335
+ fstypes = set()
1336
+ procfs_path = get_procfs_path()
1337
+ if not all:
1338
+ with open_text("%s/filesystems" % procfs_path) as f:
1339
+ for line in f:
1340
+ line = line.strip()
1341
+ if not line.startswith("nodev"):
1342
+ fstypes.add(line.strip())
1343
+ else:
1344
+ # ignore all lines starting with "nodev" except "nodev zfs"
1345
+ fstype = line.split("\t")[1]
1346
+ if fstype == "zfs":
1347
+ fstypes.add("zfs")
1348
+
1349
+ # See: https://github.com/giampaolo/psutil/issues/1307
1350
+ if procfs_path == "/proc" and os.path.isfile('/etc/mtab'):
1351
+ mounts_path = os.path.realpath("/etc/mtab")
1352
+ else:
1353
+ mounts_path = os.path.realpath("%s/self/mounts" % procfs_path)
1354
+
1355
+ retlist = []
1356
+ partitions = cext.disk_partitions(mounts_path)
1357
+ for partition in partitions:
1358
+ device, mountpoint, fstype, opts = partition
1359
+ if device == 'none':
1360
+ device = ''
1361
+ if device in ("/dev/root", "rootfs"):
1362
+ device = RootFsDeviceFinder().find() or device
1363
+ if not all:
1364
+ if not device or fstype not in fstypes:
1365
+ continue
1366
+ ntuple = _common.sdiskpart(device, mountpoint, fstype, opts)
1367
+ retlist.append(ntuple)
1368
+
1369
+ return retlist
1370
+
1371
+
1372
+ # =====================================================================
1373
+ # --- sensors
1374
+ # =====================================================================
1375
+
1376
+
1377
+ def sensors_temperatures():
1378
+ """Return hardware (CPU and others) temperatures as a dict
1379
+ including hardware name, label, current, max and critical
1380
+ temperatures.
1381
+
1382
+ Implementation notes:
1383
+ - /sys/class/hwmon looks like the most recent interface to
1384
+ retrieve this info, and this implementation relies on it
1385
+ only (old distros will probably use something else)
1386
+ - lm-sensors on Ubuntu 16.04 relies on /sys/class/hwmon
1387
+ - /sys/class/thermal/thermal_zone* is another one but it's more
1388
+ difficult to parse
1389
+ """
1390
+ ret = collections.defaultdict(list)
1391
+ basenames = glob.glob('/sys/class/hwmon/hwmon*/temp*_*')
1392
+ # CentOS has an intermediate /device directory:
1393
+ # https://github.com/giampaolo/psutil/issues/971
1394
+ # https://github.com/nicolargo/glances/issues/1060
1395
+ basenames.extend(glob.glob('/sys/class/hwmon/hwmon*/device/temp*_*'))
1396
+ basenames = sorted(set([x.split('_')[0] for x in basenames]))
1397
+
1398
+ # Only add the coretemp hwmon entries if they're not already in
1399
+ # /sys/class/hwmon/
1400
+ # https://github.com/giampaolo/psutil/issues/1708
1401
+ # https://github.com/giampaolo/psutil/pull/1648
1402
+ basenames2 = glob.glob(
1403
+ '/sys/devices/platform/coretemp.*/hwmon/hwmon*/temp*_*'
1404
+ )
1405
+ repl = re.compile('/sys/devices/platform/coretemp.*/hwmon/')
1406
+ for name in basenames2:
1407
+ altname = repl.sub('/sys/class/hwmon/', name)
1408
+ if altname not in basenames:
1409
+ basenames.append(name)
1410
+
1411
+ for base in basenames:
1412
+ try:
1413
+ path = base + '_input'
1414
+ current = float(bcat(path)) / 1000.0
1415
+ path = os.path.join(os.path.dirname(base), 'name')
1416
+ unit_name = cat(path).strip()
1417
+ except (IOError, OSError, ValueError):
1418
+ # A lot of things can go wrong here, so let's just skip the
1419
+ # whole entry. Sure thing is Linux's /sys/class/hwmon really
1420
+ # is a stinky broken mess.
1421
+ # https://github.com/giampaolo/psutil/issues/1009
1422
+ # https://github.com/giampaolo/psutil/issues/1101
1423
+ # https://github.com/giampaolo/psutil/issues/1129
1424
+ # https://github.com/giampaolo/psutil/issues/1245
1425
+ # https://github.com/giampaolo/psutil/issues/1323
1426
+ continue
1427
+
1428
+ high = bcat(base + '_max', fallback=None)
1429
+ critical = bcat(base + '_crit', fallback=None)
1430
+ label = cat(base + '_label', fallback='').strip()
1431
+
1432
+ if high is not None:
1433
+ try:
1434
+ high = float(high) / 1000.0
1435
+ except ValueError:
1436
+ high = None
1437
+ if critical is not None:
1438
+ try:
1439
+ critical = float(critical) / 1000.0
1440
+ except ValueError:
1441
+ critical = None
1442
+
1443
+ ret[unit_name].append((label, current, high, critical))
1444
+
1445
+ # Indication that no sensors were detected in /sys/class/hwmon/
1446
+ if not basenames:
1447
+ basenames = glob.glob('/sys/class/thermal/thermal_zone*')
1448
+ basenames = sorted(set(basenames))
1449
+
1450
+ for base in basenames:
1451
+ try:
1452
+ path = os.path.join(base, 'temp')
1453
+ current = float(bcat(path)) / 1000.0
1454
+ path = os.path.join(base, 'type')
1455
+ unit_name = cat(path).strip()
1456
+ except (IOError, OSError, ValueError) as err:
1457
+ debug(err)
1458
+ continue
1459
+
1460
+ trip_paths = glob.glob(base + '/trip_point*')
1461
+ trip_points = set([
1462
+ '_'.join(os.path.basename(p).split('_')[0:3])
1463
+ for p in trip_paths
1464
+ ])
1465
+ critical = None
1466
+ high = None
1467
+ for trip_point in trip_points:
1468
+ path = os.path.join(base, trip_point + "_type")
1469
+ trip_type = cat(path, fallback='').strip()
1470
+ if trip_type == 'critical':
1471
+ critical = bcat(
1472
+ os.path.join(base, trip_point + "_temp"), fallback=None
1473
+ )
1474
+ elif trip_type == 'high':
1475
+ high = bcat(
1476
+ os.path.join(base, trip_point + "_temp"), fallback=None
1477
+ )
1478
+
1479
+ if high is not None:
1480
+ try:
1481
+ high = float(high) / 1000.0
1482
+ except ValueError:
1483
+ high = None
1484
+ if critical is not None:
1485
+ try:
1486
+ critical = float(critical) / 1000.0
1487
+ except ValueError:
1488
+ critical = None
1489
+
1490
+ ret[unit_name].append(('', current, high, critical))
1491
+
1492
+ return dict(ret)
1493
+
1494
+
1495
+ def sensors_fans():
1496
+ """Return hardware fans info (for CPU and other peripherals) as a
1497
+ dict including hardware label and current speed.
1498
+
1499
+ Implementation notes:
1500
+ - /sys/class/hwmon looks like the most recent interface to
1501
+ retrieve this info, and this implementation relies on it
1502
+ only (old distros will probably use something else)
1503
+ - lm-sensors on Ubuntu 16.04 relies on /sys/class/hwmon
1504
+ """
1505
+ ret = collections.defaultdict(list)
1506
+ basenames = glob.glob('/sys/class/hwmon/hwmon*/fan*_*')
1507
+ if not basenames:
1508
+ # CentOS has an intermediate /device directory:
1509
+ # https://github.com/giampaolo/psutil/issues/971
1510
+ basenames = glob.glob('/sys/class/hwmon/hwmon*/device/fan*_*')
1511
+
1512
+ basenames = sorted(set([x.split('_')[0] for x in basenames]))
1513
+ for base in basenames:
1514
+ try:
1515
+ current = int(bcat(base + '_input'))
1516
+ except (IOError, OSError) as err:
1517
+ debug(err)
1518
+ continue
1519
+ unit_name = cat(os.path.join(os.path.dirname(base), 'name')).strip()
1520
+ label = cat(base + '_label', fallback='').strip()
1521
+ ret[unit_name].append(_common.sfan(label, current))
1522
+
1523
+ return dict(ret)
1524
+
1525
+
1526
+ def sensors_battery():
1527
+ """Return battery information.
1528
+ Implementation note: it appears /sys/class/power_supply/BAT0/
1529
+ directory structure may vary and provide files with the same
1530
+ meaning but under different names, see:
1531
+ https://github.com/giampaolo/psutil/issues/966.
1532
+ """
1533
+ null = object()
1534
+
1535
+ def multi_bcat(*paths):
1536
+ """Attempt to read the content of multiple files which may
1537
+ not exist. If none of them exist return None.
1538
+ """
1539
+ for path in paths:
1540
+ ret = bcat(path, fallback=null)
1541
+ if ret != null:
1542
+ try:
1543
+ return int(ret)
1544
+ except ValueError:
1545
+ return ret.strip()
1546
+ return None
1547
+
1548
+ bats = [
1549
+ x
1550
+ for x in os.listdir(POWER_SUPPLY_PATH)
1551
+ if x.startswith('BAT') or 'battery' in x.lower()
1552
+ ]
1553
+ if not bats:
1554
+ return None
1555
+ # Get the first available battery. Usually this is "BAT0", except
1556
+ # some rare exceptions:
1557
+ # https://github.com/giampaolo/psutil/issues/1238
1558
+ root = os.path.join(POWER_SUPPLY_PATH, sorted(bats)[0])
1559
+
1560
+ # Base metrics.
1561
+ energy_now = multi_bcat(root + "/energy_now", root + "/charge_now")
1562
+ power_now = multi_bcat(root + "/power_now", root + "/current_now")
1563
+ energy_full = multi_bcat(root + "/energy_full", root + "/charge_full")
1564
+ time_to_empty = multi_bcat(root + "/time_to_empty_now")
1565
+
1566
+ # Percent. If we have energy_full the percentage will be more
1567
+ # accurate compared to reading /capacity file (float vs. int).
1568
+ if energy_full is not None and energy_now is not None:
1569
+ try:
1570
+ percent = 100.0 * energy_now / energy_full
1571
+ except ZeroDivisionError:
1572
+ percent = 0.0
1573
+ else:
1574
+ percent = int(cat(root + "/capacity", fallback=-1))
1575
+ if percent == -1:
1576
+ return None
1577
+
1578
+ # Is AC power cable plugged in?
1579
+ # Note: AC0 is not always available and sometimes (e.g. CentOS7)
1580
+ # it's called "AC".
1581
+ power_plugged = None
1582
+ online = multi_bcat(
1583
+ os.path.join(POWER_SUPPLY_PATH, "AC0/online"),
1584
+ os.path.join(POWER_SUPPLY_PATH, "AC/online"),
1585
+ )
1586
+ if online is not None:
1587
+ power_plugged = online == 1
1588
+ else:
1589
+ status = cat(root + "/status", fallback="").strip().lower()
1590
+ if status == "discharging":
1591
+ power_plugged = False
1592
+ elif status in ("charging", "full"):
1593
+ power_plugged = True
1594
+
1595
+ # Seconds left.
1596
+ # Note to self: we may also calculate the charging ETA as per:
1597
+ # https://github.com/thialfihar/dotfiles/blob/
1598
+ # 013937745fd9050c30146290e8f963d65c0179e6/bin/battery.py#L55
1599
+ if power_plugged:
1600
+ secsleft = _common.POWER_TIME_UNLIMITED
1601
+ elif energy_now is not None and power_now is not None:
1602
+ try:
1603
+ secsleft = int(energy_now / power_now * 3600)
1604
+ except ZeroDivisionError:
1605
+ secsleft = _common.POWER_TIME_UNKNOWN
1606
+ elif time_to_empty is not None:
1607
+ secsleft = int(time_to_empty * 60)
1608
+ if secsleft < 0:
1609
+ secsleft = _common.POWER_TIME_UNKNOWN
1610
+ else:
1611
+ secsleft = _common.POWER_TIME_UNKNOWN
1612
+
1613
+ return _common.sbattery(percent, secsleft, power_plugged)
1614
+
1615
+
1616
+ # =====================================================================
1617
+ # --- other system functions
1618
+ # =====================================================================
1619
+
1620
+
1621
+ def users():
1622
+ """Return currently connected users as a list of namedtuples."""
1623
+ retlist = []
1624
+ rawlist = cext.users()
1625
+ for item in rawlist:
1626
+ user, tty, hostname, tstamp, pid = item
1627
+ nt = _common.suser(user, tty or None, hostname, tstamp, pid)
1628
+ retlist.append(nt)
1629
+ return retlist
1630
+
1631
+
1632
+ def boot_time():
1633
+ """Return the system boot time expressed in seconds since the epoch."""
1634
+ global BOOT_TIME
1635
+ path = '%s/stat' % get_procfs_path()
1636
+ with open_binary(path) as f:
1637
+ for line in f:
1638
+ if line.startswith(b'btime'):
1639
+ ret = float(line.strip().split()[1])
1640
+ BOOT_TIME = ret
1641
+ return ret
1642
+ raise RuntimeError("line 'btime' not found in %s" % path)
1643
+
1644
+
1645
+ # =====================================================================
1646
+ # --- processes
1647
+ # =====================================================================
1648
+
1649
+
1650
+ def pids():
1651
+ """Returns a list of PIDs currently running on the system."""
1652
+ return [int(x) for x in os.listdir(b(get_procfs_path())) if x.isdigit()]
1653
+
1654
+
1655
+ def pid_exists(pid):
1656
+ """Check for the existence of a unix PID. Linux TIDs are not
1657
+ supported (always return False).
1658
+ """
1659
+ if not _psposix.pid_exists(pid):
1660
+ return False
1661
+ else:
1662
+ # Linux's apparently does not distinguish between PIDs and TIDs
1663
+ # (thread IDs).
1664
+ # listdir("/proc") won't show any TID (only PIDs) but
1665
+ # os.stat("/proc/{tid}") will succeed if {tid} exists.
1666
+ # os.kill() can also be passed a TID. This is quite confusing.
1667
+ # In here we want to enforce this distinction and support PIDs
1668
+ # only, see:
1669
+ # https://github.com/giampaolo/psutil/issues/687
1670
+ try:
1671
+ # Note: already checked that this is faster than using a
1672
+ # regular expr. Also (a lot) faster than doing
1673
+ # 'return pid in pids()'
1674
+ path = "%s/%s/status" % (get_procfs_path(), pid)
1675
+ with open_binary(path) as f:
1676
+ for line in f:
1677
+ if line.startswith(b"Tgid:"):
1678
+ tgid = int(line.split()[1])
1679
+ # If tgid and pid are the same then we're
1680
+ # dealing with a process PID.
1681
+ return tgid == pid
1682
+ raise ValueError("'Tgid' line not found in %s" % path)
1683
+ except (EnvironmentError, ValueError):
1684
+ return pid in pids()
1685
+
1686
+
1687
+ def ppid_map():
1688
+ """Obtain a {pid: ppid, ...} dict for all running processes in
1689
+ one shot. Used to speed up Process.children().
1690
+ """
1691
+ ret = {}
1692
+ procfs_path = get_procfs_path()
1693
+ for pid in pids():
1694
+ try:
1695
+ with open_binary("%s/%s/stat" % (procfs_path, pid)) as f:
1696
+ data = f.read()
1697
+ except (FileNotFoundError, ProcessLookupError):
1698
+ # Note: we should be able to access /stat for all processes
1699
+ # aka it's unlikely we'll bump into EPERM, which is good.
1700
+ pass
1701
+ else:
1702
+ rpar = data.rfind(b')')
1703
+ dset = data[rpar + 2 :].split()
1704
+ ppid = int(dset[1])
1705
+ ret[pid] = ppid
1706
+ return ret
1707
+
1708
+
1709
+ def wrap_exceptions(fun):
1710
+ """Decorator which translates bare OSError and IOError exceptions
1711
+ into NoSuchProcess and AccessDenied.
1712
+ """
1713
+
1714
+ @functools.wraps(fun)
1715
+ def wrapper(self, *args, **kwargs):
1716
+ try:
1717
+ return fun(self, *args, **kwargs)
1718
+ except PermissionError:
1719
+ raise AccessDenied(self.pid, self._name)
1720
+ except ProcessLookupError:
1721
+ self._raise_if_zombie()
1722
+ raise NoSuchProcess(self.pid, self._name)
1723
+ except FileNotFoundError:
1724
+ self._raise_if_zombie()
1725
+ if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)):
1726
+ raise NoSuchProcess(self.pid, self._name)
1727
+ raise
1728
+
1729
+ return wrapper
1730
+
1731
+
1732
+ class Process:
1733
+ """Linux process implementation."""
1734
+
1735
+ __slots__ = ["_cache", "_name", "_ppid", "_procfs_path", "pid"]
1736
+
1737
+ def __init__(self, pid):
1738
+ self.pid = pid
1739
+ self._name = None
1740
+ self._ppid = None
1741
+ self._procfs_path = get_procfs_path()
1742
+
1743
+ def _is_zombie(self):
1744
+ # Note: most of the times Linux is able to return info about the
1745
+ # process even if it's a zombie, and /proc/{pid} will exist.
1746
+ # There are some exceptions though, like exe(), cmdline() and
1747
+ # memory_maps(). In these cases /proc/{pid}/{file} exists but
1748
+ # it's empty. Instead of returning a "null" value we'll raise an
1749
+ # exception.
1750
+ try:
1751
+ data = bcat("%s/%s/stat" % (self._procfs_path, self.pid))
1752
+ except (IOError, OSError):
1753
+ return False
1754
+ else:
1755
+ rpar = data.rfind(b')')
1756
+ status = data[rpar + 2 : rpar + 3]
1757
+ return status == b"Z"
1758
+
1759
+ def _raise_if_zombie(self):
1760
+ if self._is_zombie():
1761
+ raise ZombieProcess(self.pid, self._name, self._ppid)
1762
+
1763
+ def _raise_if_not_alive(self):
1764
+ """Raise NSP if the process disappeared on us."""
1765
+ # For those C function who do not raise NSP, possibly returning
1766
+ # incorrect or incomplete result.
1767
+ os.stat('%s/%s' % (self._procfs_path, self.pid))
1768
+
1769
+ @wrap_exceptions
1770
+ @memoize_when_activated
1771
+ def _parse_stat_file(self):
1772
+ """Parse /proc/{pid}/stat file and return a dict with various
1773
+ process info.
1774
+ Using "man proc" as a reference: where "man proc" refers to
1775
+ position N always subtract 3 (e.g ppid position 4 in
1776
+ 'man proc' == position 1 in here).
1777
+ The return value is cached in case oneshot() ctx manager is
1778
+ in use.
1779
+ """
1780
+ data = bcat("%s/%s/stat" % (self._procfs_path, self.pid))
1781
+ # Process name is between parentheses. It can contain spaces and
1782
+ # other parentheses. This is taken into account by looking for
1783
+ # the first occurrence of "(" and the last occurrence of ")".
1784
+ rpar = data.rfind(b')')
1785
+ name = data[data.find(b'(') + 1 : rpar]
1786
+ fields = data[rpar + 2 :].split()
1787
+
1788
+ ret = {}
1789
+ ret['name'] = name
1790
+ ret['status'] = fields[0]
1791
+ ret['ppid'] = fields[1]
1792
+ ret['ttynr'] = fields[4]
1793
+ ret['utime'] = fields[11]
1794
+ ret['stime'] = fields[12]
1795
+ ret['children_utime'] = fields[13]
1796
+ ret['children_stime'] = fields[14]
1797
+ ret['create_time'] = fields[19]
1798
+ ret['cpu_num'] = fields[36]
1799
+ try:
1800
+ ret['blkio_ticks'] = fields[39] # aka 'delayacct_blkio_ticks'
1801
+ except IndexError:
1802
+ # https://github.com/giampaolo/psutil/issues/2455
1803
+ debug("can't get blkio_ticks, set iowait to 0")
1804
+ ret['blkio_ticks'] = 0
1805
+
1806
+ return ret
1807
+
1808
+ @wrap_exceptions
1809
+ @memoize_when_activated
1810
+ def _read_status_file(self):
1811
+ """Read /proc/{pid}/stat file and return its content.
1812
+ The return value is cached in case oneshot() ctx manager is
1813
+ in use.
1814
+ """
1815
+ with open_binary("%s/%s/status" % (self._procfs_path, self.pid)) as f:
1816
+ return f.read()
1817
+
1818
+ @wrap_exceptions
1819
+ @memoize_when_activated
1820
+ def _read_smaps_file(self):
1821
+ with open_binary("%s/%s/smaps" % (self._procfs_path, self.pid)) as f:
1822
+ return f.read().strip()
1823
+
1824
+ def oneshot_enter(self):
1825
+ self._parse_stat_file.cache_activate(self)
1826
+ self._read_status_file.cache_activate(self)
1827
+ self._read_smaps_file.cache_activate(self)
1828
+
1829
+ def oneshot_exit(self):
1830
+ self._parse_stat_file.cache_deactivate(self)
1831
+ self._read_status_file.cache_deactivate(self)
1832
+ self._read_smaps_file.cache_deactivate(self)
1833
+
1834
+ @wrap_exceptions
1835
+ def name(self):
1836
+ name = self._parse_stat_file()['name']
1837
+ if PY3:
1838
+ name = decode(name)
1839
+ # XXX - gets changed later and probably needs refactoring
1840
+ return name
1841
+
1842
+ @wrap_exceptions
1843
+ def exe(self):
1844
+ try:
1845
+ return readlink("%s/%s/exe" % (self._procfs_path, self.pid))
1846
+ except (FileNotFoundError, ProcessLookupError):
1847
+ self._raise_if_zombie()
1848
+ # no such file error; might be raised also if the
1849
+ # path actually exists for system processes with
1850
+ # low pids (about 0-20)
1851
+ if os.path.lexists("%s/%s" % (self._procfs_path, self.pid)):
1852
+ return ""
1853
+ raise
1854
+
1855
+ @wrap_exceptions
1856
+ def cmdline(self):
1857
+ with open_text("%s/%s/cmdline" % (self._procfs_path, self.pid)) as f:
1858
+ data = f.read()
1859
+ if not data:
1860
+ # may happen in case of zombie process
1861
+ self._raise_if_zombie()
1862
+ return []
1863
+ # 'man proc' states that args are separated by null bytes '\0'
1864
+ # and last char is supposed to be a null byte. Nevertheless
1865
+ # some processes may change their cmdline after being started
1866
+ # (via setproctitle() or similar), they are usually not
1867
+ # compliant with this rule and use spaces instead. Google
1868
+ # Chrome process is an example. See:
1869
+ # https://github.com/giampaolo/psutil/issues/1179
1870
+ sep = '\x00' if data.endswith('\x00') else ' '
1871
+ if data.endswith(sep):
1872
+ data = data[:-1]
1873
+ cmdline = data.split(sep)
1874
+ # Sometimes last char is a null byte '\0' but the args are
1875
+ # separated by spaces, see: https://github.com/giampaolo/psutil/
1876
+ # issues/1179#issuecomment-552984549
1877
+ if sep == '\x00' and len(cmdline) == 1 and ' ' in data:
1878
+ cmdline = data.split(' ')
1879
+ return cmdline
1880
+
1881
+ @wrap_exceptions
1882
+ def environ(self):
1883
+ with open_text("%s/%s/environ" % (self._procfs_path, self.pid)) as f:
1884
+ data = f.read()
1885
+ return parse_environ_block(data)
1886
+
1887
+ @wrap_exceptions
1888
+ def terminal(self):
1889
+ tty_nr = int(self._parse_stat_file()['ttynr'])
1890
+ tmap = _psposix.get_terminal_map()
1891
+ try:
1892
+ return tmap[tty_nr]
1893
+ except KeyError:
1894
+ return None
1895
+
1896
+ # May not be available on old kernels.
1897
+ if os.path.exists('/proc/%s/io' % os.getpid()):
1898
+
1899
+ @wrap_exceptions
1900
+ def io_counters(self):
1901
+ fname = "%s/%s/io" % (self._procfs_path, self.pid)
1902
+ fields = {}
1903
+ with open_binary(fname) as f:
1904
+ for line in f:
1905
+ # https://github.com/giampaolo/psutil/issues/1004
1906
+ line = line.strip()
1907
+ if line:
1908
+ try:
1909
+ name, value = line.split(b': ')
1910
+ except ValueError:
1911
+ # https://github.com/giampaolo/psutil/issues/1004
1912
+ continue
1913
+ else:
1914
+ fields[name] = int(value)
1915
+ if not fields:
1916
+ raise RuntimeError("%s file was empty" % fname)
1917
+ try:
1918
+ return pio(
1919
+ fields[b'syscr'], # read syscalls
1920
+ fields[b'syscw'], # write syscalls
1921
+ fields[b'read_bytes'], # read bytes
1922
+ fields[b'write_bytes'], # write bytes
1923
+ fields[b'rchar'], # read chars
1924
+ fields[b'wchar'], # write chars
1925
+ )
1926
+ except KeyError as err:
1927
+ raise ValueError(
1928
+ "%r field was not found in %s; found fields are %r"
1929
+ % (err.args[0], fname, fields)
1930
+ )
1931
+
1932
+ @wrap_exceptions
1933
+ def cpu_times(self):
1934
+ values = self._parse_stat_file()
1935
+ utime = float(values['utime']) / CLOCK_TICKS
1936
+ stime = float(values['stime']) / CLOCK_TICKS
1937
+ children_utime = float(values['children_utime']) / CLOCK_TICKS
1938
+ children_stime = float(values['children_stime']) / CLOCK_TICKS
1939
+ iowait = float(values['blkio_ticks']) / CLOCK_TICKS
1940
+ return pcputimes(utime, stime, children_utime, children_stime, iowait)
1941
+
1942
+ @wrap_exceptions
1943
+ def cpu_num(self):
1944
+ """What CPU the process is on."""
1945
+ return int(self._parse_stat_file()['cpu_num'])
1946
+
1947
+ @wrap_exceptions
1948
+ def wait(self, timeout=None):
1949
+ return _psposix.wait_pid(self.pid, timeout, self._name)
1950
+
1951
+ @wrap_exceptions
1952
+ def create_time(self):
1953
+ ctime = float(self._parse_stat_file()['create_time'])
1954
+ # According to documentation, starttime is in field 21 and the
1955
+ # unit is jiffies (clock ticks).
1956
+ # We first divide it for clock ticks and then add uptime returning
1957
+ # seconds since the epoch.
1958
+ # Also use cached value if available.
1959
+ bt = BOOT_TIME or boot_time()
1960
+ return (ctime / CLOCK_TICKS) + bt
1961
+
1962
+ @wrap_exceptions
1963
+ def memory_info(self):
1964
+ # ============================================================
1965
+ # | FIELD | DESCRIPTION | AKA | TOP |
1966
+ # ============================================================
1967
+ # | rss | resident set size | | RES |
1968
+ # | vms | total program size | size | VIRT |
1969
+ # | shared | shared pages (from shared mappings) | | SHR |
1970
+ # | text | text ('code') | trs | CODE |
1971
+ # | lib | library (unused in Linux 2.6) | lrs | |
1972
+ # | data | data + stack | drs | DATA |
1973
+ # | dirty | dirty pages (unused in Linux 2.6) | dt | |
1974
+ # ============================================================
1975
+ with open_binary("%s/%s/statm" % (self._procfs_path, self.pid)) as f:
1976
+ vms, rss, shared, text, lib, data, dirty = (
1977
+ int(x) * PAGESIZE for x in f.readline().split()[:7]
1978
+ )
1979
+ return pmem(rss, vms, shared, text, lib, data, dirty)
1980
+
1981
+ if HAS_PROC_SMAPS_ROLLUP or HAS_PROC_SMAPS:
1982
+
1983
+ def _parse_smaps_rollup(self):
1984
+ # /proc/pid/smaps_rollup was added to Linux in 2017. Faster
1985
+ # than /proc/pid/smaps. It reports higher PSS than */smaps
1986
+ # (from 1k up to 200k higher; tested against all processes).
1987
+ # IMPORTANT: /proc/pid/smaps_rollup is weird, because it
1988
+ # raises ESRCH / ENOENT for many PIDs, even if they're alive
1989
+ # (also as root). In that case we'll use /proc/pid/smaps as
1990
+ # fallback, which is slower but has a +50% success rate
1991
+ # compared to /proc/pid/smaps_rollup.
1992
+ uss = pss = swap = 0
1993
+ with open_binary(
1994
+ "{}/{}/smaps_rollup".format(self._procfs_path, self.pid)
1995
+ ) as f:
1996
+ for line in f:
1997
+ if line.startswith(b"Private_"):
1998
+ # Private_Clean, Private_Dirty, Private_Hugetlb
1999
+ uss += int(line.split()[1]) * 1024
2000
+ elif line.startswith(b"Pss:"):
2001
+ pss = int(line.split()[1]) * 1024
2002
+ elif line.startswith(b"Swap:"):
2003
+ swap = int(line.split()[1]) * 1024
2004
+ return (uss, pss, swap)
2005
+
2006
+ @wrap_exceptions
2007
+ def _parse_smaps(
2008
+ self,
2009
+ # Gets Private_Clean, Private_Dirty, Private_Hugetlb.
2010
+ _private_re=re.compile(br"\nPrivate.*:\s+(\d+)"),
2011
+ _pss_re=re.compile(br"\nPss\:\s+(\d+)"),
2012
+ _swap_re=re.compile(br"\nSwap\:\s+(\d+)"),
2013
+ ):
2014
+ # /proc/pid/smaps does not exist on kernels < 2.6.14 or if
2015
+ # CONFIG_MMU kernel configuration option is not enabled.
2016
+
2017
+ # Note: using 3 regexes is faster than reading the file
2018
+ # line by line.
2019
+ # XXX: on Python 3 the 2 regexes are 30% slower than on
2020
+ # Python 2 though. Figure out why.
2021
+ #
2022
+ # You might be tempted to calculate USS by subtracting
2023
+ # the "shared" value from the "resident" value in
2024
+ # /proc/<pid>/statm. But at least on Linux, statm's "shared"
2025
+ # value actually counts pages backed by files, which has
2026
+ # little to do with whether the pages are actually shared.
2027
+ # /proc/self/smaps on the other hand appears to give us the
2028
+ # correct information.
2029
+ smaps_data = self._read_smaps_file()
2030
+ # Note: smaps file can be empty for certain processes.
2031
+ # The code below will not crash though and will result to 0.
2032
+ uss = sum(map(int, _private_re.findall(smaps_data))) * 1024
2033
+ pss = sum(map(int, _pss_re.findall(smaps_data))) * 1024
2034
+ swap = sum(map(int, _swap_re.findall(smaps_data))) * 1024
2035
+ return (uss, pss, swap)
2036
+
2037
+ @wrap_exceptions
2038
+ def memory_full_info(self):
2039
+ if HAS_PROC_SMAPS_ROLLUP: # faster
2040
+ try:
2041
+ uss, pss, swap = self._parse_smaps_rollup()
2042
+ except (ProcessLookupError, FileNotFoundError):
2043
+ uss, pss, swap = self._parse_smaps()
2044
+ else:
2045
+ uss, pss, swap = self._parse_smaps()
2046
+ basic_mem = self.memory_info()
2047
+ return pfullmem(*basic_mem + (uss, pss, swap))
2048
+
2049
+ else:
2050
+ memory_full_info = memory_info
2051
+
2052
+ if HAS_PROC_SMAPS:
2053
+
2054
+ @wrap_exceptions
2055
+ def memory_maps(self):
2056
+ """Return process's mapped memory regions as a list of named
2057
+ tuples. Fields are explained in 'man proc'; here is an updated
2058
+ (Apr 2012) version: http://goo.gl/fmebo.
2059
+
2060
+ /proc/{PID}/smaps does not exist on kernels < 2.6.14 or if
2061
+ CONFIG_MMU kernel configuration option is not enabled.
2062
+ """
2063
+
2064
+ def get_blocks(lines, current_block):
2065
+ data = {}
2066
+ for line in lines:
2067
+ fields = line.split(None, 5)
2068
+ if not fields[0].endswith(b':'):
2069
+ # new block section
2070
+ yield (current_block.pop(), data)
2071
+ current_block.append(line)
2072
+ else:
2073
+ try:
2074
+ data[fields[0]] = int(fields[1]) * 1024
2075
+ except ValueError:
2076
+ if fields[0].startswith(b'VmFlags:'):
2077
+ # see issue #369
2078
+ continue
2079
+ else:
2080
+ raise ValueError(
2081
+ "don't know how to interpret line %r"
2082
+ % line
2083
+ )
2084
+ yield (current_block.pop(), data)
2085
+
2086
+ data = self._read_smaps_file()
2087
+ # Note: smaps file can be empty for certain processes or for
2088
+ # zombies.
2089
+ if not data:
2090
+ self._raise_if_zombie()
2091
+ return []
2092
+ lines = data.split(b'\n')
2093
+ ls = []
2094
+ first_line = lines.pop(0)
2095
+ current_block = [first_line]
2096
+ for header, data in get_blocks(lines, current_block):
2097
+ hfields = header.split(None, 5)
2098
+ try:
2099
+ addr, perms, _offset, _dev, _inode, path = hfields
2100
+ except ValueError:
2101
+ addr, perms, _offset, _dev, _inode, path = hfields + ['']
2102
+ if not path:
2103
+ path = '[anon]'
2104
+ else:
2105
+ if PY3:
2106
+ path = decode(path)
2107
+ path = path.strip()
2108
+ if path.endswith(' (deleted)') and not path_exists_strict(
2109
+ path
2110
+ ):
2111
+ path = path[:-10]
2112
+ item = (
2113
+ decode(addr),
2114
+ decode(perms),
2115
+ path,
2116
+ data.get(b'Rss:', 0),
2117
+ data.get(b'Size:', 0),
2118
+ data.get(b'Pss:', 0),
2119
+ data.get(b'Shared_Clean:', 0),
2120
+ data.get(b'Shared_Dirty:', 0),
2121
+ data.get(b'Private_Clean:', 0),
2122
+ data.get(b'Private_Dirty:', 0),
2123
+ data.get(b'Referenced:', 0),
2124
+ data.get(b'Anonymous:', 0),
2125
+ data.get(b'Swap:', 0),
2126
+ )
2127
+ ls.append(item)
2128
+ return ls
2129
+
2130
+ @wrap_exceptions
2131
+ def cwd(self):
2132
+ return readlink("%s/%s/cwd" % (self._procfs_path, self.pid))
2133
+
2134
+ @wrap_exceptions
2135
+ def num_ctx_switches(
2136
+ self, _ctxsw_re=re.compile(br'ctxt_switches:\t(\d+)')
2137
+ ):
2138
+ data = self._read_status_file()
2139
+ ctxsw = _ctxsw_re.findall(data)
2140
+ if not ctxsw:
2141
+ raise NotImplementedError(
2142
+ "'voluntary_ctxt_switches' and 'nonvoluntary_ctxt_switches'"
2143
+ "lines were not found in %s/%s/status; the kernel is "
2144
+ "probably older than 2.6.23" % (self._procfs_path, self.pid)
2145
+ )
2146
+ else:
2147
+ return _common.pctxsw(int(ctxsw[0]), int(ctxsw[1]))
2148
+
2149
+ @wrap_exceptions
2150
+ def num_threads(self, _num_threads_re=re.compile(br'Threads:\t(\d+)')):
2151
+ # Note: on Python 3 using a re is faster than iterating over file
2152
+ # line by line. On Python 2 is the exact opposite, and iterating
2153
+ # over a file on Python 3 is slower than on Python 2.
2154
+ data = self._read_status_file()
2155
+ return int(_num_threads_re.findall(data)[0])
2156
+
2157
+ @wrap_exceptions
2158
+ def threads(self):
2159
+ thread_ids = os.listdir("%s/%s/task" % (self._procfs_path, self.pid))
2160
+ thread_ids.sort()
2161
+ retlist = []
2162
+ hit_enoent = False
2163
+ for thread_id in thread_ids:
2164
+ fname = "%s/%s/task/%s/stat" % (
2165
+ self._procfs_path,
2166
+ self.pid,
2167
+ thread_id,
2168
+ )
2169
+ try:
2170
+ with open_binary(fname) as f:
2171
+ st = f.read().strip()
2172
+ except (FileNotFoundError, ProcessLookupError):
2173
+ # no such file or directory or no such process;
2174
+ # it means thread disappeared on us
2175
+ hit_enoent = True
2176
+ continue
2177
+ # ignore the first two values ("pid (exe)")
2178
+ st = st[st.find(b')') + 2 :]
2179
+ values = st.split(b' ')
2180
+ utime = float(values[11]) / CLOCK_TICKS
2181
+ stime = float(values[12]) / CLOCK_TICKS
2182
+ ntuple = _common.pthread(int(thread_id), utime, stime)
2183
+ retlist.append(ntuple)
2184
+ if hit_enoent:
2185
+ self._raise_if_not_alive()
2186
+ return retlist
2187
+
2188
+ @wrap_exceptions
2189
+ def nice_get(self):
2190
+ # with open_text('%s/%s/stat' % (self._procfs_path, self.pid)) as f:
2191
+ # data = f.read()
2192
+ # return int(data.split()[18])
2193
+
2194
+ # Use C implementation
2195
+ return cext_posix.getpriority(self.pid)
2196
+
2197
+ @wrap_exceptions
2198
+ def nice_set(self, value):
2199
+ return cext_posix.setpriority(self.pid, value)
2200
+
2201
+ # starting from CentOS 6.
2202
+ if HAS_CPU_AFFINITY:
2203
+
2204
+ @wrap_exceptions
2205
+ def cpu_affinity_get(self):
2206
+ return cext.proc_cpu_affinity_get(self.pid)
2207
+
2208
+ def _get_eligible_cpus(
2209
+ self, _re=re.compile(br"Cpus_allowed_list:\t(\d+)-(\d+)")
2210
+ ):
2211
+ # See: https://github.com/giampaolo/psutil/issues/956
2212
+ data = self._read_status_file()
2213
+ match = _re.findall(data)
2214
+ if match:
2215
+ return list(range(int(match[0][0]), int(match[0][1]) + 1))
2216
+ else:
2217
+ return list(range(len(per_cpu_times())))
2218
+
2219
+ @wrap_exceptions
2220
+ def cpu_affinity_set(self, cpus):
2221
+ try:
2222
+ cext.proc_cpu_affinity_set(self.pid, cpus)
2223
+ except (OSError, ValueError) as err:
2224
+ if isinstance(err, ValueError) or err.errno == errno.EINVAL:
2225
+ eligible_cpus = self._get_eligible_cpus()
2226
+ all_cpus = tuple(range(len(per_cpu_times())))
2227
+ for cpu in cpus:
2228
+ if cpu not in all_cpus:
2229
+ raise ValueError(
2230
+ "invalid CPU number %r; choose between %s"
2231
+ % (cpu, eligible_cpus)
2232
+ )
2233
+ if cpu not in eligible_cpus:
2234
+ raise ValueError(
2235
+ "CPU number %r is not eligible; choose "
2236
+ "between %s" % (cpu, eligible_cpus)
2237
+ )
2238
+ raise
2239
+
2240
+ # only starting from kernel 2.6.13
2241
+ if HAS_PROC_IO_PRIORITY:
2242
+
2243
+ @wrap_exceptions
2244
+ def ionice_get(self):
2245
+ ioclass, value = cext.proc_ioprio_get(self.pid)
2246
+ if enum is not None:
2247
+ ioclass = IOPriority(ioclass)
2248
+ return _common.pionice(ioclass, value)
2249
+
2250
+ @wrap_exceptions
2251
+ def ionice_set(self, ioclass, value):
2252
+ if value is None:
2253
+ value = 0
2254
+ if value and ioclass in (IOPRIO_CLASS_IDLE, IOPRIO_CLASS_NONE):
2255
+ raise ValueError("%r ioclass accepts no value" % ioclass)
2256
+ if value < 0 or value > 7:
2257
+ msg = "value not in 0-7 range"
2258
+ raise ValueError(msg)
2259
+ return cext.proc_ioprio_set(self.pid, ioclass, value)
2260
+
2261
+ if prlimit is not None:
2262
+
2263
+ @wrap_exceptions
2264
+ def rlimit(self, resource_, limits=None):
2265
+ # If pid is 0 prlimit() applies to the calling process and
2266
+ # we don't want that. We should never get here though as
2267
+ # PID 0 is not supported on Linux.
2268
+ if self.pid == 0:
2269
+ msg = "can't use prlimit() against PID 0 process"
2270
+ raise ValueError(msg)
2271
+ try:
2272
+ if limits is None:
2273
+ # get
2274
+ return prlimit(self.pid, resource_)
2275
+ else:
2276
+ # set
2277
+ if len(limits) != 2:
2278
+ msg = (
2279
+ "second argument must be a (soft, hard) "
2280
+ + "tuple, got %s" % repr(limits)
2281
+ )
2282
+ raise ValueError(msg)
2283
+ prlimit(self.pid, resource_, limits)
2284
+ except OSError as err:
2285
+ if err.errno == errno.ENOSYS:
2286
+ # I saw this happening on Travis:
2287
+ # https://travis-ci.org/giampaolo/psutil/jobs/51368273
2288
+ self._raise_if_zombie()
2289
+ raise
2290
+
2291
+ @wrap_exceptions
2292
+ def status(self):
2293
+ letter = self._parse_stat_file()['status']
2294
+ if PY3:
2295
+ letter = letter.decode()
2296
+ # XXX is '?' legit? (we're not supposed to return it anyway)
2297
+ return PROC_STATUSES.get(letter, '?')
2298
+
2299
+ @wrap_exceptions
2300
+ def open_files(self):
2301
+ retlist = []
2302
+ files = os.listdir("%s/%s/fd" % (self._procfs_path, self.pid))
2303
+ hit_enoent = False
2304
+ for fd in files:
2305
+ file = "%s/%s/fd/%s" % (self._procfs_path, self.pid, fd)
2306
+ try:
2307
+ path = readlink(file)
2308
+ except (FileNotFoundError, ProcessLookupError):
2309
+ # ENOENT == file which is gone in the meantime
2310
+ hit_enoent = True
2311
+ continue
2312
+ except OSError as err:
2313
+ if err.errno == errno.EINVAL:
2314
+ # not a link
2315
+ continue
2316
+ if err.errno == errno.ENAMETOOLONG:
2317
+ # file name too long
2318
+ debug(err)
2319
+ continue
2320
+ raise
2321
+ else:
2322
+ # If path is not an absolute there's no way to tell
2323
+ # whether it's a regular file or not, so we skip it.
2324
+ # A regular file is always supposed to be have an
2325
+ # absolute path though.
2326
+ if path.startswith('/') and isfile_strict(path):
2327
+ # Get file position and flags.
2328
+ file = "%s/%s/fdinfo/%s" % (
2329
+ self._procfs_path,
2330
+ self.pid,
2331
+ fd,
2332
+ )
2333
+ try:
2334
+ with open_binary(file) as f:
2335
+ pos = int(f.readline().split()[1])
2336
+ flags = int(f.readline().split()[1], 8)
2337
+ except (FileNotFoundError, ProcessLookupError):
2338
+ # fd gone in the meantime; process may
2339
+ # still be alive
2340
+ hit_enoent = True
2341
+ else:
2342
+ mode = file_flags_to_mode(flags)
2343
+ ntuple = popenfile(
2344
+ path, int(fd), int(pos), mode, flags
2345
+ )
2346
+ retlist.append(ntuple)
2347
+ if hit_enoent:
2348
+ self._raise_if_not_alive()
2349
+ return retlist
2350
+
2351
+ @wrap_exceptions
2352
+ def net_connections(self, kind='inet'):
2353
+ ret = _net_connections.retrieve(kind, self.pid)
2354
+ self._raise_if_not_alive()
2355
+ return ret
2356
+
2357
+ @wrap_exceptions
2358
+ def num_fds(self):
2359
+ return len(os.listdir("%s/%s/fd" % (self._procfs_path, self.pid)))
2360
+
2361
+ @wrap_exceptions
2362
+ def ppid(self):
2363
+ return int(self._parse_stat_file()['ppid'])
2364
+
2365
+ @wrap_exceptions
2366
+ def uids(self, _uids_re=re.compile(br'Uid:\t(\d+)\t(\d+)\t(\d+)')):
2367
+ data = self._read_status_file()
2368
+ real, effective, saved = _uids_re.findall(data)[0]
2369
+ return _common.puids(int(real), int(effective), int(saved))
2370
+
2371
+ @wrap_exceptions
2372
+ def gids(self, _gids_re=re.compile(br'Gid:\t(\d+)\t(\d+)\t(\d+)')):
2373
+ data = self._read_status_file()
2374
+ real, effective, saved = _gids_re.findall(data)[0]
2375
+ return _common.pgids(int(real), int(effective), int(saved))