py2docfx 0.1.9.dev1886355__py3-none-any.whl → 0.1.9.dev1897607__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 +117 -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.dev1897607.dist-info/METADATA +16 -0
  1473. py2docfx-0.1.9.dev1897607.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.dev1897607.dist-info}/WHEEL +0 -0
  2380. {py2docfx-0.1.9.dev1886355.dist-info → py2docfx-0.1.9.dev1897607.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3494 @@
1
+ # -----------------------------------------------------------------------------
2
+ # ply: yacc.py
3
+ #
4
+ # Copyright (C) 2001-2017
5
+ # David M. Beazley (Dabeaz LLC)
6
+ # All rights reserved.
7
+ #
8
+ # Redistribution and use in source and binary forms, with or without
9
+ # modification, are permitted provided that the following conditions are
10
+ # met:
11
+ #
12
+ # * Redistributions of source code must retain the above copyright notice,
13
+ # this list of conditions and the following disclaimer.
14
+ # * Redistributions in binary form must reproduce the above copyright notice,
15
+ # this list of conditions and the following disclaimer in the documentation
16
+ # and/or other materials provided with the distribution.
17
+ # * Neither the name of the David Beazley or Dabeaz LLC may be used to
18
+ # endorse or promote products derived from this software without
19
+ # specific prior written permission.
20
+ #
21
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ # -----------------------------------------------------------------------------
33
+ #
34
+ # This implements an LR parser that is constructed from grammar rules defined
35
+ # as Python functions. The grammer is specified by supplying the BNF inside
36
+ # Python documentation strings. The inspiration for this technique was borrowed
37
+ # from John Aycock's Spark parsing system. PLY might be viewed as cross between
38
+ # Spark and the GNU bison utility.
39
+ #
40
+ # The current implementation is only somewhat object-oriented. The
41
+ # LR parser itself is defined in terms of an object (which allows multiple
42
+ # parsers to co-exist). However, most of the variables used during table
43
+ # construction are defined in terms of global variables. Users shouldn't
44
+ # notice unless they are trying to define multiple parsers at the same
45
+ # time using threads (in which case they should have their head examined).
46
+ #
47
+ # This implementation supports both SLR and LALR(1) parsing. LALR(1)
48
+ # support was originally implemented by Elias Ioup (ezioup@alumni.uchicago.edu),
49
+ # using the algorithm found in Aho, Sethi, and Ullman "Compilers: Principles,
50
+ # Techniques, and Tools" (The Dragon Book). LALR(1) has since been replaced
51
+ # by the more efficient DeRemer and Pennello algorithm.
52
+ #
53
+ # :::::::: WARNING :::::::
54
+ #
55
+ # Construction of LR parsing tables is fairly complicated and expensive.
56
+ # To make this module run fast, a *LOT* of work has been put into
57
+ # optimization---often at the expensive of readability and what might
58
+ # consider to be good Python "coding style." Modify the code at your
59
+ # own risk!
60
+ # ----------------------------------------------------------------------------
61
+
62
+ import re
63
+ import types
64
+ import sys
65
+ import os.path
66
+ import inspect
67
+ import base64
68
+ import warnings
69
+
70
+ __version__ = '3.10'
71
+ __tabversion__ = '3.10'
72
+
73
+ #-----------------------------------------------------------------------------
74
+ # === User configurable parameters ===
75
+ #
76
+ # Change these to modify the default behavior of yacc (if you wish)
77
+ #-----------------------------------------------------------------------------
78
+
79
+ yaccdebug = True # Debugging mode. If set, yacc generates a
80
+ # a 'parser.out' file in the current directory
81
+
82
+ debug_file = 'parser.out' # Default name of the debugging file
83
+ tab_module = 'parsetab' # Default name of the table module
84
+ default_lr = 'LALR' # Default LR table generation method
85
+
86
+ error_count = 3 # Number of symbols that must be shifted to leave recovery mode
87
+
88
+ yaccdevel = False # Set to True if developing yacc. This turns off optimized
89
+ # implementations of certain functions.
90
+
91
+ resultlimit = 40 # Size limit of results when running in debug mode.
92
+
93
+ pickle_protocol = 0 # Protocol to use when writing pickle files
94
+
95
+ # String type-checking compatibility
96
+ if sys.version_info[0] < 3:
97
+ string_types = basestring
98
+ else:
99
+ string_types = str
100
+
101
+ MAXINT = sys.maxsize
102
+
103
+ # This object is a stand-in for a logging object created by the
104
+ # logging module. PLY will use this by default to create things
105
+ # such as the parser.out file. If a user wants more detailed
106
+ # information, they can create their own logging object and pass
107
+ # it into PLY.
108
+
109
+ class PlyLogger(object):
110
+ def __init__(self, f):
111
+ self.f = f
112
+
113
+ def debug(self, msg, *args, **kwargs):
114
+ self.f.write((msg % args) + '\n')
115
+
116
+ info = debug
117
+
118
+ def warning(self, msg, *args, **kwargs):
119
+ self.f.write('WARNING: ' + (msg % args) + '\n')
120
+
121
+ def error(self, msg, *args, **kwargs):
122
+ self.f.write('ERROR: ' + (msg % args) + '\n')
123
+
124
+ critical = debug
125
+
126
+ # Null logger is used when no output is generated. Does nothing.
127
+ class NullLogger(object):
128
+ def __getattribute__(self, name):
129
+ return self
130
+
131
+ def __call__(self, *args, **kwargs):
132
+ return self
133
+
134
+ # Exception raised for yacc-related errors
135
+ class YaccError(Exception):
136
+ pass
137
+
138
+ # Format the result message that the parser produces when running in debug mode.
139
+ def format_result(r):
140
+ repr_str = repr(r)
141
+ if '\n' in repr_str:
142
+ repr_str = repr(repr_str)
143
+ if len(repr_str) > resultlimit:
144
+ repr_str = repr_str[:resultlimit] + ' ...'
145
+ result = '<%s @ 0x%x> (%s)' % (type(r).__name__, id(r), repr_str)
146
+ return result
147
+
148
+ # Format stack entries when the parser is running in debug mode
149
+ def format_stack_entry(r):
150
+ repr_str = repr(r)
151
+ if '\n' in repr_str:
152
+ repr_str = repr(repr_str)
153
+ if len(repr_str) < 16:
154
+ return repr_str
155
+ else:
156
+ return '<%s @ 0x%x>' % (type(r).__name__, id(r))
157
+
158
+ # Panic mode error recovery support. This feature is being reworked--much of the
159
+ # code here is to offer a deprecation/backwards compatible transition
160
+
161
+ _errok = None
162
+ _token = None
163
+ _restart = None
164
+ _warnmsg = '''PLY: Don't use global functions errok(), token(), and restart() in p_error().
165
+ Instead, invoke the methods on the associated parser instance:
166
+
167
+ def p_error(p):
168
+ ...
169
+ # Use parser.errok(), parser.token(), parser.restart()
170
+ ...
171
+
172
+ parser = yacc.yacc()
173
+ '''
174
+
175
+ def errok():
176
+ warnings.warn(_warnmsg)
177
+ return _errok()
178
+
179
+ def restart():
180
+ warnings.warn(_warnmsg)
181
+ return _restart()
182
+
183
+ def token():
184
+ warnings.warn(_warnmsg)
185
+ return _token()
186
+
187
+ # Utility function to call the p_error() function with some deprecation hacks
188
+ def call_errorfunc(errorfunc, token, parser):
189
+ global _errok, _token, _restart
190
+ _errok = parser.errok
191
+ _token = parser.token
192
+ _restart = parser.restart
193
+ r = errorfunc(token)
194
+ try:
195
+ del _errok, _token, _restart
196
+ except NameError:
197
+ pass
198
+ return r
199
+
200
+ #-----------------------------------------------------------------------------
201
+ # === LR Parsing Engine ===
202
+ #
203
+ # The following classes are used for the LR parser itself. These are not
204
+ # used during table construction and are independent of the actual LR
205
+ # table generation algorithm
206
+ #-----------------------------------------------------------------------------
207
+
208
+ # This class is used to hold non-terminal grammar symbols during parsing.
209
+ # It normally has the following attributes set:
210
+ # .type = Grammar symbol type
211
+ # .value = Symbol value
212
+ # .lineno = Starting line number
213
+ # .endlineno = Ending line number (optional, set automatically)
214
+ # .lexpos = Starting lex position
215
+ # .endlexpos = Ending lex position (optional, set automatically)
216
+
217
+ class YaccSymbol:
218
+ def __str__(self):
219
+ return self.type
220
+
221
+ def __repr__(self):
222
+ return str(self)
223
+
224
+ # This class is a wrapper around the objects actually passed to each
225
+ # grammar rule. Index lookup and assignment actually assign the
226
+ # .value attribute of the underlying YaccSymbol object.
227
+ # The lineno() method returns the line number of a given
228
+ # item (or 0 if not defined). The linespan() method returns
229
+ # a tuple of (startline,endline) representing the range of lines
230
+ # for a symbol. The lexspan() method returns a tuple (lexpos,endlexpos)
231
+ # representing the range of positional information for a symbol.
232
+
233
+ class YaccProduction:
234
+ def __init__(self, s, stack=None):
235
+ self.slice = s
236
+ self.stack = stack
237
+ self.lexer = None
238
+ self.parser = None
239
+
240
+ def __getitem__(self, n):
241
+ if isinstance(n, slice):
242
+ return [s.value for s in self.slice[n]]
243
+ elif n >= 0:
244
+ return self.slice[n].value
245
+ else:
246
+ return self.stack[n].value
247
+
248
+ def __setitem__(self, n, v):
249
+ self.slice[n].value = v
250
+
251
+ def __getslice__(self, i, j):
252
+ return [s.value for s in self.slice[i:j]]
253
+
254
+ def __len__(self):
255
+ return len(self.slice)
256
+
257
+ def lineno(self, n):
258
+ return getattr(self.slice[n], 'lineno', 0)
259
+
260
+ def set_lineno(self, n, lineno):
261
+ self.slice[n].lineno = lineno
262
+
263
+ def linespan(self, n):
264
+ startline = getattr(self.slice[n], 'lineno', 0)
265
+ endline = getattr(self.slice[n], 'endlineno', startline)
266
+ return startline, endline
267
+
268
+ def lexpos(self, n):
269
+ return getattr(self.slice[n], 'lexpos', 0)
270
+
271
+ def lexspan(self, n):
272
+ startpos = getattr(self.slice[n], 'lexpos', 0)
273
+ endpos = getattr(self.slice[n], 'endlexpos', startpos)
274
+ return startpos, endpos
275
+
276
+ def error(self):
277
+ raise SyntaxError
278
+
279
+ # -----------------------------------------------------------------------------
280
+ # == LRParser ==
281
+ #
282
+ # The LR Parsing engine.
283
+ # -----------------------------------------------------------------------------
284
+
285
+ class LRParser:
286
+ def __init__(self, lrtab, errorf):
287
+ self.productions = lrtab.lr_productions
288
+ self.action = lrtab.lr_action
289
+ self.goto = lrtab.lr_goto
290
+ self.errorfunc = errorf
291
+ self.set_defaulted_states()
292
+ self.errorok = True
293
+
294
+ def errok(self):
295
+ self.errorok = True
296
+
297
+ def restart(self):
298
+ del self.statestack[:]
299
+ del self.symstack[:]
300
+ sym = YaccSymbol()
301
+ sym.type = '$end'
302
+ self.symstack.append(sym)
303
+ self.statestack.append(0)
304
+
305
+ # Defaulted state support.
306
+ # This method identifies parser states where there is only one possible reduction action.
307
+ # For such states, the parser can make a choose to make a rule reduction without consuming
308
+ # the next look-ahead token. This delayed invocation of the tokenizer can be useful in
309
+ # certain kinds of advanced parsing situations where the lexer and parser interact with
310
+ # each other or change states (i.e., manipulation of scope, lexer states, etc.).
311
+ #
312
+ # See: https://www.gnu.org/software/bison/manual/html_node/Default-Reductions.html#Default-Reductions
313
+ def set_defaulted_states(self):
314
+ self.defaulted_states = {}
315
+ for state, actions in self.action.items():
316
+ rules = list(actions.values())
317
+ if len(rules) == 1 and rules[0] < 0:
318
+ self.defaulted_states[state] = rules[0]
319
+
320
+ def disable_defaulted_states(self):
321
+ self.defaulted_states = {}
322
+
323
+ def parse(self, input=None, lexer=None, debug=False, tracking=False, tokenfunc=None):
324
+ if debug or yaccdevel:
325
+ if isinstance(debug, int):
326
+ debug = PlyLogger(sys.stderr)
327
+ return self.parsedebug(input, lexer, debug, tracking, tokenfunc)
328
+ elif tracking:
329
+ return self.parseopt(input, lexer, debug, tracking, tokenfunc)
330
+ else:
331
+ return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
332
+
333
+
334
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
335
+ # parsedebug().
336
+ #
337
+ # This is the debugging enabled version of parse(). All changes made to the
338
+ # parsing engine should be made here. Optimized versions of this function
339
+ # are automatically created by the ply/ygen.py script. This script cuts out
340
+ # sections enclosed in markers such as this:
341
+ #
342
+ # #--! DEBUG
343
+ # statements
344
+ # #--! DEBUG
345
+ #
346
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
347
+
348
+ def parsedebug(self, input=None, lexer=None, debug=False, tracking=False, tokenfunc=None):
349
+ #--! parsedebug-start
350
+ lookahead = None # Current lookahead symbol
351
+ lookaheadstack = [] # Stack of lookahead symbols
352
+ actions = self.action # Local reference to action table (to avoid lookup on self.)
353
+ goto = self.goto # Local reference to goto table (to avoid lookup on self.)
354
+ prod = self.productions # Local reference to production list (to avoid lookup on self.)
355
+ defaulted_states = self.defaulted_states # Local reference to defaulted states
356
+ pslice = YaccProduction(None) # Production object passed to grammar rules
357
+ errorcount = 0 # Used during error recovery
358
+
359
+ #--! DEBUG
360
+ debug.info('PLY: PARSE DEBUG START')
361
+ #--! DEBUG
362
+
363
+ # If no lexer was given, we will try to use the lex module
364
+ if not lexer:
365
+ from . import lex
366
+ lexer = lex.lexer
367
+
368
+ # Set up the lexer and parser objects on pslice
369
+ pslice.lexer = lexer
370
+ pslice.parser = self
371
+
372
+ # If input was supplied, pass to lexer
373
+ if input is not None:
374
+ lexer.input(input)
375
+
376
+ if tokenfunc is None:
377
+ # Tokenize function
378
+ get_token = lexer.token
379
+ else:
380
+ get_token = tokenfunc
381
+
382
+ # Set the parser() token method (sometimes used in error recovery)
383
+ self.token = get_token
384
+
385
+ # Set up the state and symbol stacks
386
+
387
+ statestack = [] # Stack of parsing states
388
+ self.statestack = statestack
389
+ symstack = [] # Stack of grammar symbols
390
+ self.symstack = symstack
391
+
392
+ pslice.stack = symstack # Put in the production
393
+ errtoken = None # Err token
394
+
395
+ # The start state is assumed to be (0,$end)
396
+
397
+ statestack.append(0)
398
+ sym = YaccSymbol()
399
+ sym.type = '$end'
400
+ symstack.append(sym)
401
+ state = 0
402
+ while True:
403
+ # Get the next symbol on the input. If a lookahead symbol
404
+ # is already set, we just use that. Otherwise, we'll pull
405
+ # the next token off of the lookaheadstack or from the lexer
406
+
407
+ #--! DEBUG
408
+ debug.debug('')
409
+ debug.debug('State : %s', state)
410
+ #--! DEBUG
411
+
412
+ if state not in defaulted_states:
413
+ if not lookahead:
414
+ if not lookaheadstack:
415
+ lookahead = get_token() # Get the next token
416
+ else:
417
+ lookahead = lookaheadstack.pop()
418
+ if not lookahead:
419
+ lookahead = YaccSymbol()
420
+ lookahead.type = '$end'
421
+
422
+ # Check the action table
423
+ ltype = lookahead.type
424
+ t = actions[state].get(ltype)
425
+ else:
426
+ t = defaulted_states[state]
427
+ #--! DEBUG
428
+ debug.debug('Defaulted state %s: Reduce using %d', state, -t)
429
+ #--! DEBUG
430
+
431
+ #--! DEBUG
432
+ debug.debug('Stack : %s',
433
+ ('%s . %s' % (' '.join([xx.type for xx in symstack][1:]), str(lookahead))).lstrip())
434
+ #--! DEBUG
435
+
436
+ if t is not None:
437
+ if t > 0:
438
+ # shift a symbol on the stack
439
+ statestack.append(t)
440
+ state = t
441
+
442
+ #--! DEBUG
443
+ debug.debug('Action : Shift and goto state %s', t)
444
+ #--! DEBUG
445
+
446
+ symstack.append(lookahead)
447
+ lookahead = None
448
+
449
+ # Decrease error count on successful shift
450
+ if errorcount:
451
+ errorcount -= 1
452
+ continue
453
+
454
+ if t < 0:
455
+ # reduce a symbol on the stack, emit a production
456
+ p = prod[-t]
457
+ pname = p.name
458
+ plen = p.len
459
+
460
+ # Get production function
461
+ sym = YaccSymbol()
462
+ sym.type = pname # Production name
463
+ sym.value = None
464
+
465
+ #--! DEBUG
466
+ if plen:
467
+ debug.info('Action : Reduce rule [%s] with %s and goto state %d', p.str,
468
+ '['+','.join([format_stack_entry(_v.value) for _v in symstack[-plen:]])+']',
469
+ goto[statestack[-1-plen]][pname])
470
+ else:
471
+ debug.info('Action : Reduce rule [%s] with %s and goto state %d', p.str, [],
472
+ goto[statestack[-1]][pname])
473
+
474
+ #--! DEBUG
475
+
476
+ if plen:
477
+ targ = symstack[-plen-1:]
478
+ targ[0] = sym
479
+
480
+ #--! TRACKING
481
+ if tracking:
482
+ t1 = targ[1]
483
+ sym.lineno = t1.lineno
484
+ sym.lexpos = t1.lexpos
485
+ t1 = targ[-1]
486
+ sym.endlineno = getattr(t1, 'endlineno', t1.lineno)
487
+ sym.endlexpos = getattr(t1, 'endlexpos', t1.lexpos)
488
+ #--! TRACKING
489
+
490
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
491
+ # The code enclosed in this section is duplicated
492
+ # below as a performance optimization. Make sure
493
+ # changes get made in both locations.
494
+
495
+ pslice.slice = targ
496
+
497
+ try:
498
+ # Call the grammar rule with our special slice object
499
+ del symstack[-plen:]
500
+ self.state = state
501
+ p.callable(pslice)
502
+ del statestack[-plen:]
503
+ #--! DEBUG
504
+ debug.info('Result : %s', format_result(pslice[0]))
505
+ #--! DEBUG
506
+ symstack.append(sym)
507
+ state = goto[statestack[-1]][pname]
508
+ statestack.append(state)
509
+ except SyntaxError:
510
+ # If an error was set. Enter error recovery state
511
+ lookaheadstack.append(lookahead) # Save the current lookahead token
512
+ symstack.extend(targ[1:-1]) # Put the production slice back on the stack
513
+ statestack.pop() # Pop back one state (before the reduce)
514
+ state = statestack[-1]
515
+ sym.type = 'error'
516
+ sym.value = 'error'
517
+ lookahead = sym
518
+ errorcount = error_count
519
+ self.errorok = False
520
+
521
+ continue
522
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
523
+
524
+ else:
525
+
526
+ #--! TRACKING
527
+ if tracking:
528
+ sym.lineno = lexer.lineno
529
+ sym.lexpos = lexer.lexpos
530
+ #--! TRACKING
531
+
532
+ targ = [sym]
533
+
534
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
535
+ # The code enclosed in this section is duplicated
536
+ # above as a performance optimization. Make sure
537
+ # changes get made in both locations.
538
+
539
+ pslice.slice = targ
540
+
541
+ try:
542
+ # Call the grammar rule with our special slice object
543
+ self.state = state
544
+ p.callable(pslice)
545
+ #--! DEBUG
546
+ debug.info('Result : %s', format_result(pslice[0]))
547
+ #--! DEBUG
548
+ symstack.append(sym)
549
+ state = goto[statestack[-1]][pname]
550
+ statestack.append(state)
551
+ except SyntaxError:
552
+ # If an error was set. Enter error recovery state
553
+ lookaheadstack.append(lookahead) # Save the current lookahead token
554
+ statestack.pop() # Pop back one state (before the reduce)
555
+ state = statestack[-1]
556
+ sym.type = 'error'
557
+ sym.value = 'error'
558
+ lookahead = sym
559
+ errorcount = error_count
560
+ self.errorok = False
561
+
562
+ continue
563
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
564
+
565
+ if t == 0:
566
+ n = symstack[-1]
567
+ result = getattr(n, 'value', None)
568
+ #--! DEBUG
569
+ debug.info('Done : Returning %s', format_result(result))
570
+ debug.info('PLY: PARSE DEBUG END')
571
+ #--! DEBUG
572
+ return result
573
+
574
+ if t is None:
575
+
576
+ #--! DEBUG
577
+ debug.error('Error : %s',
578
+ ('%s . %s' % (' '.join([xx.type for xx in symstack][1:]), str(lookahead))).lstrip())
579
+ #--! DEBUG
580
+
581
+ # We have some kind of parsing error here. To handle
582
+ # this, we are going to push the current token onto
583
+ # the tokenstack and replace it with an 'error' token.
584
+ # If there are any synchronization rules, they may
585
+ # catch it.
586
+ #
587
+ # In addition to pushing the error token, we call call
588
+ # the user defined p_error() function if this is the
589
+ # first syntax error. This function is only called if
590
+ # errorcount == 0.
591
+ if errorcount == 0 or self.errorok:
592
+ errorcount = error_count
593
+ self.errorok = False
594
+ errtoken = lookahead
595
+ if errtoken.type == '$end':
596
+ errtoken = None # End of file!
597
+ if self.errorfunc:
598
+ if errtoken and not hasattr(errtoken, 'lexer'):
599
+ errtoken.lexer = lexer
600
+ self.state = state
601
+ tok = call_errorfunc(self.errorfunc, errtoken, self)
602
+ if self.errorok:
603
+ # User must have done some kind of panic
604
+ # mode recovery on their own. The
605
+ # returned token is the next lookahead
606
+ lookahead = tok
607
+ errtoken = None
608
+ continue
609
+ else:
610
+ if errtoken:
611
+ if hasattr(errtoken, 'lineno'):
612
+ lineno = lookahead.lineno
613
+ else:
614
+ lineno = 0
615
+ if lineno:
616
+ sys.stderr.write('yacc: Syntax error at line %d, token=%s\n' % (lineno, errtoken.type))
617
+ else:
618
+ sys.stderr.write('yacc: Syntax error, token=%s' % errtoken.type)
619
+ else:
620
+ sys.stderr.write('yacc: Parse error in input. EOF\n')
621
+ return
622
+
623
+ else:
624
+ errorcount = error_count
625
+
626
+ # case 1: the statestack only has 1 entry on it. If we're in this state, the
627
+ # entire parse has been rolled back and we're completely hosed. The token is
628
+ # discarded and we just keep going.
629
+
630
+ if len(statestack) <= 1 and lookahead.type != '$end':
631
+ lookahead = None
632
+ errtoken = None
633
+ state = 0
634
+ # Nuke the pushback stack
635
+ del lookaheadstack[:]
636
+ continue
637
+
638
+ # case 2: the statestack has a couple of entries on it, but we're
639
+ # at the end of the file. nuke the top entry and generate an error token
640
+
641
+ # Start nuking entries on the stack
642
+ if lookahead.type == '$end':
643
+ # Whoa. We're really hosed here. Bail out
644
+ return
645
+
646
+ if lookahead.type != 'error':
647
+ sym = symstack[-1]
648
+ if sym.type == 'error':
649
+ # Hmmm. Error is on top of stack, we'll just nuke input
650
+ # symbol and continue
651
+ #--! TRACKING
652
+ if tracking:
653
+ sym.endlineno = getattr(lookahead, 'lineno', sym.lineno)
654
+ sym.endlexpos = getattr(lookahead, 'lexpos', sym.lexpos)
655
+ #--! TRACKING
656
+ lookahead = None
657
+ continue
658
+
659
+ # Create the error symbol for the first time and make it the new lookahead symbol
660
+ t = YaccSymbol()
661
+ t.type = 'error'
662
+
663
+ if hasattr(lookahead, 'lineno'):
664
+ t.lineno = t.endlineno = lookahead.lineno
665
+ if hasattr(lookahead, 'lexpos'):
666
+ t.lexpos = t.endlexpos = lookahead.lexpos
667
+ t.value = lookahead
668
+ lookaheadstack.append(lookahead)
669
+ lookahead = t
670
+ else:
671
+ sym = symstack.pop()
672
+ #--! TRACKING
673
+ if tracking:
674
+ lookahead.lineno = sym.lineno
675
+ lookahead.lexpos = sym.lexpos
676
+ #--! TRACKING
677
+ statestack.pop()
678
+ state = statestack[-1]
679
+
680
+ continue
681
+
682
+ # Call an error function here
683
+ raise RuntimeError('yacc: internal parser error!!!\n')
684
+
685
+ #--! parsedebug-end
686
+
687
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
688
+ # parseopt().
689
+ #
690
+ # Optimized version of parse() method. DO NOT EDIT THIS CODE DIRECTLY!
691
+ # This code is automatically generated by the ply/ygen.py script. Make
692
+ # changes to the parsedebug() method instead.
693
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
694
+
695
+ def parseopt(self, input=None, lexer=None, debug=False, tracking=False, tokenfunc=None):
696
+ #--! parseopt-start
697
+ lookahead = None # Current lookahead symbol
698
+ lookaheadstack = [] # Stack of lookahead symbols
699
+ actions = self.action # Local reference to action table (to avoid lookup on self.)
700
+ goto = self.goto # Local reference to goto table (to avoid lookup on self.)
701
+ prod = self.productions # Local reference to production list (to avoid lookup on self.)
702
+ defaulted_states = self.defaulted_states # Local reference to defaulted states
703
+ pslice = YaccProduction(None) # Production object passed to grammar rules
704
+ errorcount = 0 # Used during error recovery
705
+
706
+
707
+ # If no lexer was given, we will try to use the lex module
708
+ if not lexer:
709
+ from . import lex
710
+ lexer = lex.lexer
711
+
712
+ # Set up the lexer and parser objects on pslice
713
+ pslice.lexer = lexer
714
+ pslice.parser = self
715
+
716
+ # If input was supplied, pass to lexer
717
+ if input is not None:
718
+ lexer.input(input)
719
+
720
+ if tokenfunc is None:
721
+ # Tokenize function
722
+ get_token = lexer.token
723
+ else:
724
+ get_token = tokenfunc
725
+
726
+ # Set the parser() token method (sometimes used in error recovery)
727
+ self.token = get_token
728
+
729
+ # Set up the state and symbol stacks
730
+
731
+ statestack = [] # Stack of parsing states
732
+ self.statestack = statestack
733
+ symstack = [] # Stack of grammar symbols
734
+ self.symstack = symstack
735
+
736
+ pslice.stack = symstack # Put in the production
737
+ errtoken = None # Err token
738
+
739
+ # The start state is assumed to be (0,$end)
740
+
741
+ statestack.append(0)
742
+ sym = YaccSymbol()
743
+ sym.type = '$end'
744
+ symstack.append(sym)
745
+ state = 0
746
+ while True:
747
+ # Get the next symbol on the input. If a lookahead symbol
748
+ # is already set, we just use that. Otherwise, we'll pull
749
+ # the next token off of the lookaheadstack or from the lexer
750
+
751
+
752
+ if state not in defaulted_states:
753
+ if not lookahead:
754
+ if not lookaheadstack:
755
+ lookahead = get_token() # Get the next token
756
+ else:
757
+ lookahead = lookaheadstack.pop()
758
+ if not lookahead:
759
+ lookahead = YaccSymbol()
760
+ lookahead.type = '$end'
761
+
762
+ # Check the action table
763
+ ltype = lookahead.type
764
+ t = actions[state].get(ltype)
765
+ else:
766
+ t = defaulted_states[state]
767
+
768
+
769
+ if t is not None:
770
+ if t > 0:
771
+ # shift a symbol on the stack
772
+ statestack.append(t)
773
+ state = t
774
+
775
+
776
+ symstack.append(lookahead)
777
+ lookahead = None
778
+
779
+ # Decrease error count on successful shift
780
+ if errorcount:
781
+ errorcount -= 1
782
+ continue
783
+
784
+ if t < 0:
785
+ # reduce a symbol on the stack, emit a production
786
+ p = prod[-t]
787
+ pname = p.name
788
+ plen = p.len
789
+
790
+ # Get production function
791
+ sym = YaccSymbol()
792
+ sym.type = pname # Production name
793
+ sym.value = None
794
+
795
+
796
+ if plen:
797
+ targ = symstack[-plen-1:]
798
+ targ[0] = sym
799
+
800
+ #--! TRACKING
801
+ if tracking:
802
+ t1 = targ[1]
803
+ sym.lineno = t1.lineno
804
+ sym.lexpos = t1.lexpos
805
+ t1 = targ[-1]
806
+ sym.endlineno = getattr(t1, 'endlineno', t1.lineno)
807
+ sym.endlexpos = getattr(t1, 'endlexpos', t1.lexpos)
808
+ #--! TRACKING
809
+
810
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
811
+ # The code enclosed in this section is duplicated
812
+ # below as a performance optimization. Make sure
813
+ # changes get made in both locations.
814
+
815
+ pslice.slice = targ
816
+
817
+ try:
818
+ # Call the grammar rule with our special slice object
819
+ del symstack[-plen:]
820
+ self.state = state
821
+ p.callable(pslice)
822
+ del statestack[-plen:]
823
+ symstack.append(sym)
824
+ state = goto[statestack[-1]][pname]
825
+ statestack.append(state)
826
+ except SyntaxError:
827
+ # If an error was set. Enter error recovery state
828
+ lookaheadstack.append(lookahead) # Save the current lookahead token
829
+ symstack.extend(targ[1:-1]) # Put the production slice back on the stack
830
+ statestack.pop() # Pop back one state (before the reduce)
831
+ state = statestack[-1]
832
+ sym.type = 'error'
833
+ sym.value = 'error'
834
+ lookahead = sym
835
+ errorcount = error_count
836
+ self.errorok = False
837
+
838
+ continue
839
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
840
+
841
+ else:
842
+
843
+ #--! TRACKING
844
+ if tracking:
845
+ sym.lineno = lexer.lineno
846
+ sym.lexpos = lexer.lexpos
847
+ #--! TRACKING
848
+
849
+ targ = [sym]
850
+
851
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
852
+ # The code enclosed in this section is duplicated
853
+ # above as a performance optimization. Make sure
854
+ # changes get made in both locations.
855
+
856
+ pslice.slice = targ
857
+
858
+ try:
859
+ # Call the grammar rule with our special slice object
860
+ self.state = state
861
+ p.callable(pslice)
862
+ symstack.append(sym)
863
+ state = goto[statestack[-1]][pname]
864
+ statestack.append(state)
865
+ except SyntaxError:
866
+ # If an error was set. Enter error recovery state
867
+ lookaheadstack.append(lookahead) # Save the current lookahead token
868
+ statestack.pop() # Pop back one state (before the reduce)
869
+ state = statestack[-1]
870
+ sym.type = 'error'
871
+ sym.value = 'error'
872
+ lookahead = sym
873
+ errorcount = error_count
874
+ self.errorok = False
875
+
876
+ continue
877
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
878
+
879
+ if t == 0:
880
+ n = symstack[-1]
881
+ result = getattr(n, 'value', None)
882
+ return result
883
+
884
+ if t is None:
885
+
886
+
887
+ # We have some kind of parsing error here. To handle
888
+ # this, we are going to push the current token onto
889
+ # the tokenstack and replace it with an 'error' token.
890
+ # If there are any synchronization rules, they may
891
+ # catch it.
892
+ #
893
+ # In addition to pushing the error token, we call call
894
+ # the user defined p_error() function if this is the
895
+ # first syntax error. This function is only called if
896
+ # errorcount == 0.
897
+ if errorcount == 0 or self.errorok:
898
+ errorcount = error_count
899
+ self.errorok = False
900
+ errtoken = lookahead
901
+ if errtoken.type == '$end':
902
+ errtoken = None # End of file!
903
+ if self.errorfunc:
904
+ if errtoken and not hasattr(errtoken, 'lexer'):
905
+ errtoken.lexer = lexer
906
+ self.state = state
907
+ tok = call_errorfunc(self.errorfunc, errtoken, self)
908
+ if self.errorok:
909
+ # User must have done some kind of panic
910
+ # mode recovery on their own. The
911
+ # returned token is the next lookahead
912
+ lookahead = tok
913
+ errtoken = None
914
+ continue
915
+ else:
916
+ if errtoken:
917
+ if hasattr(errtoken, 'lineno'):
918
+ lineno = lookahead.lineno
919
+ else:
920
+ lineno = 0
921
+ if lineno:
922
+ sys.stderr.write('yacc: Syntax error at line %d, token=%s\n' % (lineno, errtoken.type))
923
+ else:
924
+ sys.stderr.write('yacc: Syntax error, token=%s' % errtoken.type)
925
+ else:
926
+ sys.stderr.write('yacc: Parse error in input. EOF\n')
927
+ return
928
+
929
+ else:
930
+ errorcount = error_count
931
+
932
+ # case 1: the statestack only has 1 entry on it. If we're in this state, the
933
+ # entire parse has been rolled back and we're completely hosed. The token is
934
+ # discarded and we just keep going.
935
+
936
+ if len(statestack) <= 1 and lookahead.type != '$end':
937
+ lookahead = None
938
+ errtoken = None
939
+ state = 0
940
+ # Nuke the pushback stack
941
+ del lookaheadstack[:]
942
+ continue
943
+
944
+ # case 2: the statestack has a couple of entries on it, but we're
945
+ # at the end of the file. nuke the top entry and generate an error token
946
+
947
+ # Start nuking entries on the stack
948
+ if lookahead.type == '$end':
949
+ # Whoa. We're really hosed here. Bail out
950
+ return
951
+
952
+ if lookahead.type != 'error':
953
+ sym = symstack[-1]
954
+ if sym.type == 'error':
955
+ # Hmmm. Error is on top of stack, we'll just nuke input
956
+ # symbol and continue
957
+ #--! TRACKING
958
+ if tracking:
959
+ sym.endlineno = getattr(lookahead, 'lineno', sym.lineno)
960
+ sym.endlexpos = getattr(lookahead, 'lexpos', sym.lexpos)
961
+ #--! TRACKING
962
+ lookahead = None
963
+ continue
964
+
965
+ # Create the error symbol for the first time and make it the new lookahead symbol
966
+ t = YaccSymbol()
967
+ t.type = 'error'
968
+
969
+ if hasattr(lookahead, 'lineno'):
970
+ t.lineno = t.endlineno = lookahead.lineno
971
+ if hasattr(lookahead, 'lexpos'):
972
+ t.lexpos = t.endlexpos = lookahead.lexpos
973
+ t.value = lookahead
974
+ lookaheadstack.append(lookahead)
975
+ lookahead = t
976
+ else:
977
+ sym = symstack.pop()
978
+ #--! TRACKING
979
+ if tracking:
980
+ lookahead.lineno = sym.lineno
981
+ lookahead.lexpos = sym.lexpos
982
+ #--! TRACKING
983
+ statestack.pop()
984
+ state = statestack[-1]
985
+
986
+ continue
987
+
988
+ # Call an error function here
989
+ raise RuntimeError('yacc: internal parser error!!!\n')
990
+
991
+ #--! parseopt-end
992
+
993
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
994
+ # parseopt_notrack().
995
+ #
996
+ # Optimized version of parseopt() with line number tracking removed.
997
+ # DO NOT EDIT THIS CODE DIRECTLY. This code is automatically generated
998
+ # by the ply/ygen.py script. Make changes to the parsedebug() method instead.
999
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1000
+
1001
+ def parseopt_notrack(self, input=None, lexer=None, debug=False, tracking=False, tokenfunc=None):
1002
+ #--! parseopt-notrack-start
1003
+ lookahead = None # Current lookahead symbol
1004
+ lookaheadstack = [] # Stack of lookahead symbols
1005
+ actions = self.action # Local reference to action table (to avoid lookup on self.)
1006
+ goto = self.goto # Local reference to goto table (to avoid lookup on self.)
1007
+ prod = self.productions # Local reference to production list (to avoid lookup on self.)
1008
+ defaulted_states = self.defaulted_states # Local reference to defaulted states
1009
+ pslice = YaccProduction(None) # Production object passed to grammar rules
1010
+ errorcount = 0 # Used during error recovery
1011
+
1012
+
1013
+ # If no lexer was given, we will try to use the lex module
1014
+ if not lexer:
1015
+ from . import lex
1016
+ lexer = lex.lexer
1017
+
1018
+ # Set up the lexer and parser objects on pslice
1019
+ pslice.lexer = lexer
1020
+ pslice.parser = self
1021
+
1022
+ # If input was supplied, pass to lexer
1023
+ if input is not None:
1024
+ lexer.input(input)
1025
+
1026
+ if tokenfunc is None:
1027
+ # Tokenize function
1028
+ get_token = lexer.token
1029
+ else:
1030
+ get_token = tokenfunc
1031
+
1032
+ # Set the parser() token method (sometimes used in error recovery)
1033
+ self.token = get_token
1034
+
1035
+ # Set up the state and symbol stacks
1036
+
1037
+ statestack = [] # Stack of parsing states
1038
+ self.statestack = statestack
1039
+ symstack = [] # Stack of grammar symbols
1040
+ self.symstack = symstack
1041
+
1042
+ pslice.stack = symstack # Put in the production
1043
+ errtoken = None # Err token
1044
+
1045
+ # The start state is assumed to be (0,$end)
1046
+
1047
+ statestack.append(0)
1048
+ sym = YaccSymbol()
1049
+ sym.type = '$end'
1050
+ symstack.append(sym)
1051
+ state = 0
1052
+ while True:
1053
+ # Get the next symbol on the input. If a lookahead symbol
1054
+ # is already set, we just use that. Otherwise, we'll pull
1055
+ # the next token off of the lookaheadstack or from the lexer
1056
+
1057
+
1058
+ if state not in defaulted_states:
1059
+ if not lookahead:
1060
+ if not lookaheadstack:
1061
+ lookahead = get_token() # Get the next token
1062
+ else:
1063
+ lookahead = lookaheadstack.pop()
1064
+ if not lookahead:
1065
+ lookahead = YaccSymbol()
1066
+ lookahead.type = '$end'
1067
+
1068
+ # Check the action table
1069
+ ltype = lookahead.type
1070
+ t = actions[state].get(ltype)
1071
+ else:
1072
+ t = defaulted_states[state]
1073
+
1074
+
1075
+ if t is not None:
1076
+ if t > 0:
1077
+ # shift a symbol on the stack
1078
+ statestack.append(t)
1079
+ state = t
1080
+
1081
+
1082
+ symstack.append(lookahead)
1083
+ lookahead = None
1084
+
1085
+ # Decrease error count on successful shift
1086
+ if errorcount:
1087
+ errorcount -= 1
1088
+ continue
1089
+
1090
+ if t < 0:
1091
+ # reduce a symbol on the stack, emit a production
1092
+ p = prod[-t]
1093
+ pname = p.name
1094
+ plen = p.len
1095
+
1096
+ # Get production function
1097
+ sym = YaccSymbol()
1098
+ sym.type = pname # Production name
1099
+ sym.value = None
1100
+
1101
+
1102
+ if plen:
1103
+ targ = symstack[-plen-1:]
1104
+ targ[0] = sym
1105
+
1106
+
1107
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1108
+ # The code enclosed in this section is duplicated
1109
+ # below as a performance optimization. Make sure
1110
+ # changes get made in both locations.
1111
+
1112
+ pslice.slice = targ
1113
+
1114
+ try:
1115
+ # Call the grammar rule with our special slice object
1116
+ del symstack[-plen:]
1117
+ self.state = state
1118
+ p.callable(pslice)
1119
+ del statestack[-plen:]
1120
+ symstack.append(sym)
1121
+ state = goto[statestack[-1]][pname]
1122
+ statestack.append(state)
1123
+ except SyntaxError:
1124
+ # If an error was set. Enter error recovery state
1125
+ lookaheadstack.append(lookahead) # Save the current lookahead token
1126
+ symstack.extend(targ[1:-1]) # Put the production slice back on the stack
1127
+ statestack.pop() # Pop back one state (before the reduce)
1128
+ state = statestack[-1]
1129
+ sym.type = 'error'
1130
+ sym.value = 'error'
1131
+ lookahead = sym
1132
+ errorcount = error_count
1133
+ self.errorok = False
1134
+
1135
+ continue
1136
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1137
+
1138
+ else:
1139
+
1140
+
1141
+ targ = [sym]
1142
+
1143
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1144
+ # The code enclosed in this section is duplicated
1145
+ # above as a performance optimization. Make sure
1146
+ # changes get made in both locations.
1147
+
1148
+ pslice.slice = targ
1149
+
1150
+ try:
1151
+ # Call the grammar rule with our special slice object
1152
+ self.state = state
1153
+ p.callable(pslice)
1154
+ symstack.append(sym)
1155
+ state = goto[statestack[-1]][pname]
1156
+ statestack.append(state)
1157
+ except SyntaxError:
1158
+ # If an error was set. Enter error recovery state
1159
+ lookaheadstack.append(lookahead) # Save the current lookahead token
1160
+ statestack.pop() # Pop back one state (before the reduce)
1161
+ state = statestack[-1]
1162
+ sym.type = 'error'
1163
+ sym.value = 'error'
1164
+ lookahead = sym
1165
+ errorcount = error_count
1166
+ self.errorok = False
1167
+
1168
+ continue
1169
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1170
+
1171
+ if t == 0:
1172
+ n = symstack[-1]
1173
+ result = getattr(n, 'value', None)
1174
+ return result
1175
+
1176
+ if t is None:
1177
+
1178
+
1179
+ # We have some kind of parsing error here. To handle
1180
+ # this, we are going to push the current token onto
1181
+ # the tokenstack and replace it with an 'error' token.
1182
+ # If there are any synchronization rules, they may
1183
+ # catch it.
1184
+ #
1185
+ # In addition to pushing the error token, we call call
1186
+ # the user defined p_error() function if this is the
1187
+ # first syntax error. This function is only called if
1188
+ # errorcount == 0.
1189
+ if errorcount == 0 or self.errorok:
1190
+ errorcount = error_count
1191
+ self.errorok = False
1192
+ errtoken = lookahead
1193
+ if errtoken.type == '$end':
1194
+ errtoken = None # End of file!
1195
+ if self.errorfunc:
1196
+ if errtoken and not hasattr(errtoken, 'lexer'):
1197
+ errtoken.lexer = lexer
1198
+ self.state = state
1199
+ tok = call_errorfunc(self.errorfunc, errtoken, self)
1200
+ if self.errorok:
1201
+ # User must have done some kind of panic
1202
+ # mode recovery on their own. The
1203
+ # returned token is the next lookahead
1204
+ lookahead = tok
1205
+ errtoken = None
1206
+ continue
1207
+ else:
1208
+ if errtoken:
1209
+ if hasattr(errtoken, 'lineno'):
1210
+ lineno = lookahead.lineno
1211
+ else:
1212
+ lineno = 0
1213
+ if lineno:
1214
+ sys.stderr.write('yacc: Syntax error at line %d, token=%s\n' % (lineno, errtoken.type))
1215
+ else:
1216
+ sys.stderr.write('yacc: Syntax error, token=%s' % errtoken.type)
1217
+ else:
1218
+ sys.stderr.write('yacc: Parse error in input. EOF\n')
1219
+ return
1220
+
1221
+ else:
1222
+ errorcount = error_count
1223
+
1224
+ # case 1: the statestack only has 1 entry on it. If we're in this state, the
1225
+ # entire parse has been rolled back and we're completely hosed. The token is
1226
+ # discarded and we just keep going.
1227
+
1228
+ if len(statestack) <= 1 and lookahead.type != '$end':
1229
+ lookahead = None
1230
+ errtoken = None
1231
+ state = 0
1232
+ # Nuke the pushback stack
1233
+ del lookaheadstack[:]
1234
+ continue
1235
+
1236
+ # case 2: the statestack has a couple of entries on it, but we're
1237
+ # at the end of the file. nuke the top entry and generate an error token
1238
+
1239
+ # Start nuking entries on the stack
1240
+ if lookahead.type == '$end':
1241
+ # Whoa. We're really hosed here. Bail out
1242
+ return
1243
+
1244
+ if lookahead.type != 'error':
1245
+ sym = symstack[-1]
1246
+ if sym.type == 'error':
1247
+ # Hmmm. Error is on top of stack, we'll just nuke input
1248
+ # symbol and continue
1249
+ lookahead = None
1250
+ continue
1251
+
1252
+ # Create the error symbol for the first time and make it the new lookahead symbol
1253
+ t = YaccSymbol()
1254
+ t.type = 'error'
1255
+
1256
+ if hasattr(lookahead, 'lineno'):
1257
+ t.lineno = t.endlineno = lookahead.lineno
1258
+ if hasattr(lookahead, 'lexpos'):
1259
+ t.lexpos = t.endlexpos = lookahead.lexpos
1260
+ t.value = lookahead
1261
+ lookaheadstack.append(lookahead)
1262
+ lookahead = t
1263
+ else:
1264
+ sym = symstack.pop()
1265
+ statestack.pop()
1266
+ state = statestack[-1]
1267
+
1268
+ continue
1269
+
1270
+ # Call an error function here
1271
+ raise RuntimeError('yacc: internal parser error!!!\n')
1272
+
1273
+ #--! parseopt-notrack-end
1274
+
1275
+ # -----------------------------------------------------------------------------
1276
+ # === Grammar Representation ===
1277
+ #
1278
+ # The following functions, classes, and variables are used to represent and
1279
+ # manipulate the rules that make up a grammar.
1280
+ # -----------------------------------------------------------------------------
1281
+
1282
+ # regex matching identifiers
1283
+ _is_identifier = re.compile(r'^[a-zA-Z0-9_-]+$')
1284
+
1285
+ # -----------------------------------------------------------------------------
1286
+ # class Production:
1287
+ #
1288
+ # This class stores the raw information about a single production or grammar rule.
1289
+ # A grammar rule refers to a specification such as this:
1290
+ #
1291
+ # expr : expr PLUS term
1292
+ #
1293
+ # Here are the basic attributes defined on all productions
1294
+ #
1295
+ # name - Name of the production. For example 'expr'
1296
+ # prod - A list of symbols on the right side ['expr','PLUS','term']
1297
+ # prec - Production precedence level
1298
+ # number - Production number.
1299
+ # func - Function that executes on reduce
1300
+ # file - File where production function is defined
1301
+ # lineno - Line number where production function is defined
1302
+ #
1303
+ # The following attributes are defined or optional.
1304
+ #
1305
+ # len - Length of the production (number of symbols on right hand side)
1306
+ # usyms - Set of unique symbols found in the production
1307
+ # -----------------------------------------------------------------------------
1308
+
1309
+ class Production(object):
1310
+ reduced = 0
1311
+ def __init__(self, number, name, prod, precedence=('right', 0), func=None, file='', line=0):
1312
+ self.name = name
1313
+ self.prod = tuple(prod)
1314
+ self.number = number
1315
+ self.func = func
1316
+ self.callable = None
1317
+ self.file = file
1318
+ self.line = line
1319
+ self.prec = precedence
1320
+
1321
+ # Internal settings used during table construction
1322
+
1323
+ self.len = len(self.prod) # Length of the production
1324
+
1325
+ # Create a list of unique production symbols used in the production
1326
+ self.usyms = []
1327
+ for s in self.prod:
1328
+ if s not in self.usyms:
1329
+ self.usyms.append(s)
1330
+
1331
+ # List of all LR items for the production
1332
+ self.lr_items = []
1333
+ self.lr_next = None
1334
+
1335
+ # Create a string representation
1336
+ if self.prod:
1337
+ self.str = '%s -> %s' % (self.name, ' '.join(self.prod))
1338
+ else:
1339
+ self.str = '%s -> <empty>' % self.name
1340
+
1341
+ def __str__(self):
1342
+ return self.str
1343
+
1344
+ def __repr__(self):
1345
+ return 'Production(' + str(self) + ')'
1346
+
1347
+ def __len__(self):
1348
+ return len(self.prod)
1349
+
1350
+ def __nonzero__(self):
1351
+ return 1
1352
+
1353
+ def __getitem__(self, index):
1354
+ return self.prod[index]
1355
+
1356
+ # Return the nth lr_item from the production (or None if at the end)
1357
+ def lr_item(self, n):
1358
+ if n > len(self.prod):
1359
+ return None
1360
+ p = LRItem(self, n)
1361
+ # Precompute the list of productions immediately following.
1362
+ try:
1363
+ p.lr_after = Prodnames[p.prod[n+1]]
1364
+ except (IndexError, KeyError):
1365
+ p.lr_after = []
1366
+ try:
1367
+ p.lr_before = p.prod[n-1]
1368
+ except IndexError:
1369
+ p.lr_before = None
1370
+ return p
1371
+
1372
+ # Bind the production function name to a callable
1373
+ def bind(self, pdict):
1374
+ if self.func:
1375
+ self.callable = pdict[self.func]
1376
+
1377
+ # This class serves as a minimal standin for Production objects when
1378
+ # reading table data from files. It only contains information
1379
+ # actually used by the LR parsing engine, plus some additional
1380
+ # debugging information.
1381
+ class MiniProduction(object):
1382
+ def __init__(self, str, name, len, func, file, line):
1383
+ self.name = name
1384
+ self.len = len
1385
+ self.func = func
1386
+ self.callable = None
1387
+ self.file = file
1388
+ self.line = line
1389
+ self.str = str
1390
+
1391
+ def __str__(self):
1392
+ return self.str
1393
+
1394
+ def __repr__(self):
1395
+ return 'MiniProduction(%s)' % self.str
1396
+
1397
+ # Bind the production function name to a callable
1398
+ def bind(self, pdict):
1399
+ if self.func:
1400
+ self.callable = pdict[self.func]
1401
+
1402
+
1403
+ # -----------------------------------------------------------------------------
1404
+ # class LRItem
1405
+ #
1406
+ # This class represents a specific stage of parsing a production rule. For
1407
+ # example:
1408
+ #
1409
+ # expr : expr . PLUS term
1410
+ #
1411
+ # In the above, the "." represents the current location of the parse. Here
1412
+ # basic attributes:
1413
+ #
1414
+ # name - Name of the production. For example 'expr'
1415
+ # prod - A list of symbols on the right side ['expr','.', 'PLUS','term']
1416
+ # number - Production number.
1417
+ #
1418
+ # lr_next Next LR item. Example, if we are ' expr -> expr . PLUS term'
1419
+ # then lr_next refers to 'expr -> expr PLUS . term'
1420
+ # lr_index - LR item index (location of the ".") in the prod list.
1421
+ # lookaheads - LALR lookahead symbols for this item
1422
+ # len - Length of the production (number of symbols on right hand side)
1423
+ # lr_after - List of all productions that immediately follow
1424
+ # lr_before - Grammar symbol immediately before
1425
+ # -----------------------------------------------------------------------------
1426
+
1427
+ class LRItem(object):
1428
+ def __init__(self, p, n):
1429
+ self.name = p.name
1430
+ self.prod = list(p.prod)
1431
+ self.number = p.number
1432
+ self.lr_index = n
1433
+ self.lookaheads = {}
1434
+ self.prod.insert(n, '.')
1435
+ self.prod = tuple(self.prod)
1436
+ self.len = len(self.prod)
1437
+ self.usyms = p.usyms
1438
+
1439
+ def __str__(self):
1440
+ if self.prod:
1441
+ s = '%s -> %s' % (self.name, ' '.join(self.prod))
1442
+ else:
1443
+ s = '%s -> <empty>' % self.name
1444
+ return s
1445
+
1446
+ def __repr__(self):
1447
+ return 'LRItem(' + str(self) + ')'
1448
+
1449
+ # -----------------------------------------------------------------------------
1450
+ # rightmost_terminal()
1451
+ #
1452
+ # Return the rightmost terminal from a list of symbols. Used in add_production()
1453
+ # -----------------------------------------------------------------------------
1454
+ def rightmost_terminal(symbols, terminals):
1455
+ i = len(symbols) - 1
1456
+ while i >= 0:
1457
+ if symbols[i] in terminals:
1458
+ return symbols[i]
1459
+ i -= 1
1460
+ return None
1461
+
1462
+ # -----------------------------------------------------------------------------
1463
+ # === GRAMMAR CLASS ===
1464
+ #
1465
+ # The following class represents the contents of the specified grammar along
1466
+ # with various computed properties such as first sets, follow sets, LR items, etc.
1467
+ # This data is used for critical parts of the table generation process later.
1468
+ # -----------------------------------------------------------------------------
1469
+
1470
+ class GrammarError(YaccError):
1471
+ pass
1472
+
1473
+ class Grammar(object):
1474
+ def __init__(self, terminals):
1475
+ self.Productions = [None] # A list of all of the productions. The first
1476
+ # entry is always reserved for the purpose of
1477
+ # building an augmented grammar
1478
+
1479
+ self.Prodnames = {} # A dictionary mapping the names of nonterminals to a list of all
1480
+ # productions of that nonterminal.
1481
+
1482
+ self.Prodmap = {} # A dictionary that is only used to detect duplicate
1483
+ # productions.
1484
+
1485
+ self.Terminals = {} # A dictionary mapping the names of terminal symbols to a
1486
+ # list of the rules where they are used.
1487
+
1488
+ for term in terminals:
1489
+ self.Terminals[term] = []
1490
+
1491
+ self.Terminals['error'] = []
1492
+
1493
+ self.Nonterminals = {} # A dictionary mapping names of nonterminals to a list
1494
+ # of rule numbers where they are used.
1495
+
1496
+ self.First = {} # A dictionary of precomputed FIRST(x) symbols
1497
+
1498
+ self.Follow = {} # A dictionary of precomputed FOLLOW(x) symbols
1499
+
1500
+ self.Precedence = {} # Precedence rules for each terminal. Contains tuples of the
1501
+ # form ('right',level) or ('nonassoc', level) or ('left',level)
1502
+
1503
+ self.UsedPrecedence = set() # Precedence rules that were actually used by the grammer.
1504
+ # This is only used to provide error checking and to generate
1505
+ # a warning about unused precedence rules.
1506
+
1507
+ self.Start = None # Starting symbol for the grammar
1508
+
1509
+
1510
+ def __len__(self):
1511
+ return len(self.Productions)
1512
+
1513
+ def __getitem__(self, index):
1514
+ return self.Productions[index]
1515
+
1516
+ # -----------------------------------------------------------------------------
1517
+ # set_precedence()
1518
+ #
1519
+ # Sets the precedence for a given terminal. assoc is the associativity such as
1520
+ # 'left','right', or 'nonassoc'. level is a numeric level.
1521
+ #
1522
+ # -----------------------------------------------------------------------------
1523
+
1524
+ def set_precedence(self, term, assoc, level):
1525
+ assert self.Productions == [None], 'Must call set_precedence() before add_production()'
1526
+ if term in self.Precedence:
1527
+ raise GrammarError('Precedence already specified for terminal %r' % term)
1528
+ if assoc not in ['left', 'right', 'nonassoc']:
1529
+ raise GrammarError("Associativity must be one of 'left','right', or 'nonassoc'")
1530
+ self.Precedence[term] = (assoc, level)
1531
+
1532
+ # -----------------------------------------------------------------------------
1533
+ # add_production()
1534
+ #
1535
+ # Given an action function, this function assembles a production rule and
1536
+ # computes its precedence level.
1537
+ #
1538
+ # The production rule is supplied as a list of symbols. For example,
1539
+ # a rule such as 'expr : expr PLUS term' has a production name of 'expr' and
1540
+ # symbols ['expr','PLUS','term'].
1541
+ #
1542
+ # Precedence is determined by the precedence of the right-most non-terminal
1543
+ # or the precedence of a terminal specified by %prec.
1544
+ #
1545
+ # A variety of error checks are performed to make sure production symbols
1546
+ # are valid and that %prec is used correctly.
1547
+ # -----------------------------------------------------------------------------
1548
+
1549
+ def add_production(self, prodname, syms, func=None, file='', line=0):
1550
+
1551
+ if prodname in self.Terminals:
1552
+ raise GrammarError('%s:%d: Illegal rule name %r. Already defined as a token' % (file, line, prodname))
1553
+ if prodname == 'error':
1554
+ raise GrammarError('%s:%d: Illegal rule name %r. error is a reserved word' % (file, line, prodname))
1555
+ if not _is_identifier.match(prodname):
1556
+ raise GrammarError('%s:%d: Illegal rule name %r' % (file, line, prodname))
1557
+
1558
+ # Look for literal tokens
1559
+ for n, s in enumerate(syms):
1560
+ if s[0] in "'\"":
1561
+ try:
1562
+ c = eval(s)
1563
+ if (len(c) > 1):
1564
+ raise GrammarError('%s:%d: Literal token %s in rule %r may only be a single character' %
1565
+ (file, line, s, prodname))
1566
+ if c not in self.Terminals:
1567
+ self.Terminals[c] = []
1568
+ syms[n] = c
1569
+ continue
1570
+ except SyntaxError:
1571
+ pass
1572
+ if not _is_identifier.match(s) and s != '%prec':
1573
+ raise GrammarError('%s:%d: Illegal name %r in rule %r' % (file, line, s, prodname))
1574
+
1575
+ # Determine the precedence level
1576
+ if '%prec' in syms:
1577
+ if syms[-1] == '%prec':
1578
+ raise GrammarError('%s:%d: Syntax error. Nothing follows %%prec' % (file, line))
1579
+ if syms[-2] != '%prec':
1580
+ raise GrammarError('%s:%d: Syntax error. %%prec can only appear at the end of a grammar rule' %
1581
+ (file, line))
1582
+ precname = syms[-1]
1583
+ prodprec = self.Precedence.get(precname)
1584
+ if not prodprec:
1585
+ raise GrammarError('%s:%d: Nothing known about the precedence of %r' % (file, line, precname))
1586
+ else:
1587
+ self.UsedPrecedence.add(precname)
1588
+ del syms[-2:] # Drop %prec from the rule
1589
+ else:
1590
+ # If no %prec, precedence is determined by the rightmost terminal symbol
1591
+ precname = rightmost_terminal(syms, self.Terminals)
1592
+ prodprec = self.Precedence.get(precname, ('right', 0))
1593
+
1594
+ # See if the rule is already in the rulemap
1595
+ map = '%s -> %s' % (prodname, syms)
1596
+ if map in self.Prodmap:
1597
+ m = self.Prodmap[map]
1598
+ raise GrammarError('%s:%d: Duplicate rule %s. ' % (file, line, m) +
1599
+ 'Previous definition at %s:%d' % (m.file, m.line))
1600
+
1601
+ # From this point on, everything is valid. Create a new Production instance
1602
+ pnumber = len(self.Productions)
1603
+ if prodname not in self.Nonterminals:
1604
+ self.Nonterminals[prodname] = []
1605
+
1606
+ # Add the production number to Terminals and Nonterminals
1607
+ for t in syms:
1608
+ if t in self.Terminals:
1609
+ self.Terminals[t].append(pnumber)
1610
+ else:
1611
+ if t not in self.Nonterminals:
1612
+ self.Nonterminals[t] = []
1613
+ self.Nonterminals[t].append(pnumber)
1614
+
1615
+ # Create a production and add it to the list of productions
1616
+ p = Production(pnumber, prodname, syms, prodprec, func, file, line)
1617
+ self.Productions.append(p)
1618
+ self.Prodmap[map] = p
1619
+
1620
+ # Add to the global productions list
1621
+ try:
1622
+ self.Prodnames[prodname].append(p)
1623
+ except KeyError:
1624
+ self.Prodnames[prodname] = [p]
1625
+
1626
+ # -----------------------------------------------------------------------------
1627
+ # set_start()
1628
+ #
1629
+ # Sets the starting symbol and creates the augmented grammar. Production
1630
+ # rule 0 is S' -> start where start is the start symbol.
1631
+ # -----------------------------------------------------------------------------
1632
+
1633
+ def set_start(self, start=None):
1634
+ if not start:
1635
+ start = self.Productions[1].name
1636
+ if start not in self.Nonterminals:
1637
+ raise GrammarError('start symbol %s undefined' % start)
1638
+ self.Productions[0] = Production(0, "S'", [start])
1639
+ self.Nonterminals[start].append(0)
1640
+ self.Start = start
1641
+
1642
+ # -----------------------------------------------------------------------------
1643
+ # find_unreachable()
1644
+ #
1645
+ # Find all of the nonterminal symbols that can't be reached from the starting
1646
+ # symbol. Returns a list of nonterminals that can't be reached.
1647
+ # -----------------------------------------------------------------------------
1648
+
1649
+ def find_unreachable(self):
1650
+
1651
+ # Mark all symbols that are reachable from a symbol s
1652
+ def mark_reachable_from(s):
1653
+ if s in reachable:
1654
+ return
1655
+ reachable.add(s)
1656
+ for p in self.Prodnames.get(s, []):
1657
+ for r in p.prod:
1658
+ mark_reachable_from(r)
1659
+
1660
+ reachable = set()
1661
+ mark_reachable_from(self.Productions[0].prod[0])
1662
+ return [s for s in self.Nonterminals if s not in reachable]
1663
+
1664
+ # -----------------------------------------------------------------------------
1665
+ # infinite_cycles()
1666
+ #
1667
+ # This function looks at the various parsing rules and tries to detect
1668
+ # infinite recursion cycles (grammar rules where there is no possible way
1669
+ # to derive a string of only terminals).
1670
+ # -----------------------------------------------------------------------------
1671
+
1672
+ def infinite_cycles(self):
1673
+ terminates = {}
1674
+
1675
+ # Terminals:
1676
+ for t in self.Terminals:
1677
+ terminates[t] = True
1678
+
1679
+ terminates['$end'] = True
1680
+
1681
+ # Nonterminals:
1682
+
1683
+ # Initialize to false:
1684
+ for n in self.Nonterminals:
1685
+ terminates[n] = False
1686
+
1687
+ # Then propagate termination until no change:
1688
+ while True:
1689
+ some_change = False
1690
+ for (n, pl) in self.Prodnames.items():
1691
+ # Nonterminal n terminates iff any of its productions terminates.
1692
+ for p in pl:
1693
+ # Production p terminates iff all of its rhs symbols terminate.
1694
+ for s in p.prod:
1695
+ if not terminates[s]:
1696
+ # The symbol s does not terminate,
1697
+ # so production p does not terminate.
1698
+ p_terminates = False
1699
+ break
1700
+ else:
1701
+ # didn't break from the loop,
1702
+ # so every symbol s terminates
1703
+ # so production p terminates.
1704
+ p_terminates = True
1705
+
1706
+ if p_terminates:
1707
+ # symbol n terminates!
1708
+ if not terminates[n]:
1709
+ terminates[n] = True
1710
+ some_change = True
1711
+ # Don't need to consider any more productions for this n.
1712
+ break
1713
+
1714
+ if not some_change:
1715
+ break
1716
+
1717
+ infinite = []
1718
+ for (s, term) in terminates.items():
1719
+ if not term:
1720
+ if s not in self.Prodnames and s not in self.Terminals and s != 'error':
1721
+ # s is used-but-not-defined, and we've already warned of that,
1722
+ # so it would be overkill to say that it's also non-terminating.
1723
+ pass
1724
+ else:
1725
+ infinite.append(s)
1726
+
1727
+ return infinite
1728
+
1729
+ # -----------------------------------------------------------------------------
1730
+ # undefined_symbols()
1731
+ #
1732
+ # Find all symbols that were used the grammar, but not defined as tokens or
1733
+ # grammar rules. Returns a list of tuples (sym, prod) where sym in the symbol
1734
+ # and prod is the production where the symbol was used.
1735
+ # -----------------------------------------------------------------------------
1736
+ def undefined_symbols(self):
1737
+ result = []
1738
+ for p in self.Productions:
1739
+ if not p:
1740
+ continue
1741
+
1742
+ for s in p.prod:
1743
+ if s not in self.Prodnames and s not in self.Terminals and s != 'error':
1744
+ result.append((s, p))
1745
+ return result
1746
+
1747
+ # -----------------------------------------------------------------------------
1748
+ # unused_terminals()
1749
+ #
1750
+ # Find all terminals that were defined, but not used by the grammar. Returns
1751
+ # a list of all symbols.
1752
+ # -----------------------------------------------------------------------------
1753
+ def unused_terminals(self):
1754
+ unused_tok = []
1755
+ for s, v in self.Terminals.items():
1756
+ if s != 'error' and not v:
1757
+ unused_tok.append(s)
1758
+
1759
+ return unused_tok
1760
+
1761
+ # ------------------------------------------------------------------------------
1762
+ # unused_rules()
1763
+ #
1764
+ # Find all grammar rules that were defined, but not used (maybe not reachable)
1765
+ # Returns a list of productions.
1766
+ # ------------------------------------------------------------------------------
1767
+
1768
+ def unused_rules(self):
1769
+ unused_prod = []
1770
+ for s, v in self.Nonterminals.items():
1771
+ if not v:
1772
+ p = self.Prodnames[s][0]
1773
+ unused_prod.append(p)
1774
+ return unused_prod
1775
+
1776
+ # -----------------------------------------------------------------------------
1777
+ # unused_precedence()
1778
+ #
1779
+ # Returns a list of tuples (term,precedence) corresponding to precedence
1780
+ # rules that were never used by the grammar. term is the name of the terminal
1781
+ # on which precedence was applied and precedence is a string such as 'left' or
1782
+ # 'right' corresponding to the type of precedence.
1783
+ # -----------------------------------------------------------------------------
1784
+
1785
+ def unused_precedence(self):
1786
+ unused = []
1787
+ for termname in self.Precedence:
1788
+ if not (termname in self.Terminals or termname in self.UsedPrecedence):
1789
+ unused.append((termname, self.Precedence[termname][0]))
1790
+
1791
+ return unused
1792
+
1793
+ # -------------------------------------------------------------------------
1794
+ # _first()
1795
+ #
1796
+ # Compute the value of FIRST1(beta) where beta is a tuple of symbols.
1797
+ #
1798
+ # During execution of compute_first1, the result may be incomplete.
1799
+ # Afterward (e.g., when called from compute_follow()), it will be complete.
1800
+ # -------------------------------------------------------------------------
1801
+ def _first(self, beta):
1802
+
1803
+ # We are computing First(x1,x2,x3,...,xn)
1804
+ result = []
1805
+ for x in beta:
1806
+ x_produces_empty = False
1807
+
1808
+ # Add all the non-<empty> symbols of First[x] to the result.
1809
+ for f in self.First[x]:
1810
+ if f == '<empty>':
1811
+ x_produces_empty = True
1812
+ else:
1813
+ if f not in result:
1814
+ result.append(f)
1815
+
1816
+ if x_produces_empty:
1817
+ # We have to consider the next x in beta,
1818
+ # i.e. stay in the loop.
1819
+ pass
1820
+ else:
1821
+ # We don't have to consider any further symbols in beta.
1822
+ break
1823
+ else:
1824
+ # There was no 'break' from the loop,
1825
+ # so x_produces_empty was true for all x in beta,
1826
+ # so beta produces empty as well.
1827
+ result.append('<empty>')
1828
+
1829
+ return result
1830
+
1831
+ # -------------------------------------------------------------------------
1832
+ # compute_first()
1833
+ #
1834
+ # Compute the value of FIRST1(X) for all symbols
1835
+ # -------------------------------------------------------------------------
1836
+ def compute_first(self):
1837
+ if self.First:
1838
+ return self.First
1839
+
1840
+ # Terminals:
1841
+ for t in self.Terminals:
1842
+ self.First[t] = [t]
1843
+
1844
+ self.First['$end'] = ['$end']
1845
+
1846
+ # Nonterminals:
1847
+
1848
+ # Initialize to the empty set:
1849
+ for n in self.Nonterminals:
1850
+ self.First[n] = []
1851
+
1852
+ # Then propagate symbols until no change:
1853
+ while True:
1854
+ some_change = False
1855
+ for n in self.Nonterminals:
1856
+ for p in self.Prodnames[n]:
1857
+ for f in self._first(p.prod):
1858
+ if f not in self.First[n]:
1859
+ self.First[n].append(f)
1860
+ some_change = True
1861
+ if not some_change:
1862
+ break
1863
+
1864
+ return self.First
1865
+
1866
+ # ---------------------------------------------------------------------
1867
+ # compute_follow()
1868
+ #
1869
+ # Computes all of the follow sets for every non-terminal symbol. The
1870
+ # follow set is the set of all symbols that might follow a given
1871
+ # non-terminal. See the Dragon book, 2nd Ed. p. 189.
1872
+ # ---------------------------------------------------------------------
1873
+ def compute_follow(self, start=None):
1874
+ # If already computed, return the result
1875
+ if self.Follow:
1876
+ return self.Follow
1877
+
1878
+ # If first sets not computed yet, do that first.
1879
+ if not self.First:
1880
+ self.compute_first()
1881
+
1882
+ # Add '$end' to the follow list of the start symbol
1883
+ for k in self.Nonterminals:
1884
+ self.Follow[k] = []
1885
+
1886
+ if not start:
1887
+ start = self.Productions[1].name
1888
+
1889
+ self.Follow[start] = ['$end']
1890
+
1891
+ while True:
1892
+ didadd = False
1893
+ for p in self.Productions[1:]:
1894
+ # Here is the production set
1895
+ for i, B in enumerate(p.prod):
1896
+ if B in self.Nonterminals:
1897
+ # Okay. We got a non-terminal in a production
1898
+ fst = self._first(p.prod[i+1:])
1899
+ hasempty = False
1900
+ for f in fst:
1901
+ if f != '<empty>' and f not in self.Follow[B]:
1902
+ self.Follow[B].append(f)
1903
+ didadd = True
1904
+ if f == '<empty>':
1905
+ hasempty = True
1906
+ if hasempty or i == (len(p.prod)-1):
1907
+ # Add elements of follow(a) to follow(b)
1908
+ for f in self.Follow[p.name]:
1909
+ if f not in self.Follow[B]:
1910
+ self.Follow[B].append(f)
1911
+ didadd = True
1912
+ if not didadd:
1913
+ break
1914
+ return self.Follow
1915
+
1916
+
1917
+ # -----------------------------------------------------------------------------
1918
+ # build_lritems()
1919
+ #
1920
+ # This function walks the list of productions and builds a complete set of the
1921
+ # LR items. The LR items are stored in two ways: First, they are uniquely
1922
+ # numbered and placed in the list _lritems. Second, a linked list of LR items
1923
+ # is built for each production. For example:
1924
+ #
1925
+ # E -> E PLUS E
1926
+ #
1927
+ # Creates the list
1928
+ #
1929
+ # [E -> . E PLUS E, E -> E . PLUS E, E -> E PLUS . E, E -> E PLUS E . ]
1930
+ # -----------------------------------------------------------------------------
1931
+
1932
+ def build_lritems(self):
1933
+ for p in self.Productions:
1934
+ lastlri = p
1935
+ i = 0
1936
+ lr_items = []
1937
+ while True:
1938
+ if i > len(p):
1939
+ lri = None
1940
+ else:
1941
+ lri = LRItem(p, i)
1942
+ # Precompute the list of productions immediately following
1943
+ try:
1944
+ lri.lr_after = self.Prodnames[lri.prod[i+1]]
1945
+ except (IndexError, KeyError):
1946
+ lri.lr_after = []
1947
+ try:
1948
+ lri.lr_before = lri.prod[i-1]
1949
+ except IndexError:
1950
+ lri.lr_before = None
1951
+
1952
+ lastlri.lr_next = lri
1953
+ if not lri:
1954
+ break
1955
+ lr_items.append(lri)
1956
+ lastlri = lri
1957
+ i += 1
1958
+ p.lr_items = lr_items
1959
+
1960
+ # -----------------------------------------------------------------------------
1961
+ # == Class LRTable ==
1962
+ #
1963
+ # This basic class represents a basic table of LR parsing information.
1964
+ # Methods for generating the tables are not defined here. They are defined
1965
+ # in the derived class LRGeneratedTable.
1966
+ # -----------------------------------------------------------------------------
1967
+
1968
+ class VersionError(YaccError):
1969
+ pass
1970
+
1971
+ class LRTable(object):
1972
+ def __init__(self):
1973
+ self.lr_action = None
1974
+ self.lr_goto = None
1975
+ self.lr_productions = None
1976
+ self.lr_method = None
1977
+
1978
+ def read_table(self, module):
1979
+ if isinstance(module, types.ModuleType):
1980
+ parsetab = module
1981
+ else:
1982
+ exec('import %s' % module)
1983
+ parsetab = sys.modules[module]
1984
+
1985
+ if parsetab._tabversion != __tabversion__:
1986
+ raise VersionError('yacc table file version is out of date')
1987
+
1988
+ self.lr_action = parsetab._lr_action
1989
+ self.lr_goto = parsetab._lr_goto
1990
+
1991
+ self.lr_productions = []
1992
+ for p in parsetab._lr_productions:
1993
+ self.lr_productions.append(MiniProduction(*p))
1994
+
1995
+ self.lr_method = parsetab._lr_method
1996
+ return parsetab._lr_signature
1997
+
1998
+ def read_pickle(self, filename):
1999
+ try:
2000
+ import cPickle as pickle
2001
+ except ImportError:
2002
+ import pickle
2003
+
2004
+ if not os.path.exists(filename):
2005
+ raise ImportError
2006
+
2007
+ in_f = open(filename, 'rb')
2008
+
2009
+ tabversion = pickle.load(in_f)
2010
+ if tabversion != __tabversion__:
2011
+ raise VersionError('yacc table file version is out of date')
2012
+ self.lr_method = pickle.load(in_f)
2013
+ signature = pickle.load(in_f)
2014
+ self.lr_action = pickle.load(in_f)
2015
+ self.lr_goto = pickle.load(in_f)
2016
+ productions = pickle.load(in_f)
2017
+
2018
+ self.lr_productions = []
2019
+ for p in productions:
2020
+ self.lr_productions.append(MiniProduction(*p))
2021
+
2022
+ in_f.close()
2023
+ return signature
2024
+
2025
+ # Bind all production function names to callable objects in pdict
2026
+ def bind_callables(self, pdict):
2027
+ for p in self.lr_productions:
2028
+ p.bind(pdict)
2029
+
2030
+
2031
+ # -----------------------------------------------------------------------------
2032
+ # === LR Generator ===
2033
+ #
2034
+ # The following classes and functions are used to generate LR parsing tables on
2035
+ # a grammar.
2036
+ # -----------------------------------------------------------------------------
2037
+
2038
+ # -----------------------------------------------------------------------------
2039
+ # digraph()
2040
+ # traverse()
2041
+ #
2042
+ # The following two functions are used to compute set valued functions
2043
+ # of the form:
2044
+ #
2045
+ # F(x) = F'(x) U U{F(y) | x R y}
2046
+ #
2047
+ # This is used to compute the values of Read() sets as well as FOLLOW sets
2048
+ # in LALR(1) generation.
2049
+ #
2050
+ # Inputs: X - An input set
2051
+ # R - A relation
2052
+ # FP - Set-valued function
2053
+ # ------------------------------------------------------------------------------
2054
+
2055
+ def digraph(X, R, FP):
2056
+ N = {}
2057
+ for x in X:
2058
+ N[x] = 0
2059
+ stack = []
2060
+ F = {}
2061
+ for x in X:
2062
+ if N[x] == 0:
2063
+ traverse(x, N, stack, F, X, R, FP)
2064
+ return F
2065
+
2066
+ def traverse(x, N, stack, F, X, R, FP):
2067
+ stack.append(x)
2068
+ d = len(stack)
2069
+ N[x] = d
2070
+ F[x] = FP(x) # F(X) <- F'(x)
2071
+
2072
+ rel = R(x) # Get y's related to x
2073
+ for y in rel:
2074
+ if N[y] == 0:
2075
+ traverse(y, N, stack, F, X, R, FP)
2076
+ N[x] = min(N[x], N[y])
2077
+ for a in F.get(y, []):
2078
+ if a not in F[x]:
2079
+ F[x].append(a)
2080
+ if N[x] == d:
2081
+ N[stack[-1]] = MAXINT
2082
+ F[stack[-1]] = F[x]
2083
+ element = stack.pop()
2084
+ while element != x:
2085
+ N[stack[-1]] = MAXINT
2086
+ F[stack[-1]] = F[x]
2087
+ element = stack.pop()
2088
+
2089
+ class LALRError(YaccError):
2090
+ pass
2091
+
2092
+ # -----------------------------------------------------------------------------
2093
+ # == LRGeneratedTable ==
2094
+ #
2095
+ # This class implements the LR table generation algorithm. There are no
2096
+ # public methods except for write()
2097
+ # -----------------------------------------------------------------------------
2098
+
2099
+ class LRGeneratedTable(LRTable):
2100
+ def __init__(self, grammar, method='LALR', log=None):
2101
+ if method not in ['SLR', 'LALR']:
2102
+ raise LALRError('Unsupported method %s' % method)
2103
+
2104
+ self.grammar = grammar
2105
+ self.lr_method = method
2106
+
2107
+ # Set up the logger
2108
+ if not log:
2109
+ log = NullLogger()
2110
+ self.log = log
2111
+
2112
+ # Internal attributes
2113
+ self.lr_action = {} # Action table
2114
+ self.lr_goto = {} # Goto table
2115
+ self.lr_productions = grammar.Productions # Copy of grammar Production array
2116
+ self.lr_goto_cache = {} # Cache of computed gotos
2117
+ self.lr0_cidhash = {} # Cache of closures
2118
+
2119
+ self._add_count = 0 # Internal counter used to detect cycles
2120
+
2121
+ # Diagonistic information filled in by the table generator
2122
+ self.sr_conflict = 0
2123
+ self.rr_conflict = 0
2124
+ self.conflicts = [] # List of conflicts
2125
+
2126
+ self.sr_conflicts = []
2127
+ self.rr_conflicts = []
2128
+
2129
+ # Build the tables
2130
+ self.grammar.build_lritems()
2131
+ self.grammar.compute_first()
2132
+ self.grammar.compute_follow()
2133
+ self.lr_parse_table()
2134
+
2135
+ # Compute the LR(0) closure operation on I, where I is a set of LR(0) items.
2136
+
2137
+ def lr0_closure(self, I):
2138
+ self._add_count += 1
2139
+
2140
+ # Add everything in I to J
2141
+ J = I[:]
2142
+ didadd = True
2143
+ while didadd:
2144
+ didadd = False
2145
+ for j in J:
2146
+ for x in j.lr_after:
2147
+ if getattr(x, 'lr0_added', 0) == self._add_count:
2148
+ continue
2149
+ # Add B --> .G to J
2150
+ J.append(x.lr_next)
2151
+ x.lr0_added = self._add_count
2152
+ didadd = True
2153
+
2154
+ return J
2155
+
2156
+ # Compute the LR(0) goto function goto(I,X) where I is a set
2157
+ # of LR(0) items and X is a grammar symbol. This function is written
2158
+ # in a way that guarantees uniqueness of the generated goto sets
2159
+ # (i.e. the same goto set will never be returned as two different Python
2160
+ # objects). With uniqueness, we can later do fast set comparisons using
2161
+ # id(obj) instead of element-wise comparison.
2162
+
2163
+ def lr0_goto(self, I, x):
2164
+ # First we look for a previously cached entry
2165
+ g = self.lr_goto_cache.get((id(I), x))
2166
+ if g:
2167
+ return g
2168
+
2169
+ # Now we generate the goto set in a way that guarantees uniqueness
2170
+ # of the result
2171
+
2172
+ s = self.lr_goto_cache.get(x)
2173
+ if not s:
2174
+ s = {}
2175
+ self.lr_goto_cache[x] = s
2176
+
2177
+ gs = []
2178
+ for p in I:
2179
+ n = p.lr_next
2180
+ if n and n.lr_before == x:
2181
+ s1 = s.get(id(n))
2182
+ if not s1:
2183
+ s1 = {}
2184
+ s[id(n)] = s1
2185
+ gs.append(n)
2186
+ s = s1
2187
+ g = s.get('$end')
2188
+ if not g:
2189
+ if gs:
2190
+ g = self.lr0_closure(gs)
2191
+ s['$end'] = g
2192
+ else:
2193
+ s['$end'] = gs
2194
+ self.lr_goto_cache[(id(I), x)] = g
2195
+ return g
2196
+
2197
+ # Compute the LR(0) sets of item function
2198
+ def lr0_items(self):
2199
+ C = [self.lr0_closure([self.grammar.Productions[0].lr_next])]
2200
+ i = 0
2201
+ for I in C:
2202
+ self.lr0_cidhash[id(I)] = i
2203
+ i += 1
2204
+
2205
+ # Loop over the items in C and each grammar symbols
2206
+ i = 0
2207
+ while i < len(C):
2208
+ I = C[i]
2209
+ i += 1
2210
+
2211
+ # Collect all of the symbols that could possibly be in the goto(I,X) sets
2212
+ asyms = {}
2213
+ for ii in I:
2214
+ for s in ii.usyms:
2215
+ asyms[s] = None
2216
+
2217
+ for x in asyms:
2218
+ g = self.lr0_goto(I, x)
2219
+ if not g or id(g) in self.lr0_cidhash:
2220
+ continue
2221
+ self.lr0_cidhash[id(g)] = len(C)
2222
+ C.append(g)
2223
+
2224
+ return C
2225
+
2226
+ # -----------------------------------------------------------------------------
2227
+ # ==== LALR(1) Parsing ====
2228
+ #
2229
+ # LALR(1) parsing is almost exactly the same as SLR except that instead of
2230
+ # relying upon Follow() sets when performing reductions, a more selective
2231
+ # lookahead set that incorporates the state of the LR(0) machine is utilized.
2232
+ # Thus, we mainly just have to focus on calculating the lookahead sets.
2233
+ #
2234
+ # The method used here is due to DeRemer and Pennelo (1982).
2235
+ #
2236
+ # DeRemer, F. L., and T. J. Pennelo: "Efficient Computation of LALR(1)
2237
+ # Lookahead Sets", ACM Transactions on Programming Languages and Systems,
2238
+ # Vol. 4, No. 4, Oct. 1982, pp. 615-649
2239
+ #
2240
+ # Further details can also be found in:
2241
+ #
2242
+ # J. Tremblay and P. Sorenson, "The Theory and Practice of Compiler Writing",
2243
+ # McGraw-Hill Book Company, (1985).
2244
+ #
2245
+ # -----------------------------------------------------------------------------
2246
+
2247
+ # -----------------------------------------------------------------------------
2248
+ # compute_nullable_nonterminals()
2249
+ #
2250
+ # Creates a dictionary containing all of the non-terminals that might produce
2251
+ # an empty production.
2252
+ # -----------------------------------------------------------------------------
2253
+
2254
+ def compute_nullable_nonterminals(self):
2255
+ nullable = set()
2256
+ num_nullable = 0
2257
+ while True:
2258
+ for p in self.grammar.Productions[1:]:
2259
+ if p.len == 0:
2260
+ nullable.add(p.name)
2261
+ continue
2262
+ for t in p.prod:
2263
+ if t not in nullable:
2264
+ break
2265
+ else:
2266
+ nullable.add(p.name)
2267
+ if len(nullable) == num_nullable:
2268
+ break
2269
+ num_nullable = len(nullable)
2270
+ return nullable
2271
+
2272
+ # -----------------------------------------------------------------------------
2273
+ # find_nonterminal_trans(C)
2274
+ #
2275
+ # Given a set of LR(0) items, this functions finds all of the non-terminal
2276
+ # transitions. These are transitions in which a dot appears immediately before
2277
+ # a non-terminal. Returns a list of tuples of the form (state,N) where state
2278
+ # is the state number and N is the nonterminal symbol.
2279
+ #
2280
+ # The input C is the set of LR(0) items.
2281
+ # -----------------------------------------------------------------------------
2282
+
2283
+ def find_nonterminal_transitions(self, C):
2284
+ trans = []
2285
+ for stateno, state in enumerate(C):
2286
+ for p in state:
2287
+ if p.lr_index < p.len - 1:
2288
+ t = (stateno, p.prod[p.lr_index+1])
2289
+ if t[1] in self.grammar.Nonterminals:
2290
+ if t not in trans:
2291
+ trans.append(t)
2292
+ return trans
2293
+
2294
+ # -----------------------------------------------------------------------------
2295
+ # dr_relation()
2296
+ #
2297
+ # Computes the DR(p,A) relationships for non-terminal transitions. The input
2298
+ # is a tuple (state,N) where state is a number and N is a nonterminal symbol.
2299
+ #
2300
+ # Returns a list of terminals.
2301
+ # -----------------------------------------------------------------------------
2302
+
2303
+ def dr_relation(self, C, trans, nullable):
2304
+ dr_set = {}
2305
+ state, N = trans
2306
+ terms = []
2307
+
2308
+ g = self.lr0_goto(C[state], N)
2309
+ for p in g:
2310
+ if p.lr_index < p.len - 1:
2311
+ a = p.prod[p.lr_index+1]
2312
+ if a in self.grammar.Terminals:
2313
+ if a not in terms:
2314
+ terms.append(a)
2315
+
2316
+ # This extra bit is to handle the start state
2317
+ if state == 0 and N == self.grammar.Productions[0].prod[0]:
2318
+ terms.append('$end')
2319
+
2320
+ return terms
2321
+
2322
+ # -----------------------------------------------------------------------------
2323
+ # reads_relation()
2324
+ #
2325
+ # Computes the READS() relation (p,A) READS (t,C).
2326
+ # -----------------------------------------------------------------------------
2327
+
2328
+ def reads_relation(self, C, trans, empty):
2329
+ # Look for empty transitions
2330
+ rel = []
2331
+ state, N = trans
2332
+
2333
+ g = self.lr0_goto(C[state], N)
2334
+ j = self.lr0_cidhash.get(id(g), -1)
2335
+ for p in g:
2336
+ if p.lr_index < p.len - 1:
2337
+ a = p.prod[p.lr_index + 1]
2338
+ if a in empty:
2339
+ rel.append((j, a))
2340
+
2341
+ return rel
2342
+
2343
+ # -----------------------------------------------------------------------------
2344
+ # compute_lookback_includes()
2345
+ #
2346
+ # Determines the lookback and includes relations
2347
+ #
2348
+ # LOOKBACK:
2349
+ #
2350
+ # This relation is determined by running the LR(0) state machine forward.
2351
+ # For example, starting with a production "N : . A B C", we run it forward
2352
+ # to obtain "N : A B C ." We then build a relationship between this final
2353
+ # state and the starting state. These relationships are stored in a dictionary
2354
+ # lookdict.
2355
+ #
2356
+ # INCLUDES:
2357
+ #
2358
+ # Computes the INCLUDE() relation (p,A) INCLUDES (p',B).
2359
+ #
2360
+ # This relation is used to determine non-terminal transitions that occur
2361
+ # inside of other non-terminal transition states. (p,A) INCLUDES (p', B)
2362
+ # if the following holds:
2363
+ #
2364
+ # B -> LAT, where T -> epsilon and p' -L-> p
2365
+ #
2366
+ # L is essentially a prefix (which may be empty), T is a suffix that must be
2367
+ # able to derive an empty string. State p' must lead to state p with the string L.
2368
+ #
2369
+ # -----------------------------------------------------------------------------
2370
+
2371
+ def compute_lookback_includes(self, C, trans, nullable):
2372
+ lookdict = {} # Dictionary of lookback relations
2373
+ includedict = {} # Dictionary of include relations
2374
+
2375
+ # Make a dictionary of non-terminal transitions
2376
+ dtrans = {}
2377
+ for t in trans:
2378
+ dtrans[t] = 1
2379
+
2380
+ # Loop over all transitions and compute lookbacks and includes
2381
+ for state, N in trans:
2382
+ lookb = []
2383
+ includes = []
2384
+ for p in C[state]:
2385
+ if p.name != N:
2386
+ continue
2387
+
2388
+ # Okay, we have a name match. We now follow the production all the way
2389
+ # through the state machine until we get the . on the right hand side
2390
+
2391
+ lr_index = p.lr_index
2392
+ j = state
2393
+ while lr_index < p.len - 1:
2394
+ lr_index = lr_index + 1
2395
+ t = p.prod[lr_index]
2396
+
2397
+ # Check to see if this symbol and state are a non-terminal transition
2398
+ if (j, t) in dtrans:
2399
+ # Yes. Okay, there is some chance that this is an includes relation
2400
+ # the only way to know for certain is whether the rest of the
2401
+ # production derives empty
2402
+
2403
+ li = lr_index + 1
2404
+ while li < p.len:
2405
+ if p.prod[li] in self.grammar.Terminals:
2406
+ break # No forget it
2407
+ if p.prod[li] not in nullable:
2408
+ break
2409
+ li = li + 1
2410
+ else:
2411
+ # Appears to be a relation between (j,t) and (state,N)
2412
+ includes.append((j, t))
2413
+
2414
+ g = self.lr0_goto(C[j], t) # Go to next set
2415
+ j = self.lr0_cidhash.get(id(g), -1) # Go to next state
2416
+
2417
+ # When we get here, j is the final state, now we have to locate the production
2418
+ for r in C[j]:
2419
+ if r.name != p.name:
2420
+ continue
2421
+ if r.len != p.len:
2422
+ continue
2423
+ i = 0
2424
+ # This look is comparing a production ". A B C" with "A B C ."
2425
+ while i < r.lr_index:
2426
+ if r.prod[i] != p.prod[i+1]:
2427
+ break
2428
+ i = i + 1
2429
+ else:
2430
+ lookb.append((j, r))
2431
+ for i in includes:
2432
+ if i not in includedict:
2433
+ includedict[i] = []
2434
+ includedict[i].append((state, N))
2435
+ lookdict[(state, N)] = lookb
2436
+
2437
+ return lookdict, includedict
2438
+
2439
+ # -----------------------------------------------------------------------------
2440
+ # compute_read_sets()
2441
+ #
2442
+ # Given a set of LR(0) items, this function computes the read sets.
2443
+ #
2444
+ # Inputs: C = Set of LR(0) items
2445
+ # ntrans = Set of nonterminal transitions
2446
+ # nullable = Set of empty transitions
2447
+ #
2448
+ # Returns a set containing the read sets
2449
+ # -----------------------------------------------------------------------------
2450
+
2451
+ def compute_read_sets(self, C, ntrans, nullable):
2452
+ FP = lambda x: self.dr_relation(C, x, nullable)
2453
+ R = lambda x: self.reads_relation(C, x, nullable)
2454
+ F = digraph(ntrans, R, FP)
2455
+ return F
2456
+
2457
+ # -----------------------------------------------------------------------------
2458
+ # compute_follow_sets()
2459
+ #
2460
+ # Given a set of LR(0) items, a set of non-terminal transitions, a readset,
2461
+ # and an include set, this function computes the follow sets
2462
+ #
2463
+ # Follow(p,A) = Read(p,A) U U {Follow(p',B) | (p,A) INCLUDES (p',B)}
2464
+ #
2465
+ # Inputs:
2466
+ # ntrans = Set of nonterminal transitions
2467
+ # readsets = Readset (previously computed)
2468
+ # inclsets = Include sets (previously computed)
2469
+ #
2470
+ # Returns a set containing the follow sets
2471
+ # -----------------------------------------------------------------------------
2472
+
2473
+ def compute_follow_sets(self, ntrans, readsets, inclsets):
2474
+ FP = lambda x: readsets[x]
2475
+ R = lambda x: inclsets.get(x, [])
2476
+ F = digraph(ntrans, R, FP)
2477
+ return F
2478
+
2479
+ # -----------------------------------------------------------------------------
2480
+ # add_lookaheads()
2481
+ #
2482
+ # Attaches the lookahead symbols to grammar rules.
2483
+ #
2484
+ # Inputs: lookbacks - Set of lookback relations
2485
+ # followset - Computed follow set
2486
+ #
2487
+ # This function directly attaches the lookaheads to productions contained
2488
+ # in the lookbacks set
2489
+ # -----------------------------------------------------------------------------
2490
+
2491
+ def add_lookaheads(self, lookbacks, followset):
2492
+ for trans, lb in lookbacks.items():
2493
+ # Loop over productions in lookback
2494
+ for state, p in lb:
2495
+ if state not in p.lookaheads:
2496
+ p.lookaheads[state] = []
2497
+ f = followset.get(trans, [])
2498
+ for a in f:
2499
+ if a not in p.lookaheads[state]:
2500
+ p.lookaheads[state].append(a)
2501
+
2502
+ # -----------------------------------------------------------------------------
2503
+ # add_lalr_lookaheads()
2504
+ #
2505
+ # This function does all of the work of adding lookahead information for use
2506
+ # with LALR parsing
2507
+ # -----------------------------------------------------------------------------
2508
+
2509
+ def add_lalr_lookaheads(self, C):
2510
+ # Determine all of the nullable nonterminals
2511
+ nullable = self.compute_nullable_nonterminals()
2512
+
2513
+ # Find all non-terminal transitions
2514
+ trans = self.find_nonterminal_transitions(C)
2515
+
2516
+ # Compute read sets
2517
+ readsets = self.compute_read_sets(C, trans, nullable)
2518
+
2519
+ # Compute lookback/includes relations
2520
+ lookd, included = self.compute_lookback_includes(C, trans, nullable)
2521
+
2522
+ # Compute LALR FOLLOW sets
2523
+ followsets = self.compute_follow_sets(trans, readsets, included)
2524
+
2525
+ # Add all of the lookaheads
2526
+ self.add_lookaheads(lookd, followsets)
2527
+
2528
+ # -----------------------------------------------------------------------------
2529
+ # lr_parse_table()
2530
+ #
2531
+ # This function constructs the parse tables for SLR or LALR
2532
+ # -----------------------------------------------------------------------------
2533
+ def lr_parse_table(self):
2534
+ Productions = self.grammar.Productions
2535
+ Precedence = self.grammar.Precedence
2536
+ goto = self.lr_goto # Goto array
2537
+ action = self.lr_action # Action array
2538
+ log = self.log # Logger for output
2539
+
2540
+ actionp = {} # Action production array (temporary)
2541
+
2542
+ log.info('Parsing method: %s', self.lr_method)
2543
+
2544
+ # Step 1: Construct C = { I0, I1, ... IN}, collection of LR(0) items
2545
+ # This determines the number of states
2546
+
2547
+ C = self.lr0_items()
2548
+
2549
+ if self.lr_method == 'LALR':
2550
+ self.add_lalr_lookaheads(C)
2551
+
2552
+ # Build the parser table, state by state
2553
+ st = 0
2554
+ for I in C:
2555
+ # Loop over each production in I
2556
+ actlist = [] # List of actions
2557
+ st_action = {}
2558
+ st_actionp = {}
2559
+ st_goto = {}
2560
+ log.info('')
2561
+ log.info('state %d', st)
2562
+ log.info('')
2563
+ for p in I:
2564
+ log.info(' (%d) %s', p.number, p)
2565
+ log.info('')
2566
+
2567
+ for p in I:
2568
+ if p.len == p.lr_index + 1:
2569
+ if p.name == "S'":
2570
+ # Start symbol. Accept!
2571
+ st_action['$end'] = 0
2572
+ st_actionp['$end'] = p
2573
+ else:
2574
+ # We are at the end of a production. Reduce!
2575
+ if self.lr_method == 'LALR':
2576
+ laheads = p.lookaheads[st]
2577
+ else:
2578
+ laheads = self.grammar.Follow[p.name]
2579
+ for a in laheads:
2580
+ actlist.append((a, p, 'reduce using rule %d (%s)' % (p.number, p)))
2581
+ r = st_action.get(a)
2582
+ if r is not None:
2583
+ # Whoa. Have a shift/reduce or reduce/reduce conflict
2584
+ if r > 0:
2585
+ # Need to decide on shift or reduce here
2586
+ # By default we favor shifting. Need to add
2587
+ # some precedence rules here.
2588
+
2589
+ # Shift precedence comes from the token
2590
+ sprec, slevel = Precedence.get(a, ('right', 0))
2591
+
2592
+ # Reduce precedence comes from rule being reduced (p)
2593
+ rprec, rlevel = Productions[p.number].prec
2594
+
2595
+ if (slevel < rlevel) or ((slevel == rlevel) and (rprec == 'left')):
2596
+ # We really need to reduce here.
2597
+ st_action[a] = -p.number
2598
+ st_actionp[a] = p
2599
+ if not slevel and not rlevel:
2600
+ log.info(' ! shift/reduce conflict for %s resolved as reduce', a)
2601
+ self.sr_conflicts.append((st, a, 'reduce'))
2602
+ Productions[p.number].reduced += 1
2603
+ elif (slevel == rlevel) and (rprec == 'nonassoc'):
2604
+ st_action[a] = None
2605
+ else:
2606
+ # Hmmm. Guess we'll keep the shift
2607
+ if not rlevel:
2608
+ log.info(' ! shift/reduce conflict for %s resolved as shift', a)
2609
+ self.sr_conflicts.append((st, a, 'shift'))
2610
+ elif r < 0:
2611
+ # Reduce/reduce conflict. In this case, we favor the rule
2612
+ # that was defined first in the grammar file
2613
+ oldp = Productions[-r]
2614
+ pp = Productions[p.number]
2615
+ if oldp.line > pp.line:
2616
+ st_action[a] = -p.number
2617
+ st_actionp[a] = p
2618
+ chosenp, rejectp = pp, oldp
2619
+ Productions[p.number].reduced += 1
2620
+ Productions[oldp.number].reduced -= 1
2621
+ else:
2622
+ chosenp, rejectp = oldp, pp
2623
+ self.rr_conflicts.append((st, chosenp, rejectp))
2624
+ log.info(' ! reduce/reduce conflict for %s resolved using rule %d (%s)',
2625
+ a, st_actionp[a].number, st_actionp[a])
2626
+ else:
2627
+ raise LALRError('Unknown conflict in state %d' % st)
2628
+ else:
2629
+ st_action[a] = -p.number
2630
+ st_actionp[a] = p
2631
+ Productions[p.number].reduced += 1
2632
+ else:
2633
+ i = p.lr_index
2634
+ a = p.prod[i+1] # Get symbol right after the "."
2635
+ if a in self.grammar.Terminals:
2636
+ g = self.lr0_goto(I, a)
2637
+ j = self.lr0_cidhash.get(id(g), -1)
2638
+ if j >= 0:
2639
+ # We are in a shift state
2640
+ actlist.append((a, p, 'shift and go to state %d' % j))
2641
+ r = st_action.get(a)
2642
+ if r is not None:
2643
+ # Whoa have a shift/reduce or shift/shift conflict
2644
+ if r > 0:
2645
+ if r != j:
2646
+ raise LALRError('Shift/shift conflict in state %d' % st)
2647
+ elif r < 0:
2648
+ # Do a precedence check.
2649
+ # - if precedence of reduce rule is higher, we reduce.
2650
+ # - if precedence of reduce is same and left assoc, we reduce.
2651
+ # - otherwise we shift
2652
+
2653
+ # Shift precedence comes from the token
2654
+ sprec, slevel = Precedence.get(a, ('right', 0))
2655
+
2656
+ # Reduce precedence comes from the rule that could have been reduced
2657
+ rprec, rlevel = Productions[st_actionp[a].number].prec
2658
+
2659
+ if (slevel > rlevel) or ((slevel == rlevel) and (rprec == 'right')):
2660
+ # We decide to shift here... highest precedence to shift
2661
+ Productions[st_actionp[a].number].reduced -= 1
2662
+ st_action[a] = j
2663
+ st_actionp[a] = p
2664
+ if not rlevel:
2665
+ log.info(' ! shift/reduce conflict for %s resolved as shift', a)
2666
+ self.sr_conflicts.append((st, a, 'shift'))
2667
+ elif (slevel == rlevel) and (rprec == 'nonassoc'):
2668
+ st_action[a] = None
2669
+ else:
2670
+ # Hmmm. Guess we'll keep the reduce
2671
+ if not slevel and not rlevel:
2672
+ log.info(' ! shift/reduce conflict for %s resolved as reduce', a)
2673
+ self.sr_conflicts.append((st, a, 'reduce'))
2674
+
2675
+ else:
2676
+ raise LALRError('Unknown conflict in state %d' % st)
2677
+ else:
2678
+ st_action[a] = j
2679
+ st_actionp[a] = p
2680
+
2681
+ # Print the actions associated with each terminal
2682
+ _actprint = {}
2683
+ for a, p, m in actlist:
2684
+ if a in st_action:
2685
+ if p is st_actionp[a]:
2686
+ log.info(' %-15s %s', a, m)
2687
+ _actprint[(a, m)] = 1
2688
+ log.info('')
2689
+ # Print the actions that were not used. (debugging)
2690
+ not_used = 0
2691
+ for a, p, m in actlist:
2692
+ if a in st_action:
2693
+ if p is not st_actionp[a]:
2694
+ if not (a, m) in _actprint:
2695
+ log.debug(' ! %-15s [ %s ]', a, m)
2696
+ not_used = 1
2697
+ _actprint[(a, m)] = 1
2698
+ if not_used:
2699
+ log.debug('')
2700
+
2701
+ # Construct the goto table for this state
2702
+
2703
+ nkeys = {}
2704
+ for ii in I:
2705
+ for s in ii.usyms:
2706
+ if s in self.grammar.Nonterminals:
2707
+ nkeys[s] = None
2708
+ for n in nkeys:
2709
+ g = self.lr0_goto(I, n)
2710
+ j = self.lr0_cidhash.get(id(g), -1)
2711
+ if j >= 0:
2712
+ st_goto[n] = j
2713
+ log.info(' %-30s shift and go to state %d', n, j)
2714
+
2715
+ action[st] = st_action
2716
+ actionp[st] = st_actionp
2717
+ goto[st] = st_goto
2718
+ st += 1
2719
+
2720
+ # -----------------------------------------------------------------------------
2721
+ # write()
2722
+ #
2723
+ # This function writes the LR parsing tables to a file
2724
+ # -----------------------------------------------------------------------------
2725
+
2726
+ def write_table(self, tabmodule, outputdir='', signature=''):
2727
+ if isinstance(tabmodule, types.ModuleType):
2728
+ raise IOError("Won't overwrite existing tabmodule")
2729
+
2730
+ basemodulename = tabmodule.split('.')[-1]
2731
+ filename = os.path.join(outputdir, basemodulename) + '.py'
2732
+ try:
2733
+ f = open(filename, 'w')
2734
+
2735
+ f.write('''
2736
+ # %s
2737
+ # This file is automatically generated. Do not edit.
2738
+ _tabversion = %r
2739
+
2740
+ _lr_method = %r
2741
+
2742
+ _lr_signature = %r
2743
+ ''' % (os.path.basename(filename), __tabversion__, self.lr_method, signature))
2744
+
2745
+ # Change smaller to 0 to go back to original tables
2746
+ smaller = 1
2747
+
2748
+ # Factor out names to try and make smaller
2749
+ if smaller:
2750
+ items = {}
2751
+
2752
+ for s, nd in self.lr_action.items():
2753
+ for name, v in nd.items():
2754
+ i = items.get(name)
2755
+ if not i:
2756
+ i = ([], [])
2757
+ items[name] = i
2758
+ i[0].append(s)
2759
+ i[1].append(v)
2760
+
2761
+ f.write('\n_lr_action_items = {')
2762
+ for k, v in items.items():
2763
+ f.write('%r:([' % k)
2764
+ for i in v[0]:
2765
+ f.write('%r,' % i)
2766
+ f.write('],[')
2767
+ for i in v[1]:
2768
+ f.write('%r,' % i)
2769
+
2770
+ f.write(']),')
2771
+ f.write('}\n')
2772
+
2773
+ f.write('''
2774
+ _lr_action = {}
2775
+ for _k, _v in _lr_action_items.items():
2776
+ for _x,_y in zip(_v[0],_v[1]):
2777
+ if not _x in _lr_action: _lr_action[_x] = {}
2778
+ _lr_action[_x][_k] = _y
2779
+ del _lr_action_items
2780
+ ''')
2781
+
2782
+ else:
2783
+ f.write('\n_lr_action = { ')
2784
+ for k, v in self.lr_action.items():
2785
+ f.write('(%r,%r):%r,' % (k[0], k[1], v))
2786
+ f.write('}\n')
2787
+
2788
+ if smaller:
2789
+ # Factor out names to try and make smaller
2790
+ items = {}
2791
+
2792
+ for s, nd in self.lr_goto.items():
2793
+ for name, v in nd.items():
2794
+ i = items.get(name)
2795
+ if not i:
2796
+ i = ([], [])
2797
+ items[name] = i
2798
+ i[0].append(s)
2799
+ i[1].append(v)
2800
+
2801
+ f.write('\n_lr_goto_items = {')
2802
+ for k, v in items.items():
2803
+ f.write('%r:([' % k)
2804
+ for i in v[0]:
2805
+ f.write('%r,' % i)
2806
+ f.write('],[')
2807
+ for i in v[1]:
2808
+ f.write('%r,' % i)
2809
+
2810
+ f.write(']),')
2811
+ f.write('}\n')
2812
+
2813
+ f.write('''
2814
+ _lr_goto = {}
2815
+ for _k, _v in _lr_goto_items.items():
2816
+ for _x, _y in zip(_v[0], _v[1]):
2817
+ if not _x in _lr_goto: _lr_goto[_x] = {}
2818
+ _lr_goto[_x][_k] = _y
2819
+ del _lr_goto_items
2820
+ ''')
2821
+ else:
2822
+ f.write('\n_lr_goto = { ')
2823
+ for k, v in self.lr_goto.items():
2824
+ f.write('(%r,%r):%r,' % (k[0], k[1], v))
2825
+ f.write('}\n')
2826
+
2827
+ # Write production table
2828
+ f.write('_lr_productions = [\n')
2829
+ for p in self.lr_productions:
2830
+ if p.func:
2831
+ f.write(' (%r,%r,%d,%r,%r,%d),\n' % (p.str, p.name, p.len,
2832
+ p.func, os.path.basename(p.file), p.line))
2833
+ else:
2834
+ f.write(' (%r,%r,%d,None,None,None),\n' % (str(p), p.name, p.len))
2835
+ f.write(']\n')
2836
+ f.close()
2837
+
2838
+ except IOError as e:
2839
+ raise
2840
+
2841
+
2842
+ # -----------------------------------------------------------------------------
2843
+ # pickle_table()
2844
+ #
2845
+ # This function pickles the LR parsing tables to a supplied file object
2846
+ # -----------------------------------------------------------------------------
2847
+
2848
+ def pickle_table(self, filename, signature=''):
2849
+ try:
2850
+ import cPickle as pickle
2851
+ except ImportError:
2852
+ import pickle
2853
+ with open(filename, 'wb') as outf:
2854
+ pickle.dump(__tabversion__, outf, pickle_protocol)
2855
+ pickle.dump(self.lr_method, outf, pickle_protocol)
2856
+ pickle.dump(signature, outf, pickle_protocol)
2857
+ pickle.dump(self.lr_action, outf, pickle_protocol)
2858
+ pickle.dump(self.lr_goto, outf, pickle_protocol)
2859
+
2860
+ outp = []
2861
+ for p in self.lr_productions:
2862
+ if p.func:
2863
+ outp.append((p.str, p.name, p.len, p.func, os.path.basename(p.file), p.line))
2864
+ else:
2865
+ outp.append((str(p), p.name, p.len, None, None, None))
2866
+ pickle.dump(outp, outf, pickle_protocol)
2867
+
2868
+ # -----------------------------------------------------------------------------
2869
+ # === INTROSPECTION ===
2870
+ #
2871
+ # The following functions and classes are used to implement the PLY
2872
+ # introspection features followed by the yacc() function itself.
2873
+ # -----------------------------------------------------------------------------
2874
+
2875
+ # -----------------------------------------------------------------------------
2876
+ # get_caller_module_dict()
2877
+ #
2878
+ # This function returns a dictionary containing all of the symbols defined within
2879
+ # a caller further down the call stack. This is used to get the environment
2880
+ # associated with the yacc() call if none was provided.
2881
+ # -----------------------------------------------------------------------------
2882
+
2883
+ def get_caller_module_dict(levels):
2884
+ f = sys._getframe(levels)
2885
+ ldict = f.f_globals.copy()
2886
+ if f.f_globals != f.f_locals:
2887
+ ldict.update(f.f_locals)
2888
+ return ldict
2889
+
2890
+ # -----------------------------------------------------------------------------
2891
+ # parse_grammar()
2892
+ #
2893
+ # This takes a raw grammar rule string and parses it into production data
2894
+ # -----------------------------------------------------------------------------
2895
+ def parse_grammar(doc, file, line):
2896
+ grammar = []
2897
+ # Split the doc string into lines
2898
+ pstrings = doc.splitlines()
2899
+ lastp = None
2900
+ dline = line
2901
+ for ps in pstrings:
2902
+ dline += 1
2903
+ p = ps.split()
2904
+ if not p:
2905
+ continue
2906
+ try:
2907
+ if p[0] == '|':
2908
+ # This is a continuation of a previous rule
2909
+ if not lastp:
2910
+ raise SyntaxError("%s:%d: Misplaced '|'" % (file, dline))
2911
+ prodname = lastp
2912
+ syms = p[1:]
2913
+ else:
2914
+ prodname = p[0]
2915
+ lastp = prodname
2916
+ syms = p[2:]
2917
+ assign = p[1]
2918
+ if assign != ':' and assign != '::=':
2919
+ raise SyntaxError("%s:%d: Syntax error. Expected ':'" % (file, dline))
2920
+
2921
+ grammar.append((file, dline, prodname, syms))
2922
+ except SyntaxError:
2923
+ raise
2924
+ except Exception:
2925
+ raise SyntaxError('%s:%d: Syntax error in rule %r' % (file, dline, ps.strip()))
2926
+
2927
+ return grammar
2928
+
2929
+ # -----------------------------------------------------------------------------
2930
+ # ParserReflect()
2931
+ #
2932
+ # This class represents information extracted for building a parser including
2933
+ # start symbol, error function, tokens, precedence list, action functions,
2934
+ # etc.
2935
+ # -----------------------------------------------------------------------------
2936
+ class ParserReflect(object):
2937
+ def __init__(self, pdict, log=None):
2938
+ self.pdict = pdict
2939
+ self.start = None
2940
+ self.error_func = None
2941
+ self.tokens = None
2942
+ self.modules = set()
2943
+ self.grammar = []
2944
+ self.error = False
2945
+
2946
+ if log is None:
2947
+ self.log = PlyLogger(sys.stderr)
2948
+ else:
2949
+ self.log = log
2950
+
2951
+ # Get all of the basic information
2952
+ def get_all(self):
2953
+ self.get_start()
2954
+ self.get_error_func()
2955
+ self.get_tokens()
2956
+ self.get_precedence()
2957
+ self.get_pfunctions()
2958
+
2959
+ # Validate all of the information
2960
+ def validate_all(self):
2961
+ self.validate_start()
2962
+ self.validate_error_func()
2963
+ self.validate_tokens()
2964
+ self.validate_precedence()
2965
+ self.validate_pfunctions()
2966
+ self.validate_modules()
2967
+ return self.error
2968
+
2969
+ # Compute a signature over the grammar
2970
+ def signature(self):
2971
+ parts = []
2972
+ try:
2973
+ if self.start:
2974
+ parts.append(self.start)
2975
+ if self.prec:
2976
+ parts.append(''.join([''.join(p) for p in self.prec]))
2977
+ if self.tokens:
2978
+ parts.append(' '.join(self.tokens))
2979
+ for f in self.pfuncs:
2980
+ if f[3]:
2981
+ parts.append(f[3])
2982
+ except (TypeError, ValueError):
2983
+ pass
2984
+ return ''.join(parts)
2985
+
2986
+ # -----------------------------------------------------------------------------
2987
+ # validate_modules()
2988
+ #
2989
+ # This method checks to see if there are duplicated p_rulename() functions
2990
+ # in the parser module file. Without this function, it is really easy for
2991
+ # users to make mistakes by cutting and pasting code fragments (and it's a real
2992
+ # bugger to try and figure out why the resulting parser doesn't work). Therefore,
2993
+ # we just do a little regular expression pattern matching of def statements
2994
+ # to try and detect duplicates.
2995
+ # -----------------------------------------------------------------------------
2996
+
2997
+ def validate_modules(self):
2998
+ # Match def p_funcname(
2999
+ fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(')
3000
+
3001
+ for module in self.modules:
3002
+ try:
3003
+ lines, linen = inspect.getsourcelines(module)
3004
+ except IOError:
3005
+ continue
3006
+
3007
+ counthash = {}
3008
+ for linen, line in enumerate(lines):
3009
+ linen += 1
3010
+ m = fre.match(line)
3011
+ if m:
3012
+ name = m.group(1)
3013
+ prev = counthash.get(name)
3014
+ if not prev:
3015
+ counthash[name] = linen
3016
+ else:
3017
+ filename = inspect.getsourcefile(module)
3018
+ self.log.warning('%s:%d: Function %s redefined. Previously defined on line %d',
3019
+ filename, linen, name, prev)
3020
+
3021
+ # Get the start symbol
3022
+ def get_start(self):
3023
+ self.start = self.pdict.get('start')
3024
+
3025
+ # Validate the start symbol
3026
+ def validate_start(self):
3027
+ if self.start is not None:
3028
+ if not isinstance(self.start, string_types):
3029
+ self.log.error("'start' must be a string")
3030
+
3031
+ # Look for error handler
3032
+ def get_error_func(self):
3033
+ self.error_func = self.pdict.get('p_error')
3034
+
3035
+ # Validate the error function
3036
+ def validate_error_func(self):
3037
+ if self.error_func:
3038
+ if isinstance(self.error_func, types.FunctionType):
3039
+ ismethod = 0
3040
+ elif isinstance(self.error_func, types.MethodType):
3041
+ ismethod = 1
3042
+ else:
3043
+ self.log.error("'p_error' defined, but is not a function or method")
3044
+ self.error = True
3045
+ return
3046
+
3047
+ eline = self.error_func.__code__.co_firstlineno
3048
+ efile = self.error_func.__code__.co_filename
3049
+ module = inspect.getmodule(self.error_func)
3050
+ self.modules.add(module)
3051
+
3052
+ argcount = self.error_func.__code__.co_argcount - ismethod
3053
+ if argcount != 1:
3054
+ self.log.error('%s:%d: p_error() requires 1 argument', efile, eline)
3055
+ self.error = True
3056
+
3057
+ # Get the tokens map
3058
+ def get_tokens(self):
3059
+ tokens = self.pdict.get('tokens')
3060
+ if not tokens:
3061
+ self.log.error('No token list is defined')
3062
+ self.error = True
3063
+ return
3064
+
3065
+ if not isinstance(tokens, (list, tuple)):
3066
+ self.log.error('tokens must be a list or tuple')
3067
+ self.error = True
3068
+ return
3069
+
3070
+ if not tokens:
3071
+ self.log.error('tokens is empty')
3072
+ self.error = True
3073
+ return
3074
+
3075
+ self.tokens = tokens
3076
+
3077
+ # Validate the tokens
3078
+ def validate_tokens(self):
3079
+ # Validate the tokens.
3080
+ if 'error' in self.tokens:
3081
+ self.log.error("Illegal token name 'error'. Is a reserved word")
3082
+ self.error = True
3083
+ return
3084
+
3085
+ terminals = set()
3086
+ for n in self.tokens:
3087
+ if n in terminals:
3088
+ self.log.warning('Token %r multiply defined', n)
3089
+ terminals.add(n)
3090
+
3091
+ # Get the precedence map (if any)
3092
+ def get_precedence(self):
3093
+ self.prec = self.pdict.get('precedence')
3094
+
3095
+ # Validate and parse the precedence map
3096
+ def validate_precedence(self):
3097
+ preclist = []
3098
+ if self.prec:
3099
+ if not isinstance(self.prec, (list, tuple)):
3100
+ self.log.error('precedence must be a list or tuple')
3101
+ self.error = True
3102
+ return
3103
+ for level, p in enumerate(self.prec):
3104
+ if not isinstance(p, (list, tuple)):
3105
+ self.log.error('Bad precedence table')
3106
+ self.error = True
3107
+ return
3108
+
3109
+ if len(p) < 2:
3110
+ self.log.error('Malformed precedence entry %s. Must be (assoc, term, ..., term)', p)
3111
+ self.error = True
3112
+ return
3113
+ assoc = p[0]
3114
+ if not isinstance(assoc, string_types):
3115
+ self.log.error('precedence associativity must be a string')
3116
+ self.error = True
3117
+ return
3118
+ for term in p[1:]:
3119
+ if not isinstance(term, string_types):
3120
+ self.log.error('precedence items must be strings')
3121
+ self.error = True
3122
+ return
3123
+ preclist.append((term, assoc, level+1))
3124
+ self.preclist = preclist
3125
+
3126
+ # Get all p_functions from the grammar
3127
+ def get_pfunctions(self):
3128
+ p_functions = []
3129
+ for name, item in self.pdict.items():
3130
+ if not name.startswith('p_') or name == 'p_error':
3131
+ continue
3132
+ if isinstance(item, (types.FunctionType, types.MethodType)):
3133
+ line = getattr(item, 'co_firstlineno', item.__code__.co_firstlineno)
3134
+ module = inspect.getmodule(item)
3135
+ p_functions.append((line, module, name, item.__doc__))
3136
+
3137
+ # Sort all of the actions by line number; make sure to stringify
3138
+ # modules to make them sortable, since `line` may not uniquely sort all
3139
+ # p functions
3140
+ p_functions.sort(key=lambda p_function: (
3141
+ p_function[0],
3142
+ str(p_function[1]),
3143
+ p_function[2],
3144
+ p_function[3]))
3145
+ self.pfuncs = p_functions
3146
+
3147
+ # Validate all of the p_functions
3148
+ def validate_pfunctions(self):
3149
+ grammar = []
3150
+ # Check for non-empty symbols
3151
+ if len(self.pfuncs) == 0:
3152
+ self.log.error('no rules of the form p_rulename are defined')
3153
+ self.error = True
3154
+ return
3155
+
3156
+ for line, module, name, doc in self.pfuncs:
3157
+ file = inspect.getsourcefile(module)
3158
+ func = self.pdict[name]
3159
+ if isinstance(func, types.MethodType):
3160
+ reqargs = 2
3161
+ else:
3162
+ reqargs = 1
3163
+ if func.__code__.co_argcount > reqargs:
3164
+ self.log.error('%s:%d: Rule %r has too many arguments', file, line, func.__name__)
3165
+ self.error = True
3166
+ elif func.__code__.co_argcount < reqargs:
3167
+ self.log.error('%s:%d: Rule %r requires an argument', file, line, func.__name__)
3168
+ self.error = True
3169
+ elif not func.__doc__:
3170
+ self.log.warning('%s:%d: No documentation string specified in function %r (ignored)',
3171
+ file, line, func.__name__)
3172
+ else:
3173
+ try:
3174
+ parsed_g = parse_grammar(doc, file, line)
3175
+ for g in parsed_g:
3176
+ grammar.append((name, g))
3177
+ except SyntaxError as e:
3178
+ self.log.error(str(e))
3179
+ self.error = True
3180
+
3181
+ # Looks like a valid grammar rule
3182
+ # Mark the file in which defined.
3183
+ self.modules.add(module)
3184
+
3185
+ # Secondary validation step that looks for p_ definitions that are not functions
3186
+ # or functions that look like they might be grammar rules.
3187
+
3188
+ for n, v in self.pdict.items():
3189
+ if n.startswith('p_') and isinstance(v, (types.FunctionType, types.MethodType)):
3190
+ continue
3191
+ if n.startswith('t_'):
3192
+ continue
3193
+ if n.startswith('p_') and n != 'p_error':
3194
+ self.log.warning('%r not defined as a function', n)
3195
+ if ((isinstance(v, types.FunctionType) and v.__code__.co_argcount == 1) or
3196
+ (isinstance(v, types.MethodType) and v.__func__.__code__.co_argcount == 2)):
3197
+ if v.__doc__:
3198
+ try:
3199
+ doc = v.__doc__.split(' ')
3200
+ if doc[1] == ':':
3201
+ self.log.warning('%s:%d: Possible grammar rule %r defined without p_ prefix',
3202
+ v.__code__.co_filename, v.__code__.co_firstlineno, n)
3203
+ except IndexError:
3204
+ pass
3205
+
3206
+ self.grammar = grammar
3207
+
3208
+ # -----------------------------------------------------------------------------
3209
+ # yacc(module)
3210
+ #
3211
+ # Build a parser
3212
+ # -----------------------------------------------------------------------------
3213
+
3214
+ def yacc(method='LALR', debug=yaccdebug, module=None, tabmodule=tab_module, start=None,
3215
+ check_recursion=True, optimize=False, write_tables=True, debugfile=debug_file,
3216
+ outputdir=None, debuglog=None, errorlog=None, picklefile=None):
3217
+
3218
+ if tabmodule is None:
3219
+ tabmodule = tab_module
3220
+
3221
+ # Reference to the parsing method of the last built parser
3222
+ global parse
3223
+
3224
+ # If pickling is enabled, table files are not created
3225
+ if picklefile:
3226
+ write_tables = 0
3227
+
3228
+ if errorlog is None:
3229
+ errorlog = PlyLogger(sys.stderr)
3230
+
3231
+ # Get the module dictionary used for the parser
3232
+ if module:
3233
+ _items = [(k, getattr(module, k)) for k in dir(module)]
3234
+ pdict = dict(_items)
3235
+ # If no __file__ attribute is available, try to obtain it from the __module__ instead
3236
+ if '__file__' not in pdict:
3237
+ pdict['__file__'] = sys.modules[pdict['__module__']].__file__
3238
+ else:
3239
+ pdict = get_caller_module_dict(2)
3240
+
3241
+ if outputdir is None:
3242
+ # If no output directory is set, the location of the output files
3243
+ # is determined according to the following rules:
3244
+ # - If tabmodule specifies a package, files go into that package directory
3245
+ # - Otherwise, files go in the same directory as the specifying module
3246
+ if isinstance(tabmodule, types.ModuleType):
3247
+ srcfile = tabmodule.__file__
3248
+ else:
3249
+ if '.' not in tabmodule:
3250
+ srcfile = pdict['__file__']
3251
+ else:
3252
+ parts = tabmodule.split('.')
3253
+ pkgname = '.'.join(parts[:-1])
3254
+ exec('import %s' % pkgname)
3255
+ srcfile = getattr(sys.modules[pkgname], '__file__', '')
3256
+ outputdir = os.path.dirname(srcfile)
3257
+
3258
+ # Determine if the module is package of a package or not.
3259
+ # If so, fix the tabmodule setting so that tables load correctly
3260
+ pkg = pdict.get('__package__')
3261
+ if pkg and isinstance(tabmodule, str):
3262
+ if '.' not in tabmodule:
3263
+ tabmodule = pkg + '.' + tabmodule
3264
+
3265
+
3266
+
3267
+ # Set start symbol if it's specified directly using an argument
3268
+ if start is not None:
3269
+ pdict['start'] = start
3270
+
3271
+ # Collect parser information from the dictionary
3272
+ pinfo = ParserReflect(pdict, log=errorlog)
3273
+ pinfo.get_all()
3274
+
3275
+ if pinfo.error:
3276
+ raise YaccError('Unable to build parser')
3277
+
3278
+ # Check signature against table files (if any)
3279
+ signature = pinfo.signature()
3280
+
3281
+ # Read the tables
3282
+ try:
3283
+ lr = LRTable()
3284
+ if picklefile:
3285
+ read_signature = lr.read_pickle(picklefile)
3286
+ else:
3287
+ read_signature = lr.read_table(tabmodule)
3288
+ if optimize or (read_signature == signature):
3289
+ try:
3290
+ lr.bind_callables(pinfo.pdict)
3291
+ parser = LRParser(lr, pinfo.error_func)
3292
+ parse = parser.parse
3293
+ return parser
3294
+ except Exception as e:
3295
+ errorlog.warning('There was a problem loading the table file: %r', e)
3296
+ except VersionError as e:
3297
+ errorlog.warning(str(e))
3298
+ except ImportError:
3299
+ pass
3300
+
3301
+ if debuglog is None:
3302
+ if debug:
3303
+ try:
3304
+ debuglog = PlyLogger(open(os.path.join(outputdir, debugfile), 'w'))
3305
+ except IOError as e:
3306
+ errorlog.warning("Couldn't open %r. %s" % (debugfile, e))
3307
+ debuglog = NullLogger()
3308
+ else:
3309
+ debuglog = NullLogger()
3310
+
3311
+ debuglog.info('Created by PLY version %s (http://www.dabeaz.com/ply)', __version__)
3312
+
3313
+ errors = False
3314
+
3315
+ # Validate the parser information
3316
+ if pinfo.validate_all():
3317
+ raise YaccError('Unable to build parser')
3318
+
3319
+ if not pinfo.error_func:
3320
+ errorlog.warning('no p_error() function is defined')
3321
+
3322
+ # Create a grammar object
3323
+ grammar = Grammar(pinfo.tokens)
3324
+
3325
+ # Set precedence level for terminals
3326
+ for term, assoc, level in pinfo.preclist:
3327
+ try:
3328
+ grammar.set_precedence(term, assoc, level)
3329
+ except GrammarError as e:
3330
+ errorlog.warning('%s', e)
3331
+
3332
+ # Add productions to the grammar
3333
+ for funcname, gram in pinfo.grammar:
3334
+ file, line, prodname, syms = gram
3335
+ try:
3336
+ grammar.add_production(prodname, syms, funcname, file, line)
3337
+ except GrammarError as e:
3338
+ errorlog.error('%s', e)
3339
+ errors = True
3340
+
3341
+ # Set the grammar start symbols
3342
+ try:
3343
+ if start is None:
3344
+ grammar.set_start(pinfo.start)
3345
+ else:
3346
+ grammar.set_start(start)
3347
+ except GrammarError as e:
3348
+ errorlog.error(str(e))
3349
+ errors = True
3350
+
3351
+ if errors:
3352
+ raise YaccError('Unable to build parser')
3353
+
3354
+ # Verify the grammar structure
3355
+ undefined_symbols = grammar.undefined_symbols()
3356
+ for sym, prod in undefined_symbols:
3357
+ errorlog.error('%s:%d: Symbol %r used, but not defined as a token or a rule', prod.file, prod.line, sym)
3358
+ errors = True
3359
+
3360
+ unused_terminals = grammar.unused_terminals()
3361
+ if unused_terminals:
3362
+ debuglog.info('')
3363
+ debuglog.info('Unused terminals:')
3364
+ debuglog.info('')
3365
+ for term in unused_terminals:
3366
+ errorlog.warning('Token %r defined, but not used', term)
3367
+ debuglog.info(' %s', term)
3368
+
3369
+ # Print out all productions to the debug log
3370
+ if debug:
3371
+ debuglog.info('')
3372
+ debuglog.info('Grammar')
3373
+ debuglog.info('')
3374
+ for n, p in enumerate(grammar.Productions):
3375
+ debuglog.info('Rule %-5d %s', n, p)
3376
+
3377
+ # Find unused non-terminals
3378
+ unused_rules = grammar.unused_rules()
3379
+ for prod in unused_rules:
3380
+ errorlog.warning('%s:%d: Rule %r defined, but not used', prod.file, prod.line, prod.name)
3381
+
3382
+ if len(unused_terminals) == 1:
3383
+ errorlog.warning('There is 1 unused token')
3384
+ if len(unused_terminals) > 1:
3385
+ errorlog.warning('There are %d unused tokens', len(unused_terminals))
3386
+
3387
+ if len(unused_rules) == 1:
3388
+ errorlog.warning('There is 1 unused rule')
3389
+ if len(unused_rules) > 1:
3390
+ errorlog.warning('There are %d unused rules', len(unused_rules))
3391
+
3392
+ if debug:
3393
+ debuglog.info('')
3394
+ debuglog.info('Terminals, with rules where they appear')
3395
+ debuglog.info('')
3396
+ terms = list(grammar.Terminals)
3397
+ terms.sort()
3398
+ for term in terms:
3399
+ debuglog.info('%-20s : %s', term, ' '.join([str(s) for s in grammar.Terminals[term]]))
3400
+
3401
+ debuglog.info('')
3402
+ debuglog.info('Nonterminals, with rules where they appear')
3403
+ debuglog.info('')
3404
+ nonterms = list(grammar.Nonterminals)
3405
+ nonterms.sort()
3406
+ for nonterm in nonterms:
3407
+ debuglog.info('%-20s : %s', nonterm, ' '.join([str(s) for s in grammar.Nonterminals[nonterm]]))
3408
+ debuglog.info('')
3409
+
3410
+ if check_recursion:
3411
+ unreachable = grammar.find_unreachable()
3412
+ for u in unreachable:
3413
+ errorlog.warning('Symbol %r is unreachable', u)
3414
+
3415
+ infinite = grammar.infinite_cycles()
3416
+ for inf in infinite:
3417
+ errorlog.error('Infinite recursion detected for symbol %r', inf)
3418
+ errors = True
3419
+
3420
+ unused_prec = grammar.unused_precedence()
3421
+ for term, assoc in unused_prec:
3422
+ errorlog.error('Precedence rule %r defined for unknown symbol %r', assoc, term)
3423
+ errors = True
3424
+
3425
+ if errors:
3426
+ raise YaccError('Unable to build parser')
3427
+
3428
+ # Run the LRGeneratedTable on the grammar
3429
+ if debug:
3430
+ errorlog.debug('Generating %s tables', method)
3431
+
3432
+ lr = LRGeneratedTable(grammar, method, debuglog)
3433
+
3434
+ if debug:
3435
+ num_sr = len(lr.sr_conflicts)
3436
+
3437
+ # Report shift/reduce and reduce/reduce conflicts
3438
+ if num_sr == 1:
3439
+ errorlog.warning('1 shift/reduce conflict')
3440
+ elif num_sr > 1:
3441
+ errorlog.warning('%d shift/reduce conflicts', num_sr)
3442
+
3443
+ num_rr = len(lr.rr_conflicts)
3444
+ if num_rr == 1:
3445
+ errorlog.warning('1 reduce/reduce conflict')
3446
+ elif num_rr > 1:
3447
+ errorlog.warning('%d reduce/reduce conflicts', num_rr)
3448
+
3449
+ # Write out conflicts to the output file
3450
+ if debug and (lr.sr_conflicts or lr.rr_conflicts):
3451
+ debuglog.warning('')
3452
+ debuglog.warning('Conflicts:')
3453
+ debuglog.warning('')
3454
+
3455
+ for state, tok, resolution in lr.sr_conflicts:
3456
+ debuglog.warning('shift/reduce conflict for %s in state %d resolved as %s', tok, state, resolution)
3457
+
3458
+ already_reported = set()
3459
+ for state, rule, rejected in lr.rr_conflicts:
3460
+ if (state, id(rule), id(rejected)) in already_reported:
3461
+ continue
3462
+ debuglog.warning('reduce/reduce conflict in state %d resolved using rule (%s)', state, rule)
3463
+ debuglog.warning('rejected rule (%s) in state %d', rejected, state)
3464
+ errorlog.warning('reduce/reduce conflict in state %d resolved using rule (%s)', state, rule)
3465
+ errorlog.warning('rejected rule (%s) in state %d', rejected, state)
3466
+ already_reported.add((state, id(rule), id(rejected)))
3467
+
3468
+ warned_never = []
3469
+ for state, rule, rejected in lr.rr_conflicts:
3470
+ if not rejected.reduced and (rejected not in warned_never):
3471
+ debuglog.warning('Rule (%s) is never reduced', rejected)
3472
+ errorlog.warning('Rule (%s) is never reduced', rejected)
3473
+ warned_never.append(rejected)
3474
+
3475
+ # Write the table file if requested
3476
+ if write_tables:
3477
+ try:
3478
+ lr.write_table(tabmodule, outputdir, signature)
3479
+ except IOError as e:
3480
+ errorlog.warning("Couldn't create %r. %s" % (tabmodule, e))
3481
+
3482
+ # Write a pickled version of the tables
3483
+ if picklefile:
3484
+ try:
3485
+ lr.pickle_table(picklefile, signature)
3486
+ except IOError as e:
3487
+ errorlog.warning("Couldn't create %r. %s" % (picklefile, e))
3488
+
3489
+ # Build the parser
3490
+ lr.bind_callables(pinfo.pdict)
3491
+ parser = LRParser(lr, pinfo.error_func)
3492
+
3493
+ parse = parser.parse
3494
+ return parser