py2docfx 0.1.11.dev1827111__py3-none-any.whl → 0.1.11.dev1859874__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 (2004) hide show
  1. py2docfx/__main__.py +4 -16
  2. py2docfx/convert_prepare/package_info.py +1 -1
  3. py2docfx/convert_prepare/tests/test_package_info.py +7 -22
  4. py2docfx/convert_prepare/tests/test_params.py +5 -0
  5. py2docfx/venv/0/Lib/site-packages/_distutils_hack/__init__.py +3 -4
  6. py2docfx/venv/0/Lib/site-packages/certifi/__init__.py +1 -1
  7. py2docfx/venv/0/Lib/site-packages/idna/__init__.py +2 -1
  8. py2docfx/venv/0/Lib/site-packages/idna/codec.py +31 -27
  9. py2docfx/venv/0/Lib/site-packages/idna/compat.py +6 -4
  10. py2docfx/venv/0/Lib/site-packages/idna/core.py +161 -119
  11. py2docfx/venv/0/Lib/site-packages/idna/idnadata.py +3537 -3539
  12. py2docfx/venv/0/Lib/site-packages/idna/intranges.py +7 -4
  13. py2docfx/venv/0/Lib/site-packages/idna/package_data.py +1 -2
  14. py2docfx/venv/0/Lib/site-packages/idna/uts46data.py +8261 -8178
  15. py2docfx/venv/0/Lib/site-packages/pkg_resources/__init__.py +145 -135
  16. py2docfx/venv/0/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +3 -2
  17. py2docfx/venv/0/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +12 -17
  18. py2docfx/venv/0/Lib/site-packages/pkg_resources/tests/test_resources.py +12 -12
  19. py2docfx/venv/0/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  20. py2docfx/venv/0/Lib/site-packages/setuptools/__init__.py +67 -36
  21. py2docfx/venv/0/Lib/site-packages/setuptools/_core_metadata.py +4 -3
  22. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_modified.py +3 -2
  23. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +75 -39
  24. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/archive_util.py +5 -24
  25. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/ccompiler.py +2 -1
  26. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/__init__.py +0 -2
  27. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -2
  28. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/install.py +4 -3
  29. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/install_lib.py +3 -3
  30. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/sdist.py +1 -13
  31. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/core.py +1 -2
  32. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +11 -6
  33. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/dir_util.py +120 -109
  34. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/dist.py +8 -18
  35. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/errors.py +5 -8
  36. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/extension.py +1 -1
  37. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/file_util.py +2 -1
  38. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/sysconfig.py +3 -2
  39. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +0 -33
  40. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +1 -1
  41. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +7 -0
  42. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py +33 -10
  43. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +4 -13
  44. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/util.py +2 -1
  45. py2docfx/venv/0/Lib/site-packages/setuptools/_entry_points.py +5 -4
  46. py2docfx/venv/0/Lib/site-packages/setuptools/_imp.py +2 -4
  47. py2docfx/venv/0/Lib/site-packages/setuptools/_importlib.py +0 -1
  48. py2docfx/venv/0/Lib/site-packages/setuptools/_path.py +9 -4
  49. py2docfx/venv/0/Lib/site-packages/setuptools/_reqs.py +10 -7
  50. py2docfx/venv/0/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +1091 -0
  51. py2docfx/venv/0/Lib/site-packages/setuptools/archive_util.py +6 -5
  52. py2docfx/venv/0/Lib/site-packages/setuptools/build_meta.py +15 -9
  53. py2docfx/venv/0/Lib/site-packages/setuptools/command/__init__.py +2 -1
  54. py2docfx/venv/0/Lib/site-packages/setuptools/command/_requirestxt.py +1 -1
  55. py2docfx/venv/0/Lib/site-packages/setuptools/command/alias.py +2 -2
  56. py2docfx/venv/0/Lib/site-packages/setuptools/command/bdist_egg.py +8 -7
  57. py2docfx/venv/0/Lib/site-packages/setuptools/command/bdist_rpm.py +5 -2
  58. py2docfx/venv/0/Lib/site-packages/setuptools/command/bdist_wheel.py +72 -34
  59. py2docfx/venv/0/Lib/site-packages/setuptools/command/build.py +11 -0
  60. py2docfx/venv/0/Lib/site-packages/setuptools/command/build_clib.py +8 -2
  61. py2docfx/venv/0/Lib/site-packages/setuptools/command/build_ext.py +32 -23
  62. py2docfx/venv/0/Lib/site-packages/setuptools/command/build_py.py +11 -8
  63. py2docfx/venv/0/Lib/site-packages/setuptools/command/develop.py +8 -9
  64. py2docfx/venv/0/Lib/site-packages/setuptools/command/dist_info.py +3 -2
  65. py2docfx/venv/0/Lib/site-packages/setuptools/command/easy_install.py +100 -74
  66. py2docfx/venv/0/Lib/site-packages/setuptools/command/editable_wheel.py +48 -36
  67. py2docfx/venv/0/Lib/site-packages/setuptools/command/egg_info.py +16 -25
  68. py2docfx/venv/0/Lib/site-packages/setuptools/command/install.py +9 -4
  69. py2docfx/venv/0/Lib/site-packages/setuptools/command/install_egg_info.py +4 -3
  70. py2docfx/venv/0/Lib/site-packages/setuptools/command/install_lib.py +8 -1
  71. py2docfx/venv/0/Lib/site-packages/setuptools/command/install_scripts.py +7 -2
  72. py2docfx/venv/0/Lib/site-packages/setuptools/command/rotate.py +4 -3
  73. py2docfx/venv/0/Lib/site-packages/setuptools/command/sdist.py +16 -4
  74. py2docfx/venv/0/Lib/site-packages/setuptools/command/setopt.py +6 -5
  75. py2docfx/venv/0/Lib/site-packages/setuptools/command/test.py +4 -1
  76. py2docfx/venv/0/Lib/site-packages/setuptools/compat/py310.py +0 -1
  77. py2docfx/venv/0/Lib/site-packages/setuptools/compat/py311.py +4 -3
  78. py2docfx/venv/0/Lib/site-packages/setuptools/compat/py312.py +13 -0
  79. py2docfx/venv/0/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +37 -16
  80. py2docfx/venv/0/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +2 -4
  81. py2docfx/venv/0/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +266 -51
  82. py2docfx/venv/0/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +23 -2
  83. py2docfx/venv/0/Lib/site-packages/setuptools/config/expand.py +18 -18
  84. py2docfx/venv/0/Lib/site-packages/setuptools/config/pyprojecttoml.py +20 -7
  85. py2docfx/venv/0/Lib/site-packages/setuptools/config/setupcfg.py +12 -9
  86. py2docfx/venv/0/Lib/site-packages/setuptools/depends.py +4 -5
  87. py2docfx/venv/0/Lib/site-packages/setuptools/discovery.py +2 -6
  88. py2docfx/venv/0/Lib/site-packages/setuptools/dist.py +24 -19
  89. py2docfx/venv/0/Lib/site-packages/setuptools/errors.py +23 -17
  90. py2docfx/venv/0/Lib/site-packages/setuptools/extension.py +22 -8
  91. py2docfx/venv/0/Lib/site-packages/setuptools/glob.py +1 -1
  92. py2docfx/venv/0/Lib/site-packages/setuptools/installer.py +4 -3
  93. py2docfx/venv/0/Lib/site-packages/setuptools/launch.py +1 -1
  94. py2docfx/venv/0/Lib/site-packages/setuptools/logging.py +4 -2
  95. py2docfx/venv/0/Lib/site-packages/setuptools/modified.py +1 -1
  96. py2docfx/venv/0/Lib/site-packages/setuptools/monkey.py +19 -50
  97. py2docfx/venv/0/Lib/site-packages/setuptools/msvc.py +118 -350
  98. py2docfx/venv/0/Lib/site-packages/setuptools/namespaces.py +6 -5
  99. py2docfx/venv/0/Lib/site-packages/setuptools/package_index.py +35 -35
  100. py2docfx/venv/0/Lib/site-packages/setuptools/sandbox.py +30 -31
  101. py2docfx/venv/0/Lib/site-packages/setuptools/tests/__init__.py +4 -6
  102. py2docfx/venv/0/Lib/site-packages/setuptools/tests/compat/py39.py +0 -1
  103. py2docfx/venv/0/Lib/site-packages/setuptools/tests/config/downloads/preload.py +0 -1
  104. py2docfx/venv/0/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +51 -6
  105. py2docfx/venv/0/Lib/site-packages/setuptools/tests/config/test_expand.py +2 -1
  106. py2docfx/venv/0/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +3 -4
  107. py2docfx/venv/0/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +6 -4
  108. py2docfx/venv/0/Lib/site-packages/setuptools/tests/contexts.py +4 -4
  109. py2docfx/venv/0/Lib/site-packages/setuptools/tests/environment.py +2 -2
  110. py2docfx/venv/0/Lib/site-packages/setuptools/tests/fixtures.py +3 -3
  111. py2docfx/venv/0/Lib/site-packages/setuptools/tests/integration/helpers.py +1 -1
  112. py2docfx/venv/0/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +3 -4
  113. py2docfx/venv/0/Lib/site-packages/setuptools/tests/server.py +2 -2
  114. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_archive_util.py +1 -1
  115. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +1 -1
  116. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +27 -17
  117. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_build.py +1 -1
  118. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_build_clib.py +3 -2
  119. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_build_ext.py +5 -6
  120. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_build_meta.py +12 -15
  121. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_build_py.py +2 -2
  122. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_config_discovery.py +13 -9
  123. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_core_metadata.py +4 -6
  124. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_develop.py +5 -5
  125. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_dist.py +10 -11
  126. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  127. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +1 -2
  128. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_easy_install.py +28 -18
  129. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_editable_install.py +9 -9
  130. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_egg_info.py +4 -9
  131. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_extern.py +4 -9
  132. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_find_packages.py +1 -2
  133. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_find_py_modules.py +1 -1
  134. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_install_scripts.py +1 -0
  135. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_logging.py +3 -1
  136. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_manifest.py +7 -7
  137. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_namespaces.py +1 -1
  138. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_packageindex.py +4 -3
  139. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_sandbox.py +1 -1
  140. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_sdist.py +76 -11
  141. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_setuptools.py +8 -8
  142. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_virtualenv.py +3 -5
  143. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_warnings.py +0 -1
  144. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_wheel.py +9 -9
  145. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  146. py2docfx/venv/0/Lib/site-packages/setuptools/unicode_utils.py +1 -1
  147. py2docfx/venv/0/Lib/site-packages/setuptools/wheel.py +5 -6
  148. py2docfx/venv/0/Lib/site-packages/setuptools/windows_support.py +2 -2
  149. py2docfx/venv/0/Lib/site-packages/urllib3/_request_methods.py +2 -3
  150. py2docfx/venv/0/Lib/site-packages/urllib3/_version.py +15 -3
  151. py2docfx/venv/0/Lib/site-packages/urllib3/connection.py +158 -54
  152. py2docfx/venv/0/Lib/site-packages/urllib3/contrib/pyopenssl.py +4 -0
  153. py2docfx/venv/0/Lib/site-packages/urllib3/http2/__init__.py +53 -0
  154. py2docfx/venv/0/Lib/site-packages/urllib3/http2/connection.py +356 -0
  155. py2docfx/venv/0/Lib/site-packages/urllib3/http2/probe.py +87 -0
  156. py2docfx/venv/0/Lib/site-packages/urllib3/util/connection.py +1 -1
  157. py2docfx/venv/0/Lib/site-packages/urllib3/util/request.py +1 -1
  158. py2docfx/venv/0/Lib/site-packages/urllib3/util/ssl_.py +12 -8
  159. py2docfx/venv/0/Lib/site-packages/urllib3/util/ssltransport.py +0 -3
  160. py2docfx/venv/0/Scripts/rst2html.py +1 -1
  161. py2docfx/venv/0/Scripts/rst2html4.py +1 -1
  162. py2docfx/venv/0/Scripts/rst2html5.py +1 -1
  163. py2docfx/venv/0/Scripts/rst2latex.py +1 -1
  164. py2docfx/venv/0/Scripts/rst2man.py +1 -1
  165. py2docfx/venv/0/Scripts/rst2odt.py +1 -1
  166. py2docfx/venv/0/Scripts/rst2odt_prepstyles.py +1 -1
  167. py2docfx/venv/0/Scripts/rst2pseudoxml.py +1 -1
  168. py2docfx/venv/0/Scripts/rst2s5.py +1 -1
  169. py2docfx/venv/0/Scripts/rst2xetex.py +1 -1
  170. py2docfx/venv/0/Scripts/rst2xml.py +1 -1
  171. py2docfx/venv/0/Scripts/rstpep2html.py +1 -1
  172. {py2docfx-0.1.11.dev1827111.dist-info → py2docfx-0.1.11.dev1859874.dist-info}/METADATA +1 -1
  173. py2docfx-0.1.11.dev1859874.dist-info/RECORD +1889 -0
  174. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_collections.py +0 -58
  175. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_functools.py +0 -73
  176. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_itertools.py +0 -52
  177. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/__init__.py +0 -0
  178. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/__init__.py +0 -15
  179. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_elffile.py +0 -108
  180. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_manylinux.py +0 -260
  181. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_musllinux.py +0 -83
  182. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_parser.py +0 -356
  183. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_structures.py +0 -61
  184. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_tokenizer.py +0 -192
  185. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/markers.py +0 -252
  186. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/metadata.py +0 -825
  187. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/requirements.py +0 -90
  188. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/specifiers.py +0 -1017
  189. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/tags.py +0 -571
  190. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/utils.py +0 -172
  191. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/_vendor/packaging/version.py +0 -563
  192. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/bcppcompiler.py +0 -396
  193. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/register.py +0 -322
  194. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/command/upload.py +0 -208
  195. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/config.py +0 -151
  196. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/msvc9compiler.py +0 -822
  197. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/msvccompiler.py +0 -687
  198. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_config.py +0 -116
  199. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_msvc9compiler.py +0 -184
  200. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_register.py +0 -314
  201. py2docfx/venv/0/Lib/site-packages/setuptools/_distutils/tests/test_upload.py +0 -215
  202. py2docfx/venv/0/Lib/site-packages/setuptools/_vendor/ordered_set/__init__.py +0 -536
  203. py2docfx/venv/0/Lib/site-packages/setuptools/command/register.py +0 -18
  204. py2docfx/venv/0/Lib/site-packages/setuptools/command/upload.py +0 -17
  205. py2docfx/venv/0/Lib/site-packages/setuptools/command/upload_docs.py +0 -221
  206. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_integration.py +0 -122
  207. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_msvc14.py +0 -83
  208. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_register.py +0 -19
  209. py2docfx/venv/0/Lib/site-packages/setuptools/tests/test_upload.py +0 -19
  210. py2docfx/venv/0/Lib/site-packages/urllib3/http2.py +0 -230
  211. py2docfx/venv/template/Lib/site-packages/_distutils_hack/__init__.py +0 -241
  212. py2docfx/venv/template/Lib/site-packages/_distutils_hack/override.py +0 -1
  213. py2docfx/venv/template/Lib/site-packages/_yaml/__init__.py +0 -33
  214. py2docfx/venv/template/Lib/site-packages/alabaster/__init__.py +0 -35
  215. py2docfx/venv/template/Lib/site-packages/alabaster/support.py +0 -89
  216. py2docfx/venv/template/Lib/site-packages/babel/__init__.py +0 -37
  217. py2docfx/venv/template/Lib/site-packages/babel/core.py +0 -1300
  218. py2docfx/venv/template/Lib/site-packages/babel/dates.py +0 -1925
  219. py2docfx/venv/template/Lib/site-packages/babel/languages.py +0 -72
  220. py2docfx/venv/template/Lib/site-packages/babel/lists.py +0 -123
  221. py2docfx/venv/template/Lib/site-packages/babel/localedata.py +0 -278
  222. py2docfx/venv/template/Lib/site-packages/babel/localtime/__init__.py +0 -43
  223. py2docfx/venv/template/Lib/site-packages/babel/localtime/_fallback.py +0 -44
  224. py2docfx/venv/template/Lib/site-packages/babel/localtime/_helpers.py +0 -57
  225. py2docfx/venv/template/Lib/site-packages/babel/localtime/_unix.py +0 -98
  226. py2docfx/venv/template/Lib/site-packages/babel/localtime/_win32.py +0 -98
  227. py2docfx/venv/template/Lib/site-packages/babel/messages/__init__.py +0 -21
  228. py2docfx/venv/template/Lib/site-packages/babel/messages/_compat.py +0 -34
  229. py2docfx/venv/template/Lib/site-packages/babel/messages/catalog.py +0 -952
  230. py2docfx/venv/template/Lib/site-packages/babel/messages/checkers.py +0 -168
  231. py2docfx/venv/template/Lib/site-packages/babel/messages/extract.py +0 -843
  232. py2docfx/venv/template/Lib/site-packages/babel/messages/frontend.py +0 -1203
  233. py2docfx/venv/template/Lib/site-packages/babel/messages/jslexer.py +0 -203
  234. py2docfx/venv/template/Lib/site-packages/babel/messages/mofile.py +0 -212
  235. py2docfx/venv/template/Lib/site-packages/babel/messages/plurals.py +0 -257
  236. py2docfx/venv/template/Lib/site-packages/babel/messages/pofile.py +0 -675
  237. py2docfx/venv/template/Lib/site-packages/babel/messages/setuptools_frontend.py +0 -108
  238. py2docfx/venv/template/Lib/site-packages/babel/numbers.py +0 -1573
  239. py2docfx/venv/template/Lib/site-packages/babel/plural.py +0 -640
  240. py2docfx/venv/template/Lib/site-packages/babel/support.py +0 -726
  241. py2docfx/venv/template/Lib/site-packages/babel/units.py +0 -343
  242. py2docfx/venv/template/Lib/site-packages/babel/util.py +0 -269
  243. py2docfx/venv/template/Lib/site-packages/certifi/__init__.py +0 -4
  244. py2docfx/venv/template/Lib/site-packages/certifi/__main__.py +0 -12
  245. py2docfx/venv/template/Lib/site-packages/certifi/core.py +0 -114
  246. py2docfx/venv/template/Lib/site-packages/charset_normalizer/__init__.py +0 -46
  247. py2docfx/venv/template/Lib/site-packages/charset_normalizer/__main__.py +0 -4
  248. py2docfx/venv/template/Lib/site-packages/charset_normalizer/api.py +0 -626
  249. py2docfx/venv/template/Lib/site-packages/charset_normalizer/cd.py +0 -395
  250. py2docfx/venv/template/Lib/site-packages/charset_normalizer/cli/__init__.py +0 -6
  251. py2docfx/venv/template/Lib/site-packages/charset_normalizer/cli/__main__.py +0 -296
  252. py2docfx/venv/template/Lib/site-packages/charset_normalizer/constant.py +0 -1995
  253. py2docfx/venv/template/Lib/site-packages/charset_normalizer/legacy.py +0 -54
  254. py2docfx/venv/template/Lib/site-packages/charset_normalizer/md.py +0 -615
  255. py2docfx/venv/template/Lib/site-packages/charset_normalizer/models.py +0 -340
  256. py2docfx/venv/template/Lib/site-packages/charset_normalizer/utils.py +0 -421
  257. py2docfx/venv/template/Lib/site-packages/charset_normalizer/version.py +0 -6
  258. py2docfx/venv/template/Lib/site-packages/colorama/__init__.py +0 -7
  259. py2docfx/venv/template/Lib/site-packages/colorama/ansi.py +0 -102
  260. py2docfx/venv/template/Lib/site-packages/colorama/ansitowin32.py +0 -277
  261. py2docfx/venv/template/Lib/site-packages/colorama/initialise.py +0 -121
  262. py2docfx/venv/template/Lib/site-packages/colorama/tests/__init__.py +0 -1
  263. py2docfx/venv/template/Lib/site-packages/colorama/tests/ansi_test.py +0 -76
  264. py2docfx/venv/template/Lib/site-packages/colorama/tests/ansitowin32_test.py +0 -294
  265. py2docfx/venv/template/Lib/site-packages/colorama/tests/initialise_test.py +0 -189
  266. py2docfx/venv/template/Lib/site-packages/colorama/tests/isatty_test.py +0 -57
  267. py2docfx/venv/template/Lib/site-packages/colorama/tests/utils.py +0 -49
  268. py2docfx/venv/template/Lib/site-packages/colorama/tests/winterm_test.py +0 -131
  269. py2docfx/venv/template/Lib/site-packages/colorama/win32.py +0 -180
  270. py2docfx/venv/template/Lib/site-packages/colorama/winterm.py +0 -195
  271. py2docfx/venv/template/Lib/site-packages/docutils/__init__.py +0 -284
  272. py2docfx/venv/template/Lib/site-packages/docutils/__main__.py +0 -96
  273. py2docfx/venv/template/Lib/site-packages/docutils/core.py +0 -714
  274. py2docfx/venv/template/Lib/site-packages/docutils/examples.py +0 -99
  275. py2docfx/venv/template/Lib/site-packages/docutils/frontend.py +0 -951
  276. py2docfx/venv/template/Lib/site-packages/docutils/io.py +0 -611
  277. py2docfx/venv/template/Lib/site-packages/docutils/languages/__init__.py +0 -83
  278. py2docfx/venv/template/Lib/site-packages/docutils/languages/af.py +0 -58
  279. py2docfx/venv/template/Lib/site-packages/docutils/languages/ar.py +0 -60
  280. py2docfx/venv/template/Lib/site-packages/docutils/languages/ca.py +0 -60
  281. py2docfx/venv/template/Lib/site-packages/docutils/languages/cs.py +0 -60
  282. py2docfx/venv/template/Lib/site-packages/docutils/languages/da.py +0 -61
  283. py2docfx/venv/template/Lib/site-packages/docutils/languages/de.py +0 -58
  284. py2docfx/venv/template/Lib/site-packages/docutils/languages/en.py +0 -60
  285. py2docfx/venv/template/Lib/site-packages/docutils/languages/eo.py +0 -61
  286. py2docfx/venv/template/Lib/site-packages/docutils/languages/es.py +0 -58
  287. py2docfx/venv/template/Lib/site-packages/docutils/languages/fa.py +0 -60
  288. py2docfx/venv/template/Lib/site-packages/docutils/languages/fi.py +0 -60
  289. py2docfx/venv/template/Lib/site-packages/docutils/languages/fr.py +0 -58
  290. py2docfx/venv/template/Lib/site-packages/docutils/languages/gl.py +0 -62
  291. py2docfx/venv/template/Lib/site-packages/docutils/languages/he.py +0 -61
  292. py2docfx/venv/template/Lib/site-packages/docutils/languages/it.py +0 -58
  293. py2docfx/venv/template/Lib/site-packages/docutils/languages/ja.py +0 -60
  294. py2docfx/venv/template/Lib/site-packages/docutils/languages/ko.py +0 -60
  295. py2docfx/venv/template/Lib/site-packages/docutils/languages/lt.py +0 -60
  296. py2docfx/venv/template/Lib/site-packages/docutils/languages/lv.py +0 -59
  297. py2docfx/venv/template/Lib/site-packages/docutils/languages/nl.py +0 -60
  298. py2docfx/venv/template/Lib/site-packages/docutils/languages/pl.py +0 -60
  299. py2docfx/venv/template/Lib/site-packages/docutils/languages/pt_br.py +0 -60
  300. py2docfx/venv/template/Lib/site-packages/docutils/languages/ru.py +0 -58
  301. py2docfx/venv/template/Lib/site-packages/docutils/languages/sk.py +0 -58
  302. py2docfx/venv/template/Lib/site-packages/docutils/languages/sv.py +0 -59
  303. py2docfx/venv/template/Lib/site-packages/docutils/languages/zh_cn.py +0 -66
  304. py2docfx/venv/template/Lib/site-packages/docutils/languages/zh_tw.py +0 -65
  305. py2docfx/venv/template/Lib/site-packages/docutils/nodes.py +0 -2314
  306. py2docfx/venv/template/Lib/site-packages/docutils/parsers/__init__.py +0 -92
  307. py2docfx/venv/template/Lib/site-packages/docutils/parsers/commonmark_wrapper.py +0 -56
  308. py2docfx/venv/template/Lib/site-packages/docutils/parsers/null.py +0 -20
  309. py2docfx/venv/template/Lib/site-packages/docutils/parsers/recommonmark_wrapper.py +0 -136
  310. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/__init__.py +0 -414
  311. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/__init__.py +0 -460
  312. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/admonitions.py +0 -99
  313. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/body.py +0 -304
  314. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/html.py +0 -21
  315. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/images.py +0 -163
  316. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/misc.py +0 -635
  317. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/parts.py +0 -126
  318. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/references.py +0 -29
  319. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/directives/tables.py +0 -513
  320. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/__init__.py +0 -40
  321. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/af.py +0 -107
  322. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/ar.py +0 -99
  323. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/ca.py +0 -126
  324. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/cs.py +0 -110
  325. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/da.py +0 -113
  326. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/de.py +0 -106
  327. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/en.py +0 -111
  328. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/eo.py +0 -118
  329. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/es.py +0 -122
  330. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/fa.py +0 -102
  331. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/fi.py +0 -98
  332. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/fr.py +0 -104
  333. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/gl.py +0 -111
  334. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/he.py +0 -109
  335. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/it.py +0 -98
  336. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/ja.py +0 -119
  337. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/ko.py +0 -111
  338. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/lt.py +0 -109
  339. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/lv.py +0 -108
  340. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/nl.py +0 -113
  341. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/pl.py +0 -100
  342. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/pt_br.py +0 -109
  343. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/ru.py +0 -90
  344. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/sk.py +0 -96
  345. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/sv.py +0 -96
  346. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/zh_cn.py +0 -104
  347. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/languages/zh_tw.py +0 -109
  348. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/roles.py +0 -439
  349. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/states.py +0 -3135
  350. py2docfx/venv/template/Lib/site-packages/docutils/parsers/rst/tableparser.py +0 -539
  351. py2docfx/venv/template/Lib/site-packages/docutils/readers/__init__.py +0 -113
  352. py2docfx/venv/template/Lib/site-packages/docutils/readers/doctree.py +0 -46
  353. py2docfx/venv/template/Lib/site-packages/docutils/readers/pep.py +0 -48
  354. py2docfx/venv/template/Lib/site-packages/docutils/readers/standalone.py +0 -65
  355. py2docfx/venv/template/Lib/site-packages/docutils/statemachine.py +0 -1525
  356. py2docfx/venv/template/Lib/site-packages/docutils/transforms/__init__.py +0 -174
  357. py2docfx/venv/template/Lib/site-packages/docutils/transforms/components.py +0 -54
  358. py2docfx/venv/template/Lib/site-packages/docutils/transforms/frontmatter.py +0 -545
  359. py2docfx/venv/template/Lib/site-packages/docutils/transforms/misc.py +0 -144
  360. py2docfx/venv/template/Lib/site-packages/docutils/transforms/parts.py +0 -176
  361. py2docfx/venv/template/Lib/site-packages/docutils/transforms/peps.py +0 -308
  362. py2docfx/venv/template/Lib/site-packages/docutils/transforms/references.py +0 -919
  363. py2docfx/venv/template/Lib/site-packages/docutils/transforms/universal.py +0 -338
  364. py2docfx/venv/template/Lib/site-packages/docutils/transforms/writer_aux.py +0 -99
  365. py2docfx/venv/template/Lib/site-packages/docutils/utils/__init__.py +0 -821
  366. py2docfx/venv/template/Lib/site-packages/docutils/utils/code_analyzer.py +0 -138
  367. py2docfx/venv/template/Lib/site-packages/docutils/utils/error_reporting.py +0 -222
  368. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/__init__.py +0 -52
  369. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/latex2mathml.py +0 -1430
  370. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/math2html.py +0 -3171
  371. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/tex2mathml_extern.py +0 -152
  372. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/tex2unichar.py +0 -704
  373. py2docfx/venv/template/Lib/site-packages/docutils/utils/math/unichar2tex.py +0 -808
  374. py2docfx/venv/template/Lib/site-packages/docutils/utils/punctuation_chars.py +0 -122
  375. py2docfx/venv/template/Lib/site-packages/docutils/utils/roman.py +0 -86
  376. py2docfx/venv/template/Lib/site-packages/docutils/utils/smartquotes.py +0 -991
  377. py2docfx/venv/template/Lib/site-packages/docutils/utils/urischemes.py +0 -138
  378. py2docfx/venv/template/Lib/site-packages/docutils/writers/__init__.py +0 -151
  379. py2docfx/venv/template/Lib/site-packages/docutils/writers/_html_base.py +0 -1781
  380. py2docfx/venv/template/Lib/site-packages/docutils/writers/docutils_xml.py +0 -188
  381. py2docfx/venv/template/Lib/site-packages/docutils/writers/html4css1/__init__.py +0 -947
  382. py2docfx/venv/template/Lib/site-packages/docutils/writers/html5_polyglot/__init__.py +0 -454
  383. py2docfx/venv/template/Lib/site-packages/docutils/writers/latex2e/__init__.py +0 -3295
  384. py2docfx/venv/template/Lib/site-packages/docutils/writers/manpage.py +0 -1181
  385. py2docfx/venv/template/Lib/site-packages/docutils/writers/null.py +0 -21
  386. py2docfx/venv/template/Lib/site-packages/docutils/writers/odf_odt/__init__.py +0 -3468
  387. py2docfx/venv/template/Lib/site-packages/docutils/writers/odf_odt/pygmentsformatter.py +0 -109
  388. py2docfx/venv/template/Lib/site-packages/docutils/writers/pep_html/__init__.py +0 -103
  389. py2docfx/venv/template/Lib/site-packages/docutils/writers/pseudoxml.py +0 -40
  390. py2docfx/venv/template/Lib/site-packages/docutils/writers/s5_html/__init__.py +0 -352
  391. py2docfx/venv/template/Lib/site-packages/docutils/writers/xetex/__init__.py +0 -149
  392. py2docfx/venv/template/Lib/site-packages/idna/__init__.py +0 -44
  393. py2docfx/venv/template/Lib/site-packages/idna/codec.py +0 -118
  394. py2docfx/venv/template/Lib/site-packages/idna/compat.py +0 -13
  395. py2docfx/venv/template/Lib/site-packages/idna/core.py +0 -395
  396. py2docfx/venv/template/Lib/site-packages/idna/idnadata.py +0 -4245
  397. py2docfx/venv/template/Lib/site-packages/idna/intranges.py +0 -54
  398. py2docfx/venv/template/Lib/site-packages/idna/package_data.py +0 -2
  399. py2docfx/venv/template/Lib/site-packages/idna/uts46data.py +0 -8598
  400. py2docfx/venv/template/Lib/site-packages/imagesize/__init__.py +0 -5
  401. py2docfx/venv/template/Lib/site-packages/imagesize/imagesize.py +0 -376
  402. py2docfx/venv/template/Lib/site-packages/imagesize.py +0 -383
  403. py2docfx/venv/template/Lib/site-packages/jinja2/__init__.py +0 -45
  404. py2docfx/venv/template/Lib/site-packages/jinja2/_identifier.py +0 -6
  405. py2docfx/venv/template/Lib/site-packages/jinja2/async_utils.py +0 -75
  406. py2docfx/venv/template/Lib/site-packages/jinja2/bccache.py +0 -364
  407. py2docfx/venv/template/Lib/site-packages/jinja2/compiler.py +0 -1957
  408. py2docfx/venv/template/Lib/site-packages/jinja2/constants.py +0 -20
  409. py2docfx/venv/template/Lib/site-packages/jinja2/debug.py +0 -259
  410. py2docfx/venv/template/Lib/site-packages/jinja2/defaults.py +0 -48
  411. py2docfx/venv/template/Lib/site-packages/jinja2/environment.py +0 -1661
  412. py2docfx/venv/template/Lib/site-packages/jinja2/exceptions.py +0 -166
  413. py2docfx/venv/template/Lib/site-packages/jinja2/ext.py +0 -879
  414. py2docfx/venv/template/Lib/site-packages/jinja2/filters.py +0 -1824
  415. py2docfx/venv/template/Lib/site-packages/jinja2/idtracking.py +0 -318
  416. py2docfx/venv/template/Lib/site-packages/jinja2/lexer.py +0 -869
  417. py2docfx/venv/template/Lib/site-packages/jinja2/loaders.py +0 -652
  418. py2docfx/venv/template/Lib/site-packages/jinja2/meta.py +0 -111
  419. py2docfx/venv/template/Lib/site-packages/jinja2/nativetypes.py +0 -124
  420. py2docfx/venv/template/Lib/site-packages/jinja2/nodes.py +0 -1204
  421. py2docfx/venv/template/Lib/site-packages/jinja2/optimizer.py +0 -47
  422. py2docfx/venv/template/Lib/site-packages/jinja2/parser.py +0 -1040
  423. py2docfx/venv/template/Lib/site-packages/jinja2/runtime.py +0 -1104
  424. py2docfx/venv/template/Lib/site-packages/jinja2/sandbox.py +0 -428
  425. py2docfx/venv/template/Lib/site-packages/jinja2/tests.py +0 -255
  426. py2docfx/venv/template/Lib/site-packages/jinja2/utils.py +0 -854
  427. py2docfx/venv/template/Lib/site-packages/jinja2/visitor.py +0 -92
  428. py2docfx/venv/template/Lib/site-packages/markupsafe/__init__.py +0 -332
  429. py2docfx/venv/template/Lib/site-packages/markupsafe/_native.py +0 -63
  430. py2docfx/venv/template/Lib/site-packages/packaging/__init__.py +0 -15
  431. py2docfx/venv/template/Lib/site-packages/packaging/_elffile.py +0 -110
  432. py2docfx/venv/template/Lib/site-packages/packaging/_manylinux.py +0 -262
  433. py2docfx/venv/template/Lib/site-packages/packaging/_musllinux.py +0 -85
  434. py2docfx/venv/template/Lib/site-packages/packaging/_parser.py +0 -354
  435. py2docfx/venv/template/Lib/site-packages/packaging/_structures.py +0 -61
  436. py2docfx/venv/template/Lib/site-packages/packaging/_tokenizer.py +0 -194
  437. py2docfx/venv/template/Lib/site-packages/packaging/markers.py +0 -325
  438. py2docfx/venv/template/Lib/site-packages/packaging/metadata.py +0 -804
  439. py2docfx/venv/template/Lib/site-packages/packaging/requirements.py +0 -91
  440. py2docfx/venv/template/Lib/site-packages/packaging/specifiers.py +0 -1009
  441. py2docfx/venv/template/Lib/site-packages/packaging/tags.py +0 -568
  442. py2docfx/venv/template/Lib/site-packages/packaging/utils.py +0 -174
  443. py2docfx/venv/template/Lib/site-packages/packaging/version.py +0 -563
  444. py2docfx/venv/template/Lib/site-packages/pip/__init__.py +0 -13
  445. py2docfx/venv/template/Lib/site-packages/pip/__main__.py +0 -24
  446. py2docfx/venv/template/Lib/site-packages/pip/__pip-runner__.py +0 -50
  447. py2docfx/venv/template/Lib/site-packages/pip/_internal/__init__.py +0 -18
  448. py2docfx/venv/template/Lib/site-packages/pip/_internal/build_env.py +0 -311
  449. py2docfx/venv/template/Lib/site-packages/pip/_internal/cache.py +0 -290
  450. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/__init__.py +0 -4
  451. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -172
  452. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/base_command.py +0 -236
  453. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1074
  454. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/command_context.py +0 -27
  455. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/main.py +0 -79
  456. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
  457. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/parser.py +0 -294
  458. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -68
  459. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/req_command.py +0 -505
  460. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/spinners.py +0 -159
  461. py2docfx/venv/template/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
  462. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/__init__.py +0 -132
  463. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/cache.py +0 -225
  464. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/check.py +0 -54
  465. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/completion.py +0 -130
  466. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/configuration.py +0 -280
  467. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/debug.py +0 -201
  468. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/download.py +0 -147
  469. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/freeze.py +0 -108
  470. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/hash.py +0 -59
  471. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/help.py +0 -41
  472. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/index.py +0 -139
  473. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/inspect.py +0 -92
  474. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/install.py +0 -774
  475. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/list.py +0 -368
  476. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/search.py +0 -174
  477. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/show.py +0 -189
  478. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -113
  479. py2docfx/venv/template/Lib/site-packages/pip/_internal/commands/wheel.py +0 -183
  480. py2docfx/venv/template/Lib/site-packages/pip/_internal/configuration.py +0 -383
  481. py2docfx/venv/template/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
  482. py2docfx/venv/template/Lib/site-packages/pip/_internal/distributions/base.py +0 -51
  483. py2docfx/venv/template/Lib/site-packages/pip/_internal/distributions/installed.py +0 -29
  484. py2docfx/venv/template/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -156
  485. py2docfx/venv/template/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -40
  486. py2docfx/venv/template/Lib/site-packages/pip/_internal/exceptions.py +0 -728
  487. py2docfx/venv/template/Lib/site-packages/pip/_internal/index/__init__.py +0 -2
  488. py2docfx/venv/template/Lib/site-packages/pip/_internal/index/collector.py +0 -507
  489. py2docfx/venv/template/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1027
  490. py2docfx/venv/template/Lib/site-packages/pip/_internal/index/sources.py +0 -285
  491. py2docfx/venv/template/Lib/site-packages/pip/_internal/locations/__init__.py +0 -467
  492. py2docfx/venv/template/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -172
  493. py2docfx/venv/template/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -213
  494. py2docfx/venv/template/Lib/site-packages/pip/_internal/locations/base.py +0 -81
  495. py2docfx/venv/template/Lib/site-packages/pip/_internal/main.py +0 -12
  496. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -128
  497. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/_json.py +0 -84
  498. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/base.py +0 -702
  499. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
  500. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -55
  501. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -227
  502. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -189
  503. py2docfx/venv/template/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -278
  504. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/__init__.py +0 -2
  505. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/candidate.py +0 -30
  506. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/direct_url.py +0 -235
  507. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/format_control.py +0 -78
  508. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/index.py +0 -28
  509. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/installation_report.py +0 -56
  510. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/link.py +0 -579
  511. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/scheme.py +0 -31
  512. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/search_scope.py +0 -132
  513. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -51
  514. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/target_python.py +0 -122
  515. py2docfx/venv/template/Lib/site-packages/pip/_internal/models/wheel.py +0 -92
  516. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/__init__.py +0 -2
  517. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/auth.py +0 -561
  518. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/cache.py +0 -106
  519. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/download.py +0 -186
  520. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  521. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/session.py +0 -520
  522. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/utils.py +0 -96
  523. py2docfx/venv/template/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -62
  524. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  525. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  526. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -139
  527. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -39
  528. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -41
  529. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -74
  530. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  531. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  532. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -102
  533. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/check.py +0 -187
  534. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/freeze.py +0 -255
  535. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  536. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -46
  537. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -734
  538. py2docfx/venv/template/Lib/site-packages/pip/_internal/operations/prepare.py +0 -730
  539. py2docfx/venv/template/Lib/site-packages/pip/_internal/pyproject.py +0 -179
  540. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/__init__.py +0 -92
  541. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/constructors.py +0 -576
  542. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/req_file.py +0 -554
  543. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/req_install.py +0 -923
  544. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/req_set.py +0 -119
  545. py2docfx/venv/template/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -649
  546. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  547. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
  548. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  549. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -598
  550. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  551. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -141
  552. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -597
  553. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -812
  554. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -155
  555. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -255
  556. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -80
  557. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -166
  558. py2docfx/venv/template/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -317
  559. py2docfx/venv/template/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -248
  560. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  561. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
  562. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
  563. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
  564. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/compat.py +0 -63
  565. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -165
  566. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/datetime.py +0 -11
  567. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -120
  568. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  569. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -80
  570. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/encoding.py +0 -36
  571. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -84
  572. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -153
  573. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -27
  574. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/glibc.py +0 -88
  575. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/hashes.py +0 -151
  576. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/logging.py +0 -348
  577. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/misc.py +0 -783
  578. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/models.py +0 -39
  579. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/packaging.py +0 -57
  580. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -146
  581. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -260
  582. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -296
  583. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -257
  584. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/urls.py +0 -62
  585. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  586. py2docfx/venv/template/Lib/site-packages/pip/_internal/utils/wheel.py +0 -134
  587. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
  588. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -112
  589. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/git.py +0 -526
  590. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -163
  591. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -324
  592. py2docfx/venv/template/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -705
  593. py2docfx/venv/template/Lib/site-packages/pip/_internal/wheel_builder.py +0 -354
  594. py2docfx/venv/template/Lib/site-packages/pip/_vendor/__init__.py +0 -121
  595. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -28
  596. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
  597. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -161
  598. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -74
  599. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
  600. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -181
  601. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
  602. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -494
  603. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -119
  604. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -154
  605. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -206
  606. py2docfx/venv/template/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
  607. py2docfx/venv/template/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  608. py2docfx/venv/template/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  609. py2docfx/venv/template/Lib/site-packages/pip/_vendor/certifi/core.py +0 -108
  610. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/__init__.py +0 -115
  611. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/big5freq.py +0 -386
  612. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/big5prober.py +0 -47
  613. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +0 -261
  614. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -106
  615. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +0 -147
  616. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -0
  617. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -112
  618. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -90
  619. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/codingstatemachinedict.py +0 -19
  620. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +0 -49
  621. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/enums.py +0 -85
  622. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/escprober.py +0 -102
  623. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/escsm.py +0 -261
  624. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -102
  625. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -196
  626. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +0 -47
  627. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -388
  628. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +0 -47
  629. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -284
  630. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -47
  631. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -316
  632. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +0 -325
  633. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/johabfreq.py +0 -2382
  634. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/johabprober.py +0 -47
  635. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +0 -238
  636. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -4649
  637. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -4397
  638. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -4380
  639. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -4649
  640. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -5725
  641. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -4380
  642. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -4380
  643. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +0 -147
  644. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/macromanprober.py +0 -162
  645. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -95
  646. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -57
  647. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +0 -661
  648. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  649. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -352
  650. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/resultdict.py +0 -16
  651. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -162
  652. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -88
  653. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +0 -105
  654. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +0 -362
  655. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/utf1632prober.py +0 -225
  656. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +0 -82
  657. py2docfx/venv/template/Lib/site-packages/pip/_vendor/chardet/version.py +0 -9
  658. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/__init__.py +0 -7
  659. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/ansi.py +0 -102
  660. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -277
  661. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/initialise.py +0 -121
  662. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/__init__.py +0 -1
  663. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/ansi_test.py +0 -76
  664. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py +0 -294
  665. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/initialise_test.py +0 -189
  666. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/isatty_test.py +0 -57
  667. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/utils.py +0 -49
  668. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/tests/winterm_test.py +0 -131
  669. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/win32.py +0 -180
  670. py2docfx/venv/template/Lib/site-packages/pip/_vendor/colorama/winterm.py +0 -195
  671. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -33
  672. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1138
  673. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/database.py +0 -1359
  674. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/index.py +0 -508
  675. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -1303
  676. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -384
  677. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -167
  678. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -1068
  679. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
  680. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -452
  681. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/util.py +0 -2025
  682. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/version.py +0 -751
  683. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -1099
  684. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
  685. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
  686. py2docfx/venv/template/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1399
  687. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -44
  688. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/codec.py +0 -112
  689. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/compat.py +0 -13
  690. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/core.py +0 -400
  691. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -2151
  692. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -54
  693. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -2
  694. py2docfx/venv/template/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8600
  695. py2docfx/venv/template/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -57
  696. py2docfx/venv/template/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  697. py2docfx/venv/template/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -193
  698. py2docfx/venv/template/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -1010
  699. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/__about__.py +0 -26
  700. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -25
  701. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -301
  702. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -136
  703. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
  704. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -304
  705. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -146
  706. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -802
  707. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -487
  708. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -136
  709. py2docfx/venv/template/Lib/site-packages/pip/_vendor/packaging/version.py +0 -504
  710. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3361
  711. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -566
  712. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -53
  713. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -210
  714. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -223
  715. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -91
  716. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -223
  717. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -4
  718. py2docfx/venv/template/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -255
  719. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  720. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  721. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -668
  722. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
  723. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -71
  724. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  725. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -124
  726. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -158
  727. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  728. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -108
  729. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -170
  730. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -989
  731. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -645
  732. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -154
  733. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -521
  734. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -161
  735. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -83
  736. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -146
  737. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -188
  738. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -127
  739. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -338
  740. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -943
  741. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
  742. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -559
  743. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1198
  744. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  745. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -88
  746. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  747. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  748. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -217
  749. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/style.py +0 -197
  750. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -103
  751. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/token.py +0 -213
  752. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  753. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pygments/util.py +0 -330
  754. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/__init__.py +0 -322
  755. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/actions.py +0 -217
  756. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/common.py +0 -432
  757. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/core.py +0 -6115
  758. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/diagram/__init__.py +0 -656
  759. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/exceptions.py +0 -299
  760. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/helpers.py +0 -1100
  761. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/results.py +0 -796
  762. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/testing.py +0 -331
  763. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/unicode.py +0 -361
  764. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyparsing/util.py +0 -284
  765. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -23
  766. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +0 -8
  767. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -330
  768. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -18
  769. py2docfx/venv/template/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -353
  770. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -182
  771. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
  772. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
  773. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -538
  774. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
  775. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/auth.py +0 -315
  776. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/certs.py +0 -24
  777. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/compat.py +0 -67
  778. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
  779. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -141
  780. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/help.py +0 -131
  781. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
  782. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/models.py +0 -1034
  783. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/packages.py +0 -16
  784. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -833
  785. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  786. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
  787. py2docfx/venv/template/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1094
  788. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  789. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  790. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  791. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  792. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -43
  793. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -547
  794. py2docfx/venv/template/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -170
  795. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -177
  796. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -274
  797. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -451
  798. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  799. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  800. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -76
  801. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
  802. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -24
  803. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -270
  804. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  805. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
  806. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -69
  807. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  808. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
  809. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -160
  810. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  811. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
  812. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
  813. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -662
  814. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -72
  815. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  816. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -56
  817. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
  818. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/align.py +0 -311
  819. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -240
  820. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/bar.py +0 -94
  821. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/box.py +0 -517
  822. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/cells.py +0 -154
  823. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/color.py +0 -622
  824. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  825. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
  826. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/console.py +0 -2633
  827. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
  828. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
  829. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/control.py +0 -225
  830. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -190
  831. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -37
  832. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -96
  833. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
  834. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
  835. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -89
  836. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  837. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/json.py +0 -140
  838. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  839. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/layout.py +0 -443
  840. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/live.py +0 -375
  841. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -113
  842. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/logging.py +0 -289
  843. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/markup.py +0 -246
  844. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
  845. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
  846. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
  847. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
  848. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/panel.py +0 -308
  849. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -994
  850. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1702
  851. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -224
  852. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -376
  853. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
  854. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
  855. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/repr.py +0 -149
  856. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/rule.py +0 -130
  857. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
  858. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
  859. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/segment.py +0 -739
  860. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -137
  861. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/status.py +0 -132
  862. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/style.py +0 -796
  863. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
  864. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -948
  865. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/table.py +0 -1002
  866. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  867. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/text.py +0 -1307
  868. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/theme.py +0 -115
  869. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
  870. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -756
  871. py2docfx/venv/template/Lib/site-packages/pip/_vendor/rich/tree.py +0 -251
  872. py2docfx/venv/template/Lib/site-packages/pip/_vendor/six.py +0 -998
  873. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/__init__.py +0 -608
  874. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -94
  875. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/_utils.py +0 -76
  876. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/after.py +0 -51
  877. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/before.py +0 -46
  878. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -71
  879. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/nap.py +0 -43
  880. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/retry.py +0 -272
  881. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/stop.py +0 -103
  882. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -59
  883. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tenacity/wait.py +0 -228
  884. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -11
  885. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -691
  886. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -107
  887. py2docfx/venv/template/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
  888. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -13
  889. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -302
  890. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -501
  891. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -66
  892. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
  893. py2docfx/venv/template/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -554
  894. py2docfx/venv/template/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -3072
  895. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  896. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -337
  897. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  898. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -572
  899. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1132
  900. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  901. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  902. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  903. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  904. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  905. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  906. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  907. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
  908. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -921
  909. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  910. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  911. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  912. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  913. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  914. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  915. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  916. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
  917. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  918. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -537
  919. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -191
  920. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -879
  921. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  922. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  923. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  924. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  925. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  926. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  927. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -620
  928. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -495
  929. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  930. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  931. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
  932. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  933. py2docfx/venv/template/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  934. py2docfx/venv/template/Lib/site-packages/pip/_vendor/webencodings/__init__.py +0 -342
  935. py2docfx/venv/template/Lib/site-packages/pip/_vendor/webencodings/labels.py +0 -231
  936. py2docfx/venv/template/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +0 -59
  937. py2docfx/venv/template/Lib/site-packages/pip/_vendor/webencodings/tests.py +0 -153
  938. py2docfx/venv/template/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -325
  939. py2docfx/venv/template/Lib/site-packages/pkg_resources/__init__.py +0 -3715
  940. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/__init__.py +0 -0
  941. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -7
  942. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +0 -55
  943. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +0 -54
  944. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_markers.py +0 -8
  945. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +0 -432
  946. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_resources.py +0 -869
  947. py2docfx/venv/template/Lib/site-packages/pkg_resources/tests/test_working_set.py +0 -501
  948. py2docfx/venv/template/Lib/site-packages/pygments/__init__.py +0 -82
  949. py2docfx/venv/template/Lib/site-packages/pygments/__main__.py +0 -17
  950. py2docfx/venv/template/Lib/site-packages/pygments/cmdline.py +0 -668
  951. py2docfx/venv/template/Lib/site-packages/pygments/console.py +0 -70
  952. py2docfx/venv/template/Lib/site-packages/pygments/filter.py +0 -70
  953. py2docfx/venv/template/Lib/site-packages/pygments/filters/__init__.py +0 -940
  954. py2docfx/venv/template/Lib/site-packages/pygments/formatter.py +0 -129
  955. py2docfx/venv/template/Lib/site-packages/pygments/formatters/__init__.py +0 -157
  956. py2docfx/venv/template/Lib/site-packages/pygments/formatters/_mapping.py +0 -23
  957. py2docfx/venv/template/Lib/site-packages/pygments/formatters/bbcode.py +0 -108
  958. py2docfx/venv/template/Lib/site-packages/pygments/formatters/groff.py +0 -170
  959. py2docfx/venv/template/Lib/site-packages/pygments/formatters/html.py +0 -987
  960. py2docfx/venv/template/Lib/site-packages/pygments/formatters/img.py +0 -685
  961. py2docfx/venv/template/Lib/site-packages/pygments/formatters/irc.py +0 -154
  962. py2docfx/venv/template/Lib/site-packages/pygments/formatters/latex.py +0 -518
  963. py2docfx/venv/template/Lib/site-packages/pygments/formatters/other.py +0 -160
  964. py2docfx/venv/template/Lib/site-packages/pygments/formatters/pangomarkup.py +0 -83
  965. py2docfx/venv/template/Lib/site-packages/pygments/formatters/rtf.py +0 -349
  966. py2docfx/venv/template/Lib/site-packages/pygments/formatters/svg.py +0 -185
  967. py2docfx/venv/template/Lib/site-packages/pygments/formatters/terminal.py +0 -127
  968. py2docfx/venv/template/Lib/site-packages/pygments/formatters/terminal256.py +0 -338
  969. py2docfx/venv/template/Lib/site-packages/pygments/lexer.py +0 -961
  970. py2docfx/venv/template/Lib/site-packages/pygments/lexers/__init__.py +0 -362
  971. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_ada_builtins.py +0 -103
  972. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_asy_builtins.py +0 -1644
  973. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_cl_builtins.py +0 -231
  974. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_cocoa_builtins.py +0 -75
  975. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_csound_builtins.py +0 -1780
  976. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_css_builtins.py +0 -558
  977. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_julia_builtins.py +0 -411
  978. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_lasso_builtins.py +0 -5326
  979. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_lilypond_builtins.py +0 -4932
  980. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_lua_builtins.py +0 -285
  981. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_luau_builtins.py +0 -62
  982. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_mapping.py +0 -589
  983. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_mql_builtins.py +0 -1171
  984. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_mysql_builtins.py +0 -1335
  985. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_openedge_builtins.py +0 -2600
  986. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_php_builtins.py +0 -3325
  987. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_postgres_builtins.py +0 -739
  988. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_qlik_builtins.py +0 -666
  989. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_scheme_builtins.py +0 -1609
  990. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_scilab_builtins.py +0 -3093
  991. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_sourcemod_builtins.py +0 -1151
  992. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_stan_builtins.py +0 -648
  993. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_stata_builtins.py +0 -457
  994. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_tsql_builtins.py +0 -1003
  995. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_usd_builtins.py +0 -112
  996. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_vbscript_builtins.py +0 -279
  997. py2docfx/venv/template/Lib/site-packages/pygments/lexers/_vim_builtins.py +0 -1938
  998. py2docfx/venv/template/Lib/site-packages/pygments/lexers/actionscript.py +0 -243
  999. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ada.py +0 -144
  1000. py2docfx/venv/template/Lib/site-packages/pygments/lexers/agile.py +0 -25
  1001. py2docfx/venv/template/Lib/site-packages/pygments/lexers/algebra.py +0 -298
  1002. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ambient.py +0 -75
  1003. py2docfx/venv/template/Lib/site-packages/pygments/lexers/amdgpu.py +0 -54
  1004. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ampl.py +0 -87
  1005. py2docfx/venv/template/Lib/site-packages/pygments/lexers/apdlexer.py +0 -593
  1006. py2docfx/venv/template/Lib/site-packages/pygments/lexers/apl.py +0 -103
  1007. py2docfx/venv/template/Lib/site-packages/pygments/lexers/archetype.py +0 -315
  1008. py2docfx/venv/template/Lib/site-packages/pygments/lexers/arrow.py +0 -116
  1009. py2docfx/venv/template/Lib/site-packages/pygments/lexers/arturo.py +0 -249
  1010. py2docfx/venv/template/Lib/site-packages/pygments/lexers/asc.py +0 -55
  1011. py2docfx/venv/template/Lib/site-packages/pygments/lexers/asm.py +0 -1050
  1012. py2docfx/venv/template/Lib/site-packages/pygments/lexers/asn1.py +0 -178
  1013. py2docfx/venv/template/Lib/site-packages/pygments/lexers/automation.py +0 -379
  1014. py2docfx/venv/template/Lib/site-packages/pygments/lexers/bare.py +0 -101
  1015. py2docfx/venv/template/Lib/site-packages/pygments/lexers/basic.py +0 -656
  1016. py2docfx/venv/template/Lib/site-packages/pygments/lexers/bdd.py +0 -57
  1017. py2docfx/venv/template/Lib/site-packages/pygments/lexers/berry.py +0 -99
  1018. py2docfx/venv/template/Lib/site-packages/pygments/lexers/bibtex.py +0 -159
  1019. py2docfx/venv/template/Lib/site-packages/pygments/lexers/blueprint.py +0 -173
  1020. py2docfx/venv/template/Lib/site-packages/pygments/lexers/boa.py +0 -97
  1021. py2docfx/venv/template/Lib/site-packages/pygments/lexers/bqn.py +0 -109
  1022. py2docfx/venv/template/Lib/site-packages/pygments/lexers/business.py +0 -625
  1023. py2docfx/venv/template/Lib/site-packages/pygments/lexers/c_cpp.py +0 -414
  1024. py2docfx/venv/template/Lib/site-packages/pygments/lexers/c_like.py +0 -738
  1025. py2docfx/venv/template/Lib/site-packages/pygments/lexers/capnproto.py +0 -74
  1026. py2docfx/venv/template/Lib/site-packages/pygments/lexers/carbon.py +0 -95
  1027. py2docfx/venv/template/Lib/site-packages/pygments/lexers/cddl.py +0 -172
  1028. py2docfx/venv/template/Lib/site-packages/pygments/lexers/chapel.py +0 -139
  1029. py2docfx/venv/template/Lib/site-packages/pygments/lexers/clean.py +0 -180
  1030. py2docfx/venv/template/Lib/site-packages/pygments/lexers/comal.py +0 -81
  1031. py2docfx/venv/template/Lib/site-packages/pygments/lexers/compiled.py +0 -35
  1032. py2docfx/venv/template/Lib/site-packages/pygments/lexers/configs.py +0 -1424
  1033. py2docfx/venv/template/Lib/site-packages/pygments/lexers/console.py +0 -114
  1034. py2docfx/venv/template/Lib/site-packages/pygments/lexers/cplint.py +0 -43
  1035. py2docfx/venv/template/Lib/site-packages/pygments/lexers/crystal.py +0 -364
  1036. py2docfx/venv/template/Lib/site-packages/pygments/lexers/csound.py +0 -466
  1037. py2docfx/venv/template/Lib/site-packages/pygments/lexers/css.py +0 -602
  1038. py2docfx/venv/template/Lib/site-packages/pygments/lexers/d.py +0 -259
  1039. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dalvik.py +0 -126
  1040. py2docfx/venv/template/Lib/site-packages/pygments/lexers/data.py +0 -763
  1041. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dax.py +0 -135
  1042. py2docfx/venv/template/Lib/site-packages/pygments/lexers/devicetree.py +0 -108
  1043. py2docfx/venv/template/Lib/site-packages/pygments/lexers/diff.py +0 -169
  1044. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dns.py +0 -109
  1045. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dotnet.py +0 -846
  1046. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dsls.py +0 -970
  1047. py2docfx/venv/template/Lib/site-packages/pygments/lexers/dylan.py +0 -279
  1048. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ecl.py +0 -144
  1049. py2docfx/venv/template/Lib/site-packages/pygments/lexers/eiffel.py +0 -68
  1050. py2docfx/venv/template/Lib/site-packages/pygments/lexers/elm.py +0 -123
  1051. py2docfx/venv/template/Lib/site-packages/pygments/lexers/elpi.py +0 -172
  1052. py2docfx/venv/template/Lib/site-packages/pygments/lexers/email.py +0 -132
  1053. py2docfx/venv/template/Lib/site-packages/pygments/lexers/erlang.py +0 -526
  1054. py2docfx/venv/template/Lib/site-packages/pygments/lexers/esoteric.py +0 -300
  1055. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ezhil.py +0 -76
  1056. py2docfx/venv/template/Lib/site-packages/pygments/lexers/factor.py +0 -363
  1057. py2docfx/venv/template/Lib/site-packages/pygments/lexers/fantom.py +0 -251
  1058. py2docfx/venv/template/Lib/site-packages/pygments/lexers/felix.py +0 -275
  1059. py2docfx/venv/template/Lib/site-packages/pygments/lexers/fift.py +0 -68
  1060. py2docfx/venv/template/Lib/site-packages/pygments/lexers/floscript.py +0 -81
  1061. py2docfx/venv/template/Lib/site-packages/pygments/lexers/forth.py +0 -178
  1062. py2docfx/venv/template/Lib/site-packages/pygments/lexers/fortran.py +0 -212
  1063. py2docfx/venv/template/Lib/site-packages/pygments/lexers/foxpro.py +0 -427
  1064. py2docfx/venv/template/Lib/site-packages/pygments/lexers/freefem.py +0 -893
  1065. py2docfx/venv/template/Lib/site-packages/pygments/lexers/func.py +0 -110
  1066. py2docfx/venv/template/Lib/site-packages/pygments/lexers/functional.py +0 -21
  1067. py2docfx/venv/template/Lib/site-packages/pygments/lexers/futhark.py +0 -105
  1068. py2docfx/venv/template/Lib/site-packages/pygments/lexers/gcodelexer.py +0 -35
  1069. py2docfx/venv/template/Lib/site-packages/pygments/lexers/gdscript.py +0 -189
  1070. py2docfx/venv/template/Lib/site-packages/pygments/lexers/go.py +0 -97
  1071. py2docfx/venv/template/Lib/site-packages/pygments/lexers/grammar_notation.py +0 -262
  1072. py2docfx/venv/template/Lib/site-packages/pygments/lexers/graph.py +0 -108
  1073. py2docfx/venv/template/Lib/site-packages/pygments/lexers/graphics.py +0 -794
  1074. py2docfx/venv/template/Lib/site-packages/pygments/lexers/graphql.py +0 -176
  1075. py2docfx/venv/template/Lib/site-packages/pygments/lexers/graphviz.py +0 -58
  1076. py2docfx/venv/template/Lib/site-packages/pygments/lexers/gsql.py +0 -103
  1077. py2docfx/venv/template/Lib/site-packages/pygments/lexers/haskell.py +0 -866
  1078. py2docfx/venv/template/Lib/site-packages/pygments/lexers/haxe.py +0 -935
  1079. py2docfx/venv/template/Lib/site-packages/pygments/lexers/hdl.py +0 -466
  1080. py2docfx/venv/template/Lib/site-packages/pygments/lexers/hexdump.py +0 -102
  1081. py2docfx/venv/template/Lib/site-packages/pygments/lexers/html.py +0 -626
  1082. py2docfx/venv/template/Lib/site-packages/pygments/lexers/idl.py +0 -284
  1083. py2docfx/venv/template/Lib/site-packages/pygments/lexers/igor.py +0 -435
  1084. py2docfx/venv/template/Lib/site-packages/pygments/lexers/inferno.py +0 -95
  1085. py2docfx/venv/template/Lib/site-packages/pygments/lexers/installers.py +0 -325
  1086. py2docfx/venv/template/Lib/site-packages/pygments/lexers/int_fiction.py +0 -1370
  1087. py2docfx/venv/template/Lib/site-packages/pygments/lexers/iolang.py +0 -61
  1088. py2docfx/venv/template/Lib/site-packages/pygments/lexers/j.py +0 -151
  1089. py2docfx/venv/template/Lib/site-packages/pygments/lexers/javascript.py +0 -1587
  1090. py2docfx/venv/template/Lib/site-packages/pygments/lexers/jmespath.py +0 -69
  1091. py2docfx/venv/template/Lib/site-packages/pygments/lexers/jslt.py +0 -94
  1092. py2docfx/venv/template/Lib/site-packages/pygments/lexers/jsonnet.py +0 -169
  1093. py2docfx/venv/template/Lib/site-packages/pygments/lexers/jsx.py +0 -75
  1094. py2docfx/venv/template/Lib/site-packages/pygments/lexers/julia.py +0 -293
  1095. py2docfx/venv/template/Lib/site-packages/pygments/lexers/jvm.py +0 -1802
  1096. py2docfx/venv/template/Lib/site-packages/pygments/lexers/kuin.py +0 -332
  1097. py2docfx/venv/template/Lib/site-packages/pygments/lexers/kusto.py +0 -93
  1098. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ldap.py +0 -155
  1099. py2docfx/venv/template/Lib/site-packages/pygments/lexers/lean.py +0 -241
  1100. py2docfx/venv/template/Lib/site-packages/pygments/lexers/lilypond.py +0 -225
  1101. py2docfx/venv/template/Lib/site-packages/pygments/lexers/lisp.py +0 -3146
  1102. py2docfx/venv/template/Lib/site-packages/pygments/lexers/macaulay2.py +0 -1788
  1103. py2docfx/venv/template/Lib/site-packages/pygments/lexers/make.py +0 -212
  1104. py2docfx/venv/template/Lib/site-packages/pygments/lexers/markup.py +0 -1654
  1105. py2docfx/venv/template/Lib/site-packages/pygments/lexers/math.py +0 -21
  1106. py2docfx/venv/template/Lib/site-packages/pygments/lexers/matlab.py +0 -3306
  1107. py2docfx/venv/template/Lib/site-packages/pygments/lexers/maxima.py +0 -84
  1108. py2docfx/venv/template/Lib/site-packages/pygments/lexers/meson.py +0 -139
  1109. py2docfx/venv/template/Lib/site-packages/pygments/lexers/mime.py +0 -210
  1110. py2docfx/venv/template/Lib/site-packages/pygments/lexers/minecraft.py +0 -391
  1111. py2docfx/venv/template/Lib/site-packages/pygments/lexers/mips.py +0 -130
  1112. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ml.py +0 -958
  1113. py2docfx/venv/template/Lib/site-packages/pygments/lexers/modeling.py +0 -366
  1114. py2docfx/venv/template/Lib/site-packages/pygments/lexers/modula2.py +0 -1579
  1115. py2docfx/venv/template/Lib/site-packages/pygments/lexers/mojo.py +0 -704
  1116. py2docfx/venv/template/Lib/site-packages/pygments/lexers/monte.py +0 -203
  1117. py2docfx/venv/template/Lib/site-packages/pygments/lexers/mosel.py +0 -447
  1118. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ncl.py +0 -894
  1119. py2docfx/venv/template/Lib/site-packages/pygments/lexers/nimrod.py +0 -199
  1120. py2docfx/venv/template/Lib/site-packages/pygments/lexers/nit.py +0 -63
  1121. py2docfx/venv/template/Lib/site-packages/pygments/lexers/nix.py +0 -144
  1122. py2docfx/venv/template/Lib/site-packages/pygments/lexers/oberon.py +0 -120
  1123. py2docfx/venv/template/Lib/site-packages/pygments/lexers/objective.py +0 -513
  1124. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ooc.py +0 -84
  1125. py2docfx/venv/template/Lib/site-packages/pygments/lexers/openscad.py +0 -96
  1126. py2docfx/venv/template/Lib/site-packages/pygments/lexers/other.py +0 -41
  1127. py2docfx/venv/template/Lib/site-packages/pygments/lexers/parasail.py +0 -78
  1128. py2docfx/venv/template/Lib/site-packages/pygments/lexers/parsers.py +0 -798
  1129. py2docfx/venv/template/Lib/site-packages/pygments/lexers/pascal.py +0 -644
  1130. py2docfx/venv/template/Lib/site-packages/pygments/lexers/pawn.py +0 -202
  1131. py2docfx/venv/template/Lib/site-packages/pygments/lexers/perl.py +0 -733
  1132. py2docfx/venv/template/Lib/site-packages/pygments/lexers/phix.py +0 -363
  1133. py2docfx/venv/template/Lib/site-packages/pygments/lexers/php.py +0 -334
  1134. py2docfx/venv/template/Lib/site-packages/pygments/lexers/pointless.py +0 -70
  1135. py2docfx/venv/template/Lib/site-packages/pygments/lexers/pony.py +0 -93
  1136. py2docfx/venv/template/Lib/site-packages/pygments/lexers/praat.py +0 -303
  1137. py2docfx/venv/template/Lib/site-packages/pygments/lexers/procfile.py +0 -41
  1138. py2docfx/venv/template/Lib/site-packages/pygments/lexers/prolog.py +0 -318
  1139. py2docfx/venv/template/Lib/site-packages/pygments/lexers/promql.py +0 -176
  1140. py2docfx/venv/template/Lib/site-packages/pygments/lexers/prql.py +0 -251
  1141. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ptx.py +0 -119
  1142. py2docfx/venv/template/Lib/site-packages/pygments/lexers/python.py +0 -1198
  1143. py2docfx/venv/template/Lib/site-packages/pygments/lexers/q.py +0 -187
  1144. py2docfx/venv/template/Lib/site-packages/pygments/lexers/qlik.py +0 -117
  1145. py2docfx/venv/template/Lib/site-packages/pygments/lexers/qvt.py +0 -153
  1146. py2docfx/venv/template/Lib/site-packages/pygments/lexers/r.py +0 -192
  1147. py2docfx/venv/template/Lib/site-packages/pygments/lexers/rdf.py +0 -468
  1148. py2docfx/venv/template/Lib/site-packages/pygments/lexers/rebol.py +0 -419
  1149. py2docfx/venv/template/Lib/site-packages/pygments/lexers/resource.py +0 -83
  1150. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ride.py +0 -138
  1151. py2docfx/venv/template/Lib/site-packages/pygments/lexers/rita.py +0 -42
  1152. py2docfx/venv/template/Lib/site-packages/pygments/lexers/rnc.py +0 -66
  1153. py2docfx/venv/template/Lib/site-packages/pygments/lexers/roboconf.py +0 -81
  1154. py2docfx/venv/template/Lib/site-packages/pygments/lexers/robotframework.py +0 -551
  1155. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ruby.py +0 -518
  1156. py2docfx/venv/template/Lib/site-packages/pygments/lexers/rust.py +0 -222
  1157. py2docfx/venv/template/Lib/site-packages/pygments/lexers/sas.py +0 -227
  1158. py2docfx/venv/template/Lib/site-packages/pygments/lexers/savi.py +0 -171
  1159. py2docfx/venv/template/Lib/site-packages/pygments/lexers/scdoc.py +0 -85
  1160. py2docfx/venv/template/Lib/site-packages/pygments/lexers/scripting.py +0 -1598
  1161. py2docfx/venv/template/Lib/site-packages/pygments/lexers/sgf.py +0 -59
  1162. py2docfx/venv/template/Lib/site-packages/pygments/lexers/shell.py +0 -898
  1163. py2docfx/venv/template/Lib/site-packages/pygments/lexers/sieve.py +0 -78
  1164. py2docfx/venv/template/Lib/site-packages/pygments/lexers/slash.py +0 -183
  1165. py2docfx/venv/template/Lib/site-packages/pygments/lexers/smalltalk.py +0 -194
  1166. py2docfx/venv/template/Lib/site-packages/pygments/lexers/smithy.py +0 -77
  1167. py2docfx/venv/template/Lib/site-packages/pygments/lexers/smv.py +0 -78
  1168. py2docfx/venv/template/Lib/site-packages/pygments/lexers/snobol.py +0 -82
  1169. py2docfx/venv/template/Lib/site-packages/pygments/lexers/solidity.py +0 -87
  1170. py2docfx/venv/template/Lib/site-packages/pygments/lexers/soong.py +0 -78
  1171. py2docfx/venv/template/Lib/site-packages/pygments/lexers/sophia.py +0 -102
  1172. py2docfx/venv/template/Lib/site-packages/pygments/lexers/special.py +0 -121
  1173. py2docfx/venv/template/Lib/site-packages/pygments/lexers/spice.py +0 -70
  1174. py2docfx/venv/template/Lib/site-packages/pygments/lexers/sql.py +0 -1033
  1175. py2docfx/venv/template/Lib/site-packages/pygments/lexers/srcinfo.py +0 -62
  1176. py2docfx/venv/template/Lib/site-packages/pygments/lexers/stata.py +0 -170
  1177. py2docfx/venv/template/Lib/site-packages/pygments/lexers/supercollider.py +0 -94
  1178. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tact.py +0 -303
  1179. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tal.py +0 -77
  1180. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tcl.py +0 -148
  1181. py2docfx/venv/template/Lib/site-packages/pygments/lexers/teal.py +0 -88
  1182. py2docfx/venv/template/Lib/site-packages/pygments/lexers/templates.py +0 -2355
  1183. py2docfx/venv/template/Lib/site-packages/pygments/lexers/teraterm.py +0 -325
  1184. py2docfx/venv/template/Lib/site-packages/pygments/lexers/testing.py +0 -209
  1185. py2docfx/venv/template/Lib/site-packages/pygments/lexers/text.py +0 -27
  1186. py2docfx/venv/template/Lib/site-packages/pygments/lexers/textedit.py +0 -205
  1187. py2docfx/venv/template/Lib/site-packages/pygments/lexers/textfmts.py +0 -436
  1188. py2docfx/venv/template/Lib/site-packages/pygments/lexers/theorem.py +0 -410
  1189. py2docfx/venv/template/Lib/site-packages/pygments/lexers/thingsdb.py +0 -140
  1190. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tlb.py +0 -59
  1191. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tls.py +0 -54
  1192. py2docfx/venv/template/Lib/site-packages/pygments/lexers/tnt.py +0 -270
  1193. py2docfx/venv/template/Lib/site-packages/pygments/lexers/trafficscript.py +0 -51
  1194. py2docfx/venv/template/Lib/site-packages/pygments/lexers/typoscript.py +0 -216
  1195. py2docfx/venv/template/Lib/site-packages/pygments/lexers/typst.py +0 -104
  1196. py2docfx/venv/template/Lib/site-packages/pygments/lexers/ul4.py +0 -309
  1197. py2docfx/venv/template/Lib/site-packages/pygments/lexers/unicon.py +0 -413
  1198. py2docfx/venv/template/Lib/site-packages/pygments/lexers/urbi.py +0 -145
  1199. py2docfx/venv/template/Lib/site-packages/pygments/lexers/usd.py +0 -85
  1200. py2docfx/venv/template/Lib/site-packages/pygments/lexers/varnish.py +0 -189
  1201. py2docfx/venv/template/Lib/site-packages/pygments/lexers/verification.py +0 -113
  1202. py2docfx/venv/template/Lib/site-packages/pygments/lexers/verifpal.py +0 -65
  1203. py2docfx/venv/template/Lib/site-packages/pygments/lexers/vip.py +0 -150
  1204. py2docfx/venv/template/Lib/site-packages/pygments/lexers/vyper.py +0 -140
  1205. py2docfx/venv/template/Lib/site-packages/pygments/lexers/web.py +0 -24
  1206. py2docfx/venv/template/Lib/site-packages/pygments/lexers/webassembly.py +0 -119
  1207. py2docfx/venv/template/Lib/site-packages/pygments/lexers/webidl.py +0 -298
  1208. py2docfx/venv/template/Lib/site-packages/pygments/lexers/webmisc.py +0 -1006
  1209. py2docfx/venv/template/Lib/site-packages/pygments/lexers/wgsl.py +0 -406
  1210. py2docfx/venv/template/Lib/site-packages/pygments/lexers/whiley.py +0 -115
  1211. py2docfx/venv/template/Lib/site-packages/pygments/lexers/wowtoc.py +0 -120
  1212. py2docfx/venv/template/Lib/site-packages/pygments/lexers/wren.py +0 -98
  1213. py2docfx/venv/template/Lib/site-packages/pygments/lexers/x10.py +0 -66
  1214. py2docfx/venv/template/Lib/site-packages/pygments/lexers/xorg.py +0 -38
  1215. py2docfx/venv/template/Lib/site-packages/pygments/lexers/yang.py +0 -103
  1216. py2docfx/venv/template/Lib/site-packages/pygments/lexers/yara.py +0 -69
  1217. py2docfx/venv/template/Lib/site-packages/pygments/lexers/zig.py +0 -125
  1218. py2docfx/venv/template/Lib/site-packages/pygments/modeline.py +0 -43
  1219. py2docfx/venv/template/Lib/site-packages/pygments/plugin.py +0 -72
  1220. py2docfx/venv/template/Lib/site-packages/pygments/regexopt.py +0 -91
  1221. py2docfx/venv/template/Lib/site-packages/pygments/scanner.py +0 -104
  1222. py2docfx/venv/template/Lib/site-packages/pygments/sphinxext.py +0 -247
  1223. py2docfx/venv/template/Lib/site-packages/pygments/style.py +0 -203
  1224. py2docfx/venv/template/Lib/site-packages/pygments/styles/__init__.py +0 -61
  1225. py2docfx/venv/template/Lib/site-packages/pygments/styles/_mapping.py +0 -54
  1226. py2docfx/venv/template/Lib/site-packages/pygments/styles/abap.py +0 -32
  1227. py2docfx/venv/template/Lib/site-packages/pygments/styles/algol.py +0 -65
  1228. py2docfx/venv/template/Lib/site-packages/pygments/styles/algol_nu.py +0 -65
  1229. py2docfx/venv/template/Lib/site-packages/pygments/styles/arduino.py +0 -100
  1230. py2docfx/venv/template/Lib/site-packages/pygments/styles/autumn.py +0 -67
  1231. py2docfx/venv/template/Lib/site-packages/pygments/styles/borland.py +0 -53
  1232. py2docfx/venv/template/Lib/site-packages/pygments/styles/bw.py +0 -52
  1233. py2docfx/venv/template/Lib/site-packages/pygments/styles/coffee.py +0 -80
  1234. py2docfx/venv/template/Lib/site-packages/pygments/styles/colorful.py +0 -83
  1235. py2docfx/venv/template/Lib/site-packages/pygments/styles/default.py +0 -76
  1236. py2docfx/venv/template/Lib/site-packages/pygments/styles/dracula.py +0 -90
  1237. py2docfx/venv/template/Lib/site-packages/pygments/styles/emacs.py +0 -75
  1238. py2docfx/venv/template/Lib/site-packages/pygments/styles/friendly.py +0 -76
  1239. py2docfx/venv/template/Lib/site-packages/pygments/styles/friendly_grayscale.py +0 -80
  1240. py2docfx/venv/template/Lib/site-packages/pygments/styles/fruity.py +0 -47
  1241. py2docfx/venv/template/Lib/site-packages/pygments/styles/gh_dark.py +0 -113
  1242. py2docfx/venv/template/Lib/site-packages/pygments/styles/gruvbox.py +0 -118
  1243. py2docfx/venv/template/Lib/site-packages/pygments/styles/igor.py +0 -32
  1244. py2docfx/venv/template/Lib/site-packages/pygments/styles/inkpot.py +0 -72
  1245. py2docfx/venv/template/Lib/site-packages/pygments/styles/lightbulb.py +0 -110
  1246. py2docfx/venv/template/Lib/site-packages/pygments/styles/lilypond.py +0 -62
  1247. py2docfx/venv/template/Lib/site-packages/pygments/styles/lovelace.py +0 -100
  1248. py2docfx/venv/template/Lib/site-packages/pygments/styles/manni.py +0 -79
  1249. py2docfx/venv/template/Lib/site-packages/pygments/styles/material.py +0 -124
  1250. py2docfx/venv/template/Lib/site-packages/pygments/styles/monokai.py +0 -112
  1251. py2docfx/venv/template/Lib/site-packages/pygments/styles/murphy.py +0 -82
  1252. py2docfx/venv/template/Lib/site-packages/pygments/styles/native.py +0 -70
  1253. py2docfx/venv/template/Lib/site-packages/pygments/styles/nord.py +0 -156
  1254. py2docfx/venv/template/Lib/site-packages/pygments/styles/onedark.py +0 -63
  1255. py2docfx/venv/template/Lib/site-packages/pygments/styles/paraiso_dark.py +0 -124
  1256. py2docfx/venv/template/Lib/site-packages/pygments/styles/paraiso_light.py +0 -124
  1257. py2docfx/venv/template/Lib/site-packages/pygments/styles/pastie.py +0 -78
  1258. py2docfx/venv/template/Lib/site-packages/pygments/styles/perldoc.py +0 -73
  1259. py2docfx/venv/template/Lib/site-packages/pygments/styles/rainbow_dash.py +0 -95
  1260. py2docfx/venv/template/Lib/site-packages/pygments/styles/rrt.py +0 -39
  1261. py2docfx/venv/template/Lib/site-packages/pygments/styles/sas.py +0 -46
  1262. py2docfx/venv/template/Lib/site-packages/pygments/styles/solarized.py +0 -144
  1263. py2docfx/venv/template/Lib/site-packages/pygments/styles/staroffice.py +0 -31
  1264. py2docfx/venv/template/Lib/site-packages/pygments/styles/stata_dark.py +0 -42
  1265. py2docfx/venv/template/Lib/site-packages/pygments/styles/stata_light.py +0 -42
  1266. py2docfx/venv/template/Lib/site-packages/pygments/styles/tango.py +0 -143
  1267. py2docfx/venv/template/Lib/site-packages/pygments/styles/trac.py +0 -66
  1268. py2docfx/venv/template/Lib/site-packages/pygments/styles/vim.py +0 -67
  1269. py2docfx/venv/template/Lib/site-packages/pygments/styles/vs.py +0 -41
  1270. py2docfx/venv/template/Lib/site-packages/pygments/styles/xcode.py +0 -53
  1271. py2docfx/venv/template/Lib/site-packages/pygments/styles/zenburn.py +0 -83
  1272. py2docfx/venv/template/Lib/site-packages/pygments/token.py +0 -214
  1273. py2docfx/venv/template/Lib/site-packages/pygments/unistring.py +0 -153
  1274. py2docfx/venv/template/Lib/site-packages/pygments/util.py +0 -324
  1275. py2docfx/venv/template/Lib/site-packages/requests/__init__.py +0 -184
  1276. py2docfx/venv/template/Lib/site-packages/requests/__version__.py +0 -14
  1277. py2docfx/venv/template/Lib/site-packages/requests/_internal_utils.py +0 -50
  1278. py2docfx/venv/template/Lib/site-packages/requests/adapters.py +0 -719
  1279. py2docfx/venv/template/Lib/site-packages/requests/api.py +0 -157
  1280. py2docfx/venv/template/Lib/site-packages/requests/auth.py +0 -314
  1281. py2docfx/venv/template/Lib/site-packages/requests/certs.py +0 -17
  1282. py2docfx/venv/template/Lib/site-packages/requests/compat.py +0 -94
  1283. py2docfx/venv/template/Lib/site-packages/requests/cookies.py +0 -561
  1284. py2docfx/venv/template/Lib/site-packages/requests/exceptions.py +0 -151
  1285. py2docfx/venv/template/Lib/site-packages/requests/help.py +0 -134
  1286. py2docfx/venv/template/Lib/site-packages/requests/hooks.py +0 -33
  1287. py2docfx/venv/template/Lib/site-packages/requests/models.py +0 -1037
  1288. py2docfx/venv/template/Lib/site-packages/requests/packages.py +0 -23
  1289. py2docfx/venv/template/Lib/site-packages/requests/sessions.py +0 -831
  1290. py2docfx/venv/template/Lib/site-packages/requests/status_codes.py +0 -128
  1291. py2docfx/venv/template/Lib/site-packages/requests/structures.py +0 -99
  1292. py2docfx/venv/template/Lib/site-packages/requests/utils.py +0 -1096
  1293. py2docfx/venv/template/Lib/site-packages/setuptools/__init__.py +0 -259
  1294. py2docfx/venv/template/Lib/site-packages/setuptools/_core_metadata.py +0 -285
  1295. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/__init__.py +0 -14
  1296. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_collections.py +0 -58
  1297. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_functools.py +0 -73
  1298. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_itertools.py +0 -52
  1299. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_log.py +0 -3
  1300. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_macos_compat.py +0 -12
  1301. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_modified.py +0 -72
  1302. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +0 -568
  1303. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/__init__.py +0 -0
  1304. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/__init__.py +0 -15
  1305. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_elffile.py +0 -108
  1306. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_manylinux.py +0 -260
  1307. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_musllinux.py +0 -83
  1308. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_parser.py +0 -356
  1309. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_structures.py +0 -61
  1310. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/_tokenizer.py +0 -192
  1311. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/markers.py +0 -252
  1312. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/metadata.py +0 -825
  1313. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/requirements.py +0 -90
  1314. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/specifiers.py +0 -1017
  1315. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/tags.py +0 -571
  1316. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/utils.py +0 -172
  1317. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/_vendor/packaging/version.py +0 -563
  1318. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/archive_util.py +0 -283
  1319. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/bcppcompiler.py +0 -396
  1320. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/ccompiler.py +0 -1255
  1321. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/cmd.py +0 -439
  1322. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/__init__.py +0 -25
  1323. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +0 -54
  1324. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/bdist.py +0 -155
  1325. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -140
  1326. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -597
  1327. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/build.py +0 -156
  1328. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/build_clib.py +0 -208
  1329. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/build_ext.py +0 -797
  1330. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/build_py.py +0 -406
  1331. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +0 -170
  1332. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/check.py +0 -154
  1333. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/clean.py +0 -76
  1334. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/config.py +0 -369
  1335. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install.py +0 -810
  1336. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install_data.py +0 -94
  1337. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -92
  1338. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install_headers.py +0 -44
  1339. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install_lib.py +0 -234
  1340. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +0 -61
  1341. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/register.py +0 -322
  1342. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/sdist.py +0 -527
  1343. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/command/upload.py +0 -208
  1344. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/compat/__init__.py +0 -15
  1345. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/compat/py38.py +0 -34
  1346. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/compat/py39.py +0 -66
  1347. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/config.py +0 -151
  1348. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/core.py +0 -287
  1349. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -334
  1350. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/debug.py +0 -5
  1351. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/dep_util.py +0 -14
  1352. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/dir_util.py +0 -238
  1353. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/dist.py +0 -1298
  1354. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/errors.py +0 -127
  1355. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/extension.py +0 -247
  1356. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +0 -469
  1357. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/file_util.py +0 -235
  1358. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/filelist.py +0 -369
  1359. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/log.py +0 -56
  1360. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/msvc9compiler.py +0 -822
  1361. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/msvccompiler.py +0 -687
  1362. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/spawn.py +0 -117
  1363. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -582
  1364. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/__init__.py +0 -42
  1365. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/compat/__init__.py +0 -0
  1366. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/compat/py38.py +0 -50
  1367. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/support.py +0 -134
  1368. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +0 -386
  1369. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +0 -47
  1370. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +0 -78
  1371. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +0 -128
  1372. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_build.py +0 -47
  1373. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +0 -134
  1374. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +0 -563
  1375. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +0 -196
  1376. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +0 -96
  1377. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_ccompiler.py +0 -91
  1378. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_check.py +0 -194
  1379. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +0 -45
  1380. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +0 -107
  1381. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_config.py +0 -116
  1382. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +0 -87
  1383. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_core.py +0 -130
  1384. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py +0 -81
  1385. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +0 -112
  1386. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +0 -545
  1387. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +0 -108
  1388. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +0 -94
  1389. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +0 -336
  1390. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_install.py +0 -245
  1391. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +0 -74
  1392. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +0 -33
  1393. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +0 -110
  1394. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +0 -52
  1395. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_log.py +0 -12
  1396. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_mingwccompiler.py +0 -56
  1397. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +0 -119
  1398. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_msvc9compiler.py +0 -184
  1399. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py +0 -114
  1400. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_register.py +0 -314
  1401. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +0 -479
  1402. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +0 -131
  1403. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +0 -319
  1404. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +0 -127
  1405. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_unixccompiler.py +0 -351
  1406. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_upload.py +0 -215
  1407. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_util.py +0 -243
  1408. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_version.py +0 -80
  1409. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
  1410. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +0 -17
  1411. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/text_file.py +0 -286
  1412. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/unixccompiler.py +0 -402
  1413. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/util.py +0 -504
  1414. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/version.py +0 -349
  1415. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/versionpredicate.py +0 -175
  1416. py2docfx/venv/template/Lib/site-packages/setuptools/_distutils/zosccompiler.py +0 -229
  1417. py2docfx/venv/template/Lib/site-packages/setuptools/_entry_points.py +0 -89
  1418. py2docfx/venv/template/Lib/site-packages/setuptools/_imp.py +0 -89
  1419. py2docfx/venv/template/Lib/site-packages/setuptools/_importlib.py +0 -13
  1420. py2docfx/venv/template/Lib/site-packages/setuptools/_itertools.py +0 -23
  1421. py2docfx/venv/template/Lib/site-packages/setuptools/_normalization.py +0 -144
  1422. py2docfx/venv/template/Lib/site-packages/setuptools/_path.py +0 -82
  1423. py2docfx/venv/template/Lib/site-packages/setuptools/_reqs.py +0 -38
  1424. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +0 -27
  1425. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +0 -142
  1426. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +0 -70
  1427. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +0 -59
  1428. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +0 -333
  1429. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +0 -23
  1430. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/backports/__init__.py +0 -1
  1431. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +0 -2937
  1432. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +0 -5
  1433. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py +0 -0
  1434. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +0 -24
  1435. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +0 -1083
  1436. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +0 -83
  1437. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +0 -30
  1438. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +0 -57
  1439. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +0 -104
  1440. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +0 -73
  1441. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +0 -67
  1442. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +0 -99
  1443. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py +0 -0
  1444. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +0 -22
  1445. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +0 -36
  1446. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +0 -21
  1447. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  1448. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  1449. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  1450. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  1451. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  1452. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  1453. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  1454. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  1455. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  1456. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  1457. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  1458. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  1459. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  1460. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  1461. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  1462. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  1463. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  1464. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  1465. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  1466. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  1467. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  1468. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  1469. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  1470. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  1471. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  1472. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  1473. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  1474. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  1475. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  1476. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  1477. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  1478. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  1479. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  1480. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  1481. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  1482. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +0 -3986
  1483. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
  1484. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +0 -7
  1485. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/context.py +0 -361
  1486. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +0 -633
  1487. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +0 -624
  1488. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +0 -25
  1489. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +0 -33
  1490. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +0 -21
  1491. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +0 -6
  1492. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +0 -6
  1493. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -6
  1494. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +0 -4806
  1495. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -1046
  1496. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/ordered_set/__init__.py +0 -536
  1497. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +0 -15
  1498. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +0 -110
  1499. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -262
  1500. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -85
  1501. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +0 -354
  1502. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +0 -61
  1503. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +0 -194
  1504. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/markers.py +0 -325
  1505. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +0 -804
  1506. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +0 -91
  1507. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -1009
  1508. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/tags.py +0 -568
  1509. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/utils.py +0 -174
  1510. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/packaging/version.py +0 -563
  1511. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +0 -627
  1512. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +0 -55
  1513. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +0 -249
  1514. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +0 -292
  1515. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +0 -130
  1516. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +0 -275
  1517. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +0 -16
  1518. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +0 -272
  1519. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +0 -11
  1520. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +0 -691
  1521. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/tomli/_re.py +0 -107
  1522. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/tomli/_types.py +0 -10
  1523. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +0 -48
  1524. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +0 -993
  1525. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +0 -108
  1526. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +0 -235
  1527. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +0 -42
  1528. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +0 -308
  1529. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +0 -213
  1530. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +0 -48
  1531. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +0 -127
  1532. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +0 -86
  1533. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +0 -1229
  1534. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +0 -55
  1535. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +0 -173
  1536. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/typing_extensions.py +0 -3641
  1537. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +0 -3
  1538. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +0 -23
  1539. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +0 -26
  1540. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +0 -595
  1541. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +0 -155
  1542. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +0 -273
  1543. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +0 -85
  1544. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +0 -139
  1545. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +0 -30
  1546. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +0 -469
  1547. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +0 -180
  1548. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -26
  1549. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
  1550. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
  1551. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +0 -108
  1552. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +0 -260
  1553. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +0 -83
  1554. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +0 -356
  1555. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +0 -61
  1556. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +0 -192
  1557. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +0 -253
  1558. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +0 -90
  1559. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +0 -1011
  1560. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +0 -571
  1561. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +0 -172
  1562. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +0 -561
  1563. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +0 -196
  1564. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +0 -501
  1565. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
  1566. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +0 -11
  1567. py2docfx/venv/template/Lib/site-packages/setuptools/_vendor/zipp/glob.py +0 -106
  1568. py2docfx/venv/template/Lib/site-packages/setuptools/archive_util.py +0 -216
  1569. py2docfx/venv/template/Lib/site-packages/setuptools/build_meta.py +0 -524
  1570. py2docfx/venv/template/Lib/site-packages/setuptools/command/__init__.py +0 -12
  1571. py2docfx/venv/template/Lib/site-packages/setuptools/command/_requirestxt.py +0 -131
  1572. py2docfx/venv/template/Lib/site-packages/setuptools/command/alias.py +0 -78
  1573. py2docfx/venv/template/Lib/site-packages/setuptools/command/bdist_egg.py +0 -464
  1574. py2docfx/venv/template/Lib/site-packages/setuptools/command/bdist_rpm.py +0 -39
  1575. py2docfx/venv/template/Lib/site-packages/setuptools/command/bdist_wheel.py +0 -597
  1576. py2docfx/venv/template/Lib/site-packages/setuptools/command/build.py +0 -124
  1577. py2docfx/venv/template/Lib/site-packages/setuptools/command/build_clib.py +0 -104
  1578. py2docfx/venv/template/Lib/site-packages/setuptools/command/build_ext.py +0 -459
  1579. py2docfx/venv/template/Lib/site-packages/setuptools/command/build_py.py +0 -401
  1580. py2docfx/venv/template/Lib/site-packages/setuptools/command/develop.py +0 -196
  1581. py2docfx/venv/template/Lib/site-packages/setuptools/command/dist_info.py +0 -106
  1582. py2docfx/venv/template/Lib/site-packages/setuptools/command/easy_install.py +0 -2362
  1583. py2docfx/venv/template/Lib/site-packages/setuptools/command/editable_wheel.py +0 -915
  1584. py2docfx/venv/template/Lib/site-packages/setuptools/command/egg_info.py +0 -726
  1585. py2docfx/venv/template/Lib/site-packages/setuptools/command/install.py +0 -160
  1586. py2docfx/venv/template/Lib/site-packages/setuptools/command/install_egg_info.py +0 -57
  1587. py2docfx/venv/template/Lib/site-packages/setuptools/command/install_lib.py +0 -127
  1588. py2docfx/venv/template/Lib/site-packages/setuptools/command/install_scripts.py +0 -68
  1589. py2docfx/venv/template/Lib/site-packages/setuptools/command/register.py +0 -18
  1590. py2docfx/venv/template/Lib/site-packages/setuptools/command/rotate.py +0 -64
  1591. py2docfx/venv/template/Lib/site-packages/setuptools/command/saveopts.py +0 -21
  1592. py2docfx/venv/template/Lib/site-packages/setuptools/command/sdist.py +0 -204
  1593. py2docfx/venv/template/Lib/site-packages/setuptools/command/setopt.py +0 -140
  1594. py2docfx/venv/template/Lib/site-packages/setuptools/command/test.py +0 -42
  1595. py2docfx/venv/template/Lib/site-packages/setuptools/command/upload.py +0 -17
  1596. py2docfx/venv/template/Lib/site-packages/setuptools/command/upload_docs.py +0 -221
  1597. py2docfx/venv/template/Lib/site-packages/setuptools/compat/__init__.py +0 -0
  1598. py2docfx/venv/template/Lib/site-packages/setuptools/compat/py310.py +0 -10
  1599. py2docfx/venv/template/Lib/site-packages/setuptools/compat/py311.py +0 -26
  1600. py2docfx/venv/template/Lib/site-packages/setuptools/compat/py39.py +0 -9
  1601. py2docfx/venv/template/Lib/site-packages/setuptools/config/__init__.py +0 -43
  1602. py2docfx/venv/template/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +0 -436
  1603. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +0 -34
  1604. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +0 -338
  1605. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +0 -52
  1606. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +0 -51
  1607. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +0 -1104
  1608. py2docfx/venv/template/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +0 -354
  1609. py2docfx/venv/template/Lib/site-packages/setuptools/config/expand.py +0 -443
  1610. py2docfx/venv/template/Lib/site-packages/setuptools/config/pyprojecttoml.py +0 -453
  1611. py2docfx/venv/template/Lib/site-packages/setuptools/config/setupcfg.py +0 -777
  1612. py2docfx/venv/template/Lib/site-packages/setuptools/depends.py +0 -167
  1613. py2docfx/venv/template/Lib/site-packages/setuptools/discovery.py +0 -611
  1614. py2docfx/venv/template/Lib/site-packages/setuptools/dist.py +0 -950
  1615. py2docfx/venv/template/Lib/site-packages/setuptools/errors.py +0 -66
  1616. py2docfx/venv/template/Lib/site-packages/setuptools/extension.py +0 -151
  1617. py2docfx/venv/template/Lib/site-packages/setuptools/glob.py +0 -165
  1618. py2docfx/venv/template/Lib/site-packages/setuptools/installer.py +0 -144
  1619. py2docfx/venv/template/Lib/site-packages/setuptools/launch.py +0 -36
  1620. py2docfx/venv/template/Lib/site-packages/setuptools/logging.py +0 -38
  1621. py2docfx/venv/template/Lib/site-packages/setuptools/modified.py +0 -8
  1622. py2docfx/venv/template/Lib/site-packages/setuptools/monkey.py +0 -157
  1623. py2docfx/venv/template/Lib/site-packages/setuptools/msvc.py +0 -1747
  1624. py2docfx/venv/template/Lib/site-packages/setuptools/namespaces.py +0 -105
  1625. py2docfx/venv/template/Lib/site-packages/setuptools/package_index.py +0 -1148
  1626. py2docfx/venv/template/Lib/site-packages/setuptools/sandbox.py +0 -530
  1627. py2docfx/venv/template/Lib/site-packages/setuptools/tests/__init__.py +0 -15
  1628. py2docfx/venv/template/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
  1629. py2docfx/venv/template/Lib/site-packages/setuptools/tests/compat/py39.py +0 -4
  1630. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
  1631. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +0 -57
  1632. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/downloads/preload.py +0 -19
  1633. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +0 -466
  1634. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/test_expand.py +0 -220
  1635. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +0 -397
  1636. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +0 -99
  1637. py2docfx/venv/template/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +0 -967
  1638. py2docfx/venv/template/Lib/site-packages/setuptools/tests/contexts.py +0 -145
  1639. py2docfx/venv/template/Lib/site-packages/setuptools/tests/environment.py +0 -95
  1640. py2docfx/venv/template/Lib/site-packages/setuptools/tests/fixtures.py +0 -157
  1641. py2docfx/venv/template/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
  1642. py2docfx/venv/template/Lib/site-packages/setuptools/tests/integration/helpers.py +0 -77
  1643. py2docfx/venv/template/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -225
  1644. py2docfx/venv/template/Lib/site-packages/setuptools/tests/mod_with_constant.py +0 -1
  1645. py2docfx/venv/template/Lib/site-packages/setuptools/tests/namespaces.py +0 -90
  1646. py2docfx/venv/template/Lib/site-packages/setuptools/tests/script-with-bom.py +0 -1
  1647. py2docfx/venv/template/Lib/site-packages/setuptools/tests/server.py +0 -86
  1648. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_archive_util.py +0 -36
  1649. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +0 -28
  1650. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_bdist_egg.py +0 -69
  1651. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +0 -611
  1652. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_build.py +0 -33
  1653. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_build_clib.py +0 -83
  1654. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_build_ext.py +0 -292
  1655. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -973
  1656. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_build_py.py +0 -480
  1657. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_config_discovery.py +0 -643
  1658. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_core_metadata.py +0 -391
  1659. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_depends.py +0 -15
  1660. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_develop.py +0 -175
  1661. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_dist.py +0 -281
  1662. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -210
  1663. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +0 -160
  1664. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1458
  1665. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_editable_install.py +0 -1285
  1666. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_egg_info.py +0 -1290
  1667. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_extern.py +0 -20
  1668. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_find_packages.py +0 -219
  1669. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_find_py_modules.py +0 -73
  1670. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_glob.py +0 -45
  1671. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_install_scripts.py +0 -88
  1672. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_integration.py +0 -122
  1673. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_logging.py +0 -74
  1674. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_manifest.py +0 -631
  1675. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_msvc14.py +0 -83
  1676. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_namespaces.py +0 -138
  1677. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -277
  1678. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_register.py +0 -19
  1679. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
  1680. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_sdist.py +0 -910
  1681. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_setopt.py +0 -40
  1682. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_setuptools.py +0 -289
  1683. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_unicode_utils.py +0 -10
  1684. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_upload.py +0 -19
  1685. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_virtualenv.py +0 -115
  1686. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_warnings.py +0 -107
  1687. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_wheel.py +0 -707
  1688. py2docfx/venv/template/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +0 -259
  1689. py2docfx/venv/template/Lib/site-packages/setuptools/tests/text.py +0 -4
  1690. py2docfx/venv/template/Lib/site-packages/setuptools/tests/textwrap.py +0 -6
  1691. py2docfx/venv/template/Lib/site-packages/setuptools/unicode_utils.py +0 -102
  1692. py2docfx/venv/template/Lib/site-packages/setuptools/version.py +0 -6
  1693. py2docfx/venv/template/Lib/site-packages/setuptools/warnings.py +0 -107
  1694. py2docfx/venv/template/Lib/site-packages/setuptools/wheel.py +0 -237
  1695. py2docfx/venv/template/Lib/site-packages/setuptools/windows_support.py +0 -30
  1696. py2docfx/venv/template/Lib/site-packages/snowballstemmer/__init__.py +0 -83
  1697. py2docfx/venv/template/Lib/site-packages/snowballstemmer/among.py +0 -13
  1698. py2docfx/venv/template/Lib/site-packages/snowballstemmer/arabic_stemmer.py +0 -1199
  1699. py2docfx/venv/template/Lib/site-packages/snowballstemmer/armenian_stemmer.py +0 -316
  1700. py2docfx/venv/template/Lib/site-packages/snowballstemmer/basestemmer.py +0 -323
  1701. py2docfx/venv/template/Lib/site-packages/snowballstemmer/basque_stemmer.py +0 -683
  1702. py2docfx/venv/template/Lib/site-packages/snowballstemmer/catalan_stemmer.py +0 -784
  1703. py2docfx/venv/template/Lib/site-packages/snowballstemmer/danish_stemmer.py +0 -221
  1704. py2docfx/venv/template/Lib/site-packages/snowballstemmer/dutch_stemmer.py +0 -468
  1705. py2docfx/venv/template/Lib/site-packages/snowballstemmer/english_stemmer.py +0 -731
  1706. py2docfx/venv/template/Lib/site-packages/snowballstemmer/finnish_stemmer.py +0 -548
  1707. py2docfx/venv/template/Lib/site-packages/snowballstemmer/french_stemmer.py +0 -967
  1708. py2docfx/venv/template/Lib/site-packages/snowballstemmer/german_stemmer.py +0 -415
  1709. py2docfx/venv/template/Lib/site-packages/snowballstemmer/greek_stemmer.py +0 -2271
  1710. py2docfx/venv/template/Lib/site-packages/snowballstemmer/hindi_stemmer.py +0 -173
  1711. py2docfx/venv/template/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +0 -520
  1712. py2docfx/venv/template/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +0 -319
  1713. py2docfx/venv/template/Lib/site-packages/snowballstemmer/irish_stemmer.py +0 -276
  1714. py2docfx/venv/template/Lib/site-packages/snowballstemmer/italian_stemmer.py +0 -715
  1715. py2docfx/venv/template/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +0 -469
  1716. py2docfx/venv/template/Lib/site-packages/snowballstemmer/nepali_stemmer.py +0 -274
  1717. py2docfx/venv/template/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +0 -191
  1718. py2docfx/venv/template/Lib/site-packages/snowballstemmer/porter_stemmer.py +0 -506
  1719. py2docfx/venv/template/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +0 -659
  1720. py2docfx/venv/template/Lib/site-packages/snowballstemmer/romanian_stemmer.py +0 -633
  1721. py2docfx/venv/template/Lib/site-packages/snowballstemmer/russian_stemmer.py +0 -492
  1722. py2docfx/venv/template/Lib/site-packages/snowballstemmer/serbian_stemmer.py +0 -3497
  1723. py2docfx/venv/template/Lib/site-packages/snowballstemmer/spanish_stemmer.py +0 -708
  1724. py2docfx/venv/template/Lib/site-packages/snowballstemmer/swedish_stemmer.py +0 -189
  1725. py2docfx/venv/template/Lib/site-packages/snowballstemmer/tamil_stemmer.py +0 -1788
  1726. py2docfx/venv/template/Lib/site-packages/snowballstemmer/turkish_stemmer.py +0 -1803
  1727. py2docfx/venv/template/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +0 -855
  1728. py2docfx/venv/template/Lib/site-packages/sphinx/__init__.py +0 -54
  1729. py2docfx/venv/template/Lib/site-packages/sphinx/__main__.py +0 -5
  1730. py2docfx/venv/template/Lib/site-packages/sphinx/addnodes.py +0 -564
  1731. py2docfx/venv/template/Lib/site-packages/sphinx/application.py +0 -1344
  1732. py2docfx/venv/template/Lib/site-packages/sphinx/builders/__init__.py +0 -671
  1733. py2docfx/venv/template/Lib/site-packages/sphinx/builders/_epub_base.py +0 -708
  1734. py2docfx/venv/template/Lib/site-packages/sphinx/builders/changes.py +0 -159
  1735. py2docfx/venv/template/Lib/site-packages/sphinx/builders/dirhtml.py +0 -51
  1736. py2docfx/venv/template/Lib/site-packages/sphinx/builders/dummy.py +0 -46
  1737. py2docfx/venv/template/Lib/site-packages/sphinx/builders/epub3.py +0 -293
  1738. py2docfx/venv/template/Lib/site-packages/sphinx/builders/gettext.py +0 -306
  1739. py2docfx/venv/template/Lib/site-packages/sphinx/builders/html/__init__.py +0 -1419
  1740. py2docfx/venv/template/Lib/site-packages/sphinx/builders/html/transforms.py +0 -84
  1741. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/__init__.py +0 -546
  1742. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/constants.py +0 -210
  1743. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/nodes.py +0 -37
  1744. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/theming.py +0 -132
  1745. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/transforms.py +0 -632
  1746. py2docfx/venv/template/Lib/site-packages/sphinx/builders/latex/util.py +0 -48
  1747. py2docfx/venv/template/Lib/site-packages/sphinx/builders/linkcheck.py +0 -598
  1748. py2docfx/venv/template/Lib/site-packages/sphinx/builders/manpage.py +0 -125
  1749. py2docfx/venv/template/Lib/site-packages/sphinx/builders/singlehtml.py +0 -194
  1750. py2docfx/venv/template/Lib/site-packages/sphinx/builders/texinfo.py +0 -224
  1751. py2docfx/venv/template/Lib/site-packages/sphinx/builders/text.py +0 -89
  1752. py2docfx/venv/template/Lib/site-packages/sphinx/builders/xml.py +0 -117
  1753. py2docfx/venv/template/Lib/site-packages/sphinx/cmd/__init__.py +0 -1
  1754. py2docfx/venv/template/Lib/site-packages/sphinx/cmd/build.py +0 -324
  1755. py2docfx/venv/template/Lib/site-packages/sphinx/cmd/make_mode.py +0 -161
  1756. py2docfx/venv/template/Lib/site-packages/sphinx/cmd/quickstart.py +0 -609
  1757. py2docfx/venv/template/Lib/site-packages/sphinx/config.py +0 -520
  1758. py2docfx/venv/template/Lib/site-packages/sphinx/deprecation.py +0 -83
  1759. py2docfx/venv/template/Lib/site-packages/sphinx/directives/__init__.py +0 -340
  1760. py2docfx/venv/template/Lib/site-packages/sphinx/directives/code.py +0 -483
  1761. py2docfx/venv/template/Lib/site-packages/sphinx/directives/other.py +0 -393
  1762. py2docfx/venv/template/Lib/site-packages/sphinx/directives/patches.py +0 -189
  1763. py2docfx/venv/template/Lib/site-packages/sphinx/domains/__init__.py +0 -403
  1764. py2docfx/venv/template/Lib/site-packages/sphinx/domains/c.py +0 -3880
  1765. py2docfx/venv/template/Lib/site-packages/sphinx/domains/changeset.py +0 -160
  1766. py2docfx/venv/template/Lib/site-packages/sphinx/domains/citation.py +0 -153
  1767. py2docfx/venv/template/Lib/site-packages/sphinx/domains/cpp.py +0 -8162
  1768. py2docfx/venv/template/Lib/site-packages/sphinx/domains/index.py +0 -122
  1769. py2docfx/venv/template/Lib/site-packages/sphinx/domains/javascript.py +0 -499
  1770. py2docfx/venv/template/Lib/site-packages/sphinx/domains/math.py +0 -150
  1771. py2docfx/venv/template/Lib/site-packages/sphinx/domains/python.py +0 -1521
  1772. py2docfx/venv/template/Lib/site-packages/sphinx/domains/rst.py +0 -303
  1773. py2docfx/venv/template/Lib/site-packages/sphinx/domains/std.py +0 -1155
  1774. py2docfx/venv/template/Lib/site-packages/sphinx/environment/__init__.py +0 -730
  1775. py2docfx/venv/template/Lib/site-packages/sphinx/environment/adapters/__init__.py +0 -1
  1776. py2docfx/venv/template/Lib/site-packages/sphinx/environment/adapters/asset.py +0 -15
  1777. py2docfx/venv/template/Lib/site-packages/sphinx/environment/adapters/indexentries.py +0 -172
  1778. py2docfx/venv/template/Lib/site-packages/sphinx/environment/adapters/toctree.py +0 -340
  1779. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/__init__.py +0 -73
  1780. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/asset.py +0 -141
  1781. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/dependencies.py +0 -54
  1782. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/metadata.py +0 -68
  1783. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/title.py +0 -59
  1784. py2docfx/venv/template/Lib/site-packages/sphinx/environment/collectors/toctree.py +0 -350
  1785. py2docfx/venv/template/Lib/site-packages/sphinx/errors.py +0 -127
  1786. py2docfx/venv/template/Lib/site-packages/sphinx/events.py +0 -120
  1787. py2docfx/venv/template/Lib/site-packages/sphinx/ext/__init__.py +0 -1
  1788. py2docfx/venv/template/Lib/site-packages/sphinx/ext/apidoc.py +0 -470
  1789. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/__init__.py +0 -2793
  1790. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/directive.py +0 -148
  1791. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/importer.py +0 -307
  1792. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/mock.py +0 -195
  1793. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/preserve_defaults.py +0 -124
  1794. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/type_comment.py +0 -131
  1795. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autodoc/typehints.py +0 -216
  1796. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autosectionlabel.py +0 -66
  1797. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autosummary/__init__.py +0 -837
  1798. py2docfx/venv/template/Lib/site-packages/sphinx/ext/autosummary/generate.py +0 -646
  1799. py2docfx/venv/template/Lib/site-packages/sphinx/ext/coverage.py +0 -315
  1800. py2docfx/venv/template/Lib/site-packages/sphinx/ext/doctest.py +0 -561
  1801. py2docfx/venv/template/Lib/site-packages/sphinx/ext/duration.py +0 -90
  1802. py2docfx/venv/template/Lib/site-packages/sphinx/ext/extlinks.py +0 -120
  1803. py2docfx/venv/template/Lib/site-packages/sphinx/ext/githubpages.py +0 -31
  1804. py2docfx/venv/template/Lib/site-packages/sphinx/ext/graphviz.py +0 -416
  1805. py2docfx/venv/template/Lib/site-packages/sphinx/ext/ifconfig.py +0 -78
  1806. py2docfx/venv/template/Lib/site-packages/sphinx/ext/imgconverter.py +0 -92
  1807. py2docfx/venv/template/Lib/site-packages/sphinx/ext/imgmath.py +0 -390
  1808. py2docfx/venv/template/Lib/site-packages/sphinx/ext/inheritance_diagram.py +0 -474
  1809. py2docfx/venv/template/Lib/site-packages/sphinx/ext/intersphinx.py +0 -684
  1810. py2docfx/venv/template/Lib/site-packages/sphinx/ext/linkcode.py +0 -73
  1811. py2docfx/venv/template/Lib/site-packages/sphinx/ext/mathjax.py +0 -122
  1812. py2docfx/venv/template/Lib/site-packages/sphinx/ext/napoleon/__init__.py +0 -474
  1813. py2docfx/venv/template/Lib/site-packages/sphinx/ext/napoleon/docstring.py +0 -1356
  1814. py2docfx/venv/template/Lib/site-packages/sphinx/ext/napoleon/iterators.py +0 -235
  1815. py2docfx/venv/template/Lib/site-packages/sphinx/ext/todo.py +0 -243
  1816. py2docfx/venv/template/Lib/site-packages/sphinx/ext/viewcode.py +0 -341
  1817. py2docfx/venv/template/Lib/site-packages/sphinx/extension.py +0 -82
  1818. py2docfx/venv/template/Lib/site-packages/sphinx/highlighting.py +0 -184
  1819. py2docfx/venv/template/Lib/site-packages/sphinx/io.py +0 -221
  1820. py2docfx/venv/template/Lib/site-packages/sphinx/jinja2glue.py +0 -217
  1821. py2docfx/venv/template/Lib/site-packages/sphinx/locale/__init__.py +0 -261
  1822. py2docfx/venv/template/Lib/site-packages/sphinx/parsers.py +0 -96
  1823. py2docfx/venv/template/Lib/site-packages/sphinx/project.py +0 -94
  1824. py2docfx/venv/template/Lib/site-packages/sphinx/pycode/__init__.py +0 -171
  1825. py2docfx/venv/template/Lib/site-packages/sphinx/pycode/ast.py +0 -211
  1826. py2docfx/venv/template/Lib/site-packages/sphinx/pycode/parser.py +0 -573
  1827. py2docfx/venv/template/Lib/site-packages/sphinx/pygments_styles.py +0 -87
  1828. py2docfx/venv/template/Lib/site-packages/sphinx/registry.py +0 -513
  1829. py2docfx/venv/template/Lib/site-packages/sphinx/roles.py +0 -428
  1830. py2docfx/venv/template/Lib/site-packages/sphinx/search/__init__.py +0 -593
  1831. py2docfx/venv/template/Lib/site-packages/sphinx/search/da.py +0 -120
  1832. py2docfx/venv/template/Lib/site-packages/sphinx/search/de.py +0 -303
  1833. py2docfx/venv/template/Lib/site-packages/sphinx/search/en.py +0 -220
  1834. py2docfx/venv/template/Lib/site-packages/sphinx/search/es.py +0 -363
  1835. py2docfx/venv/template/Lib/site-packages/sphinx/search/fi.py +0 -113
  1836. py2docfx/venv/template/Lib/site-packages/sphinx/search/fr.py +0 -199
  1837. py2docfx/venv/template/Lib/site-packages/sphinx/search/hu.py +0 -226
  1838. py2docfx/venv/template/Lib/site-packages/sphinx/search/it.py +0 -316
  1839. py2docfx/venv/template/Lib/site-packages/sphinx/search/ja.py +0 -536
  1840. py2docfx/venv/template/Lib/site-packages/sphinx/search/nl.py +0 -127
  1841. py2docfx/venv/template/Lib/site-packages/sphinx/search/no.py +0 -202
  1842. py2docfx/venv/template/Lib/site-packages/sphinx/search/pt.py +0 -261
  1843. py2docfx/venv/template/Lib/site-packages/sphinx/search/ro.py +0 -22
  1844. py2docfx/venv/template/Lib/site-packages/sphinx/search/ru.py +0 -251
  1845. py2docfx/venv/template/Lib/site-packages/sphinx/search/sv.py +0 -140
  1846. py2docfx/venv/template/Lib/site-packages/sphinx/search/tr.py +0 -22
  1847. py2docfx/venv/template/Lib/site-packages/sphinx/search/zh.py +0 -262
  1848. py2docfx/venv/template/Lib/site-packages/sphinx/setup_command.py +0 -192
  1849. py2docfx/venv/template/Lib/site-packages/sphinx/testing/__init__.py +0 -7
  1850. py2docfx/venv/template/Lib/site-packages/sphinx/testing/comparer.py +0 -97
  1851. py2docfx/venv/template/Lib/site-packages/sphinx/testing/fixtures.py +0 -250
  1852. py2docfx/venv/template/Lib/site-packages/sphinx/testing/path.py +0 -210
  1853. py2docfx/venv/template/Lib/site-packages/sphinx/testing/restructuredtext.py +0 -27
  1854. py2docfx/venv/template/Lib/site-packages/sphinx/testing/util.py +0 -206
  1855. py2docfx/venv/template/Lib/site-packages/sphinx/theming.py +0 -230
  1856. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/__init__.py +0 -419
  1857. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/compact_bullet_list.py +0 -88
  1858. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/i18n.py +0 -528
  1859. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/post_transforms/__init__.py +0 -279
  1860. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/post_transforms/code.py +0 -136
  1861. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/post_transforms/images.py +0 -271
  1862. py2docfx/venv/template/Lib/site-packages/sphinx/transforms/references.py +0 -47
  1863. py2docfx/venv/template/Lib/site-packages/sphinx/util/__init__.py +0 -407
  1864. py2docfx/venv/template/Lib/site-packages/sphinx/util/build_phase.py +0 -12
  1865. py2docfx/venv/template/Lib/site-packages/sphinx/util/cfamily.py +0 -462
  1866. py2docfx/venv/template/Lib/site-packages/sphinx/util/console.py +0 -129
  1867. py2docfx/venv/template/Lib/site-packages/sphinx/util/display.py +0 -87
  1868. py2docfx/venv/template/Lib/site-packages/sphinx/util/docfields.py +0 -368
  1869. py2docfx/venv/template/Lib/site-packages/sphinx/util/docstrings.py +0 -88
  1870. py2docfx/venv/template/Lib/site-packages/sphinx/util/docutils.py +0 -621
  1871. py2docfx/venv/template/Lib/site-packages/sphinx/util/exceptions.py +0 -67
  1872. py2docfx/venv/template/Lib/site-packages/sphinx/util/fileutil.py +0 -97
  1873. py2docfx/venv/template/Lib/site-packages/sphinx/util/http_date.py +0 -20
  1874. py2docfx/venv/template/Lib/site-packages/sphinx/util/i18n.py +0 -262
  1875. py2docfx/venv/template/Lib/site-packages/sphinx/util/images.py +0 -113
  1876. py2docfx/venv/template/Lib/site-packages/sphinx/util/inspect.py +0 -811
  1877. py2docfx/venv/template/Lib/site-packages/sphinx/util/inventory.py +0 -170
  1878. py2docfx/venv/template/Lib/site-packages/sphinx/util/jsdump.py +0 -201
  1879. py2docfx/venv/template/Lib/site-packages/sphinx/util/logging.py +0 -603
  1880. py2docfx/venv/template/Lib/site-packages/sphinx/util/matching.py +0 -166
  1881. py2docfx/venv/template/Lib/site-packages/sphinx/util/math.py +0 -58
  1882. py2docfx/venv/template/Lib/site-packages/sphinx/util/nodes.py +0 -629
  1883. py2docfx/venv/template/Lib/site-packages/sphinx/util/osutil.py +0 -221
  1884. py2docfx/venv/template/Lib/site-packages/sphinx/util/parallel.py +0 -151
  1885. py2docfx/venv/template/Lib/site-packages/sphinx/util/png.py +0 -43
  1886. py2docfx/venv/template/Lib/site-packages/sphinx/util/requests.py +0 -92
  1887. py2docfx/venv/template/Lib/site-packages/sphinx/util/rst.py +0 -110
  1888. py2docfx/venv/template/Lib/site-packages/sphinx/util/stemmer/__init__.py +0 -62
  1889. py2docfx/venv/template/Lib/site-packages/sphinx/util/tags.py +0 -81
  1890. py2docfx/venv/template/Lib/site-packages/sphinx/util/template.py +0 -132
  1891. py2docfx/venv/template/Lib/site-packages/sphinx/util/texescape.py +0 -153
  1892. py2docfx/venv/template/Lib/site-packages/sphinx/util/typing.py +0 -352
  1893. py2docfx/venv/template/Lib/site-packages/sphinx/versioning.py +0 -176
  1894. py2docfx/venv/template/Lib/site-packages/sphinx/writers/__init__.py +0 -1
  1895. py2docfx/venv/template/Lib/site-packages/sphinx/writers/_html4.py +0 -858
  1896. py2docfx/venv/template/Lib/site-packages/sphinx/writers/html.py +0 -45
  1897. py2docfx/venv/template/Lib/site-packages/sphinx/writers/html5.py +0 -824
  1898. py2docfx/venv/template/Lib/site-packages/sphinx/writers/latex.py +0 -2116
  1899. py2docfx/venv/template/Lib/site-packages/sphinx/writers/manpage.py +0 -459
  1900. py2docfx/venv/template/Lib/site-packages/sphinx/writers/texinfo.py +0 -1562
  1901. py2docfx/venv/template/Lib/site-packages/sphinx/writers/text.py +0 -1182
  1902. py2docfx/venv/template/Lib/site-packages/sphinx/writers/xml.py +0 -49
  1903. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/applehelp/__init__.py +0 -276
  1904. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/devhelp/__init__.py +0 -143
  1905. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/htmlhelp/__init__.py +0 -340
  1906. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/jsmath/__init__.py +0 -92
  1907. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/jsmath/version.py +0 -11
  1908. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/qthelp/__init__.py +0 -266
  1909. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/serializinghtml/__init__.py +0 -180
  1910. py2docfx/venv/template/Lib/site-packages/sphinxcontrib/serializinghtml/jsonimpl.py +0 -33
  1911. py2docfx/venv/template/Lib/site-packages/urllib3/__init__.py +0 -211
  1912. py2docfx/venv/template/Lib/site-packages/urllib3/_base_connection.py +0 -172
  1913. py2docfx/venv/template/Lib/site-packages/urllib3/_collections.py +0 -483
  1914. py2docfx/venv/template/Lib/site-packages/urllib3/_request_methods.py +0 -279
  1915. py2docfx/venv/template/Lib/site-packages/urllib3/_version.py +0 -4
  1916. py2docfx/venv/template/Lib/site-packages/urllib3/connection.py +0 -929
  1917. py2docfx/venv/template/Lib/site-packages/urllib3/connectionpool.py +0 -1182
  1918. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
  1919. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/emscripten/__init__.py +0 -16
  1920. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/emscripten/connection.py +0 -254
  1921. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +0 -418
  1922. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/emscripten/request.py +0 -22
  1923. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/emscripten/response.py +0 -285
  1924. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/pyopenssl.py +0 -548
  1925. py2docfx/venv/template/Lib/site-packages/urllib3/contrib/socks.py +0 -228
  1926. py2docfx/venv/template/Lib/site-packages/urllib3/exceptions.py +0 -321
  1927. py2docfx/venv/template/Lib/site-packages/urllib3/fields.py +0 -341
  1928. py2docfx/venv/template/Lib/site-packages/urllib3/filepost.py +0 -89
  1929. py2docfx/venv/template/Lib/site-packages/urllib3/http2.py +0 -230
  1930. py2docfx/venv/template/Lib/site-packages/urllib3/poolmanager.py +0 -637
  1931. py2docfx/venv/template/Lib/site-packages/urllib3/response.py +0 -1265
  1932. py2docfx/venv/template/Lib/site-packages/urllib3/util/__init__.py +0 -42
  1933. py2docfx/venv/template/Lib/site-packages/urllib3/util/connection.py +0 -137
  1934. py2docfx/venv/template/Lib/site-packages/urllib3/util/proxy.py +0 -43
  1935. py2docfx/venv/template/Lib/site-packages/urllib3/util/request.py +0 -256
  1936. py2docfx/venv/template/Lib/site-packages/urllib3/util/response.py +0 -101
  1937. py2docfx/venv/template/Lib/site-packages/urllib3/util/retry.py +0 -533
  1938. py2docfx/venv/template/Lib/site-packages/urllib3/util/ssl_.py +0 -509
  1939. py2docfx/venv/template/Lib/site-packages/urllib3/util/ssl_match_hostname.py +0 -159
  1940. py2docfx/venv/template/Lib/site-packages/urllib3/util/ssltransport.py +0 -279
  1941. py2docfx/venv/template/Lib/site-packages/urllib3/util/timeout.py +0 -275
  1942. py2docfx/venv/template/Lib/site-packages/urllib3/util/url.py +0 -471
  1943. py2docfx/venv/template/Lib/site-packages/urllib3/util/util.py +0 -42
  1944. py2docfx/venv/template/Lib/site-packages/urllib3/util/wait.py +0 -124
  1945. py2docfx/venv/template/Lib/site-packages/wheel/__init__.py +0 -3
  1946. py2docfx/venv/template/Lib/site-packages/wheel/__main__.py +0 -23
  1947. py2docfx/venv/template/Lib/site-packages/wheel/_bdist_wheel.py +0 -604
  1948. py2docfx/venv/template/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  1949. py2docfx/venv/template/Lib/site-packages/wheel/bdist_wheel.py +0 -11
  1950. py2docfx/venv/template/Lib/site-packages/wheel/cli/__init__.py +0 -155
  1951. py2docfx/venv/template/Lib/site-packages/wheel/cli/convert.py +0 -273
  1952. py2docfx/venv/template/Lib/site-packages/wheel/cli/pack.py +0 -85
  1953. py2docfx/venv/template/Lib/site-packages/wheel/cli/tags.py +0 -139
  1954. py2docfx/venv/template/Lib/site-packages/wheel/cli/unpack.py +0 -30
  1955. py2docfx/venv/template/Lib/site-packages/wheel/macosx_libfile.py +0 -482
  1956. py2docfx/venv/template/Lib/site-packages/wheel/metadata.py +0 -183
  1957. py2docfx/venv/template/Lib/site-packages/wheel/util.py +0 -26
  1958. py2docfx/venv/template/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  1959. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  1960. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_elffile.py +0 -108
  1961. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -260
  1962. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -83
  1963. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_parser.py +0 -356
  1964. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_structures.py +0 -61
  1965. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +0 -192
  1966. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/markers.py +0 -253
  1967. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/requirements.py +0 -90
  1968. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/specifiers.py +0 -1011
  1969. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -571
  1970. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/utils.py +0 -172
  1971. py2docfx/venv/template/Lib/site-packages/wheel/vendored/packaging/version.py +0 -561
  1972. py2docfx/venv/template/Lib/site-packages/wheel/wheelfile.py +0 -227
  1973. py2docfx/venv/template/Lib/site-packages/yaml/__init__.py +0 -390
  1974. py2docfx/venv/template/Lib/site-packages/yaml/composer.py +0 -139
  1975. py2docfx/venv/template/Lib/site-packages/yaml/constructor.py +0 -748
  1976. py2docfx/venv/template/Lib/site-packages/yaml/cyaml.py +0 -101
  1977. py2docfx/venv/template/Lib/site-packages/yaml/dumper.py +0 -62
  1978. py2docfx/venv/template/Lib/site-packages/yaml/emitter.py +0 -1137
  1979. py2docfx/venv/template/Lib/site-packages/yaml/error.py +0 -75
  1980. py2docfx/venv/template/Lib/site-packages/yaml/events.py +0 -86
  1981. py2docfx/venv/template/Lib/site-packages/yaml/loader.py +0 -63
  1982. py2docfx/venv/template/Lib/site-packages/yaml/nodes.py +0 -49
  1983. py2docfx/venv/template/Lib/site-packages/yaml/parser.py +0 -589
  1984. py2docfx/venv/template/Lib/site-packages/yaml/reader.py +0 -185
  1985. py2docfx/venv/template/Lib/site-packages/yaml/representer.py +0 -389
  1986. py2docfx/venv/template/Lib/site-packages/yaml/resolver.py +0 -227
  1987. py2docfx/venv/template/Lib/site-packages/yaml/scanner.py +0 -1435
  1988. py2docfx/venv/template/Lib/site-packages/yaml/serializer.py +0 -111
  1989. py2docfx/venv/template/Lib/site-packages/yaml/tokens.py +0 -104
  1990. py2docfx/venv/template/Scripts/rst2html.py +0 -23
  1991. py2docfx/venv/template/Scripts/rst2html4.py +0 -26
  1992. py2docfx/venv/template/Scripts/rst2html5.py +0 -33
  1993. py2docfx/venv/template/Scripts/rst2latex.py +0 -26
  1994. py2docfx/venv/template/Scripts/rst2man.py +0 -27
  1995. py2docfx/venv/template/Scripts/rst2odt.py +0 -28
  1996. py2docfx/venv/template/Scripts/rst2odt_prepstyles.py +0 -65
  1997. py2docfx/venv/template/Scripts/rst2pseudoxml.py +0 -23
  1998. py2docfx/venv/template/Scripts/rst2s5.py +0 -24
  1999. py2docfx/venv/template/Scripts/rst2xetex.py +0 -27
  2000. py2docfx/venv/template/Scripts/rst2xml.py +0 -23
  2001. py2docfx/venv/template/Scripts/rstpep2html.py +0 -25
  2002. py2docfx-0.1.11.dev1827111.dist-info/RECORD +0 -3712
  2003. {py2docfx-0.1.11.dev1827111.dist-info → py2docfx-0.1.11.dev1859874.dist-info}/WHEEL +0 -0
  2004. {py2docfx-0.1.11.dev1827111.dist-info → py2docfx-0.1.11.dev1859874.dist-info}/top_level.txt +0 -0
