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,3295 +0,0 @@
1
- # $Id: __init__.py 9068 2022-06-13 12:05:08Z milde $
2
- # Author: Engelbert Gruber, Günter Milde
3
- # Maintainer: docutils-develop@lists.sourceforge.net
4
- # Copyright: This module has been placed in the public domain.
5
-
6
- """LaTeX2e document tree Writer."""
7
-
8
- __docformat__ = 'reStructuredText'
9
-
10
- # code contributions from several people included, thanks to all.
11
- # some named: David Abrahams, Julien Letessier, Lele Gaifax, and others.
12
- #
13
- # convention deactivate code by two # i.e. ##.
14
-
15
- import os
16
- import re
17
- import string
18
- from urllib.request import url2pathname
19
- import warnings
20
-
21
- try:
22
- import roman
23
- except ImportError:
24
- import docutils.utils.roman as roman
25
-
26
- import docutils
27
- from docutils import frontend, nodes, languages, writers, utils
28
- from docutils.transforms import writer_aux
29
- from docutils.utils.math import pick_math_environment, unichar2tex
30
-
31
-
32
- class Writer(writers.Writer):
33
-
34
- supported = ('latex', 'latex2e')
35
- """Formats this writer supports."""
36
-
37
- default_template = 'default.tex'
38
- default_template_path = os.path.dirname(os.path.abspath(__file__))
39
- default_preamble = ('% PDF Standard Fonts\n'
40
- '\\usepackage{mathptmx} % Times\n'
41
- '\\usepackage[scaled=.90]{helvet}\n'
42
- '\\usepackage{courier}')
43
- table_style_values = [ # TODO: align-left, align-center, align-right, ??
44
- 'booktabs', 'borderless', 'colwidths-auto',
45
- 'nolines', 'standard']
46
-
47
- settings_spec = (
48
- 'LaTeX-Specific Options',
49
- None,
50
- (('Specify LaTeX documentclass. Default: "article".',
51
- ['--documentclass'],
52
- {'default': 'article', }),
53
- ('Specify document options. Multiple options can be given, '
54
- 'separated by commas. Default: "a4paper".',
55
- ['--documentoptions'],
56
- {'default': 'a4paper', }),
57
- ('Format for footnote references: one of "superscript" or '
58
- '"brackets". Default: "superscript".',
59
- ['--footnote-references'],
60
- {'choices': ['superscript', 'brackets'], 'default': 'superscript',
61
- 'metavar': '<format>',
62
- 'overrides': 'trim_footnote_reference_space'}),
63
- ('Use \\cite command for citations. (future default)',
64
- ['--use-latex-citations'],
65
- {'default': None, 'action': 'store_true',
66
- 'validator': frontend.validate_boolean}),
67
- ('Use figure floats for citations '
68
- '(might get mixed with real figures). (provisional default)',
69
- ['--figure-citations'],
70
- {'dest': 'use_latex_citations', 'action': 'store_false',
71
- 'validator': frontend.validate_boolean}),
72
- ('Format for block quote attributions: one of "dash" (em-dash '
73
- 'prefix), "parentheses"/"parens", or "none". Default: "dash".',
74
- ['--attribution'],
75
- {'choices': ['dash', 'parentheses', 'parens', 'none'],
76
- 'default': 'dash', 'metavar': '<format>'}),
77
- ('Specify LaTeX packages/stylesheets. '
78
- 'A style is referenced with "\\usepackage" if extension is '
79
- '".sty" or omitted and with "\\input" else. '
80
- ' Overrides previous --stylesheet and --stylesheet-path settings.',
81
- ['--stylesheet'],
82
- {'default': '', 'metavar': '<file[,file,...]>',
83
- 'overrides': 'stylesheet_path',
84
- 'validator': frontend.validate_comma_separated_list}),
85
- ('Comma separated list of LaTeX packages/stylesheets. '
86
- 'Relative paths are expanded if a matching file is found in '
87
- 'the --stylesheet-dirs. With --link-stylesheet, '
88
- 'the path is rewritten relative to the output *.tex file. ',
89
- ['--stylesheet-path'],
90
- {'metavar': '<file[,file,...]>', 'overrides': 'stylesheet',
91
- 'validator': frontend.validate_comma_separated_list}),
92
- ('Link to the stylesheet(s) in the output file. (default)',
93
- ['--link-stylesheet'],
94
- {'dest': 'embed_stylesheet', 'action': 'store_false'}),
95
- ('Embed the stylesheet(s) in the output file. '
96
- 'Stylesheets must be accessible during processing. ',
97
- ['--embed-stylesheet'],
98
- {'default': False, 'action': 'store_true',
99
- 'validator': frontend.validate_boolean}),
100
- ('Comma-separated list of directories where stylesheets are found. '
101
- 'Used by --stylesheet-path when expanding relative path arguments. '
102
- 'Default: ".".',
103
- ['--stylesheet-dirs'],
104
- {'metavar': '<dir[,dir,...]>',
105
- 'validator': frontend.validate_comma_separated_list,
106
- 'default': ['.']}),
107
- ('Customization by LaTeX code in the preamble. '
108
- 'Default: select PDF standard fonts (Times, Helvetica, Courier).',
109
- ['--latex-preamble'],
110
- {'default': default_preamble}),
111
- ('Specify the template file. Default: "%s".' % default_template,
112
- ['--template'],
113
- {'default': default_template, 'metavar': '<file>'}),
114
- ('Table of contents by LaTeX. (default)',
115
- ['--use-latex-toc'],
116
- {'default': True, 'action': 'store_true',
117
- 'validator': frontend.validate_boolean}),
118
- ('Table of contents by Docutils (without page numbers).',
119
- ['--use-docutils-toc'],
120
- {'dest': 'use_latex_toc', 'action': 'store_false',
121
- 'validator': frontend.validate_boolean}),
122
- ('Add parts on top of the section hierarchy.',
123
- ['--use-part-section'],
124
- {'default': False, 'action': 'store_true',
125
- 'validator': frontend.validate_boolean}),
126
- ('Attach author and date to the document info table. (default)',
127
- ['--use-docutils-docinfo'],
128
- {'dest': 'use_latex_docinfo', 'action': 'store_false',
129
- 'validator': frontend.validate_boolean}),
130
- ('Attach author and date to the document title.',
131
- ['--use-latex-docinfo'],
132
- {'default': False, 'action': 'store_true',
133
- 'validator': frontend.validate_boolean}),
134
- ("Typeset abstract as topic. (default)",
135
- ['--topic-abstract'],
136
- {'dest': 'use_latex_abstract', 'action': 'store_false',
137
- 'validator': frontend.validate_boolean}),
138
- ("Use LaTeX abstract environment for the document's abstract.",
139
- ['--use-latex-abstract'],
140
- {'default': False, 'action': 'store_true',
141
- 'validator': frontend.validate_boolean}),
142
- ('Color of any hyperlinks embedded in text. '
143
- 'Default: "blue" (use "false" to disable).',
144
- ['--hyperlink-color'], {'default': 'blue'}),
145
- ('Additional options to the "hyperref" package.',
146
- ['--hyperref-options'], {'default': ''}),
147
- ('Enable compound enumerators for nested enumerated lists '
148
- '(e.g. "1.2.a.ii").',
149
- ['--compound-enumerators'],
150
- {'default': False, 'action': 'store_true',
151
- 'validator': frontend.validate_boolean}),
152
- ('Disable compound enumerators for nested enumerated lists. '
153
- '(default)',
154
- ['--no-compound-enumerators'],
155
- {'action': 'store_false', 'dest': 'compound_enumerators'}),
156
- ('Enable section ("." subsection ...) prefixes for compound '
157
- 'enumerators. This has no effect without --compound-enumerators.',
158
- ['--section-prefix-for-enumerators'],
159
- {'default': None, 'action': 'store_true',
160
- 'validator': frontend.validate_boolean}),
161
- ('Disable section prefixes for compound enumerators. (default)',
162
- ['--no-section-prefix-for-enumerators'],
163
- {'action': 'store_false', 'dest': 'section_prefix_for_enumerators'}),
164
- ('Set the separator between section number and enumerator '
165
- 'for compound enumerated lists. Default: "-".',
166
- ['--section-enumerator-separator'],
167
- {'default': '-', 'metavar': '<char>'}),
168
- ('When possible, use the specified environment for literal-blocks. '
169
- 'Default: "" (fall back to "alltt").',
170
- ['--literal-block-env'],
171
- {'default': ''}),
172
- ('Deprecated alias for "--literal-block-env=verbatim".',
173
- ['--use-verbatim-when-possible'],
174
- {'action': 'store_true',
175
- 'validator': frontend.validate_boolean}),
176
- ('Table style. "standard" with horizontal and vertical lines, '
177
- '"booktabs" (LaTeX booktabs style) only horizontal lines '
178
- 'above and below the table and below the header, or "borderless". '
179
- 'Default: "standard"',
180
- ['--table-style'],
181
- {'default': ['standard'],
182
- 'metavar': '<format>',
183
- 'action': 'append',
184
- 'validator': frontend.validate_comma_separated_list,
185
- 'choices': table_style_values}),
186
- ('LaTeX graphicx package option. '
187
- 'Possible values are "dvipdfmx", "dvips", "dvisvgm", '
188
- '"luatex", "pdftex", and "xetex".'
189
- 'Default: "".',
190
- ['--graphicx-option'],
191
- {'default': ''}),
192
- ('LaTeX font encoding. '
193
- 'Possible values are "", "T1" (default), "OT1", "LGR,T1" or '
194
- 'any other combination of options to the `fontenc` package. ',
195
- ['--font-encoding'],
196
- {'default': 'T1'}),
197
- ('Per default the latex-writer puts the reference title into '
198
- 'hyperreferences. Specify "ref*" or "pageref*" to get the section '
199
- 'number or the page number.',
200
- ['--reference-label'],
201
- {'default': ''}),
202
- ('Specify style and database for bibtex, for example '
203
- '"--use-bibtex=mystyle,mydb1,mydb2".',
204
- ['--use-bibtex'],
205
- {'default': ''}),
206
- ('Use legacy functions with class value list for '
207
- '\\DUtitle and \\DUadmonition.',
208
- ['--legacy-class-functions'],
209
- {'default': False,
210
- 'action': 'store_true',
211
- 'validator': frontend.validate_boolean}),
212
- ('Use \\DUrole and "DUclass" wrappers for class values. '
213
- 'Place admonition content in an environment. (default)',
214
- ['--new-class-functions'],
215
- {'dest': 'legacy_class_functions',
216
- 'action': 'store_false',
217
- 'validator': frontend.validate_boolean}),
218
- ('Use legacy algorithm to determine table column widths. '
219
- '(provisional default)',
220
- ['--legacy-column-widths'],
221
- {'default': None,
222
- 'action': 'store_true',
223
- 'validator': frontend.validate_boolean}),
224
- ('Use new algorithm to determine table column widths. '
225
- '(future default)',
226
- ['--new-column-widths'],
227
- {'dest': 'legacy_column_widths',
228
- 'action': 'store_false',
229
- 'validator': frontend.validate_boolean}),
230
- # TODO: implement "latex footnotes" alternative
231
- ('Footnotes with numbers/symbols by Docutils. (default) '
232
- '(The alternative, --latex-footnotes, is not implemented yet.)',
233
- ['--docutils-footnotes'],
234
- {'default': True,
235
- 'action': 'store_true',
236
- 'validator': frontend.validate_boolean}),
237
- ),
238
- )
239
-
240
- settings_defaults = {'sectnum_depth': 0} # updated by SectNum transform
241
- config_section = 'latex2e writer'
242
- config_section_dependencies = ('writers', 'latex writers')
243
-
244
- head_parts = ('head_prefix', 'requirements', 'latex_preamble',
245
- 'stylesheet', 'fallbacks', 'pdfsetup', 'titledata')
246
- visitor_attributes = head_parts + ('title', 'subtitle',
247
- 'body_pre_docinfo', 'docinfo',
248
- 'dedication', 'abstract', 'body')
249
-
250
- output = None
251
- """Final translated form of `document`."""
252
-
253
- def __init__(self):
254
- writers.Writer.__init__(self)
255
- self.translator_class = LaTeXTranslator
256
-
257
- # Override parent method to add latex-specific transforms
258
- def get_transforms(self):
259
- return writers.Writer.get_transforms(self) + [
260
- # Convert specific admonitions to generic one
261
- writer_aux.Admonitions,
262
- # TODO: footnote collection transform
263
- ]
264
-
265
- def translate(self):
266
- visitor = self.translator_class(self.document)
267
- self.document.walkabout(visitor)
268
- # copy parts
269
- for part in self.visitor_attributes:
270
- setattr(self, part, getattr(visitor, part))
271
- # get template string from file
272
- templatepath = self.document.settings.template
273
- try:
274
- with open(templatepath, encoding='utf-8') as fp:
275
- template = fp.read()
276
- except IOError:
277
- templatepath = os.path.join(self.default_template_path,
278
- templatepath)
279
- with open(templatepath, encoding='utf-8') as fp:
280
- template = fp.read()
281
- # fill template
282
- self.assemble_parts() # create dictionary of parts
283
- self.output = string.Template(template).substitute(self.parts)
284
-
285
- def assemble_parts(self):
286
- """Assemble the `self.parts` dictionary of output fragments."""
287
- writers.Writer.assemble_parts(self)
288
- for part in self.visitor_attributes:
289
- lines = getattr(self, part)
290
- if part in self.head_parts:
291
- if lines:
292
- lines.append('') # to get a trailing newline
293
- self.parts[part] = '\n'.join(lines)
294
- else:
295
- # body contains inline elements, so join without newline
296
- self.parts[part] = ''.join(lines)
297
-
298
-
299
- class Babel:
300
- """Language specifics for LaTeX."""
301
-
302
- # TeX (babel) language names:
303
- # ! not all of these are supported by Docutils!
304
- #
305
- # based on LyX' languages file with adaptions to `BCP 47`_
306
- # (https://www.rfc-editor.org/rfc/bcp/bcp47.txt) and
307
- # http://www.tug.org/TUGboat/Articles/tb29-3/tb93miklavec.pdf
308
- # * the key without subtags is the default
309
- # * case is ignored
310
- # cf. https://docutils.sourceforge.io/docs/howto/i18n.html
311
- # https://www.w3.org/International/articles/language-tags/
312
- # and http://www.iana.org/assignments/language-subtag-registry
313
- language_codes = {
314
- # code TeX/Babel-name comment
315
- 'af': 'afrikaans',
316
- 'ar': 'arabic',
317
- # 'be': 'belarusian',
318
- 'bg': 'bulgarian',
319
- 'br': 'breton',
320
- 'ca': 'catalan',
321
- # 'cop': 'coptic',
322
- 'cs': 'czech',
323
- 'cy': 'welsh',
324
- 'da': 'danish',
325
- 'de': 'ngerman', # new spelling (de_1996)
326
- 'de-1901': 'german', # old spelling
327
- 'de-AT': 'naustrian',
328
- 'de-AT-1901': 'austrian',
329
- 'dsb': 'lowersorbian',
330
- 'el': 'greek', # monotonic (el-monoton)
331
- 'el-polyton': 'polutonikogreek',
332
- 'en': 'english', # TeX' default language
333
- 'en-AU': 'australian',
334
- 'en-CA': 'canadian',
335
- 'en-GB': 'british',
336
- 'en-NZ': 'newzealand',
337
- 'en-US': 'american',
338
- 'eo': 'esperanto',
339
- 'es': 'spanish',
340
- 'et': 'estonian',
341
- 'eu': 'basque',
342
- # 'fa': 'farsi',
343
- 'fi': 'finnish',
344
- 'fr': 'french',
345
- 'fr-CA': 'canadien',
346
- 'ga': 'irish', # Irish Gaelic
347
- # 'grc': # Ancient Greek
348
- 'grc-ibycus': 'ibycus', # Ibycus encoding
349
- 'gl': 'galician',
350
- 'he': 'hebrew',
351
- 'hr': 'croatian',
352
- 'hsb': 'uppersorbian',
353
- 'hu': 'magyar',
354
- 'ia': 'interlingua',
355
- 'id': 'bahasai', # Bahasa (Indonesian)
356
- 'is': 'icelandic',
357
- 'it': 'italian',
358
- 'ja': 'japanese',
359
- 'kk': 'kazakh',
360
- 'la': 'latin',
361
- 'lt': 'lithuanian',
362
- 'lv': 'latvian',
363
- 'mn': 'mongolian', # Mongolian, Cyrillic (mn-cyrl)
364
- 'ms': 'bahasam', # Bahasa (Malay)
365
- 'nb': 'norsk', # Norwegian Bokmal
366
- 'nl': 'dutch',
367
- 'nn': 'nynorsk', # Norwegian Nynorsk
368
- 'no': 'norsk', # Norwegian (Bokmal)
369
- 'pl': 'polish',
370
- 'pt': 'portuges',
371
- 'pt-BR': 'brazil',
372
- 'ro': 'romanian',
373
- 'ru': 'russian',
374
- 'se': 'samin', # North Sami
375
- 'sh-Cyrl': 'serbianc', # Serbo-Croatian, Cyrillic
376
- 'sh-Latn': 'serbian', # Serbo-Croatian, Latin (cf. 'hr')
377
- 'sk': 'slovak',
378
- 'sl': 'slovene',
379
- 'sq': 'albanian',
380
- 'sr': 'serbianc', # Serbian, Cyrillic (contributed)
381
- 'sr-Latn': 'serbian', # Serbian, Latin script
382
- 'sv': 'swedish',
383
- # 'th': 'thai',
384
- 'tr': 'turkish',
385
- 'uk': 'ukrainian',
386
- 'vi': 'vietnam',
387
- # zh-Latn: Chinese Pinyin
388
- }
389
- # normalize (downcase) keys
390
- language_codes = {k.lower(): v for k, v in language_codes.items()}
391
-
392
- warn_msg = 'Language "%s" not supported by LaTeX (babel)'
393
-
394
- # "Active characters" are shortcuts that start a LaTeX macro and may need
395
- # escaping for literals use. Characters that prevent literal use (e.g.
396
- # starting accent macros like "a -> ä) will be deactivated if one of the
397
- # defining languages is used in the document.
398
- # Special cases:
399
- # ~ (tilde) -- used in estonian, basque, galician, and old versions of
400
- # spanish -- cannot be deactivated as it denotes a no-break space macro,
401
- # " (straight quote) -- used in albanian, austrian, basque
402
- # brazil, bulgarian, catalan, czech, danish, dutch, estonian,
403
- # finnish, galician, german, icelandic, italian, latin, naustrian,
404
- # ngerman, norsk, nynorsk, polish, portuges, russian, serbian, slovak,
405
- # slovene, spanish, swedish, ukrainian, and uppersorbian --
406
- # is escaped as ``\textquotedbl``.
407
- active_chars = {
408
- # TeX/Babel-name: active characters to deactivate
409
- # 'breton': ':;!?' # ensure whitespace
410
- # 'esperanto': '^',
411
- # 'estonian': '~"`',
412
- # 'french': ':;!?' # ensure whitespace
413
- 'galician': '.<>', # also '~"'
414
- # 'magyar': '`', # for special hyphenation cases
415
- 'spanish': '.<>', # old versions also '~'
416
- # 'turkish': ':!=' # ensure whitespace
417
- }
418
-
419
- def __init__(self, language_code, reporter=None):
420
- self.reporter = reporter
421
- self.language = self.language_name(language_code)
422
- self.otherlanguages = {}
423
-
424
- def __call__(self):
425
- """Return the babel call with correct options and settings"""
426
- languages = sorted(self.otherlanguages.keys())
427
- languages.append(self.language or 'english')
428
- self.setup = [r'\usepackage[%s]{babel}' % ','.join(languages)]
429
- # Deactivate "active characters"
430
- shorthands = []
431
- for c in ''.join(self.active_chars.get(lng, '') for lng in languages):
432
- if c not in shorthands:
433
- shorthands.append(c)
434
- if shorthands:
435
- self.setup.append(r'\AtBeginDocument{\shorthandoff{%s}}'
436
- % ''.join(shorthands))
437
- # Including '~' in shorthandoff prevents its use as no-break space
438
- if 'galician' in languages:
439
- self.setup.append(r'\deactivatetilden % restore ~ in Galician')
440
- if 'estonian' in languages:
441
- self.setup.extend([r'\makeatletter',
442
- r' \addto\extrasestonian{\bbl@deactivate{~}}',
443
- r'\makeatother'])
444
- if 'basque' in languages:
445
- self.setup.extend([r'\makeatletter',
446
- r' \addto\extrasbasque{\bbl@deactivate{~}}',
447
- r'\makeatother'])
448
- if (languages[-1] == 'english'
449
- and 'french' in self.otherlanguages.keys()):
450
- self.setup += ['% Prevent side-effects if French hyphenation '
451
- 'patterns are not loaded:',
452
- r'\frenchbsetup{StandardLayout}',
453
- r'\AtBeginDocument{\selectlanguage{%s}'
454
- r'\noextrasfrench}' % self.language]
455
- return '\n'.join(self.setup)
456
-
457
- def language_name(self, language_code):
458
- """Return TeX language name for `language_code`"""
459
- for tag in utils.normalize_language_tag(language_code):
460
- try:
461
- return self.language_codes[tag]
462
- except KeyError:
463
- pass
464
- if self.reporter is not None:
465
- self.reporter.warning(self.warn_msg % language_code)
466
- return ''
467
-
468
- def get_language(self):
469
- # Obsolete, kept for backwards compatibility with Sphinx
470
- return self.language
471
-
472
-
473
- # Building blocks for the latex preamble
474
- # --------------------------------------
475
-
476
- class SortableDict(dict):
477
- """Dictionary with additional sorting methods
478
-
479
- Tip: use key starting with with '_' for sorting before small letters
480
- and with '~' for sorting after small letters.
481
- """
482
- def sortedkeys(self):
483
- """Return sorted list of keys"""
484
- return sorted(self.keys())
485
-
486
- def sortedvalues(self):
487
- """Return list of values sorted by keys"""
488
- return [self[key] for key in self.sortedkeys()]
489
-
490
-
491
- # PreambleCmds
492
- # `````````````
493
- # A container for LaTeX code snippets that can be
494
- # inserted into the preamble if required in the document.
495
- #
496
- # .. The package 'makecmds' would enable shorter definitions using the
497
- # \providelength and \provideenvironment commands.
498
- # However, it is pretty non-standard (texlive-latex-extra).
499
-
500
- class PreambleCmds:
501
- """Building blocks for the latex preamble."""
502
-
503
-
504
- # Requirements and Setup
505
-
506
- PreambleCmds.color = r"""\usepackage{color}"""
507
-
508
- PreambleCmds.float = r"""\usepackage{float} % extended float configuration
509
- \floatplacement{figure}{H} % place figures here definitely"""
510
-
511
- PreambleCmds.linking = r"""%% hyperlinks:
512
- \ifthenelse{\isundefined{\hypersetup}}{
513
- \usepackage[%s]{hyperref}
514
- \usepackage{bookmark}
515
- \urlstyle{same} %% normal text font (alternatives: tt, rm, sf)
516
- }{}"""
517
-
518
- PreambleCmds.minitoc = r"""%% local table of contents
519
- \usepackage{minitoc}"""
520
-
521
- PreambleCmds.table = r"""\usepackage{longtable,ltcaption,array}
522
- \setlength{\extrarowheight}{2pt}
523
- \newlength{\DUtablewidth} % internal use in tables"""
524
-
525
- PreambleCmds.table_columnwidth = (
526
- r'\newcommand{\DUcolumnwidth}[1]'
527
- r'{\dimexpr#1\DUtablewidth-2\tabcolsep\relax}')
528
-
529
- PreambleCmds.textcomp = r"""\usepackage{textcomp} % text symbol macros"""
530
- # TODO? Options [force,almostfull] prevent spurious error messages,
531
- # see de.comp.text.tex/2005-12/msg01855
532
-
533
- # backwards compatibility definitions
534
-
535
- PreambleCmds.abstract_legacy = r"""
536
- % abstract title
537
- \providecommand*{\DUtitleabstract}[1]{\centerline{\textbf{#1}}}"""
538
-
539
- # see https://sourceforge.net/p/docutils/bugs/339/
540
- PreambleCmds.admonition_legacy = r"""
541
- % admonition (specially marked topic)
542
- \providecommand{\DUadmonition}[2][class-arg]{%
543
- % try \DUadmonition#1{#2}:
544
- \ifcsname DUadmonition#1\endcsname%
545
- \csname DUadmonition#1\endcsname{#2}%
546
- \else
547
- \begin{center}
548
- \fbox{\parbox{0.9\linewidth}{#2}}
549
- \end{center}
550
- \fi
551
- }"""
552
-
553
- PreambleCmds.error_legacy = r"""
554
- % error admonition title
555
- \providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}"""
556
-
557
- PreambleCmds.title_legacy = r"""
558
- % title for topics, admonitions, unsupported section levels, and sidebar
559
- \providecommand*{\DUtitle}[2][class-arg]{%
560
- % call \DUtitle#1{#2} if it exists:
561
- \ifcsname DUtitle#1\endcsname%
562
- \csname DUtitle#1\endcsname{#2}%
563
- \else
564
- \smallskip\noindent\textbf{#2}\smallskip%
565
- \fi
566
- }"""
567
-
568
- PreambleCmds.toc_list = r"""
569
- \providecommand*{\DUCLASScontents}{%
570
- \renewenvironment{itemize}%
571
- {\begin{list}{}{\setlength{\partopsep}{0pt}
572
- \setlength{\parsep}{0pt}}
573
- }%
574
- {\end{list}}%
575
- }"""
576
-
577
- PreambleCmds.ttem = r"""
578
- % character width in monospaced font
579
- \newlength{\ttemwidth}
580
- \settowidth{\ttemwidth}{\ttfamily M}"""
581
-
582
- ## PreambleCmds.caption = r"""% configure caption layout
583
- ## \usepackage{caption}
584
- ## \captionsetup{singlelinecheck=false}% no exceptions for one-liners"""
585
-
586
-
587
- # Definitions from docutils.sty::
588
-
589
- def _read_block(fp):
590
- block = [next(fp)] # first line (empty)
591
- for line in fp:
592
- if not line.strip():
593
- break
594
- block.append(line)
595
- return ''.join(block).rstrip()
596
-
597
-
598
- _docutils_sty = os.path.join(os.path.dirname(os.path.abspath(__file__)),
599
- 'docutils.sty')
600
- with open(_docutils_sty, encoding='utf-8') as fp:
601
- for line in fp:
602
- line = line.strip('% \n')
603
- if not line.endswith('::'):
604
- continue
605
- block_name = line.rstrip(':')
606
- if not block_name:
607
- continue
608
- definitions = _read_block(fp)
609
- if block_name in ('color', 'float', 'table', 'textcomp'):
610
- definitions = definitions.strip()
611
- # print('Block: `%s`'% block_name)
612
- # print(definitions)
613
- setattr(PreambleCmds, block_name, definitions)
614
-
615
-
616
- # LaTeX encoding maps
617
- # -------------------
618
- # ::
619
-
620
- class CharMaps:
621
- """LaTeX representations for active and Unicode characters."""
622
-
623
- # characters that need escaping even in `alltt` environments:
624
- alltt = {
625
- ord('\\'): '\\textbackslash{}',
626
- ord('{'): '\\{',
627
- ord('}'): '\\}',
628
- }
629
- # characters that normally need escaping:
630
- special = {
631
- ord('#'): '\\#',
632
- ord('$'): '\\$',
633
- ord('%'): '\\%',
634
- ord('&'): '\\&',
635
- ord('~'): '\\textasciitilde{}',
636
- ord('_'): '\\_',
637
- ord('^'): '\\textasciicircum{}',
638
- # straight double quotes are 'active' in many languages
639
- ord('"'): '\\textquotedbl{}',
640
- # Square brackets are ordinary chars and cannot be escaped with '\',
641
- # so we put them in a group '{[}'. (Alternative: ensure that all
642
- # macros with optional arguments are terminated with {} and text
643
- # inside any optional argument is put in a group ``[{text}]``).
644
- # Commands with optional args inside an optional arg must be put in a
645
- # group, e.g. ``\item[{\hyperref[label]{text}}]``.
646
- ord('['): '{[}',
647
- ord(']'): '{]}',
648
- # the soft hyphen is unknown in 8-bit text
649
- # and not properly handled by XeTeX
650
- 0x00AD: '\\-', # SOFT HYPHEN
651
- }
652
- # Unicode chars that are not recognized by LaTeX's utf8 encoding
653
- unsupported_unicode = {
654
- # TODO: ensure white space also at the beginning of a line?
655
- # 0x00A0: '\\leavevmode\\nobreak\\vadjust{}~'
656
- 0x2000: '\\enskip', # EN QUAD
657
- 0x2001: '\\quad', # EM QUAD
658
- 0x2002: '\\enskip', # EN SPACE
659
- 0x2003: '\\quad', # EM SPACE
660
- 0x2008: '\\,', # PUNCTUATION SPACE   
661
- 0x200b: '\\hspace{0pt}', # ZERO WIDTH SPACE
662
- 0x202F: '\\,', # NARROW NO-BREAK SPACE
663
- # 0x02d8: '\\\u{ }', # BREVE
664
- 0x2011: '\\hbox{-}', # NON-BREAKING HYPHEN
665
- 0x212b: '\\AA', # ANGSTROM SIGN
666
- 0x21d4: '\\ensuremath{\\Leftrightarrow}', # LEFT RIGHT DOUBLE ARROW
667
- 0x2260: '\\ensuremath{\\neq}', # NOT EQUAL TO
668
- 0x2261: '\\ensuremath{\\equiv}', # IDENTICAL TO
669
- 0x2264: '\\ensuremath{\\le}', # LESS-THAN OR EQUAL TO
670
- 0x2265: '\\ensuremath{\\ge}', # GREATER-THAN OR EQUAL TO
671
- # Docutils footnote symbols:
672
- 0x2660: '\\ensuremath{\\spadesuit}',
673
- 0x2663: '\\ensuremath{\\clubsuit}',
674
- 0xfb00: 'ff', # LATIN SMALL LIGATURE FF
675
- 0xfb01: 'fi', # LATIN SMALL LIGATURE FI
676
- 0xfb02: 'fl', # LATIN SMALL LIGATURE FL
677
- 0xfb03: 'ffi', # LATIN SMALL LIGATURE FFI
678
- 0xfb04: 'ffl', # LATIN SMALL LIGATURE FFL
679
- }
680
- # Unicode chars that are recognized by LaTeX's utf8 encoding
681
- utf8_supported_unicode = {
682
- 0x00A0: '~', # NO-BREAK SPACE
683
- 0x00AB: '\\guillemotleft{}', # LEFT-POINTING DOUBLE ANGLE QUOTATION
684
- 0x00bb: '\\guillemotright{}', # RIGHT-POINTING DOUBLE ANGLE QUOTATION
685
- 0x200C: '\\textcompwordmark{}', # ZERO WIDTH NON-JOINER
686
- 0x2013: '\\textendash{}',
687
- 0x2014: '\\textemdash{}',
688
- 0x2018: '\\textquoteleft{}',
689
- 0x2019: '\\textquoteright{}',
690
- 0x201A: '\\quotesinglbase{}', # SINGLE LOW-9 QUOTATION MARK
691
- 0x201C: '\\textquotedblleft{}',
692
- 0x201D: '\\textquotedblright{}',
693
- 0x201E: '\\quotedblbase{}', # DOUBLE LOW-9 QUOTATION MARK
694
- 0x2030: '\\textperthousand{}', # PER MILLE SIGN
695
- 0x2031: '\\textpertenthousand{}', # PER TEN THOUSAND SIGN
696
- 0x2039: '\\guilsinglleft{}',
697
- 0x203A: '\\guilsinglright{}',
698
- 0x2423: '\\textvisiblespace{}', # OPEN BOX
699
- 0x2020: '\\dag{}',
700
- 0x2021: '\\ddag{}',
701
- 0x2026: '\\dots{}',
702
- 0x2122: '\\texttrademark{}',
703
- }
704
- # recognized with 'utf8', if textcomp is loaded
705
- textcomp = {
706
- # Latin-1 Supplement
707
- 0x00a2: '\\textcent{}', # ¢ CENT SIGN
708
- 0x00a4: '\\textcurrency{}', # ¤ CURRENCY SYMBOL
709
- 0x00a5: '\\textyen{}', # ¥ YEN SIGN
710
- 0x00a6: '\\textbrokenbar{}', # ¦ BROKEN BAR
711
- 0x00a7: '\\textsection{}', # § SECTION SIGN
712
- 0x00a8: '\\textasciidieresis{}', # ¨ DIAERESIS
713
- 0x00a9: '\\textcopyright{}', # © COPYRIGHT SIGN
714
- 0x00aa: '\\textordfeminine{}', # ª FEMININE ORDINAL INDICATOR
715
- 0x00ac: '\\textlnot{}', # ¬ NOT SIGN
716
- 0x00ae: '\\textregistered{}', # ® REGISTERED SIGN
717
- 0x00af: '\\textasciimacron{}', # ¯ MACRON
718
- 0x00b0: '\\textdegree{}', # ° DEGREE SIGN
719
- 0x00b1: '\\textpm{}', # ± PLUS-MINUS SIGN
720
- 0x00b2: '\\texttwosuperior{}', # ² SUPERSCRIPT TWO
721
- 0x00b3: '\\textthreesuperior{}', # ³ SUPERSCRIPT THREE
722
- 0x00b4: '\\textasciiacute{}', # ´ ACUTE ACCENT
723
- 0x00b5: '\\textmu{}', # µ MICRO SIGN
724
- 0x00b6: '\\textparagraph{}', # ¶ PILCROW SIGN # != \textpilcrow
725
- 0x00b9: '\\textonesuperior{}', # ¹ SUPERSCRIPT ONE
726
- 0x00ba: '\\textordmasculine{}', # º MASCULINE ORDINAL INDICATOR
727
- 0x00bc: '\\textonequarter{}', # 1/4 FRACTION
728
- 0x00bd: '\\textonehalf{}', # 1/2 FRACTION
729
- 0x00be: '\\textthreequarters{}', # 3/4 FRACTION
730
- 0x00d7: '\\texttimes{}', # × MULTIPLICATION SIGN
731
- 0x00f7: '\\textdiv{}', # ÷ DIVISION SIGN
732
- # others
733
- 0x0192: '\\textflorin{}', # LATIN SMALL LETTER F WITH HOOK
734
- 0x02b9: '\\textasciiacute{}', # MODIFIER LETTER PRIME
735
- 0x02ba: '\\textacutedbl{}', # MODIFIER LETTER DOUBLE PRIME
736
- 0x2016: '\\textbardbl{}', # DOUBLE VERTICAL LINE
737
- 0x2022: '\\textbullet{}', # BULLET
738
- 0x2032: '\\textasciiacute{}', # PRIME
739
- 0x2033: '\\textacutedbl{}', # DOUBLE PRIME
740
- 0x2035: '\\textasciigrave{}', # REVERSED PRIME
741
- 0x2036: '\\textgravedbl{}', # REVERSED DOUBLE PRIME
742
- 0x203b: '\\textreferencemark{}', # REFERENCE MARK
743
- 0x203d: '\\textinterrobang{}', # INTERROBANG
744
- 0x2044: '\\textfractionsolidus{}', # FRACTION SLASH
745
- 0x2045: '\\textlquill{}', # LEFT SQUARE BRACKET WITH QUILL
746
- 0x2046: '\\textrquill{}', # RIGHT SQUARE BRACKET WITH QUILL
747
- 0x2052: '\\textdiscount{}', # COMMERCIAL MINUS SIGN
748
- 0x20a1: '\\textcolonmonetary{}', # COLON SIGN
749
- 0x20a3: '\\textfrenchfranc{}', # FRENCH FRANC SIGN
750
- 0x20a4: '\\textlira{}', # LIRA SIGN
751
- 0x20a6: '\\textnaira{}', # NAIRA SIGN
752
- 0x20a9: '\\textwon{}', # WON SIGN
753
- 0x20ab: '\\textdong{}', # DONG SIGN
754
- 0x20ac: '\\texteuro{}', # EURO SIGN
755
- 0x20b1: '\\textpeso{}', # PESO SIGN
756
- 0x20b2: '\\textguarani{}', # GUARANI SIGN
757
- 0x2103: '\\textcelsius{}', # DEGREE CELSIUS
758
- 0x2116: '\\textnumero{}', # NUMERO SIGN
759
- 0x2117: '\\textcircledP{}', # SOUND RECORDING COPYRIGHT
760
- 0x211e: '\\textrecipe{}', # PRESCRIPTION TAKE
761
- 0x2120: '\\textservicemark{}', # SERVICE MARK
762
- 0x2122: '\\texttrademark{}', # TRADE MARK SIGN
763
- 0x2126: '\\textohm{}', # OHM SIGN
764
- 0x2127: '\\textmho{}', # INVERTED OHM SIGN
765
- 0x212e: '\\textestimated{}', # ESTIMATED SYMBOL
766
- 0x2190: '\\textleftarrow{}', # LEFTWARDS ARROW
767
- 0x2191: '\\textuparrow{}', # UPWARDS ARROW
768
- 0x2192: '\\textrightarrow{}', # RIGHTWARDS ARROW
769
- 0x2193: '\\textdownarrow{}', # DOWNWARDS ARROW
770
- 0x2212: '\\textminus{}', # MINUS SIGN
771
- 0x2217: '\\textasteriskcentered{}', # ASTERISK OPERATOR
772
- 0x221a: '\\textsurd{}', # SQUARE ROOT
773
- 0x2422: '\\textblank{}', # BLANK SYMBOL
774
- 0x25e6: '\\textopenbullet{}', # WHITE BULLET
775
- 0x25ef: '\\textbigcircle{}', # LARGE CIRCLE
776
- 0x266a: '\\textmusicalnote{}', # EIGHTH NOTE
777
- 0x26ad: '\\textmarried{}', # MARRIAGE SYMBOL
778
- 0x26ae: '\\textdivorced{}', # DIVORCE SYMBOL
779
- 0x27e8: '\\textlangle{}', # MATHEMATICAL LEFT ANGLE BRACKET
780
- 0x27e9: '\\textrangle{}', # MATHEMATICAL RIGHT ANGLE BRACKET
781
- }
782
- # Unicode chars that require a feature/package to render
783
- pifont = {
784
- 0x2665: '\\ding{170}', # black heartsuit
785
- 0x2666: '\\ding{169}', # black diamondsuit
786
- 0x2713: '\\ding{51}', # check mark
787
- 0x2717: '\\ding{55}', # check mark
788
- }
789
- # TODO: greek alphabet ... ?
790
- # see also LaTeX codec
791
- # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/252124
792
- # and unimap.py from TeXML
793
-
794
-
795
- class DocumentClass:
796
- """Details of a LaTeX document class."""
797
-
798
- def __init__(self, document_class, with_part=False):
799
- self.document_class = document_class
800
- self._with_part = with_part
801
- self.sections = ['section', 'subsection', 'subsubsection',
802
- 'paragraph', 'subparagraph']
803
- if self.document_class in ('book', 'memoir', 'report',
804
- 'scrbook', 'scrreprt'):
805
- self.sections.insert(0, 'chapter')
806
- if self._with_part:
807
- self.sections.insert(0, 'part')
808
-
809
- def section(self, level):
810
- """Return the LaTeX section name for section `level`.
811
-
812
- The name depends on the specific document class.
813
- Level is 1,2,3..., as level 0 is the title.
814
- """
815
- if level <= len(self.sections):
816
- return self.sections[level-1]
817
- # unsupported levels
818
- return 'DUtitle'
819
-
820
- def latex_section_depth(self, depth):
821
- """
822
- Return LaTeX equivalent of Docutils section level `depth`.
823
-
824
- Given the value of the ``:depth:`` option of the "contents" or
825
- "sectnum" directive, return the corresponding value for the
826
- LaTeX ``tocdepth`` or ``secnumdepth`` counters.
827
- """
828
- depth = min(depth, len(self.sections)) # limit to supported levels
829
- if 'chapter' in self.sections:
830
- depth -= 1
831
- if self.sections[0] == 'part':
832
- depth -= 1
833
- return depth
834
-
835
-
836
- class Table:
837
- """Manage a table while traversing.
838
-
839
- Table style might be
840
-
841
- :standard: horizontal and vertical lines
842
- :booktabs: only horizontal lines (requires "booktabs" LaTeX package)
843
- :borderless: no borders around table cells
844
- :nolines: alias for borderless
845
-
846
- :colwidths-auto: column widths determined by LaTeX
847
- """
848
- def __init__(self, translator, latex_type):
849
- self._translator = translator
850
- self._latex_type = latex_type
851
- self.legacy_column_widths = False
852
-
853
- self.close()
854
- self._colwidths = []
855
- self._rowspan = []
856
- self._in_thead = 0
857
-
858
- def open(self):
859
- self._open = True
860
- self._col_specs = []
861
- self.caption = []
862
- self._attrs = {}
863
- self._in_head = False # maybe context with search
864
-
865
- def close(self):
866
- self._open = False
867
- self._col_specs = None
868
- self.caption = []
869
- self._attrs = {}
870
- self.stubs = []
871
- self.colwidths_auto = False
872
-
873
- def is_open(self):
874
- return self._open
875
-
876
- def set_table_style(self, node, settings):
877
- self.legacy_column_widths = settings.legacy_column_widths
878
- if 'align' in node:
879
- self.set('align', node['align'])
880
- # TODO: elif 'align' in classes/settings.table-style:
881
- # self.set('align', ...)
882
- borders = [cls.replace('nolines', 'borderless')
883
- for cls in (['standard']
884
- + settings.table_style
885
- + node['classes'])
886
- if cls in ('standard', 'booktabs', 'borderless', 'nolines')]
887
- self.borders = borders[-1]
888
- self.colwidths_auto = (('colwidths-auto' in node['classes']
889
- or 'colwidths-auto' in settings.table_style)
890
- and 'colwidths-given' not in node['classes']
891
- and 'width' not in node)
892
-
893
- def get_latex_type(self):
894
- if self._latex_type == 'longtable' and not self.caption:
895
- # do not advance the "table" counter (requires "ltcaption" package)
896
- return 'longtable*'
897
- return self._latex_type
898
-
899
- def set(self, attr, value):
900
- self._attrs[attr] = value
901
-
902
- def get(self, attr):
903
- if attr in self._attrs:
904
- return self._attrs[attr]
905
- return None
906
-
907
- def get_vertical_bar(self):
908
- if self.borders == 'standard':
909
- return '|'
910
- return ''
911
-
912
- # horizontal lines are drawn below a row,
913
- def get_opening(self, width=r'\linewidth'):
914
- align_map = {'left': '[l]',
915
- 'center': '[c]',
916
- 'right': '[r]',
917
- None: ''}
918
- align = align_map.get(self.get('align'))
919
- latex_type = self.get_latex_type()
920
- if align and latex_type not in ("longtable", "longtable*"):
921
- opening = [r'\noindent\makebox[\linewidth]%s{%%' % (align,),
922
- r'\begin{%s}' % (latex_type,)]
923
- else:
924
- opening = [r'\begin{%s}%s' % (latex_type, align)]
925
- if not self.colwidths_auto:
926
- if self.borders == 'standard' and not self.legacy_column_widths:
927
- opening.insert(-1, r'\setlength{\DUtablewidth}'
928
- r'{\dimexpr%s-%i\arrayrulewidth\relax}%%'
929
- % (width, len(self._col_specs)+1))
930
- else:
931
- opening.insert(-1, r'\setlength{\DUtablewidth}{%s}%%' % width)
932
- return '\n'.join(opening)
933
-
934
- def get_closing(self):
935
- closing = []
936
- if self.borders == 'booktabs':
937
- closing.append(r'\bottomrule')
938
- # elif self.borders == 'standard':
939
- # closing.append(r'\hline')
940
- closing.append(r'\end{%s}' % self.get_latex_type())
941
- if (self.get('align')
942
- and self.get_latex_type() not in ("longtable", "longtable*")):
943
- closing.append('}')
944
- return '\n'.join(closing)
945
-
946
- def visit_colspec(self, node):
947
- self._col_specs.append(node)
948
- # "stubs" list is an attribute of the tgroup element:
949
- self.stubs.append(node.attributes.get('stub'))
950
-
951
- def get_colspecs(self, node):
952
- """Return column specification for longtable.
953
- """
954
- bar = self.get_vertical_bar()
955
- self._rowspan = [0] * len(self._col_specs)
956
- if self.colwidths_auto:
957
- self._colwidths = []
958
- latex_colspecs = ['l'] * len(self._col_specs)
959
- elif self.legacy_column_widths:
960
- # use old algorithm for backwards compatibility
961
- width = 80 # assumed standard line length
962
- factor = 0.93 # do not make it full linewidth
963
- # first see if we get too wide.
964
- total_width = sum(node['colwidth']+1 for node in self._col_specs)
965
- if total_width > width:
966
- factor *= width / total_width
967
- self._colwidths = [(factor * (node['colwidth']+1)/width)
968
- + 0.005 for node in self._col_specs]
969
- latex_colspecs = ['p{%.3f\\DUtablewidth}' % colwidth
970
- for colwidth in self._colwidths]
971
- else:
972
- # No of characters corresponding to table width = 100%
973
- # Characters/line with LaTeX article, A4, Times, default margins
974
- # depends on character: M: 40, A: 50, x: 70, i: 120.
975
- norm_length = 40
976
- # Allowance to prevent unpadded columns like
977
- # === ==
978
- # ABC DE
979
- # === ==
980
- # getting too narrow:
981
- if 'colwidths-given' not in node.parent.parent['classes']:
982
- allowance = 1
983
- else:
984
- allowance = 0 # "widths" option specified, use exact ratio
985
- self._colwidths = [(node['colwidth']+allowance)/norm_length
986
- for node in self._col_specs]
987
- total_width = sum(self._colwidths)
988
- # Limit to 100%, force 100% if table width is specified:
989
- if total_width > 1 or 'width' in node.parent.parent.attributes:
990
- self._colwidths = [colwidth/total_width
991
- for colwidth in self._colwidths]
992
- latex_colspecs = ['p{\\DUcolumnwidth{%.3f}}' % colwidth
993
- for colwidth in self._colwidths]
994
- return bar + bar.join(latex_colspecs) + bar
995
-
996
- def get_column_width(self):
997
- """Return columnwidth for current cell (not multicell)."""
998
- try:
999
- if self.legacy_column_widths:
1000
- return '%.2f\\DUtablewidth'%self._colwidths[self._cell_in_row]
1001
- return '\\DUcolumnwidth{%.2f}'%self._colwidths[self._cell_in_row]
1002
- except IndexError:
1003
- return '*'
1004
-
1005
- def get_multicolumn_width(self, start, len_):
1006
- """Return sum of columnwidths for multicell."""
1007
- try:
1008
- multicol_width = sum(self._colwidths[start + co]
1009
- for co in range(len_))
1010
- if self.legacy_column_widths:
1011
- return 'p{%.2f\\DUtablewidth}' % multicol_width
1012
- return 'p{\\DUcolumnwidth{%.3f}}' % multicol_width
1013
- except IndexError:
1014
- return 'l'
1015
-
1016
- def get_caption(self):
1017
- if not self.caption:
1018
- return ''
1019
- caption = ''.join(self.caption)
1020
- if 1 == self._translator.thead_depth():
1021
- return r'\caption{%s}\\' '\n' % caption
1022
- return r'\caption[]{%s (... continued)}\\' '\n' % caption
1023
-
1024
- def need_recurse(self):
1025
- if self._latex_type == 'longtable':
1026
- return 1 == self._translator.thead_depth()
1027
- return 0
1028
-
1029
- def visit_thead(self):
1030
- self._in_thead += 1
1031
- if self.borders == 'standard':
1032
- return ['\\hline\n']
1033
- elif self.borders == 'booktabs':
1034
- return ['\\toprule\n']
1035
- return []
1036
-
1037
- def depart_thead(self):
1038
- a = []
1039
- ## if self.borders == 'standard':
1040
- ## a.append('\\hline\n')
1041
- if self.borders == 'booktabs':
1042
- a.append('\\midrule\n')
1043
- if self._latex_type == 'longtable':
1044
- if 1 == self._translator.thead_depth():
1045
- a.append('\\endfirsthead\n')
1046
- else:
1047
- n_c = len(self._col_specs)
1048
- a.append('\\endhead\n')
1049
- # footer on all but last page (if it fits):
1050
- twidth = sum(node['colwidth']+2 for node in self._col_specs)
1051
- if twidth > 30 or (twidth > 12 and not self.colwidths_auto):
1052
- a.append(r'\multicolumn{%d}{%s}'
1053
- % (n_c, self.get_multicolumn_width(0, n_c))
1054
- + r'{\raggedleft\ldots continued on next page}\\'
1055
- + '\n')
1056
- a.append('\\endfoot\n\\endlastfoot\n')
1057
- # for longtable one could add firsthead, foot and lastfoot
1058
- self._in_thead -= 1
1059
- return a
1060
-
1061
- def visit_row(self):
1062
- self._cell_in_row = 0
1063
-
1064
- def depart_row(self):
1065
- res = [' \\\\\n']
1066
- self._cell_in_row = None # remove cell counter
1067
- for i in range(len(self._rowspan)):
1068
- if self._rowspan[i] > 0:
1069
- self._rowspan[i] -= 1
1070
-
1071
- if self.borders == 'standard':
1072
- rowspans = [i+1 for i in range(len(self._rowspan))
1073
- if self._rowspan[i] <= 0]
1074
- if len(rowspans) == len(self._rowspan):
1075
- res.append('\\hline\n')
1076
- else:
1077
- cline = ''
1078
- rowspans.reverse()
1079
- # TODO merge clines
1080
- while True:
1081
- try:
1082
- c_start = rowspans.pop()
1083
- except IndexError:
1084
- break
1085
- cline += '\\cline{%d-%d}\n' % (c_start, c_start)
1086
- res.append(cline)
1087
- return res
1088
-
1089
- def set_rowspan(self, cell, value):
1090
- try:
1091
- self._rowspan[cell] = value
1092
- except IndexError:
1093
- pass
1094
-
1095
- def get_rowspan(self, cell):
1096
- try:
1097
- return self._rowspan[cell]
1098
- except IndexError:
1099
- return 0
1100
-
1101
- def get_entry_number(self):
1102
- return self._cell_in_row
1103
-
1104
- def visit_entry(self):
1105
- self._cell_in_row += 1
1106
-
1107
- def is_stub_column(self):
1108
- if len(self.stubs) >= self._cell_in_row:
1109
- return self.stubs[self._cell_in_row]
1110
- return False
1111
-
1112
-
1113
- class LaTeXTranslator(nodes.NodeVisitor):
1114
- """
1115
- Generate code for 8-bit LaTeX from a Docutils document tree.
1116
-
1117
- See the docstring of docutils.writers._html_base.HTMLTranslator for
1118
- notes on and examples of safe subclassing.
1119
- """
1120
-
1121
- # When options are given to the documentclass, latex will pass them
1122
- # to other packages, as done with babel.
1123
- # Dummy settings might be taken from document settings
1124
-
1125
- # Generate code for typesetting with 8-bit latex/pdflatex vs.
1126
- # xelatex/lualatex engine. Overwritten by the XeTeX writer
1127
- is_xetex = False
1128
-
1129
- # Config setting defaults
1130
- # -----------------------
1131
-
1132
- # TODO: use mixins for different implementations.
1133
- # list environment for docinfo. else tabularx
1134
- ## use_optionlist_for_docinfo = False # TODO: NOT YET IN USE
1135
-
1136
- # Use compound enumerations (1.A.1.)
1137
- compound_enumerators = False
1138
-
1139
- # If using compound enumerations, include section information.
1140
- section_prefix_for_enumerators = False
1141
-
1142
- # This is the character that separates the section ("." subsection ...)
1143
- # prefix from the regular list enumerator.
1144
- section_enumerator_separator = '-'
1145
-
1146
- # Auxiliary variables
1147
- # -------------------
1148
-
1149
- has_latex_toc = False # is there a toc in the doc? (needed by minitoc)
1150
- section_level = 0
1151
-
1152
- # Flags to encode():
1153
- # inside citation reference labels underscores dont need to be escaped
1154
- inside_citation_reference_label = False
1155
- verbatim = False # do not encode
1156
- insert_non_breaking_blanks = False # replace blanks by "~"
1157
- insert_newline = False # add latex newline commands
1158
- literal = False # literal text (block or inline)
1159
- alltt = False # inside `alltt` environment
1160
-
1161
- def __init__(self, document, babel_class=Babel):
1162
- super().__init__(document)
1163
- # Reporter
1164
- # ~~~~~~~~
1165
- self.warn = self.document.reporter.warning
1166
- self.error = self.document.reporter.error
1167
-
1168
- # Settings
1169
- # ~~~~~~~~
1170
- self.settings = settings = document.settings
1171
- # warn of deprecated settings and changing defaults:
1172
- if settings.use_latex_citations is None:
1173
- settings.use_latex_citations = False
1174
- warnings.warn('The default for the setting "use_latex_citations" '
1175
- 'will change to "True" in Docutils 1.0.',
1176
- FutureWarning, stacklevel=7)
1177
- if settings.legacy_column_widths is None:
1178
- settings.legacy_column_widths = True
1179
- warnings.warn('The default for the setting "legacy_column_widths" '
1180
- 'will change to "False" in Docutils 1.0.)',
1181
- FutureWarning, stacklevel=7)
1182
- if settings.use_verbatim_when_possible is not None:
1183
- warnings.warn(
1184
- 'The configuration setting "use_verbatim_when_possible" '
1185
- 'will be removed in Docutils 2.0. '
1186
- 'Use "literal_block_env: verbatim".',
1187
- FutureWarning, stacklevel=7)
1188
-
1189
- self.latex_encoding = self.to_latex_encoding(settings.output_encoding)
1190
- self.use_latex_toc = settings.use_latex_toc
1191
- self.use_latex_docinfo = settings.use_latex_docinfo
1192
- self.use_latex_citations = settings.use_latex_citations
1193
- self._reference_label = settings.reference_label
1194
- self.hyperlink_color = settings.hyperlink_color
1195
- self.compound_enumerators = settings.compound_enumerators
1196
- self.font_encoding = getattr(settings, 'font_encoding', '')
1197
- self.section_prefix_for_enumerators = (
1198
- settings.section_prefix_for_enumerators)
1199
- self.section_enumerator_separator = (
1200
- settings.section_enumerator_separator.replace('_', r'\_'))
1201
- # literal blocks:
1202
- self.literal_block_env = ''
1203
- self.literal_block_options = ''
1204
- if settings.literal_block_env:
1205
- (none,
1206
- self.literal_block_env,
1207
- self.literal_block_options,
1208
- none) = re.split(r'(\w+)(.*)', settings.literal_block_env)
1209
- elif settings.use_verbatim_when_possible:
1210
- self.literal_block_env = 'verbatim'
1211
-
1212
- if self.settings.use_bibtex:
1213
- self.bibtex = self.settings.use_bibtex.split(',', 1)
1214
- # TODO avoid errors on not declared citations.
1215
- else:
1216
- self.bibtex = None
1217
- # language module for Docutils-generated text
1218
- # (labels, bibliographic_fields, and author_separators)
1219
- self.language_module = languages.get_language(settings.language_code,
1220
- document.reporter)
1221
- self.babel = babel_class(settings.language_code, document.reporter)
1222
- self.author_separator = self.language_module.author_separators[0]
1223
- d_options = [self.settings.documentoptions]
1224
- if self.babel.language not in ('english', ''):
1225
- d_options.append(self.babel.language)
1226
- self.documentoptions = ','.join(filter(None, d_options))
1227
- self.d_class = DocumentClass(settings.documentclass,
1228
- settings.use_part_section)
1229
- # graphic package options:
1230
- if self.settings.graphicx_option == '':
1231
- self.graphicx_package = r'\usepackage{graphicx}'
1232
- else:
1233
- self.graphicx_package = (r'\usepackage[%s]{graphicx}' %
1234
- self.settings.graphicx_option)
1235
- # footnotes: TODO: implement LaTeX footnotes
1236
- self.docutils_footnotes = settings.docutils_footnotes
1237
-
1238
- # Output collection stacks
1239
- # ~~~~~~~~~~~~~~~~~~~~~~~~
1240
-
1241
- # Document parts
1242
- self.head_prefix = [r'\documentclass[%s]{%s}' %
1243
- (self.documentoptions,
1244
- self.settings.documentclass)]
1245
- self.requirements = SortableDict() # made a list in depart_document()
1246
- self.requirements['__static'] = r'\usepackage{ifthen}'
1247
- self.latex_preamble = [settings.latex_preamble]
1248
- self.fallbacks = SortableDict() # made a list in depart_document()
1249
- self.pdfsetup = [] # PDF properties (hyperref package)
1250
- self.title = []
1251
- self.subtitle = []
1252
- self.titledata = [] # \title, \author, \date
1253
- ## self.body_prefix = ['\\begin{document}\n']
1254
- self.body_pre_docinfo = [] # \maketitle
1255
- self.docinfo = []
1256
- self.dedication = []
1257
- self.abstract = []
1258
- self.body = []
1259
- ## self.body_suffix = ['\\end{document}\n']
1260
-
1261
- self.context = []
1262
- """Heterogeneous stack.
1263
-
1264
- Used by visit_* and depart_* functions in conjunction with the tree
1265
- traversal. Make sure that the pops correspond to the pushes."""
1266
-
1267
- # Title metadata:
1268
- self.title_labels = []
1269
- self.subtitle_labels = []
1270
- # (if use_latex_docinfo: collects lists of
1271
- # author/organization/contact/address lines)
1272
- self.author_stack = []
1273
- self.date = []
1274
-
1275
- # PDF properties: pdftitle, pdfauthor
1276
- self.pdfauthor = []
1277
- self.pdfinfo = []
1278
- if settings.language_code != 'en':
1279
- self.pdfinfo.append(' pdflang={%s},'%settings.language_code)
1280
-
1281
- # Stack of section counters so that we don't have to use_latex_toc.
1282
- # This will grow and shrink as processing occurs.
1283
- # Initialized for potential first-level sections.
1284
- self._section_number = [0]
1285
-
1286
- # The current stack of enumerations so that we can expand
1287
- # them into a compound enumeration.
1288
- self._enumeration_counters = []
1289
- # The maximum number of enumeration counters we've used.
1290
- # If we go beyond this number, we need to create a new
1291
- # counter; otherwise, just reuse an old one.
1292
- self._max_enumeration_counters = 0
1293
-
1294
- self._bibitems = []
1295
-
1296
- # object for a table while processing.
1297
- self.table_stack = []
1298
- self.active_table = Table(self, 'longtable')
1299
-
1300
- # Where to collect the output of visitor methods (default: body)
1301
- self.out = self.body
1302
- self.out_stack = [] # stack of output collectors
1303
-
1304
- # Process settings
1305
- # ~~~~~~~~~~~~~~~~
1306
- # Encodings:
1307
- # Docutils' output-encoding => TeX input encoding
1308
- if self.latex_encoding != 'ascii':
1309
- self.requirements['_inputenc'] = (r'\usepackage[%s]{inputenc}'
1310
- % self.latex_encoding)
1311
- # TeX font encoding
1312
- if not self.is_xetex:
1313
- if self.font_encoding:
1314
- self.requirements['_fontenc'] = (r'\usepackage[%s]{fontenc}' %
1315
- self.font_encoding)
1316
- # ensure \textquotedbl is defined:
1317
- for enc in self.font_encoding.split(','):
1318
- enc = enc.strip()
1319
- if enc == 'OT1':
1320
- self.requirements['_textquotedblOT1'] = (
1321
- r'\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}')
1322
- elif enc not in ('T1', 'T2A', 'T2B', 'T2C', 'T4', 'T5'):
1323
- self.requirements['_textquotedbl'] = (
1324
- r'\DeclareTextSymbolDefault{\textquotedbl}{T1}')
1325
- # page layout with typearea (if there are relevant document options)
1326
- if (settings.documentclass.find('scr') == -1
1327
- and (self.documentoptions.find('DIV') != -1
1328
- or self.documentoptions.find('BCOR') != -1)):
1329
- self.requirements['typearea'] = r'\usepackage{typearea}'
1330
-
1331
- # Stylesheets
1332
- # (the name `self.stylesheet` is singular because only one
1333
- # stylesheet was supported before Docutils 0.6).
1334
- stylesheet_list = utils.get_stylesheet_list(settings)
1335
- self.fallback_stylesheet = 'docutils' in stylesheet_list
1336
- if self.fallback_stylesheet:
1337
- stylesheet_list = [sheet for sheet in stylesheet_list
1338
- if sheet != 'docutils']
1339
- if self.settings.legacy_class_functions:
1340
- # docutils.sty is incompatible with legacy functions
1341
- self.fallback_stylesheet = False
1342
- else:
1343
- # require a minimal version:
1344
- self.fallbacks['docutils.sty'] = (
1345
- r'\usepackage{docutils}[2020/08/28]')
1346
-
1347
- self.stylesheet = [self.stylesheet_call(path)
1348
- for path in stylesheet_list]
1349
-
1350
- # PDF setup
1351
- if self.hyperlink_color in ('0', 'false', 'False', ''):
1352
- self.hyperref_options = ''
1353
- else:
1354
- self.hyperref_options = ('colorlinks=true,'
1355
- f'linkcolor={self.hyperlink_color},'
1356
- f'urlcolor={self.hyperlink_color}')
1357
- if settings.hyperref_options:
1358
- self.hyperref_options += ',' + settings.hyperref_options
1359
-
1360
- # LaTeX Toc
1361
- # include all supported sections in toc and PDF bookmarks
1362
- # (or use documentclass-default (as currently))?
1363
-
1364
- # Section numbering
1365
- if settings.sectnum_xform: # section numbering by Docutils
1366
- PreambleCmds.secnumdepth = r'\setcounter{secnumdepth}{0}'
1367
- else: # section numbering by LaTeX:
1368
- secnumdepth = settings.sectnum_depth
1369
- # Possible values of settings.sectnum_depth:
1370
- # None "sectnum" directive without depth arg -> LaTeX default
1371
- # 0 no "sectnum" directive -> no section numbers
1372
- # >0 value of "depth" argument -> translate to LaTeX levels:
1373
- # -1 part (0 with "article" document class)
1374
- # 0 chapter (missing in "article" document class)
1375
- # 1 section
1376
- # 2 subsection
1377
- # 3 subsubsection
1378
- # 4 paragraph
1379
- # 5 subparagraph
1380
- if secnumdepth is not None:
1381
- PreambleCmds.secnumdepth = (
1382
- r'\setcounter{secnumdepth}{%d}'
1383
- % self.d_class.latex_section_depth(secnumdepth))
1384
- # start with specified number:
1385
- if (hasattr(settings, 'sectnum_start')
1386
- and settings.sectnum_start != 1):
1387
- self.requirements['sectnum_start'] = (
1388
- r'\setcounter{%s}{%d}' % (self.d_class.sections[0],
1389
- settings.sectnum_start-1))
1390
- # TODO: currently ignored (configure in a stylesheet):
1391
- ## settings.sectnum_prefix
1392
- ## settings.sectnum_suffix
1393
-
1394
- # Auxiliary Methods
1395
- # -----------------
1396
-
1397
- def stylesheet_call(self, path):
1398
- """Return code to reference or embed stylesheet file `path`"""
1399
- # is it a package (no extension or *.sty) or "normal" tex code:
1400
- (base, ext) = os.path.splitext(path)
1401
- is_package = ext in ['.sty', '']
1402
- # Embed content of style file:
1403
- if self.settings.embed_stylesheet:
1404
- if is_package:
1405
- path = base + '.sty' # ensure extension
1406
- try:
1407
- content = docutils.io.FileInput(source_path=path,
1408
- encoding='utf-8').read()
1409
- except OSError as err:
1410
- msg = f'Cannot embed stylesheet:\n {err}'
1411
- self.document.reporter.error(msg)
1412
- return '% ' + msg.replace('\n', '\n% ')
1413
- else:
1414
- self.settings.record_dependencies.add(path)
1415
- if is_package:
1416
- content = '\n'.join([r'\makeatletter',
1417
- content,
1418
- r'\makeatother'])
1419
- return '%% embedded stylesheet: %s\n%s' % (path, content)
1420
- # Link to style file:
1421
- if is_package:
1422
- path = base # drop extension
1423
- cmd = r'\usepackage{%s}'
1424
- else:
1425
- cmd = r'\input{%s}'
1426
- if self.settings.stylesheet_path:
1427
- # adapt path relative to output (cf. config.html#stylesheet-path)
1428
- path = utils.relative_path(self.settings._destination, path)
1429
- return cmd % path
1430
-
1431
- def to_latex_encoding(self, docutils_encoding):
1432
- """Translate docutils encoding name into LaTeX's.
1433
-
1434
- Default method is remove "-" and "_" chars from docutils_encoding.
1435
- """
1436
- tr = {'iso-8859-1': 'latin1', # west european
1437
- 'iso-8859-2': 'latin2', # east european
1438
- 'iso-8859-3': 'latin3', # esperanto, maltese
1439
- 'iso-8859-4': 'latin4', # north european
1440
- 'iso-8859-5': 'iso88595', # cyrillic (ISO)
1441
- 'iso-8859-9': 'latin5', # turkish
1442
- 'iso-8859-15': 'latin9', # latin9, update to latin1.
1443
- 'mac_cyrillic': 'maccyr', # cyrillic (on Mac)
1444
- 'windows-1251': 'cp1251', # cyrillic (on Windows)
1445
- 'koi8-r': 'koi8-r', # cyrillic (Russian)
1446
- 'koi8-u': 'koi8-u', # cyrillic (Ukrainian)
1447
- 'windows-1250': 'cp1250', #
1448
- 'windows-1252': 'cp1252', #
1449
- 'us-ascii': 'ascii', # ASCII (US)
1450
- # unmatched encodings
1451
- # '': 'applemac',
1452
- # '': 'ansinew', # windows 3.1 ansi
1453
- # '': 'ascii', # ASCII encoding for the range 32--127.
1454
- # '': 'cp437', # dos latin us
1455
- # '': 'cp850', # dos latin 1
1456
- # '': 'cp852', # dos latin 2
1457
- # '': 'decmulti',
1458
- # '': 'latin10',
1459
- # 'iso-8859-6': '' # arabic
1460
- # 'iso-8859-7': '' # greek
1461
- # 'iso-8859-8': '' # hebrew
1462
- # 'iso-8859-10': '' # latin6, more complete iso-8859-4
1463
- }
1464
- encoding = docutils_encoding.lower()
1465
- if encoding in tr:
1466
- return tr[encoding]
1467
- # drop hyphen or low-line from "latin_1", "utf-8" and similar
1468
- encoding = encoding.replace('_', '').replace('-', '')
1469
- # strip the error handler
1470
- return encoding.split(':')[0]
1471
-
1472
- def language_label(self, docutil_label):
1473
- return self.language_module.labels[docutil_label]
1474
-
1475
- def encode(self, text):
1476
- """Return text with 'problematic' characters escaped.
1477
-
1478
- * Escape the special printing characters ``# $ % & ~ _ ^ \\ { }``,
1479
- square brackets ``[ ]``, double quotes and (in OT1) ``< | >``.
1480
- * Translate non-supported Unicode characters.
1481
- * Separate ``-`` (and more in literal text) to prevent input ligatures.
1482
- """
1483
- if self.verbatim:
1484
- return text
1485
- # Set up the translation table:
1486
- table = CharMaps.alltt.copy()
1487
- if not self.alltt:
1488
- table.update(CharMaps.special)
1489
- # keep the underscore in citation references
1490
- if self.inside_citation_reference_label and not self.alltt:
1491
- del(table[ord('_')])
1492
- # Workarounds for OT1 font-encoding
1493
- if self.font_encoding in ['OT1', ''] and not self.is_xetex:
1494
- # * out-of-order characters in cmtt
1495
- if self.literal:
1496
- # replace underscore by underlined blank,
1497
- # because this has correct width.
1498
- table[ord('_')] = '\\underline{~}'
1499
- # the backslash doesn't work, so we use a mirrored slash.
1500
- # \reflectbox is provided by graphicx:
1501
- self.requirements['graphicx'] = self.graphicx_package
1502
- table[ord('\\')] = '\\reflectbox{/}'
1503
- # * ``< | >`` come out as different chars (except for cmtt):
1504
- else:
1505
- table[ord('|')] = '\\textbar{}'
1506
- table[ord('<')] = '\\textless{}'
1507
- table[ord('>')] = '\\textgreater{}'
1508
- if self.insert_non_breaking_blanks:
1509
- table[ord(' ')] = '~'
1510
- # tab chars may occur in included files (literal or code)
1511
- # quick-and-dirty replacement with spaces
1512
- # (for better results use `--literal-block-env=lstlisting`)
1513
- table[ord('\t')] = '~' * self.settings.tab_width
1514
- # Unicode replacements for 8-bit tex engines (not required with XeTeX)
1515
- if not self.is_xetex:
1516
- if not self.latex_encoding.startswith('utf8'):
1517
- table.update(CharMaps.unsupported_unicode)
1518
- table.update(CharMaps.utf8_supported_unicode)
1519
- table.update(CharMaps.textcomp)
1520
- table.update(CharMaps.pifont)
1521
- # Characters that require a feature/package to render
1522
- for ch in text:
1523
- cp = ord(ch)
1524
- if cp in CharMaps.textcomp and not self.fallback_stylesheet:
1525
- self.requirements['textcomp'] = PreambleCmds.textcomp
1526
- elif cp in CharMaps.pifont:
1527
- self.requirements['pifont'] = '\\usepackage{pifont}'
1528
- # preamble-definitions for unsupported Unicode characters
1529
- elif (self.latex_encoding == 'utf8'
1530
- and cp in CharMaps.unsupported_unicode):
1531
- self.requirements['_inputenc'+str(cp)] = (
1532
- '\\DeclareUnicodeCharacter{%04X}{%s}'
1533
- % (cp, CharMaps.unsupported_unicode[cp]))
1534
- text = text.translate(table)
1535
-
1536
- # Break up input ligatures e.g. '--' to '-{}-'.
1537
- if not self.is_xetex: # Not required with xetex/luatex
1538
- separate_chars = '-'
1539
- # In monospace-font, we also separate ',,', '``' and "''" and some
1540
- # other characters which can't occur in non-literal text.
1541
- if self.literal:
1542
- separate_chars += ',`\'"<>'
1543
- for char in separate_chars * 2:
1544
- # Do it twice ("* 2") because otherwise we would replace
1545
- # '---' by '-{}--'.
1546
- text = text.replace(char + char, char + '{}' + char)
1547
-
1548
- # Literal line breaks (in address or literal blocks):
1549
- if self.insert_newline:
1550
- lines = text.split('\n')
1551
- # Add a protected space to blank lines (except the last)
1552
- # to avoid ``! LaTeX Error: There's no line here to end.``
1553
- for i, line in enumerate(lines[:-1]):
1554
- if not line.lstrip():
1555
- lines[i] += '~'
1556
- text = (r'\\' + '\n').join(lines)
1557
- if self.literal and not self.insert_non_breaking_blanks:
1558
- # preserve runs of spaces but allow wrapping
1559
- text = text.replace(' ', ' ~')
1560
- return text
1561
-
1562
- def attval(self, text,
1563
- whitespace=re.compile('[\n\r\t\v\f]')):
1564
- """Cleanse, encode, and return attribute value text."""
1565
- return self.encode(whitespace.sub(' ', text))
1566
-
1567
- # TODO: is this used anywhere? -> update (use template) or delete
1568
- ## def astext(self):
1569
- ## """Assemble document parts and return as string."""
1570
- ## head = '\n'.join(self.head_prefix + self.stylesheet + self.head)
1571
- ## body = ''.join(self.body_prefix + self.body + self.body_suffix)
1572
- ## return head + '\n' + body
1573
-
1574
- def is_inline(self, node):
1575
- """Check whether a node represents an inline or block-level element"""
1576
- return isinstance(node.parent, nodes.TextElement)
1577
-
1578
- def append_hypertargets(self, node):
1579
- """Append hypertargets for all ids of `node`"""
1580
- # hypertarget places the anchor at the target's baseline,
1581
- # so we raise it explicitly
1582
- self.out.append('%\n'.join('\\raisebox{1em}{\\hypertarget{%s}{}}' %
1583
- id for id in node['ids']))
1584
-
1585
- def ids_to_labels(self, node, set_anchor=True, protect=False,
1586
- newline=False):
1587
- """Return list of label definitions for all ids of `node`
1588
-
1589
- If `set_anchor` is True, an anchor is set with \\phantomsection.
1590
- If `protect` is True, the \\label cmd is made robust.
1591
- If `newline` is True, a newline is added if there are labels.
1592
- """
1593
- prefix = '\\protect' if protect else ''
1594
- labels = [prefix + '\\label{%s}' % id for id in node['ids']]
1595
- if set_anchor and labels:
1596
- labels.insert(0, '\\phantomsection')
1597
- if newline and labels:
1598
- labels.append('\n')
1599
- return labels
1600
-
1601
- def set_align_from_classes(self, node):
1602
- """Convert ``align-*`` class arguments into alignment args."""
1603
- # separate:
1604
- align = [cls for cls in node['classes'] if cls.startswith('align-')]
1605
- if align:
1606
- node['align'] = align[-1].replace('align-', '')
1607
- node['classes'] = [cls for cls in node['classes']
1608
- if not cls.startswith('align-')]
1609
-
1610
- def insert_align_declaration(self, node, default=None):
1611
- align = node.get('align', default)
1612
- if align == 'left':
1613
- self.out.append('\\raggedright\n')
1614
- elif align == 'center':
1615
- self.out.append('\\centering\n')
1616
- elif align == 'right':
1617
- self.out.append('\\raggedleft\n')
1618
-
1619
- def duclass_open(self, node):
1620
- """Open a group and insert declarations for class values."""
1621
- if not isinstance(node.parent, nodes.compound):
1622
- self.out.append('\n')
1623
- for cls in node['classes']:
1624
- if cls.startswith('language-'):
1625
- language = self.babel.language_name(cls[9:])
1626
- if language:
1627
- self.babel.otherlanguages[language] = True
1628
- self.out.append('\\begin{selectlanguage}{%s}\n' % language)
1629
- elif (isinstance(node, nodes.table)
1630
- and cls in Writer.table_style_values + ['colwidths-given']):
1631
- pass
1632
- else:
1633
- if not self.fallback_stylesheet:
1634
- self.fallbacks['DUclass'] = PreambleCmds.duclass
1635
- self.out.append('\\begin{DUclass}{%s}\n' % cls)
1636
-
1637
- def duclass_close(self, node):
1638
- """Close a group of class declarations."""
1639
- for cls in reversed(node['classes']):
1640
- if cls.startswith('language-'):
1641
- language = self.babel.language_name(cls[9:])
1642
- if language:
1643
- self.out.append('\\end{selectlanguage}\n')
1644
- elif (isinstance(node, nodes.table)
1645
- and cls in Writer.table_style_values + ['colwidths-given']):
1646
- pass
1647
- else:
1648
- if not self.fallback_stylesheet:
1649
- self.fallbacks['DUclass'] = PreambleCmds.duclass
1650
- self.out.append('\\end{DUclass}\n')
1651
-
1652
- def push_output_collector(self, new_out):
1653
- self.out_stack.append(self.out)
1654
- self.out = new_out
1655
-
1656
- def pop_output_collector(self):
1657
- self.out = self.out_stack.pop()
1658
-
1659
- def term_postfix(self, node):
1660
- """
1661
- Return LaTeX code required between term or field name and content.
1662
-
1663
- In a LaTeX "description" environment (used for definition
1664
- lists and non-docinfo field lists), a ``\\leavevmode``
1665
- between an item's label and content ensures the correct
1666
- placement of certain block constructs.
1667
- """
1668
- for child in node:
1669
- if not isinstance(child, (nodes.Invisible, nodes.footnote,
1670
- nodes.citation)):
1671
- break
1672
- else:
1673
- return ''
1674
- if isinstance(child, (nodes.container, nodes.compound)):
1675
- return self.term_postfix(child)
1676
- if isinstance(child, nodes.image):
1677
- return '\\leavevmode\n' # Images get an additional newline.
1678
- if not isinstance(child, (nodes.paragraph, nodes.math_block)):
1679
- return '\\leavevmode'
1680
- return ''
1681
-
1682
- # Visitor methods
1683
- # ---------------
1684
-
1685
- def visit_Text(self, node):
1686
- self.out.append(self.encode(node.astext()))
1687
-
1688
- def depart_Text(self, node):
1689
- pass
1690
-
1691
- def visit_abbreviation(self, node):
1692
- node['classes'].insert(0, 'abbreviation')
1693
- self.visit_inline(node)
1694
-
1695
- def depart_abbreviation(self, node):
1696
- self.depart_inline(node)
1697
-
1698
- def visit_acronym(self, node):
1699
- node['classes'].insert(0, 'acronym')
1700
- self.visit_inline(node)
1701
-
1702
- def depart_acronym(self, node):
1703
- self.depart_inline(node)
1704
-
1705
- def visit_address(self, node):
1706
- self.visit_docinfo_item(node, 'address')
1707
-
1708
- def depart_address(self, node):
1709
- self.depart_docinfo_item(node)
1710
-
1711
- def visit_admonition(self, node):
1712
- # strip the generic 'admonition' from the list of classes
1713
- node['classes'] = [cls for cls in node['classes']
1714
- if cls != 'admonition']
1715
- if self.settings.legacy_class_functions:
1716
- self.fallbacks['admonition'] = PreambleCmds.admonition_legacy
1717
- if 'error' in node['classes']:
1718
- self.fallbacks['error'] = PreambleCmds.error_legacy
1719
- self.out.append('\n\\DUadmonition[%s]{'%','.join(node['classes']))
1720
- return
1721
- if not self.fallback_stylesheet:
1722
- self.fallbacks['admonition'] = PreambleCmds.admonition
1723
- if 'error' in node['classes'] and not self.fallback_stylesheet:
1724
- self.fallbacks['error'] = PreambleCmds.error
1725
- self.duclass_open(node)
1726
- self.out.append('\\begin{DUadmonition}')
1727
-
1728
- def depart_admonition(self, node):
1729
- if self.settings.legacy_class_functions:
1730
- self.out.append('}\n')
1731
- return
1732
- self.out.append('\\end{DUadmonition}\n')
1733
- self.duclass_close(node)
1734
-
1735
- def visit_author(self, node):
1736
- self.pdfauthor.append(self.attval(node.astext()))
1737
- self.visit_docinfo_item(node, 'author')
1738
-
1739
- def depart_author(self, node):
1740
- self.depart_docinfo_item(node)
1741
-
1742
- def visit_authors(self, node):
1743
- # not used: visit_author is called anyway for each author.
1744
- pass
1745
-
1746
- def depart_authors(self, node):
1747
- pass
1748
-
1749
- def visit_block_quote(self, node):
1750
- self.duclass_open(node)
1751
- self.out.append('\\begin{quote}')
1752
-
1753
- def depart_block_quote(self, node):
1754
- self.out.append('\\end{quote}\n')
1755
- self.duclass_close(node)
1756
-
1757
- def visit_bullet_list(self, node):
1758
- self.duclass_open(node)
1759
- self.out.append('\\begin{itemize}')
1760
-
1761
- def depart_bullet_list(self, node):
1762
- self.out.append('\\end{itemize}\n')
1763
- self.duclass_close(node)
1764
-
1765
- def visit_superscript(self, node):
1766
- self.out.append(r'\textsuperscript{')
1767
- self.visit_inline(node)
1768
-
1769
- def depart_superscript(self, node):
1770
- self.depart_inline(node)
1771
- self.out.append('}')
1772
-
1773
- def visit_subscript(self, node):
1774
- self.out.append(r'\textsubscript{')
1775
- self.visit_inline(node)
1776
-
1777
- def depart_subscript(self, node):
1778
- self.depart_inline(node)
1779
- self.out.append('}')
1780
-
1781
- def visit_caption(self, node):
1782
- self.out.append('\n\\caption{')
1783
-
1784
- def depart_caption(self, node):
1785
- self.out.append('}\n')
1786
-
1787
- def visit_title_reference(self, node):
1788
- if not self.fallback_stylesheet:
1789
- self.fallbacks['titlereference'] = PreambleCmds.titlereference
1790
- self.out.append(r'\DUroletitlereference{')
1791
- self.visit_inline(node)
1792
-
1793
- def depart_title_reference(self, node):
1794
- self.depart_inline(node)
1795
- self.out.append('}')
1796
-
1797
- def visit_citation(self, node):
1798
- if self.use_latex_citations:
1799
- self.push_output_collector([])
1800
- else:
1801
- # self.requirements['~fnt_floats'] = PreambleCmds.footnote_floats
1802
- self.out.append(r'\begin{figure}[b]')
1803
- self.append_hypertargets(node)
1804
-
1805
- def depart_citation(self, node):
1806
- if self.use_latex_citations:
1807
- # TODO: normalize label
1808
- label = self.out[0]
1809
- text = ''.join(self.out[1:])
1810
- self._bibitems.append([label, text])
1811
- self.pop_output_collector()
1812
- else:
1813
- self.out.append('\\end{figure}\n')
1814
-
1815
- def visit_citation_reference(self, node):
1816
- if self.use_latex_citations:
1817
- if not self.inside_citation_reference_label:
1818
- self.out.append(r'\cite{')
1819
- self.inside_citation_reference_label = 1
1820
- else:
1821
- assert self.out[-1] in (' ', '\n'),\
1822
- 'unexpected non-whitespace while in reference label'
1823
- del self.out[-1]
1824
- else:
1825
- href = ''
1826
- if 'refid' in node:
1827
- href = node['refid']
1828
- elif 'refname' in node:
1829
- href = self.document.nameids[node['refname']]
1830
- self.out.append('\\hyperlink{%s}{[' % href)
1831
-
1832
- def depart_citation_reference(self, node):
1833
- # TODO: normalize labels
1834
- if self.use_latex_citations:
1835
- followup_citation = False
1836
- # check for a following citation separated by a space or newline
1837
- sibling = node.next_node(descend=False, siblings=True)
1838
- if (isinstance(sibling, nodes.Text)
1839
- and sibling.astext() in (' ', '\n')):
1840
- sibling2 = sibling.next_node(descend=False, siblings=True)
1841
- if isinstance(sibling2, nodes.citation_reference):
1842
- followup_citation = True
1843
- if followup_citation:
1844
- self.out.append(',')
1845
- else:
1846
- self.out.append('}')
1847
- self.inside_citation_reference_label = False
1848
- else:
1849
- self.out.append(']}')
1850
-
1851
- def visit_classifier(self, node):
1852
- self.out.append('(\\textbf{')
1853
-
1854
- def depart_classifier(self, node):
1855
- self.out.append('})')
1856
-
1857
- def visit_colspec(self, node):
1858
- self.active_table.visit_colspec(node)
1859
-
1860
- def depart_colspec(self, node):
1861
- pass
1862
-
1863
- def visit_comment(self, node):
1864
- if not isinstance(node.parent, nodes.compound):
1865
- self.out.append('\n')
1866
- # Precede every line with a comment sign, wrap in newlines
1867
- self.out.append('%% %s\n' % node.astext().replace('\n', '\n% '))
1868
- raise nodes.SkipNode
1869
-
1870
- def depart_comment(self, node):
1871
- pass
1872
-
1873
- def visit_compound(self, node):
1874
- if isinstance(node.parent, nodes.compound):
1875
- self.out.append('\n')
1876
- node['classes'].insert(0, 'compound')
1877
- self.duclass_open(node)
1878
-
1879
- def depart_compound(self, node):
1880
- self.duclass_close(node)
1881
-
1882
- def visit_contact(self, node):
1883
- self.visit_docinfo_item(node, 'contact')
1884
-
1885
- def depart_contact(self, node):
1886
- self.depart_docinfo_item(node)
1887
-
1888
- def visit_container(self, node):
1889
- self.duclass_open(node)
1890
-
1891
- def depart_container(self, node):
1892
- self.duclass_close(node)
1893
-
1894
- def visit_copyright(self, node):
1895
- self.visit_docinfo_item(node, 'copyright')
1896
-
1897
- def depart_copyright(self, node):
1898
- self.depart_docinfo_item(node)
1899
-
1900
- def visit_date(self, node):
1901
- self.visit_docinfo_item(node, 'date')
1902
-
1903
- def depart_date(self, node):
1904
- self.depart_docinfo_item(node)
1905
-
1906
- def visit_decoration(self, node):
1907
- # header and footer
1908
- pass
1909
-
1910
- def depart_decoration(self, node):
1911
- pass
1912
-
1913
- def visit_definition(self, node):
1914
- pass
1915
-
1916
- def depart_definition(self, node):
1917
- self.out.append('\n') # TODO: just pass?
1918
-
1919
- def visit_definition_list(self, node):
1920
- self.duclass_open(node)
1921
- self.out.append('\\begin{description}\n')
1922
-
1923
- def depart_definition_list(self, node):
1924
- self.out.append('\\end{description}\n')
1925
- self.duclass_close(node)
1926
-
1927
- def visit_definition_list_item(self, node):
1928
- pass
1929
-
1930
- def depart_definition_list_item(self, node):
1931
- pass
1932
-
1933
- def visit_description(self, node):
1934
- self.out.append(' ')
1935
-
1936
- def depart_description(self, node):
1937
- pass
1938
-
1939
- def visit_docinfo(self, node):
1940
- self.push_output_collector(self.docinfo)
1941
-
1942
- def depart_docinfo(self, node):
1943
- self.pop_output_collector()
1944
- # Some itmes (e.g. author) end up at other places
1945
- if self.docinfo:
1946
- # tabularx: automatic width of columns, no page breaks allowed.
1947
- self.requirements['tabularx'] = r'\usepackage{tabularx}'
1948
- if not self.fallback_stylesheet:
1949
- self.fallbacks['_providelength'] = PreambleCmds.providelength
1950
- self.fallbacks['docinfo'] = PreambleCmds.docinfo
1951
- #
1952
- self.docinfo.insert(0, '\n% Docinfo\n'
1953
- '\\begin{center}\n'
1954
- '\\begin{tabularx}{\\DUdocinfowidth}{lX}\n')
1955
- self.docinfo.append('\\end{tabularx}\n'
1956
- '\\end{center}\n')
1957
-
1958
- def visit_docinfo_item(self, node, name):
1959
- if self.use_latex_docinfo:
1960
- if name in ('author', 'organization', 'contact', 'address'):
1961
- # We attach these to the last author. If any of them precedes
1962
- # the first author, put them in a separate "author" group
1963
- # (in lack of better semantics).
1964
- if name == 'author' or not self.author_stack:
1965
- self.author_stack.append([])
1966
- if name == 'address': # newlines are meaningful
1967
- self.insert_newline = True
1968
- text = self.encode(node.astext())
1969
- self.insert_newline = False
1970
- else:
1971
- text = self.attval(node.astext())
1972
- self.author_stack[-1].append(text)
1973
- raise nodes.SkipNode
1974
- elif name == 'date':
1975
- self.date.append(self.attval(node.astext()))
1976
- raise nodes.SkipNode
1977
- self.out.append('\\textbf{%s}: &\n\t' % self.language_label(name))
1978
- if name == 'address':
1979
- self.insert_newline = True
1980
- self.out.append('{\\raggedright\n')
1981
- self.context.append(' } \\\\\n')
1982
- else:
1983
- self.context.append(' \\\\\n')
1984
-
1985
- def depart_docinfo_item(self, node):
1986
- self.out.append(self.context.pop())
1987
- # for address we did set insert_newline
1988
- self.insert_newline = False
1989
-
1990
- def visit_doctest_block(self, node):
1991
- self.visit_literal_block(node)
1992
-
1993
- def depart_doctest_block(self, node):
1994
- self.depart_literal_block(node)
1995
-
1996
- def visit_document(self, node):
1997
- # titled document?
1998
- if (self.use_latex_docinfo or len(node)
1999
- and isinstance(node[0], nodes.title)):
2000
- protect = (self.settings.documentclass == 'memoir')
2001
- self.title_labels += self.ids_to_labels(node, set_anchor=False,
2002
- protect=protect)
2003
-
2004
- def depart_document(self, node):
2005
- # Complete header with information gained from walkabout
2006
- # * language setup
2007
- if (self.babel.otherlanguages
2008
- or self.babel.language not in ('', 'english')):
2009
- self.requirements['babel'] = self.babel()
2010
- # * conditional requirements (before style sheet)
2011
- self.requirements = self.requirements.sortedvalues()
2012
- # * coditional fallback definitions (after style sheet)
2013
- self.fallbacks = self.fallbacks.sortedvalues()
2014
- # * PDF properties
2015
- self.pdfsetup.append(PreambleCmds.linking % self.hyperref_options)
2016
- if self.pdfauthor:
2017
- authors = self.author_separator.join(self.pdfauthor)
2018
- self.pdfinfo.append(' pdfauthor={%s}' % authors)
2019
- if self.pdfinfo:
2020
- self.pdfsetup += [r'\hypersetup{'] + self.pdfinfo + ['}']
2021
- # Complete body
2022
- # * document title (with "use_latex_docinfo" also
2023
- # 'author', 'organization', 'contact', 'address' and 'date')
2024
- if self.title or (
2025
- self.use_latex_docinfo and (self.author_stack or self.date)):
2026
- # \title (empty \title prevents error with \maketitle)
2027
- title = [''.join(self.title)]
2028
- if self.title:
2029
- title += self.title_labels
2030
- if self.subtitle:
2031
- title += [r'\\',
2032
- r'\DUdocumentsubtitle{%s}' % ''.join(self.subtitle),
2033
- ] + self.subtitle_labels
2034
- self.titledata.append(r'\title{%s}' % '%\n '.join(title))
2035
- # \author (empty \author prevents warning with \maketitle)
2036
- authors = ['\\\\\n'.join(author_entry)
2037
- for author_entry in self.author_stack]
2038
- self.titledata.append(r'\author{%s}' %
2039
- ' \\and\n'.join(authors))
2040
- # \date (empty \date prevents defaulting to \today)
2041
- self.titledata.append(r'\date{%s}' % ', '.join(self.date))
2042
- # \maketitle in the body formats title with LaTeX
2043
- self.body_pre_docinfo.append('\\maketitle\n')
2044
-
2045
- # * bibliography
2046
- # TODO insertion point of bibliography should be configurable.
2047
- if self.use_latex_citations and len(self._bibitems) > 0:
2048
- if not self.bibtex:
2049
- widest_label = ''
2050
- for bi in self._bibitems:
2051
- if len(widest_label) < len(bi[0]):
2052
- widest_label = bi[0]
2053
- self.out.append('\n\\begin{thebibliography}{%s}\n' %
2054
- widest_label)
2055
- for bi in self._bibitems:
2056
- # cite_key: underscores must not be escaped
2057
- cite_key = bi[0].replace(r'\_', '_')
2058
- self.out.append('\\bibitem[%s]{%s}{%s}\n' %
2059
- (bi[0], cite_key, bi[1]))
2060
- self.out.append('\\end{thebibliography}\n')
2061
- else:
2062
- self.out.append('\n\\bibliographystyle{%s}\n' %
2063
- self.bibtex[0])
2064
- self.out.append('\\bibliography{%s}\n' % self.bibtex[1])
2065
- # * make sure to generate a toc file if needed for local contents:
2066
- if 'minitoc' in self.requirements and not self.has_latex_toc:
2067
- self.out.append('\n\\faketableofcontents % for local ToCs\n')
2068
-
2069
- def visit_emphasis(self, node):
2070
- self.out.append('\\emph{')
2071
- self.visit_inline(node)
2072
-
2073
- def depart_emphasis(self, node):
2074
- self.depart_inline(node)
2075
- self.out.append('}')
2076
-
2077
- # Append column delimiters and advance column counter,
2078
- # if the current cell is a multi-row continuation."""
2079
- def insert_additional_table_colum_delimiters(self):
2080
- while self.active_table.get_rowspan(
2081
- self.active_table.get_entry_number()):
2082
- self.out.append(' & ')
2083
- self.active_table.visit_entry() # increment cell count
2084
-
2085
- def visit_entry(self, node):
2086
- # cell separation
2087
- if self.active_table.get_entry_number() == 0:
2088
- self.insert_additional_table_colum_delimiters()
2089
- else:
2090
- self.out.append(' & ')
2091
-
2092
- # multirow, multicolumn
2093
- if 'morerows' in node and 'morecols' in node:
2094
- raise NotImplementedError('Cells that span multiple rows *and* '
2095
- 'columns currently not supported '
2096
- 'by the LaTeX writer')
2097
- # TODO: should be possible with LaTeX, see e.g.
2098
- # http://texblog.org/2012/12/21/multi-column-and-multi-row-cells-in-latex-tables/
2099
- # multirow in LaTeX simply will enlarge the cell over several rows
2100
- # (the following n if n is positive, the former if negative).
2101
- if 'morerows' in node:
2102
- self.requirements['multirow'] = r'\usepackage{multirow}'
2103
- mrows = node['morerows'] + 1
2104
- self.active_table.set_rowspan(
2105
- self.active_table.get_entry_number(), mrows)
2106
- self.out.append('\\multirow{%d}{%s}{' %
2107
- (mrows, self.active_table.get_column_width()))
2108
- self.context.append('}')
2109
- elif 'morecols' in node:
2110
- # the vertical bar before column is missing if it is the first
2111
- # column. the one after always.
2112
- if self.active_table.get_entry_number() == 0:
2113
- bar1 = self.active_table.get_vertical_bar()
2114
- else:
2115
- bar1 = ''
2116
- mcols = node['morecols'] + 1
2117
- self.out.append('\\multicolumn{%d}{%s%s%s}{' %
2118
- (mcols,
2119
- bar1,
2120
- self.active_table.get_multicolumn_width(
2121
- self.active_table.get_entry_number(), mcols),
2122
- self.active_table.get_vertical_bar()))
2123
- self.context.append('}')
2124
- else:
2125
- self.context.append('')
2126
-
2127
- # bold header/stub-column
2128
- if len(node) and (isinstance(node.parent.parent, nodes.thead)
2129
- or self.active_table.is_stub_column()):
2130
- self.out.append('\\textbf{')
2131
- self.context.append('}')
2132
- else:
2133
- self.context.append('')
2134
-
2135
- # if line ends with '{', mask line break
2136
- if (not self.active_table.colwidths_auto
2137
- and self.out[-1].endswith("{")
2138
- and node.astext()):
2139
- self.out.append("%")
2140
-
2141
- self.active_table.visit_entry() # increment cell count
2142
-
2143
- def depart_entry(self, node):
2144
- self.out.append(self.context.pop()) # header / not header
2145
- self.out.append(self.context.pop()) # multirow/column
2146
- # insert extra "&"s, if following rows are spanned from above:
2147
- self.insert_additional_table_colum_delimiters()
2148
-
2149
- def visit_row(self, node):
2150
- self.active_table.visit_row()
2151
-
2152
- def depart_row(self, node):
2153
- self.out.extend(self.active_table.depart_row())
2154
-
2155
- def visit_enumerated_list(self, node):
2156
- # enumeration styles:
2157
- types = {'': '',
2158
- 'arabic': 'arabic',
2159
- 'loweralpha': 'alph',
2160
- 'upperalpha': 'Alph',
2161
- 'lowerroman': 'roman',
2162
- 'upperroman': 'Roman'}
2163
- # default LaTeX enumeration labels:
2164
- default_labels = [
2165
- # (präfix, enumtype, suffix)
2166
- ('', 'arabic', '.'), # 1.
2167
- ('(', 'alph', ')'), # (a)
2168
- ('', 'roman', '.'), # i.
2169
- ('', 'Alph', '.')] # A.
2170
-
2171
- prefix = ''
2172
- if self.compound_enumerators:
2173
- if (self.section_prefix_for_enumerators and self.section_level
2174
- and not self._enumeration_counters):
2175
- prefix = '.'.join(str(n) for n in
2176
- self._section_number[:self.section_level]
2177
- ) + self.section_enumerator_separator
2178
- if self._enumeration_counters:
2179
- prefix += self._enumeration_counters[-1]
2180
- prefix += node.get('prefix', '')
2181
- enumtype = types[node.get('enumtype', 'arabic')]
2182
- suffix = node.get('suffix', '.')
2183
-
2184
- enum_level = len(self._enumeration_counters)+1
2185
- counter_name = 'enum' + roman.toRoman(enum_level).lower()
2186
- label = r'%s\%s{%s}%s' % (prefix, enumtype, counter_name, suffix)
2187
- self._enumeration_counters.append(label)
2188
-
2189
- self.duclass_open(node)
2190
- if enum_level <= 4:
2191
- self.out.append('\\begin{enumerate}')
2192
- if (prefix, enumtype, suffix) != default_labels[enum_level-1]:
2193
- self.out.append('\n\\renewcommand{\\label%s}{%s}' %
2194
- (counter_name, label))
2195
- else:
2196
- self.fallbacks[counter_name] = '\\newcounter{%s}' % counter_name
2197
- self.out.append('\\begin{list}')
2198
- self.out.append('{%s}' % label)
2199
- self.out.append('{\\usecounter{%s}}' % counter_name)
2200
- if 'start' in node:
2201
- self.out.append('\n\\setcounter{%s}{%d}' %
2202
- (counter_name, node['start']-1))
2203
-
2204
- def depart_enumerated_list(self, node):
2205
- if len(self._enumeration_counters) <= 4:
2206
- self.out.append('\\end{enumerate}\n')
2207
- else:
2208
- self.out.append('\\end{list}\n')
2209
- self.duclass_close(node)
2210
- self._enumeration_counters.pop()
2211
-
2212
- def visit_field(self, node):
2213
- # output is done in field_body, field_name
2214
- pass
2215
-
2216
- def depart_field(self, node):
2217
- pass
2218
-
2219
- def visit_field_body(self, node):
2220
- if not isinstance(node.parent.parent, nodes.docinfo):
2221
- self.out.append(self.term_postfix(node))
2222
-
2223
- def depart_field_body(self, node):
2224
- if self.out is self.docinfo:
2225
- self.out.append(r'\\'+'\n')
2226
-
2227
- def visit_field_list(self, node):
2228
- self.duclass_open(node)
2229
- if self.out is not self.docinfo:
2230
- if not self.fallback_stylesheet:
2231
- self.fallbacks['fieldlist'] = PreambleCmds.fieldlist
2232
- self.out.append('\\begin{DUfieldlist}')
2233
-
2234
- def depart_field_list(self, node):
2235
- if self.out is not self.docinfo:
2236
- self.out.append('\\end{DUfieldlist}\n')
2237
- self.duclass_close(node)
2238
-
2239
- def visit_field_name(self, node):
2240
- if self.out is self.docinfo:
2241
- self.out.append('\\textbf{')
2242
- else:
2243
- # Commands with optional args inside an optional arg must be put
2244
- # in a group, e.g. ``\item[{\hyperref[label]{text}}]``.
2245
- self.out.append('\n\\item[{')
2246
-
2247
- def depart_field_name(self, node):
2248
- if self.out is self.docinfo:
2249
- self.out.append('}: &')
2250
- else:
2251
- self.out.append(':}]')
2252
-
2253
- def visit_figure(self, node):
2254
- self.requirements['float'] = PreambleCmds.float
2255
- self.duclass_open(node)
2256
- # The 'align' attribute sets the "outer alignment",
2257
- # for "inner alignment" use LaTeX default alignment (similar to HTML)
2258
- alignment = node.attributes.get('align', 'center')
2259
- if alignment != 'center':
2260
- # The LaTeX "figure" environment always uses the full linewidth,
2261
- # so "outer alignment" is ignored. Just write a comment.
2262
- # TODO: use the wrapfigure environment?
2263
- self.out.append('\\begin{figure} %% align = "%s"\n' % alignment)
2264
- else:
2265
- self.out.append('\\begin{figure}\n')
2266
- self.out += self.ids_to_labels(node, newline=True)
2267
-
2268
- def depart_figure(self, node):
2269
- self.out.append('\\end{figure}\n')
2270
- self.duclass_close(node)
2271
-
2272
- def visit_footer(self, node):
2273
- self.push_output_collector([])
2274
- self.out.append(r'\newcommand{\DUfooter}{')
2275
-
2276
- def depart_footer(self, node):
2277
- self.out.append('}')
2278
- self.requirements['~footer'] = ''.join(self.out)
2279
- self.pop_output_collector()
2280
-
2281
- def visit_footnote(self, node):
2282
- try:
2283
- backref = node['backrefs'][0]
2284
- except IndexError:
2285
- backref = node['ids'][0] # no backref, use self-ref instead
2286
- if self.docutils_footnotes:
2287
- if not self.fallback_stylesheet:
2288
- self.fallbacks['footnotes'] = PreambleCmds.footnotes
2289
- num = node[0].astext()
2290
- if self.settings.footnote_references == 'brackets':
2291
- num = '[%s]' % num
2292
- self.out.append('%%\n\\DUfootnotetext{%s}{%s}{%s}{' %
2293
- (node['ids'][0], backref, self.encode(num)))
2294
- if node['ids'] == node['names']:
2295
- self.out += self.ids_to_labels(node)
2296
- # prevent spurious whitespace if footnote starts with paragraph:
2297
- if len(node) > 1 and isinstance(node[1], nodes.paragraph):
2298
- self.out.append('%')
2299
- # TODO: "real" LaTeX \footnote{}s (see visit_footnotes_reference())
2300
-
2301
- def depart_footnote(self, node):
2302
- self.out.append('}\n')
2303
-
2304
- def visit_footnote_reference(self, node):
2305
- href = ''
2306
- if 'refid' in node:
2307
- href = node['refid']
2308
- elif 'refname' in node:
2309
- href = self.document.nameids[node['refname']]
2310
- # if not self.docutils_footnotes:
2311
- # # TODO: insert footnote content at (or near) this place
2312
- # # see also docs/dev/todo.txt
2313
- # try:
2314
- # referenced_node = self.document.ids[node['refid']]
2315
- # except (AttributeError, KeyError):
2316
- # self.document.reporter.error(
2317
- # 'unresolved footnote-reference %s' % node)
2318
- # print('footnote-ref to %s' % referenced_node)
2319
- format = self.settings.footnote_references
2320
- if format == 'brackets':
2321
- self.append_hypertargets(node)
2322
- self.out.append('\\hyperlink{%s}{[' % href)
2323
- self.context.append(']}')
2324
- else:
2325
- if not self.fallback_stylesheet:
2326
- self.fallbacks['footnotes'] = PreambleCmds.footnotes
2327
- self.out.append(r'\DUfootnotemark{%s}{%s}{' %
2328
- (node['ids'][0], href))
2329
- self.context.append('}')
2330
-
2331
- def depart_footnote_reference(self, node):
2332
- self.out.append(self.context.pop())
2333
-
2334
- # footnote/citation label
2335
- def label_delim(self, node, bracket, superscript):
2336
- if isinstance(node.parent, nodes.footnote):
2337
- raise nodes.SkipNode
2338
- else:
2339
- assert isinstance(node.parent, nodes.citation)
2340
- if not self.use_latex_citations:
2341
- self.out.append(bracket)
2342
-
2343
- def visit_label(self, node):
2344
- """footnote or citation label: in brackets or as superscript"""
2345
- self.label_delim(node, '[', '\\textsuperscript{')
2346
-
2347
- def depart_label(self, node):
2348
- self.label_delim(node, ']', '}')
2349
-
2350
- # elements generated by the framework e.g. section numbers.
2351
- def visit_generated(self, node):
2352
- pass
2353
-
2354
- def depart_generated(self, node):
2355
- pass
2356
-
2357
- def visit_header(self, node):
2358
- self.push_output_collector([])
2359
- self.out.append(r'\newcommand{\DUheader}{')
2360
-
2361
- def depart_header(self, node):
2362
- self.out.append('}')
2363
- self.requirements['~header'] = ''.join(self.out)
2364
- self.pop_output_collector()
2365
-
2366
- def to_latex_length(self, length_str, pxunit=None):
2367
- """Convert `length_str` with rst length to LaTeX length
2368
- """
2369
- if pxunit is not None:
2370
- warnings.warn(
2371
- 'The optional argument `pxunit` '
2372
- 'of LaTeXTranslator.to_latex_length() is ignored '
2373
- 'and will be removed in Docutils 0.21 or later',
2374
- DeprecationWarning, stacklevel=2)
2375
- match = re.match(r'(\d*\.?\d*)\s*(\S*)', length_str)
2376
- if not match:
2377
- return length_str
2378
- value, unit = match.groups()[:2]
2379
- # no unit or "DTP" points (called 'bp' in TeX):
2380
- if unit in ('', 'pt'):
2381
- length_str = '%sbp' % value
2382
- # percentage: relate to current line width
2383
- elif unit == '%':
2384
- length_str = '%.3f\\linewidth' % (float(value)/100.0)
2385
- elif self.is_xetex and unit == 'px':
2386
- # XeTeX does not know the length unit px.
2387
- # Use \pdfpxdimen, the macro to set the value of 1 px in pdftex.
2388
- # This way, configuring works the same for pdftex and xetex.
2389
- if not self.fallback_stylesheet:
2390
- self.fallbacks['_providelength'] = PreambleCmds.providelength
2391
- self.fallbacks['px'] = '\n\\DUprovidelength{\\pdfpxdimen}{1bp}\n'
2392
- length_str = r'%s\pdfpxdimen' % value
2393
- return length_str
2394
-
2395
- def visit_image(self, node):
2396
- self.requirements['graphicx'] = self.graphicx_package
2397
- attrs = node.attributes
2398
- # Convert image URI to a local file path
2399
- imagepath = url2pathname(attrs['uri']).replace('\\', '/')
2400
- # alignment defaults:
2401
- if 'align' not in attrs:
2402
- # Set default align of image in a figure to 'center'
2403
- if isinstance(node.parent, nodes.figure):
2404
- attrs['align'] = 'center'
2405
- self.set_align_from_classes(node)
2406
- # pre- and postfix (prefix inserted in reverse order)
2407
- pre = []
2408
- post = []
2409
- include_graphics_options = []
2410
- align_codes = {
2411
- # inline images: by default latex aligns the bottom.
2412
- 'bottom': ('', ''),
2413
- 'middle': (r'\raisebox{-0.5\height}{', '}'),
2414
- 'top': (r'\raisebox{-\height}{', '}'),
2415
- # block level images:
2416
- 'center': (r'\noindent\makebox[\linewidth][c]{', '}'),
2417
- 'left': (r'\noindent{', r'\hfill}'),
2418
- 'right': (r'\noindent{\hfill', '}'),
2419
- }
2420
- if 'align' in attrs:
2421
- # TODO: warn or ignore non-applicable alignment settings?
2422
- try:
2423
- align_code = align_codes[attrs['align']]
2424
- pre.append(align_code[0])
2425
- post.append(align_code[1])
2426
- except KeyError:
2427
- pass # TODO: warn?
2428
- if 'height' in attrs:
2429
- include_graphics_options.append(
2430
- 'height=%s' % self.to_latex_length(attrs['height']))
2431
- if 'scale' in attrs:
2432
- include_graphics_options.append(
2433
- 'scale=%f' % (attrs['scale'] / 100.0))
2434
- if 'width' in attrs:
2435
- include_graphics_options.append(
2436
- 'width=%s' % self.to_latex_length(attrs['width']))
2437
- if not (self.is_inline(node)
2438
- or isinstance(node.parent, (nodes.figure, nodes.compound))):
2439
- pre.append('\n')
2440
- if not (self.is_inline(node)
2441
- or isinstance(node.parent, nodes.figure)):
2442
- post.append('\n')
2443
- pre.reverse()
2444
- self.out.extend(pre)
2445
- options = ''
2446
- if include_graphics_options:
2447
- options = '[%s]' % (','.join(include_graphics_options))
2448
- self.out.append('\\includegraphics%s{%s}' % (options, imagepath))
2449
- self.out.extend(post)
2450
-
2451
- def depart_image(self, node):
2452
- self.out += self.ids_to_labels(node, newline=True)
2453
-
2454
- def visit_inline(self, node): # <span>, i.e. custom roles
2455
- for cls in node['classes']:
2456
- if cls.startswith('language-'):
2457
- language = self.babel.language_name(cls[9:])
2458
- if language:
2459
- self.babel.otherlanguages[language] = True
2460
- self.out.append(r'\foreignlanguage{%s}{' % language)
2461
- else:
2462
- if not self.fallback_stylesheet:
2463
- self.fallbacks['inline'] = PreambleCmds.inline
2464
- self.out.append(r'\DUrole{%s}{' % cls)
2465
-
2466
- def depart_inline(self, node):
2467
- self.out.append('}' * len(node['classes']))
2468
-
2469
- def visit_legend(self, node):
2470
- if not self.fallback_stylesheet:
2471
- self.fallbacks['legend'] = PreambleCmds.legend
2472
- self.out.append('\\begin{DUlegend}')
2473
-
2474
- def depart_legend(self, node):
2475
- self.out.append('\\end{DUlegend}\n')
2476
-
2477
- def visit_line(self, node):
2478
- self.out.append(r'\item[] ')
2479
-
2480
- def depart_line(self, node):
2481
- self.out.append('\n')
2482
-
2483
- def visit_line_block(self, node):
2484
- if not self.fallback_stylesheet:
2485
- self.fallbacks['_providelength'] = PreambleCmds.providelength
2486
- self.fallbacks['lineblock'] = PreambleCmds.lineblock
2487
- self.set_align_from_classes(node)
2488
- if isinstance(node.parent, nodes.line_block):
2489
- self.out.append('\\item[]\n'
2490
- '\\begin{DUlineblock}{\\DUlineblockindent}\n')
2491
- # nested line-blocks cannot be given class arguments
2492
- else:
2493
- self.duclass_open(node)
2494
- self.out.append('\\begin{DUlineblock}{0em}\n')
2495
- self.insert_align_declaration(node)
2496
-
2497
- def depart_line_block(self, node):
2498
- self.out.append('\\end{DUlineblock}\n')
2499
- self.duclass_close(node)
2500
-
2501
- def visit_list_item(self, node):
2502
- self.out.append('\n\\item ')
2503
-
2504
- def depart_list_item(self, node):
2505
- pass
2506
-
2507
- def visit_literal(self, node):
2508
- self.literal = True
2509
- if ('code' in node['classes']
2510
- and self.settings.syntax_highlight != 'none'):
2511
- self.requirements['color'] = PreambleCmds.color
2512
- if not self.fallback_stylesheet:
2513
- self.fallbacks['code'] = PreambleCmds.highlight_rules
2514
- self.out.append('\\texttt{')
2515
- self.visit_inline(node)
2516
-
2517
- def depart_literal(self, node):
2518
- self.literal = False
2519
- self.depart_inline(node)
2520
- self.out.append('}')
2521
-
2522
- # Literal blocks are used for '::'-prefixed literal-indented
2523
- # blocks of text, where the inline markup is not recognized,
2524
- # but are also the product of the "parsed-literal" directive,
2525
- # where the markup is respected.
2526
- #
2527
- # In both cases, we want to use a typewriter/monospaced typeface.
2528
- # For "real" literal-blocks, we can use \verbatim, while for all
2529
- # the others we must use \ttfamily and \raggedright.
2530
- #
2531
- # We can distinguish between the two kinds by the number of
2532
- # siblings that compose this node: if it is composed by a
2533
- # single element, it's either
2534
- # * a real one,
2535
- # * a parsed-literal that does not contain any markup, or
2536
- # * a parsed-literal containing just one markup construct.
2537
- def is_plaintext(self, node):
2538
- """Check whether a node can be typeset verbatim"""
2539
- return (len(node) == 1) and isinstance(node[0], nodes.Text)
2540
-
2541
- def visit_literal_block(self, node):
2542
- """Render a literal block.
2543
-
2544
- Corresponding rST elements: literal block, parsed-literal, code.
2545
- """
2546
- packages = {'lstlisting': r'\usepackage{listings}' '\n'
2547
- r'\lstset{xleftmargin=\leftmargin}',
2548
- 'listing': r'\usepackage{moreverb}',
2549
- 'Verbatim': r'\usepackage{fancyvrb}',
2550
- 'verbatimtab': r'\usepackage{moreverb}'}
2551
-
2552
- literal_env = self.literal_block_env
2553
-
2554
- # Check, if it is possible to use a literal-block environment
2555
- _plaintext = self.is_plaintext(node)
2556
- _in_table = self.active_table.is_open()
2557
- # TODO: fails if normal text precedes the literal block.
2558
- # Check parent node instead?
2559
- _autowidth_table = _in_table and self.active_table.colwidths_auto
2560
- _no_env_nodes = (nodes.footnote, nodes.sidebar)
2561
- if self.settings.legacy_class_functions:
2562
- _no_env_nodes += (nodes.admonition, nodes.system_message)
2563
- _use_env = _plaintext and not isinstance(node.parent, _no_env_nodes)
2564
- _use_listings = (literal_env == 'lstlisting') and _use_env
2565
-
2566
- # Labels and classes:
2567
- self.duclass_open(node)
2568
- self.out += self.ids_to_labels(node, newline=True)
2569
- # Highlight code?
2570
- if (not _plaintext
2571
- and 'code' in node['classes']
2572
- and self.settings.syntax_highlight != 'none'):
2573
- self.requirements['color'] = PreambleCmds.color
2574
- if not self.fallback_stylesheet:
2575
- self.fallbacks['code'] = PreambleCmds.highlight_rules
2576
- # Wrap?
2577
- if _in_table and _use_env and not _autowidth_table:
2578
- # Wrap in minipage to prevent extra vertical space
2579
- # with alltt and verbatim-like environments:
2580
- self.fallbacks['ttem'] = PreambleCmds.ttem
2581
- self.out.append(
2582
- '\\begin{minipage}{%d\\ttemwidth}\n' %
2583
- (max(len(line) for line in node.astext().split('\n'))))
2584
- self.context.append('\n\\end{minipage}\n')
2585
- elif not _in_table and not _use_listings:
2586
- # Wrap in quote to set off vertically and indent
2587
- self.out.append('\\begin{quote}\n')
2588
- self.context.append('\n\\end{quote}\n')
2589
- else:
2590
- self.context.append('\n')
2591
-
2592
- # Use verbatim-like environment, if defined and possible
2593
- # (in an auto-width table, only listings works):
2594
- if literal_env and _use_env and (not _autowidth_table
2595
- or _use_listings):
2596
- try:
2597
- self.requirements['literal_block'] = packages[literal_env]
2598
- except KeyError:
2599
- pass
2600
- self.verbatim = True
2601
- if _in_table and _use_listings:
2602
- self.out.append('\\lstset{xleftmargin=0pt}\n')
2603
- self.out.append('\\begin{%s}%s\n' %
2604
- (literal_env, self.literal_block_options))
2605
- self.context.append('\n\\end{%s}' % literal_env)
2606
- elif _use_env and not _autowidth_table:
2607
- self.alltt = True
2608
- self.requirements['alltt'] = r'\usepackage{alltt}'
2609
- self.out.append('\\begin{alltt}\n')
2610
- self.context.append('\n\\end{alltt}')
2611
- else:
2612
- self.literal = True
2613
- self.insert_newline = True
2614
- self.insert_non_breaking_blanks = True
2615
- # \raggedright ensures leading blanks are respected but
2616
- # leads to additional leading vspace if the first line
2617
- # of the block is overfull :-(
2618
- self.out.append('\\ttfamily\\raggedright\n')
2619
- self.context.append('')
2620
-
2621
- def depart_literal_block(self, node):
2622
- self.insert_non_breaking_blanks = False
2623
- self.insert_newline = False
2624
- self.literal = False
2625
- self.verbatim = False
2626
- self.alltt = False
2627
- self.out.append(self.context.pop())
2628
- self.out.append(self.context.pop())
2629
- self.duclass_close(node)
2630
-
2631
- def visit_meta(self, node):
2632
- name = node.attributes.get('name')
2633
- content = node.attributes.get('content')
2634
- if not name or not content:
2635
- return
2636
- if name in ('author', 'creator', 'keywords', 'subject', 'title'):
2637
- # fields with dedicated hyperref options:
2638
- self.pdfinfo.append(' pdf%s={%s},'%(name, content))
2639
- elif name == 'producer':
2640
- self.pdfinfo.append(' addtopdfproducer={%s},'%content)
2641
- else:
2642
- # generic interface (case sensitive!)
2643
- # TODO: filter irrelevant nodes ("http-equiv", ...)?
2644
- self.pdfinfo.append(' pdfinfo={%s={%s}},'%(name, content))
2645
-
2646
- def depart_meta(self, node):
2647
- pass
2648
-
2649
- def visit_math(self, node, math_env='$'):
2650
- """math role"""
2651
- self.visit_inline(node)
2652
- self.requirements['amsmath'] = r'\usepackage{amsmath}'
2653
- math_code = node.astext().translate(unichar2tex.uni2tex_table)
2654
- if math_env == '$':
2655
- if self.alltt:
2656
- wrapper = ['\\(', '\\)']
2657
- else:
2658
- wrapper = ['$', '$']
2659
- else:
2660
- labels = self.ids_to_labels(node, set_anchor=False, newline=True)
2661
- wrapper = ['%%\n\\begin{%s}\n' % math_env,
2662
- '\n',
2663
- ''.join(labels),
2664
- '\\end{%s}' % math_env]
2665
- wrapper.insert(1, math_code)
2666
- self.out.extend(wrapper)
2667
- self.depart_inline(node)
2668
- # Content already processed:
2669
- raise nodes.SkipNode
2670
-
2671
- def depart_math(self, node):
2672
- pass # never reached
2673
-
2674
- def visit_math_block(self, node):
2675
- math_env = pick_math_environment(node.astext())
2676
- self.visit_math(node, math_env=math_env)
2677
-
2678
- def depart_math_block(self, node):
2679
- pass # never reached
2680
-
2681
- def visit_option(self, node):
2682
- if self.context[-1]:
2683
- # this is not the first option
2684
- self.out.append(', ')
2685
-
2686
- def depart_option(self, node):
2687
- # flag that the first option is done.
2688
- self.context[-1] += 1
2689
-
2690
- def visit_option_argument(self, node):
2691
- """Append the delimiter between an option and its argument to body."""
2692
- self.out.append(node.get('delimiter', ' '))
2693
-
2694
- def depart_option_argument(self, node):
2695
- pass
2696
-
2697
- def visit_option_group(self, node):
2698
- self.out.append('\n\\item[')
2699
- # flag for first option
2700
- self.context.append(0)
2701
-
2702
- def depart_option_group(self, node):
2703
- self.context.pop() # the flag
2704
- self.out.append('] ')
2705
-
2706
- def visit_option_list(self, node):
2707
- if not self.fallback_stylesheet:
2708
- self.fallbacks['_providelength'] = PreambleCmds.providelength
2709
- self.fallbacks['optionlist'] = PreambleCmds.optionlist
2710
- self.duclass_open(node)
2711
- self.out.append('\\begin{DUoptionlist}')
2712
-
2713
- def depart_option_list(self, node):
2714
- self.out.append('\\end{DUoptionlist}\n')
2715
- self.duclass_close(node)
2716
-
2717
- def visit_option_list_item(self, node):
2718
- pass
2719
-
2720
- def depart_option_list_item(self, node):
2721
- pass
2722
-
2723
- def visit_option_string(self, node):
2724
- ## self.out.append(self.starttag(node, 'span', '', CLASS='option'))
2725
- pass
2726
-
2727
- def depart_option_string(self, node):
2728
- ## self.out.append('</span>')
2729
- pass
2730
-
2731
- def visit_organization(self, node):
2732
- self.visit_docinfo_item(node, 'organization')
2733
-
2734
- def depart_organization(self, node):
2735
- self.depart_docinfo_item(node)
2736
-
2737
- def visit_paragraph(self, node):
2738
- # insert blank line, unless
2739
- # * the paragraph is first in a list item, compound, or container
2740
- # * follows a non-paragraph node in a compound,
2741
- # * is in a table with auto-width columns
2742
- index = node.parent.index(node)
2743
- if index == 0 and isinstance(node.parent,
2744
- (nodes.list_item, nodes.description,
2745
- nodes.compound, nodes.container)):
2746
- pass
2747
- elif (index > 0
2748
- and isinstance(node.parent, nodes.compound)
2749
- and not isinstance(node.parent[index - 1],
2750
- (nodes.paragraph, nodes.compound))):
2751
- pass
2752
- elif self.active_table.colwidths_auto:
2753
- if index == 1: # second paragraph
2754
- self.warn('LaTeX merges paragraphs in tables '
2755
- 'with auto-sized columns!', base_node=node)
2756
- if index > 0:
2757
- self.out.append('\n')
2758
- else:
2759
- self.out.append('\n')
2760
- self.out += self.ids_to_labels(node, newline=True)
2761
- self.visit_inline(node)
2762
-
2763
- def depart_paragraph(self, node):
2764
- self.depart_inline(node)
2765
- if not self.active_table.colwidths_auto:
2766
- self.out.append('\n')
2767
-
2768
- def visit_problematic(self, node):
2769
- self.requirements['color'] = PreambleCmds.color
2770
- self.out.append('%\n')
2771
- self.append_hypertargets(node)
2772
- self.out.append(r'\hyperlink{%s}{\textbf{\color{red}' % node['refid'])
2773
-
2774
- def depart_problematic(self, node):
2775
- self.out.append('}}')
2776
-
2777
- def visit_raw(self, node):
2778
- if 'latex' not in node.get('format', '').split():
2779
- raise nodes.SkipNode
2780
- if not (self.is_inline(node)
2781
- or isinstance(node.parent, nodes.compound)):
2782
- self.out.append('\n')
2783
- self.visit_inline(node)
2784
- # append "as-is" skipping any LaTeX-encoding
2785
- self.verbatim = True
2786
-
2787
- def depart_raw(self, node):
2788
- self.verbatim = False
2789
- self.depart_inline(node)
2790
- if not self.is_inline(node):
2791
- self.out.append('\n')
2792
-
2793
- def has_unbalanced_braces(self, string):
2794
- """Test whether there are unmatched '{' or '}' characters."""
2795
- level = 0
2796
- for ch in string:
2797
- if ch == '{':
2798
- level += 1
2799
- if ch == '}':
2800
- level -= 1
2801
- if level < 0:
2802
- return True
2803
- return level != 0
2804
-
2805
- def visit_reference(self, node):
2806
- # We need to escape #, \, and % if we use the URL in a command.
2807
- special_chars = {ord('#'): '\\#',
2808
- ord('%'): '\\%',
2809
- ord('\\'): '\\\\',
2810
- }
2811
- # external reference (URL)
2812
- if 'refuri' in node:
2813
- href = str(node['refuri']).translate(special_chars)
2814
- # problematic chars double caret and unbalanced braces:
2815
- if href.find('^^') != -1 or self.has_unbalanced_braces(href):
2816
- self.error(
2817
- 'External link "%s" not supported by LaTeX.\n'
2818
- ' (Must not contain "^^" or unbalanced braces.)' % href)
2819
- if node['refuri'] == node.astext():
2820
- self.out.append(r'\url{%s}' % href)
2821
- raise nodes.SkipNode
2822
- self.out.append(r'\href{%s}{' % href)
2823
- return
2824
- # internal reference
2825
- if 'refid' in node:
2826
- href = node['refid']
2827
- elif 'refname' in node:
2828
- href = self.document.nameids[node['refname']]
2829
- else:
2830
- raise AssertionError('Unknown reference.')
2831
- if not self.is_inline(node):
2832
- self.out.append('\n')
2833
- self.out.append('\\hyperref[%s]{' % href)
2834
- if self._reference_label:
2835
- self.out.append('\\%s{%s}}' %
2836
- (self._reference_label, href.replace('#', '')))
2837
- raise nodes.SkipNode
2838
-
2839
- def depart_reference(self, node):
2840
- self.out.append('}')
2841
- if not self.is_inline(node):
2842
- self.out.append('\n')
2843
-
2844
- def visit_revision(self, node):
2845
- self.visit_docinfo_item(node, 'revision')
2846
-
2847
- def depart_revision(self, node):
2848
- self.depart_docinfo_item(node)
2849
-
2850
- def visit_rubric(self, node):
2851
- if not self.fallback_stylesheet:
2852
- self.fallbacks['rubric'] = PreambleCmds.rubric
2853
- # class wrapper would interfere with ``\section*"`` type commands
2854
- # (spacing/indent of first paragraph)
2855
- self.out.append('\n\\DUrubric{')
2856
-
2857
- def depart_rubric(self, node):
2858
- self.out.append('}\n')
2859
-
2860
- def visit_section(self, node):
2861
- self.section_level += 1
2862
- # Initialize counter for potential subsections:
2863
- self._section_number.append(0)
2864
- # Counter for this section's level (initialized by parent section):
2865
- self._section_number[self.section_level - 1] += 1
2866
-
2867
- def depart_section(self, node):
2868
- # Remove counter for potential subsections:
2869
- self._section_number.pop()
2870
- self.section_level -= 1
2871
-
2872
- def visit_sidebar(self, node):
2873
- self.duclass_open(node)
2874
- self.requirements['color'] = PreambleCmds.color
2875
- if not self.fallback_stylesheet:
2876
- self.fallbacks['sidebar'] = PreambleCmds.sidebar
2877
- self.out.append('\\DUsidebar{')
2878
-
2879
- def depart_sidebar(self, node):
2880
- self.out.append('}\n')
2881
- self.duclass_close(node)
2882
-
2883
- attribution_formats = {'dash': ('—', ''), # EM DASH
2884
- 'parentheses': ('(', ')'),
2885
- 'parens': ('(', ')'),
2886
- 'none': ('', '')}
2887
-
2888
- def visit_attribution(self, node):
2889
- prefix, suffix = self.attribution_formats[self.settings.attribution]
2890
- self.out.append('\\nopagebreak\n\n\\raggedleft ')
2891
- self.out.append(prefix)
2892
- self.context.append(suffix)
2893
-
2894
- def depart_attribution(self, node):
2895
- self.out.append(self.context.pop() + '\n')
2896
-
2897
- def visit_status(self, node):
2898
- self.visit_docinfo_item(node, 'status')
2899
-
2900
- def depart_status(self, node):
2901
- self.depart_docinfo_item(node)
2902
-
2903
- def visit_strong(self, node):
2904
- self.out.append('\\textbf{')
2905
- self.visit_inline(node)
2906
-
2907
- def depart_strong(self, node):
2908
- self.depart_inline(node)
2909
- self.out.append('}')
2910
-
2911
- def visit_substitution_definition(self, node):
2912
- raise nodes.SkipNode
2913
-
2914
- def visit_substitution_reference(self, node):
2915
- self.unimplemented_visit(node)
2916
-
2917
- def visit_subtitle(self, node):
2918
- if isinstance(node.parent, nodes.document):
2919
- self.push_output_collector(self.subtitle)
2920
- if not self.fallback_stylesheet:
2921
- self.fallbacks['documentsubtitle'] = PreambleCmds.documentsubtitle # noqa:E501
2922
- protect = (self.settings.documentclass == 'memoir')
2923
- self.subtitle_labels += self.ids_to_labels(node, set_anchor=False,
2924
- protect=protect)
2925
- # section subtitle: "starred" (no number, not in ToC)
2926
- elif isinstance(node.parent, nodes.section):
2927
- self.out.append(r'\%s*{' %
2928
- self.d_class.section(self.section_level + 1))
2929
- else:
2930
- if not self.fallback_stylesheet:
2931
- self.fallbacks['subtitle'] = PreambleCmds.subtitle
2932
- self.out.append('\n\\DUsubtitle{')
2933
-
2934
- def depart_subtitle(self, node):
2935
- if isinstance(node.parent, nodes.document):
2936
- self.pop_output_collector()
2937
- else:
2938
- self.out.append('}\n')
2939
-
2940
- def visit_system_message(self, node):
2941
- self.requirements['color'] = PreambleCmds.color
2942
- if not self.fallback_stylesheet:
2943
- self.fallbacks['title'] = PreambleCmds.title
2944
- if self.settings.legacy_class_functions:
2945
- self.fallbacks['title'] = PreambleCmds.title_legacy
2946
- node['classes'] = ['system-message']
2947
- self.visit_admonition(node)
2948
- if self.settings.legacy_class_functions:
2949
- self.out.append('\n\\DUtitle[system-message]{system-message\n')
2950
- else:
2951
- self.out.append('\n\\DUtitle{system-message\n')
2952
- self.append_hypertargets(node)
2953
- try:
2954
- line = ', line~%s' % node['line']
2955
- except KeyError:
2956
- line = ''
2957
- self.out.append('}\n\n{\\color{red}%s/%s} in \\texttt{%s}%s\n' %
2958
- (node['type'], node['level'],
2959
- self.encode(node['source']), line))
2960
- if len(node['backrefs']) == 1:
2961
- self.out.append('\n\\hyperlink{%s}{' % node['backrefs'][0])
2962
- self.context.append('}')
2963
- else:
2964
- backrefs = ['\\hyperlink{%s}{%d}' % (href, i+1)
2965
- for (i, href) in enumerate(node['backrefs'])]
2966
- self.context.append('backrefs: ' + ' '.join(backrefs))
2967
-
2968
- def depart_system_message(self, node):
2969
- self.out.append(self.context.pop())
2970
- self.depart_admonition(node)
2971
-
2972
- def visit_table(self, node):
2973
- self.duclass_open(node)
2974
- self.requirements['table'] = PreambleCmds.table
2975
- if not self.settings.legacy_column_widths:
2976
- self.requirements['table1'] = PreambleCmds.table_columnwidth
2977
- if self.active_table.is_open():
2978
- self.table_stack.append(self.active_table)
2979
- # nesting longtable does not work (e.g. 2007-04-18)
2980
- self.active_table = Table(self, 'tabular')
2981
- # A longtable moves before \paragraph and \subparagraph
2982
- # section titles if it immediately follows them:
2983
- if (self.active_table._latex_type == 'longtable'
2984
- and isinstance(node.parent, nodes.section)
2985
- and node.parent.index(node) == 1
2986
- and self.d_class.section(
2987
- self.section_level).find('paragraph') != -1):
2988
- self.out.append('\\leavevmode')
2989
- self.active_table.open()
2990
- self.active_table.set_table_style(node, self.settings)
2991
- if self.active_table.borders == 'booktabs':
2992
- self.requirements['booktabs'] = r'\usepackage{booktabs}'
2993
- self.push_output_collector([])
2994
-
2995
- def depart_table(self, node):
2996
- # wrap content in the right environment:
2997
- content = self.out
2998
- self.pop_output_collector()
2999
- try:
3000
- width = self.to_latex_length(node['width'])
3001
- except KeyError:
3002
- width = r'\linewidth'
3003
- # TODO: Don't use a longtable or add \noindent before
3004
- # the next paragraph, when in a "compound paragraph".
3005
- # Start a new line or a new paragraph?
3006
- # if (isinstance(node.parent, nodes.compound)
3007
- # and self._latex_type != 'longtable')?
3008
- self.out.append(self.active_table.get_opening(width))
3009
- self.out += content
3010
- self.out.append(self.active_table.get_closing() + '\n')
3011
- self.active_table.close()
3012
- if len(self.table_stack) > 0:
3013
- self.active_table = self.table_stack.pop()
3014
- # Insert hyperlabel after (long)table, as
3015
- # other places (beginning, caption) result in LaTeX errors.
3016
- self.out += self.ids_to_labels(node, set_anchor=False, newline=True)
3017
- self.duclass_close(node)
3018
-
3019
- def visit_target(self, node):
3020
- # Skip indirect targets:
3021
- if ('refuri' in node # external hyperlink
3022
- or 'refid' in node # resolved internal link
3023
- or 'refname' in node): # unresolved internal link
3024
- ## self.out.append('%% %s\n' % node) # for debugging
3025
- return
3026
- self.out.append('%\n')
3027
- # do we need an anchor (\phantomsection)?
3028
- set_anchor = not isinstance(node.parent, (nodes.caption, nodes.title))
3029
- # TODO: where else can/must we omit the \phantomsection?
3030
- self.out += self.ids_to_labels(node, set_anchor)
3031
-
3032
- def depart_target(self, node):
3033
- pass
3034
-
3035
- def visit_tbody(self, node):
3036
- # BUG write preamble if not yet done (colspecs not [])
3037
- # for tables without heads.
3038
- if not self.active_table.get('preamble written'):
3039
- self.visit_thead(node)
3040
- self.depart_thead(None)
3041
-
3042
- def depart_tbody(self, node):
3043
- pass
3044
-
3045
- def visit_term(self, node):
3046
- """definition list term"""
3047
- # Commands with optional args inside an optional arg must be put
3048
- # in a group, e.g. ``\item[{\hyperref[label]{text}}]``.
3049
- self.out.append('\\item[{')
3050
-
3051
- def depart_term(self, node):
3052
- self.out.append('}] ')
3053
- # Do we need a \leavevmode (line break if the field body begins
3054
- # with a list or environment)?
3055
- next_node = node.next_node(descend=False, siblings=True)
3056
- if not isinstance(next_node, nodes.classifier):
3057
- self.out.append(self.term_postfix(next_node))
3058
-
3059
- def visit_tgroup(self, node):
3060
- pass
3061
-
3062
- def depart_tgroup(self, node):
3063
- pass
3064
-
3065
- _thead_depth = 0
3066
-
3067
- def thead_depth(self):
3068
- return self._thead_depth
3069
-
3070
- def visit_thead(self, node):
3071
- self._thead_depth += 1
3072
- if 1 == self.thead_depth():
3073
- self.out.append('{%s}\n' % self.active_table.get_colspecs(node))
3074
- self.active_table.set('preamble written', 1)
3075
- self.out.append(self.active_table.get_caption())
3076
- self.out.extend(self.active_table.visit_thead())
3077
-
3078
- def depart_thead(self, node):
3079
- if node is not None:
3080
- self.out.extend(self.active_table.depart_thead())
3081
- if self.active_table.need_recurse():
3082
- node.walkabout(self)
3083
- self._thead_depth -= 1
3084
-
3085
- def visit_title(self, node):
3086
- """Append section and other titles."""
3087
- # Document title
3088
- if isinstance(node.parent, nodes.document):
3089
- self.push_output_collector(self.title)
3090
- self.context.append('')
3091
- self.pdfinfo.append(' pdftitle={%s},' %
3092
- self.encode(node.astext()))
3093
- # Topic titles (topic, admonition, sidebar)
3094
- elif (isinstance(node.parent, nodes.topic)
3095
- or isinstance(node.parent, nodes.admonition)
3096
- or isinstance(node.parent, nodes.sidebar)):
3097
- classes = node.parent['classes'] or [node.parent.tagname]
3098
- if self.settings.legacy_class_functions:
3099
- self.fallbacks['title'] = PreambleCmds.title_legacy
3100
- self.out.append('\n\\DUtitle[%s]{' % ','.join(classes))
3101
- else:
3102
- if not self.fallback_stylesheet:
3103
- self.fallbacks['title'] = PreambleCmds.title
3104
- self.out.append('\n\\DUtitle{')
3105
- self.context.append('}\n')
3106
- # Table caption
3107
- elif isinstance(node.parent, nodes.table):
3108
- self.push_output_collector(self.active_table.caption)
3109
- self.context.append('')
3110
- # Section title
3111
- else:
3112
- if hasattr(PreambleCmds, 'secnumdepth'):
3113
- self.requirements['secnumdepth'] = PreambleCmds.secnumdepth
3114
- level = self.section_level
3115
- section_name = self.d_class.section(level)
3116
- self.out.append('\n\n')
3117
- if level > len(self.d_class.sections):
3118
- # section level not supported by LaTeX
3119
- if self.settings.legacy_class_functions:
3120
- self.fallbacks['title'] = PreambleCmds.title_legacy
3121
- section_name += '[section%s]' % roman.toRoman(level)
3122
- else:
3123
- if not self.fallback_stylesheet:
3124
- self.fallbacks['title'] = PreambleCmds.title
3125
- self.fallbacks['DUclass'] = PreambleCmds.duclass
3126
- self.out.append('\\begin{DUclass}{section%s}\n'
3127
- % roman.toRoman(level))
3128
-
3129
- # System messages heading in red:
3130
- if 'system-messages' in node.parent['classes']:
3131
- self.requirements['color'] = PreambleCmds.color
3132
- section_title = self.encode(node.astext())
3133
- self.out.append(r'\%s[%s]{\color{red}' % (
3134
- section_name, section_title))
3135
- else:
3136
- self.out.append(r'\%s{' % section_name)
3137
-
3138
- # label and ToC entry:
3139
- bookmark = ['']
3140
- # add sections with unsupported level to toc and pdfbookmarks?
3141
- ## if level > len(self.d_class.sections):
3142
- ## section_title = self.encode(node.astext())
3143
- ## bookmark.append(r'\addcontentsline{toc}{%s}{%s}' %
3144
- ## (section_name, section_title))
3145
- bookmark += self.ids_to_labels(node.parent, set_anchor=False)
3146
- self.context.append('%\n '.join(bookmark) + '%\n}\n')
3147
- if (level > len(self.d_class.sections)
3148
- and not self.settings.legacy_class_functions):
3149
- self.context[-1] += '\\end{DUclass}\n'
3150
- # MAYBE postfix paragraph and subparagraph with \leavevmode to
3151
- # ensure floats stay in the section and text starts on a new line.
3152
-
3153
- def depart_title(self, node):
3154
- self.out.append(self.context.pop())
3155
- if isinstance(node.parent, (nodes.table, nodes.document)):
3156
- self.pop_output_collector()
3157
-
3158
- def visit_contents(self, node):
3159
- """Write the table of contents.
3160
-
3161
- Called from visit_topic() for "contents" topics.
3162
- """
3163
- # requirements/setup for local ToC with package "minitoc",
3164
- if self.use_latex_toc and 'local' in node['classes']:
3165
- section_name = self.d_class.section(self.section_level)
3166
- # minitoc only supports "part" and toplevel sections
3167
- minitoc_names = {'part': 'part',
3168
- 'chapter': 'mini',
3169
- 'section': 'sect'}
3170
- if 'chapter' in self.d_class.sections:
3171
- del(minitoc_names['section'])
3172
- try:
3173
- mtc_name = minitoc_names[section_name]
3174
- except KeyError:
3175
- self.warn('Skipping local ToC at "%s" level.\n'
3176
- ' Feature not supported with option "use-latex-toc"'
3177
- % section_name, base_node=node)
3178
- raise nodes.SkipNode
3179
-
3180
- # labels and PDF bookmark (sidebar entry)
3181
- self.out.append('\n') # start new paragraph
3182
- if node['names']: # don't add labels just for auto-ids
3183
- self.out += self.ids_to_labels(node, newline=True)
3184
- if (isinstance(node.next_node(), nodes.title)
3185
- and 'local' not in node['classes']
3186
- and self.settings.documentclass != 'memoir'):
3187
- self.out.append('\\pdfbookmark[%d]{%s}{%s}\n' %
3188
- (self.section_level+1,
3189
- node.next_node().astext(),
3190
- node.get('ids', ['contents'])[0]))
3191
-
3192
- # Docutils generated contents list (no page numbers)
3193
- if not self.use_latex_toc:
3194
- self.fallbacks['toc-list'] = PreambleCmds.toc_list
3195
- self.duclass_open(node)
3196
- return
3197
-
3198
- # ToC by LaTeX
3199
- depth = node.get('depth', 0)
3200
- maxdepth = len(self.d_class.sections)
3201
- if isinstance(node.next_node(), nodes.title):
3202
- title = self.encode(node[0].astext())
3203
- else:
3204
- title = ''
3205
- if 'local' in node['classes']:
3206
- # use the "minitoc" package
3207
- self.requirements['minitoc'] = PreambleCmds.minitoc
3208
- self.requirements['minitoc-'+mtc_name] = r'\do%stoc'%mtc_name
3209
- self.requirements['minitoc-%s-depth' % mtc_name] = (
3210
- r'\mtcsetdepth{%stoc}{%d}' % (mtc_name, maxdepth))
3211
- # "depth" option: Docutils stores a relative depth while
3212
- # minitoc expects an absolute depth!:
3213
- offset = {'sect': 1, 'mini': 0, 'part': 0}
3214
- if 'chapter' in self.d_class.sections:
3215
- offset['part'] = -1
3216
- if depth:
3217
- self.out.append('\\setcounter{%stocdepth}{%d}' %
3218
- (mtc_name, depth + offset[mtc_name]))
3219
- # title:
3220
- self.out.append('\\mtcsettitle{%stoc}{%s}\n' % (mtc_name, title))
3221
- # the toc-generating command:
3222
- self.out.append('\\%stoc\n' % mtc_name)
3223
- else:
3224
- if depth:
3225
- self.out.append('\\setcounter{tocdepth}{%d}\n'
3226
- % self.d_class.latex_section_depth(depth))
3227
- if title != 'Contents':
3228
- self.out.append('\\renewcommand{\\contentsname}{%s}\n' % title)
3229
- self.out.append('\\tableofcontents\n')
3230
- self.has_latex_toc = True
3231
- # ignore rest of node content
3232
- raise nodes.SkipNode
3233
-
3234
- def visit_topic(self, node):
3235
- # Topic nodes can be generic topic, abstract, dedication, or ToC.
3236
- # table of contents:
3237
- if 'contents' in node['classes']:
3238
- self.visit_contents(node)
3239
- elif ('abstract' in node['classes']
3240
- and self.settings.use_latex_abstract):
3241
- self.push_output_collector(self.abstract)
3242
- self.out.append('\\begin{abstract}')
3243
- if isinstance(node.next_node(), nodes.title):
3244
- node.pop(0) # LaTeX provides its own title
3245
- else:
3246
- # special topics:
3247
- if 'abstract' in node['classes']:
3248
- if not self.fallback_stylesheet:
3249
- self.fallbacks['abstract'] = PreambleCmds.abstract
3250
- if self.settings.legacy_class_functions:
3251
- self.fallbacks['abstract'] = PreambleCmds.abstract_legacy
3252
- self.push_output_collector(self.abstract)
3253
- elif 'dedication' in node['classes']:
3254
- if not self.fallback_stylesheet:
3255
- self.fallbacks['dedication'] = PreambleCmds.dedication
3256
- self.push_output_collector(self.dedication)
3257
- else:
3258
- node['classes'].insert(0, 'topic')
3259
- self.visit_block_quote(node)
3260
-
3261
- def depart_topic(self, node):
3262
- if ('abstract' in node['classes']
3263
- and self.settings.use_latex_abstract):
3264
- self.out.append('\\end{abstract}\n')
3265
- elif 'contents' in node['classes']:
3266
- self.duclass_close(node)
3267
- else:
3268
- self.depart_block_quote(node)
3269
- if ('abstract' in node['classes']
3270
- or 'dedication' in node['classes']):
3271
- self.pop_output_collector()
3272
-
3273
- def visit_transition(self, node):
3274
- if not self.fallback_stylesheet:
3275
- self.fallbacks['transition'] = PreambleCmds.transition
3276
- self.out.append('\n%' + '_' * 75 + '\n')
3277
- self.out.append('\\DUtransition\n')
3278
-
3279
- def depart_transition(self, node):
3280
- pass
3281
-
3282
- def visit_version(self, node):
3283
- self.visit_docinfo_item(node, 'version')
3284
-
3285
- def depart_version(self, node):
3286
- self.depart_docinfo_item(node)
3287
-
3288
- def unimplemented_visit(self, node):
3289
- raise NotImplementedError('visiting unimplemented node type: %s' %
3290
- node.__class__.__name__)
3291
-
3292
- # def unknown_visit(self, node):
3293
- # def default_visit(self, node):
3294
-
3295
- # vim: set ts=4 et ai :