@@ -1,2793 +0,0 @@
1
- """Extension to create automatic documentation from code docstrings.
2
-
3
- Automatically insert docstrings for functions, classes or whole modules into
4
- the doctree, thus avoiding duplication between docstrings and documentation
5
- for those who like elaborate docstrings.
6
- """
7
-
8
- from __future__ import annotations
9
-
10
- import re
11
- import sys
12
- from inspect import Parameter, Signature
13
- from types import ModuleType
14
- from typing import (TYPE_CHECKING, Any, Callable, Iterator, List, Sequence, Tuple, TypeVar,
15
- Union)
16
-
17
- from docutils.statemachine import StringList
18
-
19
- import sphinx
20
- from sphinx.application import Sphinx
21
- from sphinx.config import ENUM, Config
22
- from sphinx.environment import BuildEnvironment
23
- from sphinx.ext.autodoc.importer import get_class_members, import_module, import_object
24
- from sphinx.ext.autodoc.mock import ismock, mock, undecorate
25
- from sphinx.locale import _, __
26
- from sphinx.pycode import ModuleAnalyzer, PycodeError
27
- from sphinx.util import inspect, logging
28
- from sphinx.util.docstrings import prepare_docstring, separate_metadata
29
- from sphinx.util.inspect import (evaluate_signature, getdoc, object_description, safe_getattr,
30
- stringify_signature)
31
- from sphinx.util.typing import OptionSpec, get_type_hints, restify, stringify_annotation
32
-
33
- if TYPE_CHECKING:
34
- from sphinx.ext.autodoc.directive import DocumenterBridge
35
-
36
- logger = logging.getLogger(__name__)
37
-
38
-
39
- # This type isn't exposed directly in any modules, but can be found
40
- # here in most Python versions
41
- MethodDescriptorType = type(type.__subclasses__)
42
-
43
-
44
- #: extended signature RE: with explicit module name separated by ::
45
- py_ext_sig_re = re.compile(
46
- r'''^ ([\w.]+::)? # explicit module name
47
- ([\w.]+\.)? # module and/or class name(s)
48
- (\w+) \s* # thing name
49
- (?: \((.*)\) # optional: arguments
50
- (?:\s* -> \s* (.*))? # return annotation
51
- )? $ # and nothing more
52
- ''', re.VERBOSE)
53
- special_member_re = re.compile(r'^__\S+__$')
54
-
55
-
56
- def identity(x: Any) -> Any:
57
- return x
58
-
59
-
60
- class _All:
61
- """A special value for :*-members: that matches to any member."""
62
-
63
- def __contains__(self, item: Any) -> bool:
64
- return True
65
-
66
- def append(self, item: Any) -> None:
67
- pass # nothing
68
-
69
-
70
- class _Empty:
71
- """A special value for :exclude-members: that never matches to any member."""
72
-
73
- def __contains__(self, item: Any) -> bool:
74
- return False
75
-
76
-
77
- ALL = _All()
78
- EMPTY = _Empty()
79
- UNINITIALIZED_ATTR = object()
80
- INSTANCEATTR = object()
81
- SLOTSATTR = object()
82
-
83
-
84
- def members_option(arg: Any) -> object | list[str]:
85
- """Used to convert the :members: option to auto directives."""
86
- if arg in (None, True):
87
- return ALL
88
- elif arg is False:
89
- return None
90
- else:
91
- return [x.strip() for x in arg.split(',') if x.strip()]
92
-
93
-
94
- def exclude_members_option(arg: Any) -> object | set[str]:
95
- """Used to convert the :exclude-members: option."""
96
- if arg in (None, True):
97
- return EMPTY
98
- return {x.strip() for x in arg.split(',') if x.strip()}
99
-
100
-
101
- def inherited_members_option(arg: Any) -> set[str]:
102
- """Used to convert the :inherited-members: option to auto directives."""
103
- if arg in (None, True):
104
- return {'object'}
105
- elif arg:
106
- return {x.strip() for x in arg.split(',')}
107
- else:
108
- return set()
109
-
110
-
111
- def member_order_option(arg: Any) -> str | None:
112
- """Used to convert the :member-order: option to auto directives."""
113
- if arg in (None, True):
114
- return None
115
- elif arg in ('alphabetical', 'bysource', 'groupwise'):
116
- return arg
117
- else:
118
- raise ValueError(__('invalid value for member-order option: %s') % arg)
119
-
120
-
121
- def class_doc_from_option(arg: Any) -> str | None:
122
- """Used to convert the :class-doc-from: option to autoclass directives."""
123
- if arg in ('both', 'class', 'init'):
124
- return arg
125
- else:
126
- raise ValueError(__('invalid value for class-doc-from option: %s') % arg)
127
-
128
-
129
- SUPPRESS = object()
130
-
131
-
132
- def annotation_option(arg: Any) -> Any:
133
- if arg in (None, True):
134
- # suppress showing the representation of the object
135
- return SUPPRESS
136
- else:
137
- return arg
138
-
139
-
140
- def bool_option(arg: Any) -> bool:
141
- """Used to convert flag options to auto directives. (Instead of
142
- directives.flag(), which returns None).
143
- """
144
- return True
145
-
146
-
147
- def merge_members_option(options: dict) -> None:
148
- """Merge :private-members: and :special-members: options to the
149
- :members: option.
150
- """
151
- if options.get('members') is ALL:
152
- # merging is not needed when members: ALL
153
- return
154
-
155
- members = options.setdefault('members', [])
156
- for key in {'private-members', 'special-members'}:
157
- if key in options and options[key] not in (ALL, None):
158
- for member in options[key]:
159
- if member not in members:
160
- members.append(member)
161
-
162
-
163
- # Some useful event listener factories for autodoc-process-docstring.
164
-
165
- def cut_lines(pre: int, post: int = 0, what: str | None = None) -> Callable:
166
- """Return a listener that removes the first *pre* and last *post*
167
- lines of every docstring. If *what* is a sequence of strings,
168
- only docstrings of a type in *what* will be processed.
169
-
170
- Use like this (e.g. in the ``setup()`` function of :file:`conf.py`)::
171
-
172
- from sphinx.ext.autodoc import cut_lines
173
- app.connect('autodoc-process-docstring', cut_lines(4, what=['module']))
174
-
175
- This can (and should) be used in place of :confval:`automodule_skip_lines`.
176
- """
177
- def process(app: Sphinx, what_: str, name: str, obj: Any, options: Any, lines: list[str]
178
- ) -> None:
179
- if what and what_ not in what:
180
- return
181
- del lines[:pre]
182
- if post:
183
- # remove one trailing blank line.
184
- if lines and not lines[-1]:
185
- lines.pop(-1)
186
- del lines[-post:]
187
- # make sure there is a blank line at the end
188
- if lines and lines[-1]:
189
- lines.append('')
190
- return process
191
-
192
-
193
- def between(
194
- marker: str,
195
- what: Sequence[str] | None = None,
196
- keepempty: bool = False,
197
- exclude: bool = False
198
- ) -> Callable:
199
- """Return a listener that either keeps, or if *exclude* is True excludes,
200
- lines between lines that match the *marker* regular expression. If no line
201
- matches, the resulting docstring would be empty, so no change will be made
202
- unless *keepempty* is true.
203
-
204
- If *what* is a sequence of strings, only docstrings of a type in *what* will
205
- be processed.
206
- """
207
- marker_re = re.compile(marker)
208
-
209
- def process(app: Sphinx, what_: str, name: str, obj: Any, options: Any, lines: list[str]
210
- ) -> None:
211
- if what and what_ not in what:
212
- return
213
- deleted = 0
214
- delete = not exclude
215
- orig_lines = lines[:]
216
- for i, line in enumerate(orig_lines):
217
- if delete:
218
- lines.pop(i - deleted)
219
- deleted += 1
220
- if marker_re.match(line):
221
- delete = not delete
222
- if delete:
223
- lines.pop(i - deleted)
224
- deleted += 1
225
- if not lines and not keepempty:
226
- lines[:] = orig_lines
227
- # make sure there is a blank line at the end
228
- if lines and lines[-1]:
229
- lines.append('')
230
- return process
231
-
232
-
233
- # This class is used only in ``sphinx.ext.autodoc.directive``,
234
- # But we define this class here to keep compatibility (see #4538)
235
- class Options(dict):
236
- """A dict/attribute hybrid that returns None on nonexisting keys."""
237
- def copy(self) -> Options:
238
- return Options(super().copy())
239
-
240
- def __getattr__(self, name: str) -> Any:
241
- try:
242
- return self[name.replace('_', '-')]
243
- except KeyError:
244
- return None
245
-
246
-
247
- class ObjectMember(tuple):
248
- """A member of object.
249
-
250
- This is used for the result of `Documenter.get_module_members()` to
251
- represent each member of the object.
252
-
253
- .. Note::
254
-
255
- An instance of this class behaves as a tuple of (name, object)
256
- for compatibility to old Sphinx. The behavior will be dropped
257
- in the future. Therefore extensions should not use the tuple
258
- interface.
259
- """
260
-
261
- def __new__(cls, name: str, obj: Any, **kwargs: Any) -> Any:
262
- return super().__new__(cls, (name, obj)) # type: ignore
263
-
264
- def __init__(self, name: str, obj: Any, docstring: str | None = None,
265
- class_: Any = None, skipped: bool = False) -> None:
266
- self.__name__ = name
267
- self.object = obj
268
- self.docstring = docstring
269
- self.skipped = skipped
270
- self.class_ = class_
271
-
272
-
273
- ObjectMembers = Union[List[ObjectMember], List[Tuple[str, Any]]]
274
-
275
-
276
- class Documenter:
277
- """
278
- A Documenter knows how to autodocument a single object type. When
279
- registered with the AutoDirective, it will be used to document objects
280
- of that type when needed by autodoc.
281
-
282
- Its *objtype* attribute selects what auto directive it is assigned to
283
- (the directive name is 'auto' + objtype), and what directive it generates
284
- by default, though that can be overridden by an attribute called
285
- *directivetype*.
286
-
287
- A Documenter has an *option_spec* that works like a docutils directive's;
288
- in fact, it will be used to parse an auto directive's options that matches
289
- the Documenter.
290
- """
291
- #: name by which the directive is called (auto...) and the default
292
- #: generated directive name
293
- objtype = 'object'
294
- #: indentation by which to indent the directive content
295
- content_indent = ' '
296
- #: priority if multiple documenters return True from can_document_member
297
- priority = 0
298
- #: order if autodoc_member_order is set to 'groupwise'
299
- member_order = 0
300
- #: true if the generated content may contain titles
301
- titles_allowed = False
302
-
303
- option_spec: OptionSpec = {
304
- 'noindex': bool_option
305
- }
306
-
307
- def get_attr(self, obj: Any, name: str, *defargs: Any) -> Any:
308
- """getattr() override for types such as Zope interfaces."""
309
- return autodoc_attrgetter(self.env.app, obj, name, *defargs)
310
-
311
- @classmethod
312
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
313
- ) -> bool:
314
- """Called to see if a member can be documented by this Documenter."""
315
- raise NotImplementedError('must be implemented in subclasses')
316
-
317
- def __init__(self, directive: DocumenterBridge, name: str, indent: str = '') -> None:
318
- self.directive = directive
319
- self.config: Config = directive.env.config
320
- self.env: BuildEnvironment = directive.env
321
- self.options = directive.genopt
322
- self.name = name
323
- self.indent = indent
324
- # the module and object path within the module, and the fully
325
- # qualified name (all set after resolve_name succeeds)
326
- self.modname: str = None
327
- self.module: ModuleType = None
328
- self.objpath: list[str] = None
329
- self.fullname: str = None
330
- # extra signature items (arguments and return annotation,
331
- # also set after resolve_name succeeds)
332
- self.args: str = None
333
- self.retann: str = None
334
- # the object to document (set after import_object succeeds)
335
- self.object: Any = None
336
- self.object_name: str = None
337
- # the parent/owner of the object to document
338
- self.parent: Any = None
339
- # the module analyzer to get at attribute docs, or None
340
- self.analyzer: ModuleAnalyzer = None
341
-
342
- @property
343
- def documenters(self) -> dict[str, type[Documenter]]:
344
- """Returns registered Documenter classes"""
345
- return self.env.app.registry.documenters
346
-
347
- def add_line(self, line: str, source: str, *lineno: int) -> None:
348
- """Append one line of generated reST to the output."""
349
- if line.strip(): # not a blank line
350
- self.directive.result.append(self.indent + line, source, *lineno)
351
- else:
352
- self.directive.result.append('', source, *lineno)
353
-
354
- def resolve_name(self, modname: str, parents: Any, path: str, base: Any
355
- ) -> tuple[str, list[str]]:
356
- """Resolve the module and name of the object to document given by the
357
- arguments and the current module/class.
358
-
359
- Must return a pair of the module name and a chain of attributes; for
360
- example, it would return ``('zipfile', ['ZipFile', 'open'])`` for the
361
- ``zipfile.ZipFile.open`` method.
362
- """
363
- raise NotImplementedError('must be implemented in subclasses')
364
-
365
- def parse_name(self) -> bool:
366
- """Determine what module to import and what attribute to document.
367
-
368
- Returns True and sets *self.modname*, *self.objpath*, *self.fullname*,
369
- *self.args* and *self.retann* if parsing and resolving was successful.
370
- """
371
- # first, parse the definition -- auto directives for classes and
372
- # functions can contain a signature which is then used instead of
373
- # an autogenerated one
374
- try:
375
- matched = py_ext_sig_re.match(self.name)
376
- explicit_modname, path, base, args, retann = matched.groups()
377
- except AttributeError:
378
- logger.warning(__('invalid signature for auto%s (%r)') % (self.objtype, self.name),
379
- type='autodoc')
380
- return False
381
-
382
- # support explicit module and class name separation via ::
383
- if explicit_modname is not None:
384
- modname = explicit_modname[:-2]
385
- parents = path.rstrip('.').split('.') if path else []
386
- else:
387
- modname = None
388
- parents = []
389
-
390
- with mock(self.config.autodoc_mock_imports):
391
- self.modname, self.objpath = self.resolve_name(modname, parents, path, base)
392
-
393
- if not self.modname:
394
- return False
395
-
396
- self.args = args
397
- self.retann = retann
398
- self.fullname = ((self.modname or '') +
399
- ('.' + '.'.join(self.objpath) if self.objpath else ''))
400
- return True
401
-
402
- def import_object(self, raiseerror: bool = False) -> bool:
403
- """Import the object given by *self.modname* and *self.objpath* and set
404
- it as *self.object*.
405
-
406
- Returns True if successful, False if an error occurred.
407
- """
408
- with mock(self.config.autodoc_mock_imports):
409
- try:
410
- ret = import_object(self.modname, self.objpath, self.objtype,
411
- attrgetter=self.get_attr,
412
- warningiserror=self.config.autodoc_warningiserror)
413
- self.module, self.parent, self.object_name, self.object = ret
414
- if ismock(self.object):
415
- self.object = undecorate(self.object)
416
- return True
417
- except ImportError as exc:
418
- if raiseerror:
419
- raise
420
- else:
421
- logger.warning(exc.args[0], type='autodoc', subtype='import_object')
422
- self.env.note_reread()
423
- return False
424
-
425
- def get_real_modname(self) -> str:
426
- """Get the real module name of an object to document.
427
-
428
- It can differ from the name of the module through which the object was
429
- imported.
430
- """
431
- return self.get_attr(self.object, '__module__', None) or self.modname
432
-
433
- def check_module(self) -> bool:
434
- """Check if *self.object* is really defined in the module given by
435
- *self.modname*.
436
- """
437
- if self.options.imported_members:
438
- return True
439
-
440
- subject = inspect.unpartial(self.object)
441
- modname = self.get_attr(subject, '__module__', None)
442
- if modname and modname != self.modname:
443
- return False
444
- return True
445
-
446
- def format_args(self, **kwargs: Any) -> str | None:
447
- """Format the argument signature of *self.object*.
448
-
449
- Should return None if the object does not have a signature.
450
- """
451
- return None
452
-
453
- def format_name(self) -> str:
454
- """Format the name of *self.object*.
455
-
456
- This normally should be something that can be parsed by the generated
457
- directive, but doesn't need to be (Sphinx will display it unparsed
458
- then).
459
- """
460
- # normally the name doesn't contain the module (except for module
461
- # directives of course)
462
- return '.'.join(self.objpath) or self.modname
463
-
464
- def _call_format_args(self, **kwargs: Any) -> str | None:
465
- if kwargs:
466
- try:
467
- return self.format_args(**kwargs)
468
- except TypeError:
469
- # avoid chaining exceptions, by putting nothing here
470
- pass
471
-
472
- # retry without arguments for old documenters
473
- return self.format_args()
474
-
475
- def format_signature(self, **kwargs: Any) -> str:
476
- """Format the signature (arguments and return annotation) of the object.
477
-
478
- Let the user process it via the ``autodoc-process-signature`` event.
479
- """
480
- if self.args is not None:
481
- # signature given explicitly
482
- args = "(%s)" % self.args
483
- retann = self.retann
484
- else:
485
- # try to introspect the signature
486
- try:
487
- retann = None
488
- args = self._call_format_args(**kwargs)
489
- if args:
490
- matched = re.match(r'^(\(.*\))\s+->\s+(.*)$', args)
491
- if matched:
492
- args = matched.group(1)
493
- retann = matched.group(2)
494
- except Exception as exc:
495
- logger.warning(__('error while formatting arguments for %s: %s'),
496
- self.fullname, exc, type='autodoc')
497
- args = None
498
-
499
- result = self.env.events.emit_firstresult('autodoc-process-signature',
500
- self.objtype, self.fullname,
501
- self.object, self.options, args, retann)
502
- if result:
503
- args, retann = result
504
-
505
- if args is not None:
506
- return args + ((' -> %s' % retann) if retann else '')
507
- else:
508
- return ''
509
-
510
- def add_directive_header(self, sig: str) -> None:
511
- """Add the directive header and options to the generated content."""
512
- domain = getattr(self, 'domain', 'py')
513
- directive = getattr(self, 'directivetype', self.objtype)
514
- name = self.format_name()
515
- sourcename = self.get_sourcename()
516
-
517
- # one signature per line, indented by column
518
- prefix = f'.. {domain}:{directive}:: '
519
- for i, sig_line in enumerate(sig.split("\n")):
520
- self.add_line(f'{prefix}{name}{sig_line}',
521
- sourcename)
522
- if i == 0:
523
- prefix = " " * len(prefix)
524
-
525
- if self.options.noindex:
526
- self.add_line(' :noindex:', sourcename)
527
- if self.objpath:
528
- # Be explicit about the module, this is necessary since .. class::
529
- # etc. don't support a prepended module name
530
- self.add_line(' :module: %s' % self.modname, sourcename)
531
-
532
- def get_doc(self) -> list[list[str]] | None:
533
- """Decode and return lines of the docstring(s) for the object.
534
-
535
- When it returns None, autodoc-process-docstring will not be called for this
536
- object.
537
- """
538
- docstring = getdoc(self.object, self.get_attr, self.config.autodoc_inherit_docstrings,
539
- self.parent, self.object_name)
540
- if docstring:
541
- tab_width = self.directive.state.document.settings.tab_width
542
- return [prepare_docstring(docstring, tab_width)]
543
- return []
544
-
545
- def process_doc(self, docstrings: list[list[str]]) -> Iterator[str]:
546
- """Let the user process the docstrings before adding them."""
547
- for docstringlines in docstrings:
548
- if self.env.app:
549
- # let extensions preprocess docstrings
550
- self.env.app.emit('autodoc-process-docstring',
551
- self.objtype, self.fullname, self.object,
552
- self.options, docstringlines)
553
-
554
- if docstringlines and docstringlines[-1] != '':
555
- # append a blank line to the end of the docstring
556
- docstringlines.append('')
557
-
558
- yield from docstringlines
559
-
560
- def get_sourcename(self) -> str:
561
- if (inspect.safe_getattr(self.object, '__module__', None) and
562
- inspect.safe_getattr(self.object, '__qualname__', None)):
563
- # Get the correct location of docstring from self.object
564
- # to support inherited methods
565
- fullname = f'{self.object.__module__}.{self.object.__qualname__}'
566
- else:
567
- fullname = self.fullname
568
-
569
- if self.analyzer:
570
- return f'{self.analyzer.srcname}:docstring of {fullname}'
571
- else:
572
- return 'docstring of %s' % fullname
573
-
574
- def add_content(self, more_content: StringList | None) -> None:
575
- """Add content from docstrings, attribute documentation and user."""
576
- docstring = True
577
-
578
- # set sourcename and add content from attribute documentation
579
- sourcename = self.get_sourcename()
580
- if self.analyzer:
581
- attr_docs = self.analyzer.find_attr_docs()
582
- if self.objpath:
583
- key = ('.'.join(self.objpath[:-1]), self.objpath[-1])
584
- if key in attr_docs:
585
- docstring = False
586
- # make a copy of docstring for attributes to avoid cache
587
- # the change of autodoc-process-docstring event.
588
- docstrings = [list(attr_docs[key])]
589
-
590
- for i, line in enumerate(self.process_doc(docstrings)):
591
- self.add_line(line, sourcename, i)
592
-
593
- # add content from docstrings
594
- if docstring:
595
- docstrings = self.get_doc()
596
- if docstrings is None:
597
- # Do not call autodoc-process-docstring on get_doc() returns None.
598
- pass
599
- else:
600
- if not docstrings:
601
- # append at least a dummy docstring, so that the event
602
- # autodoc-process-docstring is fired and can add some
603
- # content if desired
604
- docstrings.append([])
605
- for i, line in enumerate(self.process_doc(docstrings)):
606
- self.add_line(line, sourcename, i)
607
-
608
- # add additional content (e.g. from document), if present
609
- if more_content:
610
- for line, src in zip(more_content.data, more_content.items):
611
- self.add_line(line, src[0], src[1])
612
-
613
- def get_object_members(self, want_all: bool) -> tuple[bool, ObjectMembers]:
614
- """Return `(members_check_module, members)` where `members` is a
615
- list of `(membername, member)` pairs of the members of *self.object*.
616
-
617
- If *want_all* is True, return all members. Else, only return those
618
- members given by *self.options.members* (which may also be None).
619
- """
620
- raise NotImplementedError('must be implemented in subclasses')
621
-
622
- def filter_members(self, members: ObjectMembers, want_all: bool
623
- ) -> list[tuple[str, Any, bool]]:
624
- """Filter the given member list.
625
-
626
- Members are skipped if
627
-
628
- - they are private (except if given explicitly or the private-members
629
- option is set)
630
- - they are special methods (except if given explicitly or the
631
- special-members option is set)
632
- - they are undocumented (except if the undoc-members option is set)
633
-
634
- The user can override the skipping decision by connecting to the
635
- ``autodoc-skip-member`` event.
636
- """
637
- def is_filtered_inherited_member(name: str, obj: Any) -> bool:
638
- inherited_members = self.options.inherited_members or set()
639
-
640
- if inspect.isclass(self.object):
641
- for cls in self.object.__mro__:
642
- if cls.__name__ in inherited_members and cls != self.object:
643
- # given member is a member of specified *super class*
644
- return True
645
- elif name in cls.__dict__:
646
- return False
647
- elif name in self.get_attr(cls, '__annotations__', {}):
648
- return False
649
- elif isinstance(obj, ObjectMember) and obj.class_ is cls:
650
- return False
651
-
652
- return False
653
-
654
- ret = []
655
-
656
- # search for members in source code too
657
- namespace = '.'.join(self.objpath) # will be empty for modules
658
-
659
- if self.analyzer:
660
- attr_docs = self.analyzer.find_attr_docs()
661
- else:
662
- attr_docs = {}
663
-
664
- # process members and determine which to skip
665
- for obj in members:
666
- try:
667
- membername, member = obj
668
- # if isattr is True, the member is documented as an attribute
669
- if member is INSTANCEATTR:
670
- isattr = True
671
- elif (namespace, membername) in attr_docs:
672
- isattr = True
673
- else:
674
- isattr = False
675
-
676
- doc = getdoc(member, self.get_attr, self.config.autodoc_inherit_docstrings,
677
- self.object, membername)
678
- if not isinstance(doc, str):
679
- # Ignore non-string __doc__
680
- doc = None
681
-
682
- # if the member __doc__ is the same as self's __doc__, it's just
683
- # inherited and therefore not the member's doc
684
- cls = self.get_attr(member, '__class__', None)
685
- if cls:
686
- cls_doc = self.get_attr(cls, '__doc__', None)
687
- if cls_doc == doc:
688
- doc = None
689
-
690
- if isinstance(obj, ObjectMember) and obj.docstring:
691
- # hack for ClassDocumenter to inject docstring via ObjectMember
692
- doc = obj.docstring
693
-
694
- doc, metadata = separate_metadata(doc)
695
- has_doc = bool(doc)
696
-
697
- if 'private' in metadata:
698
- # consider a member private if docstring has "private" metadata
699
- isprivate = True
700
- elif 'public' in metadata:
701
- # consider a member public if docstring has "public" metadata
702
- isprivate = False
703
- else:
704
- isprivate = membername.startswith('_')
705
-
706
- keep = False
707
- if ismock(member) and (namespace, membername) not in attr_docs:
708
- # mocked module or object
709
- pass
710
- elif (self.options.exclude_members and
711
- membername in self.options.exclude_members):
712
- # remove members given by exclude-members
713
- keep = False
714
- elif want_all and special_member_re.match(membername):
715
- # special __methods__
716
- if (self.options.special_members and
717
- membername in self.options.special_members):
718
- if membername == '__doc__':
719
- keep = False
720
- elif is_filtered_inherited_member(membername, obj):
721
- keep = False
722
- else:
723
- keep = has_doc or self.options.undoc_members
724
- else:
725
- keep = False
726
- elif (namespace, membername) in attr_docs:
727
- if want_all and isprivate:
728
- if self.options.private_members is None:
729
- keep = False
730
- else:
731
- keep = membername in self.options.private_members
732
- else:
733
- # keep documented attributes
734
- keep = True
735
- elif want_all and isprivate:
736
- if has_doc or self.options.undoc_members:
737
- if self.options.private_members is None:
738
- keep = False
739
- elif is_filtered_inherited_member(membername, obj):
740
- keep = False
741
- else:
742
- keep = membername in self.options.private_members
743
- else:
744
- keep = False
745
- else:
746
- if (self.options.members is ALL and
747
- is_filtered_inherited_member(membername, obj)):
748
- keep = False
749
- else:
750
- # ignore undocumented members if :undoc-members: is not given
751
- keep = has_doc or self.options.undoc_members
752
-
753
- if isinstance(obj, ObjectMember) and obj.skipped:
754
- # forcedly skipped member (ex. a module attribute not defined in __all__)
755
- keep = False
756
-
757
- # give the user a chance to decide whether this member
758
- # should be skipped
759
- if self.env.app:
760
- # let extensions preprocess docstrings
761
- skip_user = self.env.app.emit_firstresult(
762
- 'autodoc-skip-member', self.objtype, membername, member,
763
- not keep, self.options)
764
- if skip_user is not None:
765
- keep = not skip_user
766
- except Exception as exc:
767
- logger.warning(__('autodoc: failed to determine %s.%s (%r) to be documented, '
768
- 'the following exception was raised:\n%s'),
769
- self.name, membername, member, exc, type='autodoc')
770
- keep = False
771
-
772
- if keep:
773
- ret.append((membername, member, isattr))
774
-
775
- return ret
776
-
777
- def document_members(self, all_members: bool = False) -> None:
778
- """Generate reST for member documentation.
779
-
780
- If *all_members* is True, document all members, else those given by
781
- *self.options.members*.
782
- """
783
- # set current namespace for finding members
784
- self.env.temp_data['autodoc:module'] = self.modname
785
- if self.objpath:
786
- self.env.temp_data['autodoc:class'] = self.objpath[0]
787
-
788
- want_all = (all_members or
789
- self.options.inherited_members or
790
- self.options.members is ALL)
791
- # find out which members are documentable
792
- members_check_module, members = self.get_object_members(want_all)
793
-
794
- # document non-skipped members
795
- memberdocumenters: list[tuple[Documenter, bool]] = []
796
- for (mname, member, isattr) in self.filter_members(members, want_all):
797
- classes = [cls for cls in self.documenters.values()
798
- if cls.can_document_member(member, mname, isattr, self)]
799
- if not classes:
800
- # don't know how to document this member
801
- continue
802
- # prefer the documenter with the highest priority
803
- classes.sort(key=lambda cls: cls.priority)
804
- # give explicitly separated module name, so that members
805
- # of inner classes can be documented
806
- full_mname = self.modname + '::' + '.'.join(self.objpath + [mname])
807
- documenter = classes[-1](self.directive, full_mname, self.indent)
808
- memberdocumenters.append((documenter, isattr))
809
-
810
- member_order = self.options.member_order or self.config.autodoc_member_order
811
- memberdocumenters = self.sort_members(memberdocumenters, member_order)
812
-
813
- for documenter, isattr in memberdocumenters:
814
- documenter.generate(
815
- all_members=True, real_modname=self.real_modname,
816
- check_module=members_check_module and not isattr)
817
-
818
- # reset current objects
819
- self.env.temp_data['autodoc:module'] = None
820
- self.env.temp_data['autodoc:class'] = None
821
-
822
- def sort_members(self, documenters: list[tuple[Documenter, bool]],
823
- order: str) -> list[tuple[Documenter, bool]]:
824
- """Sort the given member list."""
825
- if order == 'groupwise':
826
- # sort by group; alphabetically within groups
827
- documenters.sort(key=lambda e: (e[0].member_order, e[0].name))
828
- elif order == 'bysource':
829
- # By default, member discovery order matches source order,
830
- # as dicts are insertion-ordered from Python 3.7.
831
- if self.analyzer:
832
- # sort by source order, by virtue of the module analyzer
833
- tagorder = self.analyzer.tagorder
834
-
835
- def keyfunc(entry: tuple[Documenter, bool]) -> int:
836
- fullname = entry[0].name.split('::')[1]
837
- return tagorder.get(fullname, len(tagorder))
838
- documenters.sort(key=keyfunc)
839
- else: # alphabetical
840
- documenters.sort(key=lambda e: e[0].name)
841
-
842
- return documenters
843
-
844
- def generate(
845
- self,
846
- more_content: StringList | None = None,
847
- real_modname: str | None = None,
848
- check_module: bool = False,
849
- all_members: bool = False
850
- ) -> None:
851
- """Generate reST for the object given by *self.name*, and possibly for
852
- its members.
853
-
854
- If *more_content* is given, include that content. If *real_modname* is
855
- given, use that module name to find attribute docs. If *check_module* is
856
- True, only generate if the object is defined in the module name it is
857
- imported from. If *all_members* is True, document all members.
858
- """
859
- if not self.parse_name():
860
- # need a module to import
861
- logger.warning(
862
- __('don\'t know which module to import for autodocumenting '
863
- '%r (try placing a "module" or "currentmodule" directive '
864
- 'in the document, or giving an explicit module name)') %
865
- self.name, type='autodoc')
866
- return
867
-
868
- # now, import the module and get object to document
869
- if not self.import_object():
870
- return
871
-
872
- # If there is no real module defined, figure out which to use.
873
- # The real module is used in the module analyzer to look up the module
874
- # where the attribute documentation would actually be found in.
875
- # This is used for situations where you have a module that collects the
876
- # functions and classes of internal submodules.
877
- guess_modname = self.get_real_modname()
878
- self.real_modname: str = real_modname or guess_modname
879
-
880
- # try to also get a source code analyzer for attribute docs
881
- try:
882
- self.analyzer = ModuleAnalyzer.for_module(self.real_modname)
883
- # parse right now, to get PycodeErrors on parsing (results will
884
- # be cached anyway)
885
- self.analyzer.find_attr_docs()
886
- except PycodeError as exc:
887
- logger.debug('[autodoc] module analyzer failed: %s', exc)
888
- # no source file -- e.g. for builtin and C modules
889
- self.analyzer = None
890
- # at least add the module.__file__ as a dependency
891
- if hasattr(self.module, '__file__') and self.module.__file__:
892
- self.directive.record_dependencies.add(self.module.__file__)
893
- else:
894
- self.directive.record_dependencies.add(self.analyzer.srcname)
895
-
896
- if self.real_modname != guess_modname:
897
- # Add module to dependency list if target object is defined in other module.
898
- try:
899
- analyzer = ModuleAnalyzer.for_module(guess_modname)
900
- self.directive.record_dependencies.add(analyzer.srcname)
901
- except PycodeError:
902
- pass
903
-
904
- docstrings: list[str] = sum(self.get_doc() or [], [])
905
- if ismock(self.object) and not docstrings:
906
- logger.warning(__('A mocked object is detected: %r'),
907
- self.name, type='autodoc')
908
-
909
- # check __module__ of object (for members not given explicitly)
910
- if check_module:
911
- if not self.check_module():
912
- return
913
-
914
- sourcename = self.get_sourcename()
915
-
916
- # make sure that the result starts with an empty line. This is
917
- # necessary for some situations where another directive preprocesses
918
- # reST and no starting newline is present
919
- self.add_line('', sourcename)
920
-
921
- # format the object's signature, if any
922
- try:
923
- sig = self.format_signature()
924
- except Exception as exc:
925
- logger.warning(__('error while formatting signature for %s: %s'),
926
- self.fullname, exc, type='autodoc')
927
- return
928
-
929
- # generate the directive header and options, if applicable
930
- self.add_directive_header(sig)
931
- self.add_line('', sourcename)
932
-
933
- # e.g. the module directive doesn't have content
934
- self.indent += self.content_indent
935
-
936
- # add all content (from docstrings, attribute docs etc.)
937
- self.add_content(more_content)
938
-
939
- # document members, if possible
940
- self.document_members(all_members)
941
-
942
-
943
- class ModuleDocumenter(Documenter):
944
- """
945
- Specialized Documenter subclass for modules.
946
- """
947
- objtype = 'module'
948
- content_indent = ''
949
- titles_allowed = True
950
- _extra_indent = ' '
951
-
952
- option_spec: OptionSpec = {
953
- 'members': members_option, 'undoc-members': bool_option,
954
- 'noindex': bool_option, 'inherited-members': inherited_members_option,
955
- 'show-inheritance': bool_option, 'synopsis': identity,
956
- 'platform': identity, 'deprecated': bool_option,
957
- 'member-order': member_order_option, 'exclude-members': exclude_members_option,
958
- 'private-members': members_option, 'special-members': members_option,
959
- 'imported-members': bool_option, 'ignore-module-all': bool_option,
960
- 'no-value': bool_option,
961
- }
962
-
963
- def __init__(self, *args: Any) -> None:
964
- super().__init__(*args)
965
- merge_members_option(self.options)
966
- self.__all__: Sequence[str] | None = None
967
-
968
- def add_content(self, more_content: StringList | None) -> None:
969
- old_indent = self.indent
970
- self.indent += self._extra_indent
971
- super().add_content(None)
972
- self.indent = old_indent
973
- if more_content:
974
- for line, src in zip(more_content.data, more_content.items):
975
- self.add_line(line, src[0], src[1])
976
-
977
- @classmethod
978
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
979
- ) -> bool:
980
- # don't document submodules automatically
981
- return False
982
-
983
- def resolve_name(self, modname: str, parents: Any, path: str, base: Any
984
- ) -> tuple[str, list[str]]:
985
- if modname is not None:
986
- logger.warning(__('"::" in automodule name doesn\'t make sense'),
987
- type='autodoc')
988
- return (path or '') + base, []
989
-
990
- def parse_name(self) -> bool:
991
- ret = super().parse_name()
992
- if self.args or self.retann:
993
- logger.warning(__('signature arguments or return annotation '
994
- 'given for automodule %s') % self.fullname,
995
- type='autodoc')
996
- return ret
997
-
998
- def import_object(self, raiseerror: bool = False) -> bool:
999
- ret = super().import_object(raiseerror)
1000
-
1001
- try:
1002
- if not self.options.ignore_module_all:
1003
- self.__all__ = inspect.getall(self.object)
1004
- except ValueError as exc:
1005
- # invalid __all__ found.
1006
- logger.warning(__('__all__ should be a list of strings, not %r '
1007
- '(in module %s) -- ignoring __all__') %
1008
- (exc.args[0], self.fullname), type='autodoc')
1009
-
1010
- return ret
1011
-
1012
- def add_directive_header(self, sig: str) -> None:
1013
- Documenter.add_directive_header(self, sig)
1014
-
1015
- sourcename = self.get_sourcename()
1016
-
1017
- # add some module-specific options
1018
- if self.options.synopsis:
1019
- self.add_line(' :synopsis: ' + self.options.synopsis, sourcename)
1020
- if self.options.platform:
1021
- self.add_line(' :platform: ' + self.options.platform, sourcename)
1022
- if self.options.deprecated:
1023
- self.add_line(' :deprecated:', sourcename)
1024
-
1025
- def get_module_members(self) -> dict[str, ObjectMember]:
1026
- """Get members of target module."""
1027
- if self.analyzer:
1028
- attr_docs = self.analyzer.attr_docs
1029
- else:
1030
- attr_docs = {}
1031
-
1032
- members: dict[str, ObjectMember] = {}
1033
- for name in dir(self.object):
1034
- try:
1035
- value = safe_getattr(self.object, name, None)
1036
- if ismock(value):
1037
- value = undecorate(value)
1038
- docstring = attr_docs.get(('', name), [])
1039
- members[name] = ObjectMember(name, value, docstring="\n".join(docstring))
1040
- except AttributeError:
1041
- continue
1042
-
1043
- # annotation only member (ex. attr: int)
1044
- for name in inspect.getannotations(self.object):
1045
- if name not in members:
1046
- docstring = attr_docs.get(('', name), [])
1047
- members[name] = ObjectMember(name, INSTANCEATTR,
1048
- docstring="\n".join(docstring))
1049
-
1050
- return members
1051
-
1052
- def get_object_members(self, want_all: bool) -> tuple[bool, ObjectMembers]:
1053
- members = self.get_module_members()
1054
- if want_all:
1055
- if self.__all__ is None:
1056
- # for implicit module members, check __module__ to avoid
1057
- # documenting imported objects
1058
- return True, list(members.values())
1059
- else:
1060
- for member in members.values():
1061
- if member.__name__ not in self.__all__:
1062
- member.skipped = True
1063
-
1064
- return False, list(members.values())
1065
- else:
1066
- memberlist = self.options.members or []
1067
- ret = []
1068
- for name in memberlist:
1069
- if name in members:
1070
- ret.append(members[name])
1071
- else:
1072
- logger.warning(__('missing attribute mentioned in :members: option: '
1073
- 'module %s, attribute %s') %
1074
- (safe_getattr(self.object, '__name__', '???'), name),
1075
- type='autodoc')
1076
- return False, ret
1077
-
1078
- def sort_members(self, documenters: list[tuple[Documenter, bool]],
1079
- order: str) -> list[tuple[Documenter, bool]]:
1080
- if order == 'bysource' and self.__all__:
1081
- # Sort alphabetically first (for members not listed on the __all__)
1082
- documenters.sort(key=lambda e: e[0].name)
1083
-
1084
- # Sort by __all__
1085
- def keyfunc(entry: tuple[Documenter, bool]) -> int:
1086
- name = entry[0].name.split('::')[1]
1087
- if self.__all__ and name in self.__all__:
1088
- return self.__all__.index(name)
1089
- else:
1090
- return len(self.__all__)
1091
- documenters.sort(key=keyfunc)
1092
-
1093
- return documenters
1094
- else:
1095
- return super().sort_members(documenters, order)
1096
-
1097
-
1098
- class ModuleLevelDocumenter(Documenter):
1099
- """
1100
- Specialized Documenter subclass for objects on module level (functions,
1101
- classes, data/constants).
1102
- """
1103
- def resolve_name(self, modname: str, parents: Any, path: str, base: Any
1104
- ) -> tuple[str, list[str]]:
1105
- if modname is None:
1106
- if path:
1107
- modname = path.rstrip('.')
1108
- else:
1109
- # if documenting a toplevel object without explicit module,
1110
- # it can be contained in another auto directive ...
1111
- modname = self.env.temp_data.get('autodoc:module')
1112
- # ... or in the scope of a module directive
1113
- if not modname:
1114
- modname = self.env.ref_context.get('py:module')
1115
- # ... else, it stays None, which means invalid
1116
- return modname, parents + [base]
1117
-
1118
-
1119
- class ClassLevelDocumenter(Documenter):
1120
- """
1121
- Specialized Documenter subclass for objects on class level (methods,
1122
- attributes).
1123
- """
1124
- def resolve_name(self, modname: str, parents: Any, path: str, base: Any
1125
- ) -> tuple[str, list[str]]:
1126
- if modname is None:
1127
- if path:
1128
- mod_cls = path.rstrip('.')
1129
- else:
1130
- mod_cls = None
1131
- # if documenting a class-level object without path,
1132
- # there must be a current class, either from a parent
1133
- # auto directive ...
1134
- mod_cls = self.env.temp_data.get('autodoc:class')
1135
- # ... or from a class directive
1136
- if mod_cls is None:
1137
- mod_cls = self.env.ref_context.get('py:class')
1138
- # ... if still None, there's no way to know
1139
- if mod_cls is None:
1140
- return None, []
1141
- modname, sep, cls = mod_cls.rpartition('.')
1142
- parents = [cls]
1143
- # if the module name is still missing, get it like above
1144
- if not modname:
1145
- modname = self.env.temp_data.get('autodoc:module')
1146
- if not modname:
1147
- modname = self.env.ref_context.get('py:module')
1148
- # ... else, it stays None, which means invalid
1149
- return modname, parents + [base]
1150
-
1151
-
1152
- class DocstringSignatureMixin:
1153
- """
1154
- Mixin for FunctionDocumenter and MethodDocumenter to provide the
1155
- feature of reading the signature from the docstring.
1156
- """
1157
- _new_docstrings: list[list[str]] = None
1158
- _signatures: list[str] = None
1159
-
1160
- def _find_signature(self) -> tuple[str | None, str | None]:
1161
- # candidates of the object name
1162
- valid_names = [self.objpath[-1]] # type: ignore
1163
- if isinstance(self, ClassDocumenter):
1164
- valid_names.append('__init__')
1165
- if hasattr(self.object, '__mro__'):
1166
- valid_names.extend(cls.__name__ for cls in self.object.__mro__)
1167
-
1168
- docstrings = self.get_doc()
1169
- if docstrings is None:
1170
- return None, None
1171
- self._new_docstrings = docstrings[:]
1172
- self._signatures = []
1173
- result = None
1174
- for i, doclines in enumerate(docstrings):
1175
- for j, line in enumerate(doclines):
1176
- if not line:
1177
- # no lines in docstring, no match
1178
- break
1179
-
1180
- if line.endswith('\\'):
1181
- line = line.rstrip('\\').rstrip()
1182
-
1183
- # match first line of docstring against signature RE
1184
- match = py_ext_sig_re.match(line)
1185
- if not match:
1186
- break
1187
- exmod, path, base, args, retann = match.groups()
1188
-
1189
- # the base name must match ours
1190
- if base not in valid_names:
1191
- break
1192
-
1193
- # re-prepare docstring to ignore more leading indentation
1194
- tab_width = self.directive.state.document.settings.tab_width # type: ignore
1195
- self._new_docstrings[i] = prepare_docstring('\n'.join(doclines[j + 1:]),
1196
- tab_width)
1197
-
1198
- if result is None:
1199
- # first signature
1200
- result = args, retann
1201
- else:
1202
- # subsequent signatures
1203
- self._signatures.append(f"({args}) -> {retann}")
1204
-
1205
- if result:
1206
- # finish the loop when signature found
1207
- break
1208
-
1209
- return result
1210
-
1211
- def get_doc(self) -> list[list[str]]:
1212
- if self._new_docstrings is not None:
1213
- return self._new_docstrings
1214
- return super().get_doc() # type: ignore[misc]
1215
-
1216
- def format_signature(self, **kwargs: Any) -> str:
1217
- if self.args is None and self.config.autodoc_docstring_signature: # type: ignore
1218
- # only act if a signature is not explicitly given already, and if
1219
- # the feature is enabled
1220
- result = self._find_signature()
1221
- if result is not None:
1222
- self.args, self.retann = result
1223
- sig = super().format_signature(**kwargs) # type: ignore
1224
- if self._signatures:
1225
- return "\n".join([sig] + self._signatures)
1226
- else:
1227
- return sig
1228
-
1229
-
1230
- class DocstringStripSignatureMixin(DocstringSignatureMixin):
1231
- """
1232
- Mixin for AttributeDocumenter to provide the
1233
- feature of stripping any function signature from the docstring.
1234
- """
1235
- def format_signature(self, **kwargs: Any) -> str:
1236
- if (
1237
- self.args is None
1238
- and self.config.autodoc_docstring_signature # type: ignore[attr-defined]
1239
- ):
1240
- # only act if a signature is not explicitly given already, and if
1241
- # the feature is enabled
1242
- result = self._find_signature()
1243
- if result is not None:
1244
- # Discarding _args is a only difference with
1245
- # DocstringSignatureMixin.format_signature.
1246
- # Documenter.format_signature use self.args value to format.
1247
- _args, self.retann = result
1248
- return super().format_signature(**kwargs)
1249
-
1250
-
1251
- class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type: ignore
1252
- """
1253
- Specialized Documenter subclass for functions.
1254
- """
1255
- objtype = 'function'
1256
- member_order = 30
1257
-
1258
- @classmethod
1259
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
1260
- ) -> bool:
1261
- # supports functions, builtins and bound methods exported at the module level
1262
- return (inspect.isfunction(member) or inspect.isbuiltin(member) or
1263
- (inspect.isroutine(member) and isinstance(parent, ModuleDocumenter)))
1264
-
1265
- def format_args(self, **kwargs: Any) -> str | None:
1266
- if self.config.autodoc_typehints in ('none', 'description'):
1267
- kwargs.setdefault('show_annotation', False)
1268
- if self.config.autodoc_typehints_format == "short":
1269
- kwargs.setdefault('unqualified_typehints', True)
1270
-
1271
- try:
1272
- self.env.app.emit('autodoc-before-process-signature', self.object, False)
1273
- sig = inspect.signature(self.object, type_aliases=self.config.autodoc_type_aliases)
1274
- args = stringify_signature(sig, **kwargs)
1275
- except TypeError as exc:
1276
- logger.warning(__("Failed to get a function signature for %s: %s"),
1277
- self.fullname, exc)
1278
- return None
1279
- except ValueError:
1280
- args = ''
1281
-
1282
- if self.config.strip_signature_backslash:
1283
- # escape backslashes for reST
1284
- args = args.replace('\\', '\\\\')
1285
- return args
1286
-
1287
- def document_members(self, all_members: bool = False) -> None:
1288
- pass
1289
-
1290
- def add_directive_header(self, sig: str) -> None:
1291
- sourcename = self.get_sourcename()
1292
- super().add_directive_header(sig)
1293
-
1294
- if inspect.iscoroutinefunction(self.object) or inspect.isasyncgenfunction(self.object):
1295
- self.add_line(' :async:', sourcename)
1296
-
1297
- def format_signature(self, **kwargs: Any) -> str:
1298
- if self.config.autodoc_typehints_format == "short":
1299
- kwargs.setdefault('unqualified_typehints', True)
1300
-
1301
- sigs = []
1302
- if (self.analyzer and
1303
- '.'.join(self.objpath) in self.analyzer.overloads and
1304
- self.config.autodoc_typehints != 'none'):
1305
- # Use signatures for overloaded functions instead of the implementation function.
1306
- overloaded = True
1307
- else:
1308
- overloaded = False
1309
- sig = super().format_signature(**kwargs)
1310
- sigs.append(sig)
1311
-
1312
- if inspect.is_singledispatch_function(self.object):
1313
- # append signature of singledispatch'ed functions
1314
- for typ, func in self.object.registry.items():
1315
- if typ is object:
1316
- pass # default implementation. skipped.
1317
- else:
1318
- dispatchfunc = self.annotate_to_first_argument(func, typ)
1319
- if dispatchfunc:
1320
- documenter = FunctionDocumenter(self.directive, '')
1321
- documenter.object = dispatchfunc
1322
- documenter.objpath = [None]
1323
- sigs.append(documenter.format_signature())
1324
- if overloaded:
1325
- actual = inspect.signature(self.object,
1326
- type_aliases=self.config.autodoc_type_aliases)
1327
- __globals__ = safe_getattr(self.object, '__globals__', {})
1328
- for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
1329
- overload = self.merge_default_value(actual, overload)
1330
- overload = evaluate_signature(overload, __globals__,
1331
- self.config.autodoc_type_aliases)
1332
-
1333
- sig = stringify_signature(overload, **kwargs)
1334
- sigs.append(sig)
1335
-
1336
- return "\n".join(sigs)
1337
-
1338
- def merge_default_value(self, actual: Signature, overload: Signature) -> Signature:
1339
- """Merge default values of actual implementation to the overload variants."""
1340
- parameters = list(overload.parameters.values())
1341
- for i, param in enumerate(parameters):
1342
- actual_param = actual.parameters.get(param.name)
1343
- if actual_param and param.default == '...':
1344
- parameters[i] = param.replace(default=actual_param.default)
1345
-
1346
- return overload.replace(parameters=parameters)
1347
-
1348
- def annotate_to_first_argument(self, func: Callable, typ: type) -> Callable | None:
1349
- """Annotate type hint to the first argument of function if needed."""
1350
- try:
1351
- sig = inspect.signature(func, type_aliases=self.config.autodoc_type_aliases)
1352
- except TypeError as exc:
1353
- logger.warning(__("Failed to get a function signature for %s: %s"),
1354
- self.fullname, exc)
1355
- return None
1356
- except ValueError:
1357
- return None
1358
-
1359
- if len(sig.parameters) == 0:
1360
- return None
1361
-
1362
- def dummy():
1363
- pass
1364
-
1365
- params = list(sig.parameters.values())
1366
- if params[0].annotation is Parameter.empty:
1367
- params[0] = params[0].replace(annotation=typ)
1368
- try:
1369
- dummy.__signature__ = sig.replace(parameters=params) # type: ignore
1370
- return dummy
1371
- except (AttributeError, TypeError):
1372
- # failed to update signature (ex. built-in or extension types)
1373
- return None
1374
-
1375
- return func
1376
-
1377
-
1378
- class DecoratorDocumenter(FunctionDocumenter):
1379
- """
1380
- Specialized Documenter subclass for decorator functions.
1381
- """
1382
- objtype = 'decorator'
1383
-
1384
- # must be lower than FunctionDocumenter
1385
- priority = -1
1386
-
1387
- def format_args(self, **kwargs: Any) -> Any:
1388
- args = super().format_args(**kwargs)
1389
- if ',' in args:
1390
- return args
1391
- else:
1392
- return None
1393
-
1394
-
1395
- # Types which have confusing metaclass signatures it would be best not to show.
1396
- # These are listed by name, rather than storing the objects themselves, to avoid
1397
- # needing to import the modules.
1398
- _METACLASS_CALL_BLACKLIST = [
1399
- 'enum.EnumMeta.__call__',
1400
- ]
1401
-
1402
-
1403
- # Types whose __new__ signature is a pass-through.
1404
- _CLASS_NEW_BLACKLIST = [
1405
- 'typing.Generic.__new__',
1406
- ]
1407
-
1408
-
1409
- class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type: ignore
1410
- """
1411
- Specialized Documenter subclass for classes.
1412
- """
1413
- objtype = 'class'
1414
- member_order = 20
1415
- option_spec: OptionSpec = {
1416
- 'members': members_option, 'undoc-members': bool_option,
1417
- 'noindex': bool_option, 'inherited-members': inherited_members_option,
1418
- 'show-inheritance': bool_option, 'member-order': member_order_option,
1419
- 'exclude-members': exclude_members_option,
1420
- 'private-members': members_option, 'special-members': members_option,
1421
- 'class-doc-from': class_doc_from_option,
1422
- }
1423
-
1424
- # Must be higher than FunctionDocumenter, ClassDocumenter, and
1425
- # AttributeDocumenter as NewType can be an attribute and is a class
1426
- # after Python 3.10. Before 3.10 it is a kind of function object
1427
- priority = 15
1428
-
1429
- _signature_class: Any = None
1430
- _signature_method_name: str = None
1431
-
1432
- def __init__(self, *args: Any) -> None:
1433
- super().__init__(*args)
1434
-
1435
- if self.config.autodoc_class_signature == 'separated':
1436
- self.options = self.options.copy()
1437
-
1438
- # show __init__() method
1439
- if self.options.special_members is None:
1440
- self.options['special-members'] = ['__new__', '__init__']
1441
- else:
1442
- self.options.special_members.append('__new__')
1443
- self.options.special_members.append('__init__')
1444
-
1445
- merge_members_option(self.options)
1446
-
1447
- @classmethod
1448
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
1449
- ) -> bool:
1450
- return isinstance(member, type) or (
1451
- isattr and (inspect.isNewType(member) or isinstance(member, TypeVar)))
1452
-
1453
- def import_object(self, raiseerror: bool = False) -> bool:
1454
- ret = super().import_object(raiseerror)
1455
- # if the class is documented under another name, document it
1456
- # as data/attribute
1457
- if ret:
1458
- if hasattr(self.object, '__name__'):
1459
- self.doc_as_attr = (self.objpath[-1] != self.object.__name__)
1460
- else:
1461
- self.doc_as_attr = True
1462
- if inspect.isNewType(self.object) or isinstance(self.object, TypeVar):
1463
- modname = getattr(self.object, '__module__', self.modname)
1464
- if modname != self.modname and self.modname.startswith(modname):
1465
- bases = self.modname[len(modname):].strip('.').split('.')
1466
- self.objpath = bases + self.objpath
1467
- self.modname = modname
1468
- return ret
1469
-
1470
- def _get_signature(self) -> tuple[Any | None, str | None, Signature | None]:
1471
- if inspect.isNewType(self.object) or isinstance(self.object, TypeVar):
1472
- # Supress signature
1473
- return None, None, None
1474
-
1475
- def get_user_defined_function_or_method(obj: Any, attr: str) -> Any:
1476
- """ Get the `attr` function or method from `obj`, if it is user-defined. """
1477
- if inspect.is_builtin_class_method(obj, attr):
1478
- return None
1479
- attr = self.get_attr(obj, attr, None)
1480
- if not (inspect.ismethod(attr) or inspect.isfunction(attr)):
1481
- return None
1482
- return attr
1483
-
1484
- # This sequence is copied from inspect._signature_from_callable.
1485
- # ValueError means that no signature could be found, so we keep going.
1486
-
1487
- # First, we check the obj has a __signature__ attribute
1488
- if (hasattr(self.object, '__signature__') and
1489
- isinstance(self.object.__signature__, Signature)):
1490
- return None, None, self.object.__signature__
1491
-
1492
- # Next, let's see if it has an overloaded __call__ defined
1493
- # in its metaclass
1494
- call = get_user_defined_function_or_method(type(self.object), '__call__')
1495
-
1496
- if call is not None:
1497
- if f"{call.__module__}.{call.__qualname__}" in _METACLASS_CALL_BLACKLIST:
1498
- call = None
1499
-
1500
- if call is not None:
1501
- self.env.app.emit('autodoc-before-process-signature', call, True)
1502
- try:
1503
- sig = inspect.signature(call, bound_method=True,
1504
- type_aliases=self.config.autodoc_type_aliases)
1505
- return type(self.object), '__call__', sig
1506
- except ValueError:
1507
- pass
1508
-
1509
- # Now we check if the 'obj' class has a '__new__' method
1510
- new = get_user_defined_function_or_method(self.object, '__new__')
1511
-
1512
- if new is not None:
1513
- if f"{new.__module__}.{new.__qualname__}" in _CLASS_NEW_BLACKLIST:
1514
- new = None
1515
-
1516
- if new is not None:
1517
- self.env.app.emit('autodoc-before-process-signature', new, True)
1518
- try:
1519
- sig = inspect.signature(new, bound_method=True,
1520
- type_aliases=self.config.autodoc_type_aliases)
1521
- return self.object, '__new__', sig
1522
- except ValueError:
1523
- pass
1524
-
1525
- # Finally, we should have at least __init__ implemented
1526
- init = get_user_defined_function_or_method(self.object, '__init__')
1527
- if init is not None:
1528
- self.env.app.emit('autodoc-before-process-signature', init, True)
1529
- try:
1530
- sig = inspect.signature(init, bound_method=True,
1531
- type_aliases=self.config.autodoc_type_aliases)
1532
- return self.object, '__init__', sig
1533
- except ValueError:
1534
- pass
1535
-
1536
- # None of the attributes are user-defined, so fall back to let inspect
1537
- # handle it.
1538
- # We don't know the exact method that inspect.signature will read
1539
- # the signature from, so just pass the object itself to our hook.
1540
- self.env.app.emit('autodoc-before-process-signature', self.object, False)
1541
- try:
1542
- sig = inspect.signature(self.object, bound_method=False,
1543
- type_aliases=self.config.autodoc_type_aliases)
1544
- return None, None, sig
1545
- except ValueError:
1546
- pass
1547
-
1548
- # Still no signature: happens e.g. for old-style classes
1549
- # with __init__ in C and no `__text_signature__`.
1550
- return None, None, None
1551
-
1552
- def format_args(self, **kwargs: Any) -> str | None:
1553
- if self.config.autodoc_typehints in ('none', 'description'):
1554
- kwargs.setdefault('show_annotation', False)
1555
- if self.config.autodoc_typehints_format == "short":
1556
- kwargs.setdefault('unqualified_typehints', True)
1557
-
1558
- try:
1559
- self._signature_class, self._signature_method_name, sig = self._get_signature()
1560
- except TypeError as exc:
1561
- # __signature__ attribute contained junk
1562
- logger.warning(__("Failed to get a constructor signature for %s: %s"),
1563
- self.fullname, exc)
1564
- return None
1565
-
1566
- if sig is None:
1567
- return None
1568
-
1569
- return stringify_signature(sig, show_return_annotation=False, **kwargs)
1570
-
1571
- def _find_signature(self) -> tuple[str, str]:
1572
- result = super()._find_signature()
1573
- if result is not None:
1574
- # Strip a return value from signature of constructor in docstring (first entry)
1575
- result = (result[0], None)
1576
-
1577
- for i, sig in enumerate(self._signatures):
1578
- if sig.endswith(' -> None'):
1579
- # Strip a return value from signatures of constructor in docstring (subsequent
1580
- # entries)
1581
- self._signatures[i] = sig[:-8]
1582
-
1583
- return result
1584
-
1585
- def format_signature(self, **kwargs: Any) -> str:
1586
- if self.doc_as_attr:
1587
- return ''
1588
- if self.config.autodoc_class_signature == 'separated':
1589
- # do not show signatures
1590
- return ''
1591
-
1592
- if self.config.autodoc_typehints_format == "short":
1593
- kwargs.setdefault('unqualified_typehints', True)
1594
-
1595
- sig = super().format_signature()
1596
- sigs = []
1597
-
1598
- overloads = self.get_overloaded_signatures()
1599
- if overloads and self.config.autodoc_typehints != 'none':
1600
- # Use signatures for overloaded methods instead of the implementation method.
1601
- method = safe_getattr(self._signature_class, self._signature_method_name, None)
1602
- __globals__ = safe_getattr(method, '__globals__', {})
1603
- for overload in overloads:
1604
- overload = evaluate_signature(overload, __globals__,
1605
- self.config.autodoc_type_aliases)
1606
-
1607
- parameters = list(overload.parameters.values())
1608
- overload = overload.replace(parameters=parameters[1:],
1609
- return_annotation=Parameter.empty)
1610
- sig = stringify_signature(overload, **kwargs)
1611
- sigs.append(sig)
1612
- else:
1613
- sigs.append(sig)
1614
-
1615
- return "\n".join(sigs)
1616
-
1617
- def get_overloaded_signatures(self) -> list[Signature]:
1618
- if self._signature_class and self._signature_method_name:
1619
- for cls in self._signature_class.__mro__:
1620
- try:
1621
- analyzer = ModuleAnalyzer.for_module(cls.__module__)
1622
- analyzer.analyze()
1623
- qualname = '.'.join([cls.__qualname__, self._signature_method_name])
1624
- if qualname in analyzer.overloads:
1625
- return analyzer.overloads.get(qualname, [])
1626
- elif qualname in analyzer.tagorder:
1627
- # the constructor is defined in the class, but not overridden.
1628
- return []
1629
- except PycodeError:
1630
- pass
1631
-
1632
- return []
1633
-
1634
- def get_canonical_fullname(self) -> str | None:
1635
- __modname__ = safe_getattr(self.object, '__module__', self.modname)
1636
- __qualname__ = safe_getattr(self.object, '__qualname__', None)
1637
- if __qualname__ is None:
1638
- __qualname__ = safe_getattr(self.object, '__name__', None)
1639
- if __qualname__ and '<locals>' in __qualname__:
1640
- # No valid qualname found if the object is defined as locals
1641
- __qualname__ = None
1642
-
1643
- if __modname__ and __qualname__:
1644
- return '.'.join([__modname__, __qualname__])
1645
- else:
1646
- return None
1647
-
1648
- def add_directive_header(self, sig: str) -> None:
1649
- sourcename = self.get_sourcename()
1650
-
1651
- if self.doc_as_attr:
1652
- self.directivetype = 'attribute'
1653
- super().add_directive_header(sig)
1654
-
1655
- if inspect.isNewType(self.object) or isinstance(self.object, TypeVar):
1656
- return
1657
-
1658
- if self.analyzer and '.'.join(self.objpath) in self.analyzer.finals:
1659
- self.add_line(' :final:', sourcename)
1660
-
1661
- canonical_fullname = self.get_canonical_fullname()
1662
- if (not self.doc_as_attr and not inspect.isNewType(self.object)
1663
- and canonical_fullname and self.fullname != canonical_fullname):
1664
- self.add_line(' :canonical: %s' % canonical_fullname, sourcename)
1665
-
1666
- # add inheritance info, if wanted
1667
- if not self.doc_as_attr and self.options.show_inheritance:
1668
- if inspect.getorigbases(self.object):
1669
- # A subclass of generic types
1670
- # refs: PEP-560 <https://peps.python.org/pep-0560/>
1671
- bases = list(self.object.__orig_bases__)
1672
- elif hasattr(self.object, '__bases__') and len(self.object.__bases__):
1673
- # A normal class
1674
- bases = list(self.object.__bases__)
1675
- else:
1676
- bases = []
1677
-
1678
- self.env.events.emit('autodoc-process-bases',
1679
- self.fullname, self.object, self.options, bases)
1680
-
1681
- if self.config.autodoc_typehints_format == "short":
1682
- base_classes = [restify(cls, "smart") for cls in bases]
1683
- else:
1684
- base_classes = [restify(cls) for cls in bases]
1685
-
1686
- sourcename = self.get_sourcename()
1687
- self.add_line('', sourcename)
1688
- self.add_line(' ' + _('Bases: %s') % ', '.join(base_classes), sourcename)
1689
-
1690
- def get_object_members(self, want_all: bool) -> tuple[bool, ObjectMembers]:
1691
- members = get_class_members(self.object, self.objpath, self.get_attr,
1692
- self.config.autodoc_inherit_docstrings)
1693
- if not want_all:
1694
- if not self.options.members:
1695
- return False, [] # type: ignore
1696
- # specific members given
1697
- selected = []
1698
- for name in self.options.members:
1699
- if name in members:
1700
- selected.append(members[name])
1701
- else:
1702
- logger.warning(__('missing attribute %s in object %s') %
1703
- (name, self.fullname), type='autodoc')
1704
- return False, selected
1705
- elif self.options.inherited_members:
1706
- return False, list(members.values())
1707
- else:
1708
- return False, [m for m in members.values() if m.class_ == self.object]
1709
-
1710
- def get_doc(self) -> list[list[str]] | None:
1711
- if isinstance(self.object, TypeVar):
1712
- if self.object.__doc__ == TypeVar.__doc__:
1713
- return []
1714
- if sys.version_info[:2] < (3, 10):
1715
- if inspect.isNewType(self.object) or isinstance(self.object, TypeVar):
1716
- parts = self.modname.strip('.').split('.')
1717
- orig_objpath = self.objpath
1718
- for i in range(len(parts)):
1719
- new_modname = '.'.join(parts[:len(parts) - i])
1720
- new_objpath = parts[len(parts) - i:] + orig_objpath
1721
- try:
1722
- analyzer = ModuleAnalyzer.for_module(new_modname)
1723
- analyzer.analyze()
1724
- key = ('', new_objpath[-1])
1725
- comment = list(analyzer.attr_docs.get(key, []))
1726
- if comment:
1727
- self.objpath = new_objpath
1728
- self.modname = new_modname
1729
- return [comment]
1730
- except PycodeError:
1731
- pass
1732
- if self.doc_as_attr:
1733
- # Don't show the docstring of the class when it is an alias.
1734
- comment = self.get_variable_comment()
1735
- if comment:
1736
- return []
1737
- else:
1738
- return None
1739
-
1740
- lines = getattr(self, '_new_docstrings', None)
1741
- if lines is not None:
1742
- return lines
1743
-
1744
- classdoc_from = self.options.get('class-doc-from', self.config.autoclass_content)
1745
-
1746
- docstrings = []
1747
- attrdocstring = getdoc(self.object, self.get_attr)
1748
- if attrdocstring:
1749
- docstrings.append(attrdocstring)
1750
-
1751
- # for classes, what the "docstring" is can be controlled via a
1752
- # config value; the default is only the class docstring
1753
- if classdoc_from in ('both', 'init'):
1754
- __init__ = self.get_attr(self.object, '__init__', None)
1755
- initdocstring = getdoc(__init__, self.get_attr,
1756
- self.config.autodoc_inherit_docstrings,
1757
- self.object, '__init__')
1758
- # for new-style classes, no __init__ means default __init__
1759
- if (initdocstring is not None and
1760
- (initdocstring == object.__init__.__doc__ or # for pypy
1761
- initdocstring.strip() == object.__init__.__doc__)): # for !pypy
1762
- initdocstring = None
1763
- if not initdocstring:
1764
- # try __new__
1765
- __new__ = self.get_attr(self.object, '__new__', None)
1766
- initdocstring = getdoc(__new__, self.get_attr,
1767
- self.config.autodoc_inherit_docstrings,
1768
- self.object, '__new__')
1769
- # for new-style classes, no __new__ means default __new__
1770
- if (initdocstring is not None and
1771
- (initdocstring == object.__new__.__doc__ or # for pypy
1772
- initdocstring.strip() == object.__new__.__doc__)): # for !pypy
1773
- initdocstring = None
1774
- if initdocstring:
1775
- if classdoc_from == 'init':
1776
- docstrings = [initdocstring]
1777
- else:
1778
- docstrings.append(initdocstring)
1779
-
1780
- tab_width = self.directive.state.document.settings.tab_width
1781
- return [prepare_docstring(docstring, tab_width) for docstring in docstrings]
1782
-
1783
- def get_variable_comment(self) -> list[str] | None:
1784
- try:
1785
- key = ('', '.'.join(self.objpath))
1786
- if self.doc_as_attr:
1787
- analyzer = ModuleAnalyzer.for_module(self.modname)
1788
- else:
1789
- analyzer = ModuleAnalyzer.for_module(self.get_real_modname())
1790
- analyzer.analyze()
1791
- return list(analyzer.attr_docs.get(key, []))
1792
- except PycodeError:
1793
- return None
1794
-
1795
- def add_content(self, more_content: StringList | None) -> None:
1796
- if inspect.isNewType(self.object):
1797
- if self.config.autodoc_typehints_format == "short":
1798
- supertype = restify(self.object.__supertype__, "smart")
1799
- else:
1800
- supertype = restify(self.object.__supertype__)
1801
-
1802
- more_content = StringList([_('alias of %s') % supertype, ''], source='')
1803
- if isinstance(self.object, TypeVar):
1804
- attrs = [repr(self.object.__name__)]
1805
- for constraint in self.object.__constraints__:
1806
- if self.config.autodoc_typehints_format == "short":
1807
- attrs.append(stringify_annotation(constraint, "smart"))
1808
- else:
1809
- attrs.append(stringify_annotation(constraint))
1810
- if self.object.__bound__:
1811
- if self.config.autodoc_typehints_format == "short":
1812
- bound = restify(self.object.__bound__, "smart")
1813
- else:
1814
- bound = restify(self.object.__bound__)
1815
- attrs.append(r"bound=\ " + bound)
1816
- if self.object.__covariant__:
1817
- attrs.append("covariant=True")
1818
- if self.object.__contravariant__:
1819
- attrs.append("contravariant=True")
1820
-
1821
- more_content = StringList(
1822
- [_('alias of TypeVar(%s)') % ", ".join(attrs), ''],
1823
- source=''
1824
- )
1825
- if self.doc_as_attr and self.modname != self.get_real_modname():
1826
- try:
1827
- # override analyzer to obtain doccomment around its definition.
1828
- self.analyzer = ModuleAnalyzer.for_module(self.modname)
1829
- self.analyzer.analyze()
1830
- except PycodeError:
1831
- pass
1832
-
1833
- if self.doc_as_attr and not self.get_variable_comment():
1834
- try:
1835
- if self.config.autodoc_typehints_format == "short":
1836
- alias = restify(self.object, "smart")
1837
- else:
1838
- alias = restify(self.object)
1839
- more_content = StringList([_('alias of %s') % alias], source='')
1840
- except AttributeError:
1841
- pass # Invalid class object is passed.
1842
-
1843
- super().add_content(more_content)
1844
-
1845
- def document_members(self, all_members: bool = False) -> None:
1846
- if self.doc_as_attr:
1847
- return
1848
- super().document_members(all_members)
1849
-
1850
- def generate(
1851
- self,
1852
- more_content: StringList | None = None,
1853
- real_modname: str | None = None,
1854
- check_module: bool = False,
1855
- all_members: bool = False
1856
- ) -> None:
1857
- # Do not pass real_modname and use the name from the __module__
1858
- # attribute of the class.
1859
- # If a class gets imported into the module real_modname
1860
- # the analyzer won't find the source of the class, if
1861
- # it looks in real_modname.
1862
- return super().generate(more_content=more_content,
1863
- check_module=check_module,
1864
- all_members=all_members)
1865
-
1866
-
1867
- class ExceptionDocumenter(ClassDocumenter):
1868
- """
1869
- Specialized ClassDocumenter subclass for exceptions.
1870
- """
1871
- objtype = 'exception'
1872
- member_order = 10
1873
-
1874
- # needs a higher priority than ClassDocumenter
1875
- priority = ClassDocumenter.priority + 5
1876
-
1877
- @classmethod
1878
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
1879
- ) -> bool:
1880
- return isinstance(member, type) and issubclass(member, BaseException)
1881
-
1882
-
1883
- class DataDocumenterMixinBase:
1884
- # define types of instance variables
1885
- config: Config = None
1886
- env: BuildEnvironment = None
1887
- modname: str = None
1888
- parent: Any = None
1889
- object: Any = None
1890
- objpath: list[str] = None
1891
-
1892
- def should_suppress_directive_header(self) -> bool:
1893
- """Check directive header should be suppressed."""
1894
- return False
1895
-
1896
- def should_suppress_value_header(self) -> bool:
1897
- """Check :value: header should be suppressed."""
1898
- return False
1899
-
1900
- def update_content(self, more_content: StringList) -> None:
1901
- """Update docstring, for example with TypeVar variance."""
1902
- pass
1903
-
1904
-
1905
- class GenericAliasMixin(DataDocumenterMixinBase):
1906
- """
1907
- Mixin for DataDocumenter and AttributeDocumenter to provide the feature for
1908
- supporting GenericAliases.
1909
- """
1910
-
1911
- def should_suppress_directive_header(self) -> bool:
1912
- return (inspect.isgenericalias(self.object) or
1913
- super().should_suppress_directive_header())
1914
-
1915
- def update_content(self, more_content: StringList) -> None:
1916
- if inspect.isgenericalias(self.object):
1917
- if self.config.autodoc_typehints_format == "short":
1918
- alias = restify(self.object, "smart")
1919
- else:
1920
- alias = restify(self.object)
1921
-
1922
- more_content.append(_('alias of %s') % alias, '')
1923
- more_content.append('', '')
1924
-
1925
- super().update_content(more_content)
1926
-
1927
-
1928
- class UninitializedGlobalVariableMixin(DataDocumenterMixinBase):
1929
- """
1930
- Mixin for DataDocumenter to provide the feature for supporting uninitialized
1931
- (type annotation only) global variables.
1932
- """
1933
-
1934
- def import_object(self, raiseerror: bool = False) -> bool:
1935
- try:
1936
- return super().import_object(raiseerror=True) # type: ignore
1937
- except ImportError as exc:
1938
- # annotation only instance variable (PEP-526)
1939
- try:
1940
- with mock(self.config.autodoc_mock_imports):
1941
- parent = import_module(self.modname, self.config.autodoc_warningiserror)
1942
- annotations = get_type_hints(parent, None,
1943
- self.config.autodoc_type_aliases)
1944
- if self.objpath[-1] in annotations:
1945
- self.object = UNINITIALIZED_ATTR
1946
- self.parent = parent
1947
- return True
1948
- except ImportError:
1949
- pass
1950
-
1951
- if raiseerror:
1952
- raise
1953
- else:
1954
- logger.warning(exc.args[0], type='autodoc', subtype='import_object')
1955
- self.env.note_reread()
1956
- return False
1957
-
1958
- def should_suppress_value_header(self) -> bool:
1959
- return (self.object is UNINITIALIZED_ATTR or
1960
- super().should_suppress_value_header())
1961
-
1962
- def get_doc(self) -> list[list[str]] | None:
1963
- if self.object is UNINITIALIZED_ATTR:
1964
- return []
1965
- else:
1966
- return super().get_doc() # type: ignore
1967
-
1968
-
1969
- class DataDocumenter(GenericAliasMixin,
1970
- UninitializedGlobalVariableMixin, ModuleLevelDocumenter):
1971
- """
1972
- Specialized Documenter subclass for data items.
1973
- """
1974
- objtype = 'data'
1975
- member_order = 40
1976
- priority = -10
1977
- option_spec: OptionSpec = dict(ModuleLevelDocumenter.option_spec)
1978
- option_spec["annotation"] = annotation_option
1979
- option_spec["no-value"] = bool_option
1980
-
1981
- @classmethod
1982
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
1983
- ) -> bool:
1984
- return isinstance(parent, ModuleDocumenter) and isattr
1985
-
1986
- def update_annotations(self, parent: Any) -> None:
1987
- """Update __annotations__ to support type_comment and so on."""
1988
- annotations = dict(inspect.getannotations(parent))
1989
- parent.__annotations__ = annotations
1990
-
1991
- try:
1992
- analyzer = ModuleAnalyzer.for_module(self.modname)
1993
- analyzer.analyze()
1994
- for (classname, attrname), annotation in analyzer.annotations.items():
1995
- if classname == '' and attrname not in annotations:
1996
- annotations[attrname] = annotation
1997
- except PycodeError:
1998
- pass
1999
-
2000
- def import_object(self, raiseerror: bool = False) -> bool:
2001
- ret = super().import_object(raiseerror)
2002
- if self.parent:
2003
- self.update_annotations(self.parent)
2004
-
2005
- return ret
2006
-
2007
- def should_suppress_value_header(self) -> bool:
2008
- if super().should_suppress_value_header():
2009
- return True
2010
- else:
2011
- doc = self.get_doc()
2012
- docstring, metadata = separate_metadata('\n'.join(sum(doc, [])))
2013
- if 'hide-value' in metadata:
2014
- return True
2015
-
2016
- return False
2017
-
2018
- def add_directive_header(self, sig: str) -> None:
2019
- super().add_directive_header(sig)
2020
- sourcename = self.get_sourcename()
2021
- if self.options.annotation is SUPPRESS or self.should_suppress_directive_header():
2022
- pass
2023
- elif self.options.annotation:
2024
- self.add_line(' :annotation: %s' % self.options.annotation,
2025
- sourcename)
2026
- else:
2027
- if self.config.autodoc_typehints != 'none':
2028
- # obtain annotation for this data
2029
- annotations = get_type_hints(self.parent, None,
2030
- self.config.autodoc_type_aliases)
2031
- if self.objpath[-1] in annotations:
2032
- if self.config.autodoc_typehints_format == "short":
2033
- objrepr = stringify_annotation(annotations.get(self.objpath[-1]),
2034
- "smart")
2035
- else:
2036
- objrepr = stringify_annotation(annotations.get(self.objpath[-1]),
2037
- "fully-qualified-except-typing")
2038
- self.add_line(' :type: ' + objrepr, sourcename)
2039
-
2040
- try:
2041
- if (self.options.no_value or self.should_suppress_value_header() or
2042
- ismock(self.object)):
2043
- pass
2044
- else:
2045
- objrepr = object_description(self.object)
2046
- self.add_line(' :value: ' + objrepr, sourcename)
2047
- except ValueError:
2048
- pass
2049
-
2050
- def document_members(self, all_members: bool = False) -> None:
2051
- pass
2052
-
2053
- def get_real_modname(self) -> str:
2054
- real_modname = self.get_attr(self.parent or self.object, '__module__', None)
2055
- return real_modname or self.modname
2056
-
2057
- def get_module_comment(self, attrname: str) -> list[str] | None:
2058
- try:
2059
- analyzer = ModuleAnalyzer.for_module(self.modname)
2060
- analyzer.analyze()
2061
- key = ('', attrname)
2062
- if key in analyzer.attr_docs:
2063
- return list(analyzer.attr_docs[key])
2064
- except PycodeError:
2065
- pass
2066
-
2067
- return None
2068
-
2069
- def get_doc(self) -> list[list[str]] | None:
2070
- # Check the variable has a docstring-comment
2071
- comment = self.get_module_comment(self.objpath[-1])
2072
- if comment:
2073
- return [comment]
2074
- else:
2075
- return super().get_doc()
2076
-
2077
- def add_content(self, more_content: StringList | None) -> None:
2078
- # Disable analyzing variable comment on Documenter.add_content() to control it on
2079
- # DataDocumenter.add_content()
2080
- self.analyzer = None
2081
-
2082
- if not more_content:
2083
- more_content = StringList()
2084
-
2085
- self.update_content(more_content)
2086
- super().add_content(more_content)
2087
-
2088
-
2089
- class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type: ignore
2090
- """
2091
- Specialized Documenter subclass for methods (normal, static and class).
2092
- """
2093
- objtype = 'method'
2094
- directivetype = 'method'
2095
- member_order = 50
2096
- priority = 1 # must be more than FunctionDocumenter
2097
-
2098
- @classmethod
2099
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
2100
- ) -> bool:
2101
- return inspect.isroutine(member) and not isinstance(parent, ModuleDocumenter)
2102
-
2103
- def import_object(self, raiseerror: bool = False) -> bool:
2104
- ret = super().import_object(raiseerror)
2105
- if not ret:
2106
- return ret
2107
-
2108
- # to distinguish classmethod/staticmethod
2109
- obj = self.parent.__dict__.get(self.object_name)
2110
- if obj is None:
2111
- obj = self.object
2112
-
2113
- if (inspect.isclassmethod(obj) or
2114
- inspect.isstaticmethod(obj, cls=self.parent, name=self.object_name)):
2115
- # document class and static members before ordinary ones
2116
- self.member_order = self.member_order - 1
2117
-
2118
- return ret
2119
-
2120
- def format_args(self, **kwargs: Any) -> str | None:
2121
- if self.config.autodoc_typehints in ('none', 'description'):
2122
- kwargs.setdefault('show_annotation', False)
2123
- if self.config.autodoc_typehints_format == "short":
2124
- kwargs.setdefault('unqualified_typehints', True)
2125
-
2126
- try:
2127
- if self.object == object.__init__ and self.parent != object:
2128
- # Classes not having own __init__() method are shown as no arguments.
2129
- #
2130
- # Note: The signature of object.__init__() is (self, /, *args, **kwargs).
2131
- # But it makes users confused.
2132
- args = '()'
2133
- else:
2134
- if inspect.isstaticmethod(self.object, cls=self.parent, name=self.object_name):
2135
- self.env.app.emit('autodoc-before-process-signature', self.object, False)
2136
- sig = inspect.signature(self.object, bound_method=False,
2137
- type_aliases=self.config.autodoc_type_aliases)
2138
- else:
2139
- self.env.app.emit('autodoc-before-process-signature', self.object, True)
2140
- sig = inspect.signature(self.object, bound_method=True,
2141
- type_aliases=self.config.autodoc_type_aliases)
2142
- args = stringify_signature(sig, **kwargs)
2143
- except TypeError as exc:
2144
- logger.warning(__("Failed to get a method signature for %s: %s"),
2145
- self.fullname, exc)
2146
- return None
2147
- except ValueError:
2148
- args = ''
2149
-
2150
- if self.config.strip_signature_backslash:
2151
- # escape backslashes for reST
2152
- args = args.replace('\\', '\\\\')
2153
- return args
2154
-
2155
- def add_directive_header(self, sig: str) -> None:
2156
- super().add_directive_header(sig)
2157
-
2158
- sourcename = self.get_sourcename()
2159
- obj = self.parent.__dict__.get(self.object_name, self.object)
2160
- if inspect.isabstractmethod(obj):
2161
- self.add_line(' :abstractmethod:', sourcename)
2162
- if inspect.iscoroutinefunction(obj) or inspect.isasyncgenfunction(obj):
2163
- self.add_line(' :async:', sourcename)
2164
- if inspect.isclassmethod(obj):
2165
- self.add_line(' :classmethod:', sourcename)
2166
- if inspect.isstaticmethod(obj, cls=self.parent, name=self.object_name):
2167
- self.add_line(' :staticmethod:', sourcename)
2168
- if self.analyzer and '.'.join(self.objpath) in self.analyzer.finals:
2169
- self.add_line(' :final:', sourcename)
2170
-
2171
- def document_members(self, all_members: bool = False) -> None:
2172
- pass
2173
-
2174
- def format_signature(self, **kwargs: Any) -> str:
2175
- if self.config.autodoc_typehints_format == "short":
2176
- kwargs.setdefault('unqualified_typehints', True)
2177
-
2178
- sigs = []
2179
- if (self.analyzer and
2180
- '.'.join(self.objpath) in self.analyzer.overloads and
2181
- self.config.autodoc_typehints != 'none'):
2182
- # Use signatures for overloaded methods instead of the implementation method.
2183
- overloaded = True
2184
- else:
2185
- overloaded = False
2186
- sig = super().format_signature(**kwargs)
2187
- sigs.append(sig)
2188
-
2189
- meth = self.parent.__dict__.get(self.objpath[-1])
2190
- if inspect.is_singledispatch_method(meth):
2191
- # append signature of singledispatch'ed functions
2192
- for typ, func in meth.dispatcher.registry.items():
2193
- if typ is object:
2194
- pass # default implementation. skipped.
2195
- else:
2196
- dispatchmeth = self.annotate_to_first_argument(func, typ)
2197
- if dispatchmeth:
2198
- documenter = MethodDocumenter(self.directive, '')
2199
- documenter.parent = self.parent
2200
- documenter.object = dispatchmeth
2201
- documenter.objpath = [None]
2202
- sigs.append(documenter.format_signature())
2203
- if overloaded:
2204
- if inspect.isstaticmethod(self.object, cls=self.parent, name=self.object_name):
2205
- actual = inspect.signature(self.object, bound_method=False,
2206
- type_aliases=self.config.autodoc_type_aliases)
2207
- else:
2208
- actual = inspect.signature(self.object, bound_method=True,
2209
- type_aliases=self.config.autodoc_type_aliases)
2210
-
2211
- __globals__ = safe_getattr(self.object, '__globals__', {})
2212
- for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
2213
- overload = self.merge_default_value(actual, overload)
2214
- overload = evaluate_signature(overload, __globals__,
2215
- self.config.autodoc_type_aliases)
2216
-
2217
- if not inspect.isstaticmethod(self.object, cls=self.parent,
2218
- name=self.object_name):
2219
- parameters = list(overload.parameters.values())
2220
- overload = overload.replace(parameters=parameters[1:])
2221
- sig = stringify_signature(overload, **kwargs)
2222
- sigs.append(sig)
2223
-
2224
- return "\n".join(sigs)
2225
-
2226
- def merge_default_value(self, actual: Signature, overload: Signature) -> Signature:
2227
- """Merge default values of actual implementation to the overload variants."""
2228
- parameters = list(overload.parameters.values())
2229
- for i, param in enumerate(parameters):
2230
- actual_param = actual.parameters.get(param.name)
2231
- if actual_param and param.default == '...':
2232
- parameters[i] = param.replace(default=actual_param.default)
2233
-
2234
- return overload.replace(parameters=parameters)
2235
-
2236
- def annotate_to_first_argument(self, func: Callable, typ: type) -> Callable | None:
2237
- """Annotate type hint to the first argument of function if needed."""
2238
- try:
2239
- sig = inspect.signature(func, type_aliases=self.config.autodoc_type_aliases)
2240
- except TypeError as exc:
2241
- logger.warning(__("Failed to get a method signature for %s: %s"),
2242
- self.fullname, exc)
2243
- return None
2244
- except ValueError:
2245
- return None
2246
-
2247
- if len(sig.parameters) == 1:
2248
- return None
2249
-
2250
- def dummy():
2251
- pass
2252
-
2253
- params = list(sig.parameters.values())
2254
- if params[1].annotation is Parameter.empty:
2255
- params[1] = params[1].replace(annotation=typ)
2256
- try:
2257
- dummy.__signature__ = sig.replace(parameters=params) # type: ignore
2258
- return dummy
2259
- except (AttributeError, TypeError):
2260
- # failed to update signature (ex. built-in or extension types)
2261
- return None
2262
-
2263
- return func
2264
-
2265
- def get_doc(self) -> list[list[str]] | None:
2266
- if self._new_docstrings is not None:
2267
- # docstring already returned previously, then modified by
2268
- # `DocstringSignatureMixin`. Just return the previously-computed
2269
- # result, so that we don't lose the processing done by
2270
- # `DocstringSignatureMixin`.
2271
- return self._new_docstrings
2272
- if self.objpath[-1] == '__init__':
2273
- docstring = getdoc(self.object, self.get_attr,
2274
- self.config.autodoc_inherit_docstrings,
2275
- self.parent, self.object_name)
2276
- if (docstring is not None and
2277
- (docstring == object.__init__.__doc__ or # for pypy
2278
- docstring.strip() == object.__init__.__doc__)): # for !pypy
2279
- docstring = None
2280
- if docstring:
2281
- tab_width = self.directive.state.document.settings.tab_width
2282
- return [prepare_docstring(docstring, tabsize=tab_width)]
2283
- else:
2284
- return []
2285
- elif self.objpath[-1] == '__new__':
2286
- docstring = getdoc(self.object, self.get_attr,
2287
- self.config.autodoc_inherit_docstrings,
2288
- self.parent, self.object_name)
2289
- if (docstring is not None and
2290
- (docstring == object.__new__.__doc__ or # for pypy
2291
- docstring.strip() == object.__new__.__doc__)): # for !pypy
2292
- docstring = None
2293
- if docstring:
2294
- tab_width = self.directive.state.document.settings.tab_width
2295
- return [prepare_docstring(docstring, tabsize=tab_width)]
2296
- else:
2297
- return []
2298
- else:
2299
- return super().get_doc()
2300
-
2301
-
2302
- class NonDataDescriptorMixin(DataDocumenterMixinBase):
2303
- """
2304
- Mixin for AttributeDocumenter to provide the feature for supporting non
2305
- data-descriptors.
2306
-
2307
- .. note:: This mix-in must be inherited after other mix-ins. Otherwise, docstring
2308
- and :value: header will be suppressed unexpectedly.
2309
- """
2310
-
2311
- def import_object(self, raiseerror: bool = False) -> bool:
2312
- ret = super().import_object(raiseerror) # type: ignore
2313
- if ret and not inspect.isattributedescriptor(self.object):
2314
- self.non_data_descriptor = True
2315
- else:
2316
- self.non_data_descriptor = False
2317
-
2318
- return ret
2319
-
2320
- def should_suppress_value_header(self) -> bool:
2321
- return (not getattr(self, 'non_data_descriptor', False) or
2322
- super().should_suppress_directive_header())
2323
-
2324
- def get_doc(self) -> list[list[str]] | None:
2325
- if getattr(self, 'non_data_descriptor', False):
2326
- # the docstring of non datadescriptor is very probably the wrong thing
2327
- # to display
2328
- return None
2329
- else:
2330
- return super().get_doc() # type: ignore
2331
-
2332
-
2333
- class SlotsMixin(DataDocumenterMixinBase):
2334
- """
2335
- Mixin for AttributeDocumenter to provide the feature for supporting __slots__.
2336
- """
2337
-
2338
- def isslotsattribute(self) -> bool:
2339
- """Check the subject is an attribute in __slots__."""
2340
- try:
2341
- __slots__ = inspect.getslots(self.parent)
2342
- return bool(__slots__) and self.objpath[-1] in __slots__
2343
- except (ValueError, TypeError):
2344
- return False
2345
-
2346
- def import_object(self, raiseerror: bool = False) -> bool:
2347
- ret = super().import_object(raiseerror) # type: ignore
2348
- if self.isslotsattribute():
2349
- self.object = SLOTSATTR
2350
-
2351
- return ret
2352
-
2353
- def should_suppress_value_header(self) -> bool:
2354
- if self.object is SLOTSATTR:
2355
- return True
2356
- else:
2357
- return super().should_suppress_value_header()
2358
-
2359
- def get_doc(self) -> list[list[str]] | None:
2360
- if self.object is SLOTSATTR:
2361
- try:
2362
- __slots__ = inspect.getslots(self.parent)
2363
- if __slots__ and __slots__.get(self.objpath[-1]):
2364
- docstring = prepare_docstring(__slots__[self.objpath[-1]])
2365
- return [docstring]
2366
- else:
2367
- return []
2368
- except ValueError as exc:
2369
- logger.warning(__('Invalid __slots__ found on %s. Ignored.'),
2370
- (self.parent.__qualname__, exc), type='autodoc')
2371
- return []
2372
- else:
2373
- return super().get_doc() # type: ignore
2374
-
2375
-
2376
- class RuntimeInstanceAttributeMixin(DataDocumenterMixinBase):
2377
- """
2378
- Mixin for AttributeDocumenter to provide the feature for supporting runtime
2379
- instance attributes (that are defined in __init__() methods with doc-comments).
2380
-
2381
- Example:
2382
-
2383
- class Foo:
2384
- def __init__(self):
2385
- self.attr = None #: This is a target of this mix-in.
2386
- """
2387
-
2388
- RUNTIME_INSTANCE_ATTRIBUTE = object()
2389
-
2390
- def is_runtime_instance_attribute(self, parent: Any) -> bool:
2391
- """Check the subject is an attribute defined in __init__()."""
2392
- # An instance variable defined in __init__().
2393
- if self.get_attribute_comment(parent, self.objpath[-1]): # type: ignore
2394
- return True
2395
- elif self.is_runtime_instance_attribute_not_commented(parent):
2396
- return True
2397
- else:
2398
- return False
2399
-
2400
- def is_runtime_instance_attribute_not_commented(self, parent: Any) -> bool:
2401
- """Check the subject is an attribute defined in __init__() without comment."""
2402
- for cls in inspect.getmro(parent):
2403
- try:
2404
- module = safe_getattr(cls, '__module__')
2405
- qualname = safe_getattr(cls, '__qualname__')
2406
-
2407
- analyzer = ModuleAnalyzer.for_module(module)
2408
- analyzer.analyze()
2409
- if qualname and self.objpath:
2410
- key = '.'.join([qualname, self.objpath[-1]])
2411
- if key in analyzer.tagorder:
2412
- return True
2413
- except (AttributeError, PycodeError):
2414
- pass
2415
-
2416
- return None
2417
-
2418
- def import_object(self, raiseerror: bool = False) -> bool:
2419
- """Check the existence of runtime instance attribute after failing to import the
2420
- attribute."""
2421
- try:
2422
- return super().import_object(raiseerror=True) # type: ignore
2423
- except ImportError as exc:
2424
- try:
2425
- with mock(self.config.autodoc_mock_imports):
2426
- ret = import_object(self.modname, self.objpath[:-1], 'class',
2427
- attrgetter=self.get_attr, # type: ignore
2428
- warningiserror=self.config.autodoc_warningiserror)
2429
- parent = ret[3]
2430
- if self.is_runtime_instance_attribute(parent):
2431
- self.object = self.RUNTIME_INSTANCE_ATTRIBUTE
2432
- self.parent = parent
2433
- return True
2434
- except ImportError:
2435
- pass
2436
-
2437
- if raiseerror:
2438
- raise
2439
- else:
2440
- logger.warning(exc.args[0], type='autodoc', subtype='import_object')
2441
- self.env.note_reread()
2442
- return False
2443
-
2444
- def should_suppress_value_header(self) -> bool:
2445
- return (self.object is self.RUNTIME_INSTANCE_ATTRIBUTE or
2446
- super().should_suppress_value_header())
2447
-
2448
- def get_doc(self) -> list[list[str]] | None:
2449
- if (self.object is self.RUNTIME_INSTANCE_ATTRIBUTE and
2450
- self.is_runtime_instance_attribute_not_commented(self.parent)):
2451
- return None
2452
- else:
2453
- return super().get_doc() # type: ignore
2454
-
2455
-
2456
- class UninitializedInstanceAttributeMixin(DataDocumenterMixinBase):
2457
- """
2458
- Mixin for AttributeDocumenter to provide the feature for supporting uninitialized
2459
- instance attributes (PEP-526 styled, annotation only attributes).
2460
-
2461
- Example:
2462
-
2463
- class Foo:
2464
- attr: int #: This is a target of this mix-in.
2465
- """
2466
-
2467
- def is_uninitialized_instance_attribute(self, parent: Any) -> bool:
2468
- """Check the subject is an annotation only attribute."""
2469
- annotations = get_type_hints(parent, None, self.config.autodoc_type_aliases)
2470
- return self.objpath[-1] in annotations
2471
-
2472
- def import_object(self, raiseerror: bool = False) -> bool:
2473
- """Check the exisitence of uninitialized instance attribute when failed to import
2474
- the attribute."""
2475
- try:
2476
- return super().import_object(raiseerror=True) # type: ignore
2477
- except ImportError as exc:
2478
- try:
2479
- ret = import_object(self.modname, self.objpath[:-1], 'class',
2480
- attrgetter=self.get_attr, # type: ignore
2481
- warningiserror=self.config.autodoc_warningiserror)
2482
- parent = ret[3]
2483
- if self.is_uninitialized_instance_attribute(parent):
2484
- self.object = UNINITIALIZED_ATTR
2485
- self.parent = parent
2486
- return True
2487
- except ImportError:
2488
- pass
2489
-
2490
- if raiseerror:
2491
- raise
2492
- else:
2493
- logger.warning(exc.args[0], type='autodoc', subtype='import_object')
2494
- self.env.note_reread()
2495
- return False
2496
-
2497
- def should_suppress_value_header(self) -> bool:
2498
- return (self.object is UNINITIALIZED_ATTR or
2499
- super().should_suppress_value_header())
2500
-
2501
- def get_doc(self) -> list[list[str]] | None:
2502
- if self.object is UNINITIALIZED_ATTR:
2503
- return None
2504
- else:
2505
- return super().get_doc() # type: ignore
2506
-
2507
-
2508
- class AttributeDocumenter(GenericAliasMixin, SlotsMixin, # type: ignore
2509
- RuntimeInstanceAttributeMixin,
2510
- UninitializedInstanceAttributeMixin, NonDataDescriptorMixin,
2511
- DocstringStripSignatureMixin, ClassLevelDocumenter):
2512
- """
2513
- Specialized Documenter subclass for attributes.
2514
- """
2515
- objtype = 'attribute'
2516
- member_order = 60
2517
- option_spec: OptionSpec = dict(ModuleLevelDocumenter.option_spec)
2518
- option_spec["annotation"] = annotation_option
2519
- option_spec["no-value"] = bool_option
2520
-
2521
- # must be higher than the MethodDocumenter, else it will recognize
2522
- # some non-data descriptors as methods
2523
- priority = 10
2524
-
2525
- @staticmethod
2526
- def is_function_or_method(obj: Any) -> bool:
2527
- return inspect.isfunction(obj) or inspect.isbuiltin(obj) or inspect.ismethod(obj)
2528
-
2529
- @classmethod
2530
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
2531
- ) -> bool:
2532
- if isinstance(parent, ModuleDocumenter):
2533
- return False
2534
- elif inspect.isattributedescriptor(member):
2535
- return True
2536
- elif not inspect.isroutine(member) and not isinstance(member, type):
2537
- return True
2538
- else:
2539
- return False
2540
-
2541
- def document_members(self, all_members: bool = False) -> None:
2542
- pass
2543
-
2544
- def update_annotations(self, parent: Any) -> None:
2545
- """Update __annotations__ to support type_comment and so on."""
2546
- try:
2547
- annotations = dict(inspect.getannotations(parent))
2548
- parent.__annotations__ = annotations
2549
-
2550
- for cls in inspect.getmro(parent):
2551
- try:
2552
- module = safe_getattr(cls, '__module__')
2553
- qualname = safe_getattr(cls, '__qualname__')
2554
-
2555
- analyzer = ModuleAnalyzer.for_module(module)
2556
- analyzer.analyze()
2557
- for (classname, attrname), annotation in analyzer.annotations.items():
2558
- if classname == qualname and attrname not in annotations:
2559
- annotations[attrname] = annotation
2560
- except (AttributeError, PycodeError):
2561
- pass
2562
- except (AttributeError, TypeError):
2563
- # Failed to set __annotations__ (built-in, extensions, etc.)
2564
- pass
2565
-
2566
- def import_object(self, raiseerror: bool = False) -> bool:
2567
- ret = super().import_object(raiseerror)
2568
- if inspect.isenumattribute(self.object):
2569
- self.object = self.object.value
2570
- if self.parent:
2571
- self.update_annotations(self.parent)
2572
-
2573
- return ret
2574
-
2575
- def get_real_modname(self) -> str:
2576
- real_modname = self.get_attr(self.parent or self.object, '__module__', None)
2577
- return real_modname or self.modname
2578
-
2579
- def should_suppress_value_header(self) -> bool:
2580
- if super().should_suppress_value_header():
2581
- return True
2582
- else:
2583
- doc = self.get_doc()
2584
- if doc:
2585
- docstring, metadata = separate_metadata('\n'.join(sum(doc, [])))
2586
- if 'hide-value' in metadata:
2587
- return True
2588
-
2589
- return False
2590
-
2591
- def add_directive_header(self, sig: str) -> None:
2592
- super().add_directive_header(sig)
2593
- sourcename = self.get_sourcename()
2594
- if self.options.annotation is SUPPRESS or self.should_suppress_directive_header():
2595
- pass
2596
- elif self.options.annotation:
2597
- self.add_line(' :annotation: %s' % self.options.annotation, sourcename)
2598
- else:
2599
- if self.config.autodoc_typehints != 'none':
2600
- # obtain type annotation for this attribute
2601
- annotations = get_type_hints(self.parent, None,
2602
- self.config.autodoc_type_aliases)
2603
- if self.objpath[-1] in annotations:
2604
- if self.config.autodoc_typehints_format == "short":
2605
- objrepr = stringify_annotation(annotations.get(self.objpath[-1]),
2606
- "smart")
2607
- else:
2608
- objrepr = stringify_annotation(annotations.get(self.objpath[-1]),
2609
- "fully-qualified-except-typing")
2610
- self.add_line(' :type: ' + objrepr, sourcename)
2611
-
2612
- try:
2613
- if (self.options.no_value or self.should_suppress_value_header() or
2614
- ismock(self.object)):
2615
- pass
2616
- else:
2617
- objrepr = object_description(self.object)
2618
- self.add_line(' :value: ' + objrepr, sourcename)
2619
- except ValueError:
2620
- pass
2621
-
2622
- def get_attribute_comment(self, parent: Any, attrname: str) -> list[str] | None:
2623
- for cls in inspect.getmro(parent):
2624
- try:
2625
- module = safe_getattr(cls, '__module__')
2626
- qualname = safe_getattr(cls, '__qualname__')
2627
-
2628
- analyzer = ModuleAnalyzer.for_module(module)
2629
- analyzer.analyze()
2630
- if qualname and self.objpath:
2631
- key = (qualname, attrname)
2632
- if key in analyzer.attr_docs:
2633
- return list(analyzer.attr_docs[key])
2634
- except (AttributeError, PycodeError):
2635
- pass
2636
-
2637
- return None
2638
-
2639
- def get_doc(self) -> list[list[str]] | None:
2640
- # Check the attribute has a docstring-comment
2641
- comment = self.get_attribute_comment(self.parent, self.objpath[-1])
2642
- if comment:
2643
- return [comment]
2644
-
2645
- try:
2646
- # Disable `autodoc_inherit_docstring` temporarily to avoid to obtain
2647
- # a docstring from the value which descriptor returns unexpectedly.
2648
- # ref: https://github.com/sphinx-doc/sphinx/issues/7805
2649
- orig = self.config.autodoc_inherit_docstrings
2650
- self.config.autodoc_inherit_docstrings = False # type: ignore
2651
- return super().get_doc()
2652
- finally:
2653
- self.config.autodoc_inherit_docstrings = orig # type: ignore
2654
-
2655
- def add_content(self, more_content: StringList | None) -> None:
2656
- # Disable analyzing attribute comment on Documenter.add_content() to control it on
2657
- # AttributeDocumenter.add_content()
2658
- self.analyzer = None
2659
-
2660
- if more_content is None:
2661
- more_content = StringList()
2662
- self.update_content(more_content)
2663
- super().add_content(more_content)
2664
-
2665
-
2666
- class PropertyDocumenter(DocstringStripSignatureMixin, ClassLevelDocumenter): # type: ignore
2667
- """
2668
- Specialized Documenter subclass for properties.
2669
- """
2670
- objtype = 'property'
2671
- member_order = 60
2672
-
2673
- # before AttributeDocumenter
2674
- priority = AttributeDocumenter.priority + 1
2675
-
2676
- @classmethod
2677
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
2678
- ) -> bool:
2679
- if isinstance(parent, ClassDocumenter):
2680
- if inspect.isproperty(member):
2681
- return True
2682
- else:
2683
- __dict__ = safe_getattr(parent.object, '__dict__', {})
2684
- obj = __dict__.get(membername)
2685
- return isinstance(obj, classmethod) and inspect.isproperty(obj.__func__)
2686
- else:
2687
- return False
2688
-
2689
- def import_object(self, raiseerror: bool = False) -> bool:
2690
- """Check the exisitence of uninitialized instance attribute when failed to import
2691
- the attribute."""
2692
- ret = super().import_object(raiseerror)
2693
- if ret and not inspect.isproperty(self.object):
2694
- __dict__ = safe_getattr(self.parent, '__dict__', {})
2695
- obj = __dict__.get(self.objpath[-1])
2696
- if isinstance(obj, classmethod) and inspect.isproperty(obj.__func__):
2697
- self.object = obj.__func__
2698
- self.isclassmethod = True
2699
- return True
2700
- else:
2701
- return False
2702
-
2703
- self.isclassmethod = False
2704
- return ret
2705
-
2706
- def document_members(self, all_members: bool = False) -> None:
2707
- pass
2708
-
2709
- def get_real_modname(self) -> str:
2710
- real_modname = self.get_attr(self.parent or self.object, '__module__', None)
2711
- return real_modname or self.modname
2712
-
2713
- def add_directive_header(self, sig: str) -> None:
2714
- super().add_directive_header(sig)
2715
- sourcename = self.get_sourcename()
2716
- if inspect.isabstractmethod(self.object):
2717
- self.add_line(' :abstractmethod:', sourcename)
2718
- if self.isclassmethod:
2719
- self.add_line(' :classmethod:', sourcename)
2720
-
2721
- if safe_getattr(self.object, 'fget', None): # property
2722
- func = self.object.fget
2723
- elif safe_getattr(self.object, 'func', None): # cached_property
2724
- func = self.object.func
2725
- else:
2726
- func = None
2727
-
2728
- if func and self.config.autodoc_typehints != 'none':
2729
- try:
2730
- signature = inspect.signature(func,
2731
- type_aliases=self.config.autodoc_type_aliases)
2732
- if signature.return_annotation is not Parameter.empty:
2733
- if self.config.autodoc_typehints_format == "short":
2734
- objrepr = stringify_annotation(signature.return_annotation, "smart")
2735
- else:
2736
- objrepr = stringify_annotation(signature.return_annotation,
2737
- "fully-qualified-except-typing")
2738
- self.add_line(' :type: ' + objrepr, sourcename)
2739
- except TypeError as exc:
2740
- logger.warning(__("Failed to get a function signature for %s: %s"),
2741
- self.fullname, exc)
2742
- return None
2743
- except ValueError:
2744
- return None
2745
-
2746
-
2747
- def autodoc_attrgetter(app: Sphinx, obj: Any, name: str, *defargs: Any) -> Any:
2748
- """Alternative getattr() for types"""
2749
- for typ, func in app.registry.autodoc_attrgettrs.items():
2750
- if isinstance(obj, typ):
2751
- return func(obj, name, *defargs)
2752
-
2753
- return safe_getattr(obj, name, *defargs)
2754
-
2755
-
2756
- def setup(app: Sphinx) -> dict[str, Any]:
2757
- app.add_autodocumenter(ModuleDocumenter)
2758
- app.add_autodocumenter(ClassDocumenter)
2759
- app.add_autodocumenter(ExceptionDocumenter)
2760
- app.add_autodocumenter(DataDocumenter)
2761
- app.add_autodocumenter(FunctionDocumenter)
2762
- app.add_autodocumenter(DecoratorDocumenter)
2763
- app.add_autodocumenter(MethodDocumenter)
2764
- app.add_autodocumenter(AttributeDocumenter)
2765
- app.add_autodocumenter(PropertyDocumenter)
2766
-
2767
- app.add_config_value('autoclass_content', 'class', True, ENUM('both', 'class', 'init'))
2768
- app.add_config_value('autodoc_member_order', 'alphabetical', True,
2769
- ENUM('alphabetical', 'bysource', 'groupwise'))
2770
- app.add_config_value('autodoc_class_signature', 'mixed', True, ENUM('mixed', 'separated'))
2771
- app.add_config_value('autodoc_default_options', {}, True)
2772
- app.add_config_value('autodoc_docstring_signature', True, True)
2773
- app.add_config_value('autodoc_mock_imports', [], True)
2774
- app.add_config_value('autodoc_typehints', "signature", True,
2775
- ENUM("signature", "description", "none", "both"))
2776
- app.add_config_value('autodoc_typehints_description_target', 'all', True,
2777
- ENUM('all', 'documented', 'documented_params'))
2778
- app.add_config_value('autodoc_type_aliases', {}, True)
2779
- app.add_config_value('autodoc_typehints_format', "short", 'env',
2780
- ENUM("fully-qualified", "short"))
2781
- app.add_config_value('autodoc_warningiserror', True, True)
2782
- app.add_config_value('autodoc_inherit_docstrings', True, True)
2783
- app.add_event('autodoc-before-process-signature')
2784
- app.add_event('autodoc-process-docstring')
2785
- app.add_event('autodoc-process-signature')
2786
- app.add_event('autodoc-skip-member')
2787
- app.add_event('autodoc-process-bases')
2788
-
2789
- app.setup_extension('sphinx.ext.autodoc.preserve_defaults')
2790
- app.setup_extension('sphinx.ext.autodoc.type_comment')
2791
- app.setup_extension('sphinx.ext.autodoc.typehints')
2792
-
2793
- return {'version': sphinx.__display_version__, 'parallel_read_safe': True}