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,3468 +0,0 @@
1
- # $Id: __init__.py 9072 2022-06-15 11:31:09Z milde $
2
- # Author: Dave Kuhlman <dkuhlman@davekuhlman.org>
3
- # Copyright: This module has been placed in the public domain.
4
-
5
- """
6
- Open Document Format (ODF) Writer.
7
-
8
- This module is provisional:
9
- the API is not settled and may change with any minor Docutils version.
10
- """
11
-
12
- __docformat__ = 'reStructuredText'
13
-
14
-
15
- from configparser import ConfigParser
16
- import copy
17
- from io import StringIO
18
- import itertools
19
- import locale
20
- import os
21
- import os.path
22
- import re
23
- import subprocess
24
- import tempfile
25
- import time
26
- from urllib.request import urlopen
27
- from urllib.error import HTTPError
28
- import weakref
29
- from xml.etree import ElementTree as etree
30
- from xml.dom import minidom
31
- import zipfile
32
-
33
- import docutils
34
- from docutils import frontend, nodes, utils, writers, languages
35
- from docutils.parsers.rst.directives.images import PIL # optional
36
- from docutils.readers import standalone
37
- from docutils.transforms import references
38
-
39
- # Import pygments and odtwriter pygments formatters if possible.
40
- try:
41
- import pygments
42
- import pygments.lexers
43
- from .pygmentsformatter import (OdtPygmentsProgFormatter,
44
- OdtPygmentsLaTeXFormatter)
45
- except (ImportError, SyntaxError):
46
- pygments = None
47
-
48
- # import warnings
49
- # warnings.warn('importing IPShellEmbed', UserWarning)
50
- # from IPython.Shell import IPShellEmbed
51
- # args = ['-pdb', '-pi1', 'In <\\#>: ', '-pi2', ' .\\D.: ',
52
- # '-po', 'Out<\\#>: ', '-nosep']
53
- # ipshell = IPShellEmbed(args,
54
- # banner = 'Entering IPython. Press Ctrl-D to exit.',
55
- # exit_msg = 'Leaving Interpreter, back to program.')
56
-
57
- VERSION = '1.0a'
58
-
59
- IMAGE_NAME_COUNTER = itertools.count()
60
-
61
-
62
- #
63
- # ElementTree does not support getparent method (lxml does).
64
- # This wrapper class and the following support functions provide
65
- # that support for the ability to get the parent of an element.
66
- #
67
- _parents = weakref.WeakKeyDictionary()
68
- if isinstance(etree.Element, type):
69
- _ElementInterface = etree.Element
70
- else:
71
- _ElementInterface = etree._ElementInterface
72
-
73
-
74
- class _ElementInterfaceWrapper(_ElementInterface):
75
- def __init__(self, tag, attrib=None):
76
- _ElementInterface.__init__(self, tag, attrib)
77
- _parents[self] = None
78
-
79
- def setparent(self, parent):
80
- _parents[self] = parent
81
-
82
- def getparent(self):
83
- return _parents[self]
84
-
85
-
86
- #
87
- # Constants and globals
88
-
89
- SPACES_PATTERN = re.compile(r'( +)')
90
- TABS_PATTERN = re.compile(r'(\t+)')
91
- FILL_PAT1 = re.compile(r'^ +')
92
- FILL_PAT2 = re.compile(r' {2,}')
93
-
94
- TABLESTYLEPREFIX = 'rststyle-table-'
95
- TABLENAMEDEFAULT = '%s0' % TABLESTYLEPREFIX
96
- TABLEPROPERTYNAMES = (
97
- 'border', 'border-top', 'border-left',
98
- 'border-right', 'border-bottom', )
99
-
100
- GENERATOR_DESC = 'Docutils.org/odf_odt'
101
-
102
- NAME_SPACE_1 = 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'
103
-
104
- CONTENT_NAMESPACE_DICT = CNSD = {
105
- # 'office:version': '1.0',
106
- 'chart': 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0',
107
- 'dc': 'http://purl.org/dc/elements/1.1/',
108
- 'dom': 'http://www.w3.org/2001/xml-events',
109
- 'dr3d': 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0',
110
- 'draw': 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0',
111
- 'fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
112
- 'form': 'urn:oasis:names:tc:opendocument:xmlns:form:1.0',
113
- 'math': 'http://www.w3.org/1998/Math/MathML',
114
- 'meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
115
- 'number': 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0',
116
- 'office': NAME_SPACE_1,
117
- 'ooo': 'http://openoffice.org/2004/office',
118
- 'oooc': 'http://openoffice.org/2004/calc',
119
- 'ooow': 'http://openoffice.org/2004/writer',
120
- 'presentation': 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0',
121
-
122
- 'script': 'urn:oasis:names:tc:opendocument:xmlns:script:1.0',
123
- 'style': 'urn:oasis:names:tc:opendocument:xmlns:style:1.0',
124
- 'svg': 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0',
125
- 'table': 'urn:oasis:names:tc:opendocument:xmlns:table:1.0',
126
- 'text': 'urn:oasis:names:tc:opendocument:xmlns:text:1.0',
127
- 'xforms': 'http://www.w3.org/2002/xforms',
128
- 'xlink': 'http://www.w3.org/1999/xlink',
129
- 'xsd': 'http://www.w3.org/2001/XMLSchema',
130
- 'xsi': 'http://www.w3.org/2001/XMLSchema-instance',
131
- }
132
-
133
- STYLES_NAMESPACE_DICT = SNSD = {
134
- # 'office:version': '1.0',
135
- 'chart': 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0',
136
- 'dc': 'http://purl.org/dc/elements/1.1/',
137
- 'dom': 'http://www.w3.org/2001/xml-events',
138
- 'dr3d': 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0',
139
- 'draw': 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0',
140
- 'fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
141
- 'form': 'urn:oasis:names:tc:opendocument:xmlns:form:1.0',
142
- 'math': 'http://www.w3.org/1998/Math/MathML',
143
- 'meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
144
- 'number': 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0',
145
- 'office': NAME_SPACE_1,
146
- 'presentation': 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0',
147
- 'ooo': 'http://openoffice.org/2004/office',
148
- 'oooc': 'http://openoffice.org/2004/calc',
149
- 'ooow': 'http://openoffice.org/2004/writer',
150
- 'script': 'urn:oasis:names:tc:opendocument:xmlns:script:1.0',
151
- 'style': 'urn:oasis:names:tc:opendocument:xmlns:style:1.0',
152
- 'svg': 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0',
153
- 'table': 'urn:oasis:names:tc:opendocument:xmlns:table:1.0',
154
- 'text': 'urn:oasis:names:tc:opendocument:xmlns:text:1.0',
155
- 'xlink': 'http://www.w3.org/1999/xlink',
156
- }
157
-
158
- MANIFEST_NAMESPACE_DICT = MANNSD = {
159
- 'manifest': 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0',
160
- }
161
-
162
- META_NAMESPACE_DICT = METNSD = {
163
- # 'office:version': '1.0',
164
- 'dc': 'http://purl.org/dc/elements/1.1/',
165
- 'meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
166
- 'office': NAME_SPACE_1,
167
- 'ooo': 'http://openoffice.org/2004/office',
168
- 'xlink': 'http://www.w3.org/1999/xlink',
169
- }
170
-
171
- # Attribute dictionaries for use with ElementTree, which
172
- # does not support use of nsmap parameter on Element() and SubElement().
173
-
174
- CONTENT_NAMESPACE_ATTRIB = {
175
- # 'office:version': '1.0',
176
- 'xmlns:chart': 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0',
177
- 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',
178
- 'xmlns:dom': 'http://www.w3.org/2001/xml-events',
179
- 'xmlns:dr3d': 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0',
180
- 'xmlns:draw': 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0',
181
- 'xmlns:fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
182
- 'xmlns:form': 'urn:oasis:names:tc:opendocument:xmlns:form:1.0',
183
- 'xmlns:math': 'http://www.w3.org/1998/Math/MathML',
184
- 'xmlns:meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
185
- 'xmlns:number': 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0',
186
- 'xmlns:office': NAME_SPACE_1,
187
- 'xmlns:presentation':
188
- 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0',
189
- 'xmlns:ooo': 'http://openoffice.org/2004/office',
190
- 'xmlns:oooc': 'http://openoffice.org/2004/calc',
191
- 'xmlns:ooow': 'http://openoffice.org/2004/writer',
192
- 'xmlns:script': 'urn:oasis:names:tc:opendocument:xmlns:script:1.0',
193
- 'xmlns:style': 'urn:oasis:names:tc:opendocument:xmlns:style:1.0',
194
- 'xmlns:svg': 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0',
195
- 'xmlns:table': 'urn:oasis:names:tc:opendocument:xmlns:table:1.0',
196
- 'xmlns:text': 'urn:oasis:names:tc:opendocument:xmlns:text:1.0',
197
- 'xmlns:xforms': 'http://www.w3.org/2002/xforms',
198
- 'xmlns:xlink': 'http://www.w3.org/1999/xlink',
199
- 'xmlns:xsd': 'http://www.w3.org/2001/XMLSchema',
200
- 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
201
- }
202
-
203
- STYLES_NAMESPACE_ATTRIB = {
204
- # 'office:version': '1.0',
205
- 'xmlns:chart': 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0',
206
- 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',
207
- 'xmlns:dom': 'http://www.w3.org/2001/xml-events',
208
- 'xmlns:dr3d': 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0',
209
- 'xmlns:draw': 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0',
210
- 'xmlns:fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
211
- 'xmlns:form': 'urn:oasis:names:tc:opendocument:xmlns:form:1.0',
212
- 'xmlns:math': 'http://www.w3.org/1998/Math/MathML',
213
- 'xmlns:meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
214
- 'xmlns:number': 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0',
215
- 'xmlns:office': NAME_SPACE_1,
216
- 'xmlns:presentation':
217
- 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0',
218
- 'xmlns:ooo': 'http://openoffice.org/2004/office',
219
- 'xmlns:oooc': 'http://openoffice.org/2004/calc',
220
- 'xmlns:ooow': 'http://openoffice.org/2004/writer',
221
- 'xmlns:script': 'urn:oasis:names:tc:opendocument:xmlns:script:1.0',
222
- 'xmlns:style': 'urn:oasis:names:tc:opendocument:xmlns:style:1.0',
223
- 'xmlns:svg': 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0',
224
- 'xmlns:table': 'urn:oasis:names:tc:opendocument:xmlns:table:1.0',
225
- 'xmlns:text': 'urn:oasis:names:tc:opendocument:xmlns:text:1.0',
226
- 'xmlns:xlink': 'http://www.w3.org/1999/xlink',
227
- }
228
-
229
- MANIFEST_NAMESPACE_ATTRIB = {
230
- 'xmlns:manifest': 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0',
231
- }
232
-
233
- META_NAMESPACE_ATTRIB = {
234
- # 'office:version': '1.0',
235
- 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',
236
- 'xmlns:meta': 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
237
- 'xmlns:office': NAME_SPACE_1,
238
- 'xmlns:ooo': 'http://openoffice.org/2004/office',
239
- 'xmlns:xlink': 'http://www.w3.org/1999/xlink',
240
- }
241
-
242
-
243
- #
244
- # Functions
245
- #
246
-
247
- #
248
- # ElementTree support functions.
249
- # In order to be able to get the parent of elements, must use these
250
- # instead of the functions with same name provided by ElementTree.
251
- #
252
- def Element(tag, attrib=None, nsmap=None, nsdict=CNSD):
253
- if attrib is None:
254
- attrib = {}
255
- tag, attrib = fix_ns(tag, attrib, nsdict)
256
- return _ElementInterfaceWrapper(tag, attrib)
257
-
258
-
259
- def SubElement(parent, tag, attrib=None, nsmap=None, nsdict=CNSD):
260
- if attrib is None:
261
- attrib = {}
262
- tag, attrib = fix_ns(tag, attrib, nsdict)
263
- el = _ElementInterfaceWrapper(tag, attrib)
264
- parent.append(el)
265
- el.setparent(parent)
266
- return el
267
-
268
-
269
- def fix_ns(tag, attrib, nsdict):
270
- nstag = add_ns(tag, nsdict)
271
- nsattrib = {}
272
- for key, val in list(attrib.items()):
273
- nskey = add_ns(key, nsdict)
274
- nsattrib[nskey] = val
275
- return nstag, nsattrib
276
-
277
-
278
- def add_ns(tag, nsdict=CNSD):
279
- return tag
280
-
281
-
282
- def ToString(et):
283
- outstream = StringIO()
284
- et.write(outstream, encoding="unicode")
285
- s1 = outstream.getvalue()
286
- outstream.close()
287
- return s1
288
-
289
-
290
- def escape_cdata(text):
291
- text = text.replace("&", "&amp;")
292
- text = text.replace("<", "&lt;")
293
- text = text.replace(">", "&gt;")
294
- ascii = ''
295
- for char in text:
296
- if ord(char) >= ord("\x7f"):
297
- ascii += "&#x%X;" % (ord(char), )
298
- else:
299
- ascii += char
300
- return ascii
301
-
302
-
303
- #
304
- # Classes
305
- #
306
-
307
-
308
- class TableStyle:
309
- def __init__(self, border=None, backgroundcolor=None):
310
- self.border = border
311
- self.backgroundcolor = backgroundcolor
312
-
313
- def get_border_(self):
314
- return self.border_
315
-
316
- def set_border_(self, border):
317
- self.border_ = border
318
-
319
- border = property(get_border_, set_border_)
320
-
321
- def get_backgroundcolor_(self):
322
- return self.backgroundcolor_
323
-
324
- def set_backgroundcolor_(self, backgroundcolor):
325
- self.backgroundcolor_ = backgroundcolor
326
- backgroundcolor = property(get_backgroundcolor_, set_backgroundcolor_)
327
-
328
-
329
- BUILTIN_DEFAULT_TABLE_STYLE = TableStyle(
330
- border='0.0007in solid #000000')
331
-
332
-
333
- #
334
- # Information about the indentation level for lists nested inside
335
- # other contexts, e.g. dictionary lists.
336
- class ListLevel:
337
- def __init__(self, level, sibling_level=True, nested_level=True):
338
- self.level = level
339
- self.sibling_level = sibling_level
340
- self.nested_level = nested_level
341
-
342
- def set_sibling(self, sibling_level):
343
- self.sibling_level = sibling_level
344
-
345
- def get_sibling(self):
346
- return self.sibling_level
347
-
348
- def set_nested(self, nested_level):
349
- self.nested_level = nested_level
350
-
351
- def get_nested(self):
352
- return self.nested_level
353
-
354
- def set_level(self, level):
355
- self.level = level
356
-
357
- def get_level(self):
358
- return self.level
359
-
360
-
361
- class Writer(writers.Writer):
362
-
363
- MIME_TYPE = 'application/vnd.oasis.opendocument.text'
364
- EXTENSION = '.odt'
365
-
366
- supported = ('odt', )
367
- """Formats this writer supports."""
368
-
369
- default_stylesheet = 'styles' + EXTENSION
370
-
371
- default_stylesheet_path = utils.relative_path(
372
- os.path.join(os.getcwd(), 'dummy'),
373
- os.path.join(os.path.dirname(__file__), default_stylesheet))
374
-
375
- default_template = 'template.txt'
376
-
377
- default_template_path = utils.relative_path(
378
- os.path.join(os.getcwd(), 'dummy'),
379
- os.path.join(os.path.dirname(__file__), default_template))
380
-
381
- settings_spec = (
382
- 'ODF-Specific Options',
383
- None,
384
- (
385
- ('Specify a stylesheet. '
386
- 'Default: "%s"' % default_stylesheet_path,
387
- ['--stylesheet'],
388
- {
389
- 'default': default_stylesheet_path,
390
- 'dest': 'stylesheet'
391
- }),
392
- ('Specify a configuration/mapping file relative to the '
393
- 'current working '
394
- 'directory for additional ODF options. '
395
- 'In particular, this file may contain a section named '
396
- '"Formats" that maps default style names to '
397
- 'names to be used in the resulting output file allowing for '
398
- 'adhering to external standards. '
399
- 'For more info and the format of the '
400
- 'configuration/mapping file, '
401
- 'see the odtwriter doc.',
402
- ['--odf-config-file'],
403
- {'metavar': '<file>'}),
404
- ('Obfuscate email addresses to confuse harvesters while still '
405
- 'keeping email links usable with '
406
- 'standards-compliant browsers.',
407
- ['--cloak-email-addresses'],
408
- {'default': False,
409
- 'action': 'store_true',
410
- 'dest': 'cloak_email_addresses',
411
- 'validator': frontend.validate_boolean}),
412
- ('Do not obfuscate email addresses.',
413
- ['--no-cloak-email-addresses'],
414
- {'default': False,
415
- 'action': 'store_false',
416
- 'dest': 'cloak_email_addresses',
417
- 'validator': frontend.validate_boolean}),
418
- ('Specify the thickness of table borders in thousands of a cm. '
419
- 'Default is 35.',
420
- ['--table-border-thickness'],
421
- {'default': None,
422
- 'validator': frontend.validate_nonnegative_int}),
423
- ('Add syntax highlighting in literal code blocks.',
424
- ['--add-syntax-highlighting'],
425
- {'default': False,
426
- 'action': 'store_true',
427
- 'dest': 'add_syntax_highlighting',
428
- 'validator': frontend.validate_boolean}),
429
- ('Do not add syntax highlighting in '
430
- 'literal code blocks. (default)',
431
- ['--no-syntax-highlighting'],
432
- {'default': False,
433
- 'action': 'store_false',
434
- 'dest': 'add_syntax_highlighting',
435
- 'validator': frontend.validate_boolean}),
436
- ('Create sections for headers. (default)',
437
- ['--create-sections'],
438
- {'default': True,
439
- 'action': 'store_true',
440
- 'dest': 'create_sections',
441
- 'validator': frontend.validate_boolean}),
442
- ('Do not create sections for headers.',
443
- ['--no-sections'],
444
- {'default': True,
445
- 'action': 'store_false',
446
- 'dest': 'create_sections',
447
- 'validator': frontend.validate_boolean}),
448
- ('Create links.',
449
- ['--create-links'],
450
- {'default': False,
451
- 'action': 'store_true',
452
- 'dest': 'create_links',
453
- 'validator': frontend.validate_boolean}),
454
- ('Do not create links. (default)',
455
- ['--no-links'],
456
- {'default': False,
457
- 'action': 'store_false',
458
- 'dest': 'create_links',
459
- 'validator': frontend.validate_boolean}),
460
- ('Generate endnotes at end of document, not footnotes '
461
- 'at bottom of page.',
462
- ['--endnotes-end-doc'],
463
- {'default': False,
464
- 'action': 'store_true',
465
- 'dest': 'endnotes_end_doc',
466
- 'validator': frontend.validate_boolean}),
467
- ('Generate footnotes at bottom of page, not endnotes '
468
- 'at end of document. (default)',
469
- ['--no-endnotes-end-doc'],
470
- {'default': False,
471
- 'action': 'store_false',
472
- 'dest': 'endnotes_end_doc',
473
- 'validator': frontend.validate_boolean}),
474
- ('Generate a bullet list table of contents, not '
475
- 'an ODF/oowriter table of contents.',
476
- ['--generate-list-toc'],
477
- {'default': True,
478
- 'action': 'store_false',
479
- 'dest': 'generate_oowriter_toc',
480
- 'validator': frontend.validate_boolean}),
481
- ('Generate an ODF/oowriter table of contents, not '
482
- 'a bullet list. (default)',
483
- ['--generate-oowriter-toc'],
484
- {'default': True,
485
- 'action': 'store_true',
486
- 'dest': 'generate_oowriter_toc',
487
- 'validator': frontend.validate_boolean}),
488
- ('Specify the contents of an custom header line. '
489
- 'See odf_odt writer documentation for details '
490
- 'about special field character sequences.',
491
- ['--custom-odt-header'],
492
- {'default': '',
493
- 'dest': 'custom_header', }),
494
- ('Specify the contents of an custom footer line. '
495
- 'See odf_odt writer documentation for details '
496
- 'about special field character sequences.',
497
- ['--custom-odt-footer'],
498
- {'default': '',
499
- 'dest': 'custom_footer', }),
500
- )
501
- )
502
-
503
- settings_defaults = {
504
- 'output_encoding_error_handler': 'xmlcharrefreplace',
505
- }
506
-
507
- relative_path_settings = (
508
- 'stylesheet_path',
509
- )
510
-
511
- config_section = 'odf_odt writer'
512
- config_section_dependencies = ('writers',)
513
-
514
- def __init__(self):
515
- writers.Writer.__init__(self)
516
- self.translator_class = ODFTranslator
517
-
518
- def translate(self):
519
- self.settings = self.document.settings
520
- self.visitor = self.translator_class(self.document)
521
- self.visitor.retrieve_styles(self.EXTENSION)
522
- self.document.walkabout(self.visitor)
523
- self.visitor.add_doc_title()
524
- self.assemble_my_parts()
525
- self.output = self.parts['whole']
526
-
527
- def assemble_my_parts(self):
528
- """Assemble the `self.parts` dictionary. Extend in subclasses.
529
- """
530
- writers.Writer.assemble_parts(self)
531
- f = tempfile.NamedTemporaryFile()
532
- zfile = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
533
- self.write_zip_str(
534
- zfile, 'mimetype', self.MIME_TYPE,
535
- compress_type=zipfile.ZIP_STORED)
536
- content = self.visitor.content_astext()
537
- self.write_zip_str(zfile, 'content.xml', content)
538
- s1 = self.create_manifest()
539
- self.write_zip_str(zfile, 'META-INF/manifest.xml', s1)
540
- s1 = self.create_meta()
541
- self.write_zip_str(zfile, 'meta.xml', s1)
542
- s1 = self.get_stylesheet()
543
- # Set default language in document to be generated.
544
- # Language is specified by the -l/--language command line option.
545
- # The format is described in BCP 47. If region is omitted, we use
546
- # local.normalize(ll) to obtain a region.
547
- language_code = None
548
- region_code = None
549
- if self.visitor.language_code:
550
- language_ids = self.visitor.language_code.replace('_', '-')
551
- language_ids = language_ids.split('-')
552
- # first tag is primary language tag
553
- language_code = language_ids[0].lower()
554
- # 2-letter region subtag may follow in 2nd or 3rd position
555
- for subtag in language_ids[1:]:
556
- if len(subtag) == 2 and subtag.isalpha():
557
- region_code = subtag.upper()
558
- break
559
- elif len(subtag) == 1:
560
- break # 1-letter tag is never before valid region tag
561
- if region_code is None:
562
- try:
563
- rcode = locale.normalize(language_code)
564
- except NameError:
565
- rcode = language_code
566
- rcode = rcode.split('_')
567
- if len(rcode) > 1:
568
- rcode = rcode[1].split('.')
569
- region_code = rcode[0]
570
- if region_code is None:
571
- self.document.reporter.warning(
572
- 'invalid language-region.\n'
573
- ' Could not find region with locale.normalize().\n'
574
- ' Please specify both language and region (ll-RR).\n'
575
- ' Examples: es-MX (Spanish, Mexico),\n'
576
- ' en-AU (English, Australia).')
577
- # Update the style ElementTree with the language and region.
578
- # Note that we keep a reference to the modified node because
579
- # it is possible that ElementTree will throw away the Python
580
- # representation of the updated node if we do not.
581
- updated, new_dom_styles, updated_node = self.update_stylesheet(
582
- self.visitor.get_dom_stylesheet(), language_code, region_code)
583
- if updated:
584
- s1 = etree.tostring(new_dom_styles)
585
- self.write_zip_str(zfile, 'styles.xml', s1)
586
- self.store_embedded_files(zfile)
587
- self.copy_from_stylesheet(zfile)
588
- zfile.close()
589
- f.seek(0)
590
- whole = f.read()
591
- f.close()
592
- self.parts['whole'] = whole
593
- self.parts['encoding'] = self.document.settings.output_encoding
594
- self.parts['version'] = docutils.__version__
595
-
596
- def update_stylesheet(self, stylesheet_root, language_code, region_code):
597
- """Update xml style sheet element with language and region/country."""
598
- updated = False
599
- modified_nodes = set()
600
- if language_code is not None or region_code is not None:
601
- n1 = stylesheet_root.find(
602
- '{urn:oasis:names:tc:opendocument:xmlns:office:1.0}'
603
- 'styles')
604
- if n1 is None:
605
- raise RuntimeError(
606
- "Cannot find 'styles' element in styles.odt/styles.xml")
607
- n2_nodes = n1.findall(
608
- '{urn:oasis:names:tc:opendocument:xmlns:style:1.0}'
609
- 'default-style')
610
- if not n2_nodes:
611
- raise RuntimeError(
612
- "Cannot find 'default-style' "
613
- "element in styles.xml")
614
- for node in n2_nodes:
615
- family = node.attrib.get(
616
- '{urn:oasis:names:tc:opendocument:xmlns:style:1.0}'
617
- 'family')
618
- if family == 'paragraph' or family == 'graphic':
619
- n3 = node.find(
620
- '{urn:oasis:names:tc:opendocument:xmlns:style:1.0}'
621
- 'text-properties')
622
- if n3 is None:
623
- raise RuntimeError(
624
- "Cannot find 'text-properties' "
625
- "element in styles.xml")
626
- if language_code is not None:
627
- n3.attrib[
628
- '{urn:oasis:names:tc:opendocument:xmlns:'
629
- 'xsl-fo-compatible:1.0}language'] = language_code
630
- n3.attrib[
631
- '{urn:oasis:names:tc:opendocument:xmlns:'
632
- 'style:1.0}language-complex'] = language_code
633
- updated = True
634
- modified_nodes.add(n3)
635
- if region_code is not None:
636
- n3.attrib[
637
- '{urn:oasis:names:tc:opendocument:xmlns:'
638
- 'xsl-fo-compatible:1.0}country'] = region_code
639
- n3.attrib[
640
- '{urn:oasis:names:tc:opendocument:xmlns:'
641
- 'style:1.0}country-complex'] = region_code
642
- updated = True
643
- modified_nodes.add(n3)
644
- return updated, stylesheet_root, modified_nodes
645
-
646
- def write_zip_str(
647
- self, zfile, name, bytes, compress_type=zipfile.ZIP_DEFLATED):
648
- localtime = time.localtime(time.time())
649
- zinfo = zipfile.ZipInfo(name, localtime)
650
- # Add some standard UNIX file access permissions (-rw-r--r--).
651
- zinfo.external_attr = (0x81a4 & 0xFFFF) << 16
652
- zinfo.compress_type = compress_type
653
- zfile.writestr(zinfo, bytes)
654
-
655
- def store_embedded_files(self, zfile):
656
- embedded_files = self.visitor.get_embedded_file_list()
657
- for source, destination in embedded_files:
658
- if source is None:
659
- continue
660
- try:
661
- zfile.write(source, destination)
662
- except OSError:
663
- self.document.reporter.warning(
664
- "Can't open file %s." % (source, ))
665
-
666
- def get_settings(self):
667
- """
668
- modeled after get_stylesheet
669
- """
670
- stylespath = self.settings.stylesheet
671
- zfile = zipfile.ZipFile(stylespath, 'r')
672
- s1 = zfile.read('settings.xml')
673
- zfile.close()
674
- return s1
675
-
676
- def get_stylesheet(self):
677
- """Get the stylesheet from the visitor.
678
- Ask the visitor to setup the page.
679
- """
680
- return self.visitor.setup_page()
681
-
682
- def copy_from_stylesheet(self, outzipfile):
683
- """Copy images, settings, etc from the stylesheet doc into target doc.
684
- """
685
- stylespath = self.settings.stylesheet
686
- inzipfile = zipfile.ZipFile(stylespath, 'r')
687
- # Copy the styles.
688
- s1 = inzipfile.read('settings.xml')
689
- self.write_zip_str(outzipfile, 'settings.xml', s1)
690
- # Copy the images.
691
- namelist = inzipfile.namelist()
692
- for name in namelist:
693
- if name.startswith('Pictures/'):
694
- imageobj = inzipfile.read(name)
695
- outzipfile.writestr(name, imageobj)
696
- inzipfile.close()
697
-
698
- def assemble_parts(self):
699
- pass
700
-
701
- def create_manifest(self):
702
- root = Element(
703
- 'manifest:manifest',
704
- attrib=MANIFEST_NAMESPACE_ATTRIB,
705
- nsdict=MANIFEST_NAMESPACE_DICT,
706
- )
707
- doc = etree.ElementTree(root)
708
- SubElement(root, 'manifest:file-entry', attrib={
709
- 'manifest:media-type': self.MIME_TYPE,
710
- 'manifest:full-path': '/',
711
- }, nsdict=MANNSD)
712
- SubElement(root, 'manifest:file-entry', attrib={
713
- 'manifest:media-type': 'text/xml',
714
- 'manifest:full-path': 'content.xml',
715
- }, nsdict=MANNSD)
716
- SubElement(root, 'manifest:file-entry', attrib={
717
- 'manifest:media-type': 'text/xml',
718
- 'manifest:full-path': 'styles.xml',
719
- }, nsdict=MANNSD)
720
- SubElement(root, 'manifest:file-entry', attrib={
721
- 'manifest:media-type': 'text/xml',
722
- 'manifest:full-path': 'settings.xml',
723
- }, nsdict=MANNSD)
724
- SubElement(root, 'manifest:file-entry', attrib={
725
- 'manifest:media-type': 'text/xml',
726
- 'manifest:full-path': 'meta.xml',
727
- }, nsdict=MANNSD)
728
- s1 = ToString(doc)
729
- doc = minidom.parseString(s1)
730
- return doc.toprettyxml(' ')
731
-
732
- def create_meta(self):
733
- root = Element(
734
- 'office:document-meta',
735
- attrib=META_NAMESPACE_ATTRIB,
736
- nsdict=META_NAMESPACE_DICT,
737
- )
738
- doc = etree.ElementTree(root)
739
- root = SubElement(root, 'office:meta', nsdict=METNSD)
740
- el1 = SubElement(root, 'meta:generator', nsdict=METNSD)
741
- el1.text = 'Docutils/rst2odf.py/%s' % (VERSION, )
742
- s1 = os.environ.get('USER', '')
743
- el1 = SubElement(root, 'meta:initial-creator', nsdict=METNSD)
744
- el1.text = s1
745
- s2 = time.strftime('%Y-%m-%dT%H:%M:%S', time.localtime())
746
- el1 = SubElement(root, 'meta:creation-date', nsdict=METNSD)
747
- el1.text = s2
748
- el1 = SubElement(root, 'dc:creator', nsdict=METNSD)
749
- el1.text = s1
750
- el1 = SubElement(root, 'dc:date', nsdict=METNSD)
751
- el1.text = s2
752
- el1 = SubElement(root, 'dc:language', nsdict=METNSD)
753
- el1.text = 'en-US'
754
- el1 = SubElement(root, 'meta:editing-cycles', nsdict=METNSD)
755
- el1.text = '1'
756
- el1 = SubElement(root, 'meta:editing-duration', nsdict=METNSD)
757
- el1.text = 'PT00M01S'
758
- title = self.visitor.get_title()
759
- el1 = SubElement(root, 'dc:title', nsdict=METNSD)
760
- if title:
761
- el1.text = title
762
- else:
763
- el1.text = '[no title]'
764
- for prop, value in self.visitor.get_meta_dict().items():
765
- # 'keywords', 'description', and 'subject' have their own fields:
766
- if prop == 'keywords':
767
- keywords = re.split(', *', value)
768
- for keyword in keywords:
769
- el1 = SubElement(root, 'meta:keyword', nsdict=METNSD)
770
- el1.text = keyword
771
- elif prop == 'description':
772
- el1 = SubElement(root, 'dc:description', nsdict=METNSD)
773
- el1.text = value
774
- elif prop == 'subject':
775
- el1 = SubElement(root, 'dc:subject', nsdict=METNSD)
776
- el1.text = value
777
- else: # Store remaining properties as custom/user-defined
778
- el1 = SubElement(root, 'meta:user-defined',
779
- attrib={'meta:name': prop}, nsdict=METNSD)
780
- el1.text = value
781
- s1 = ToString(doc)
782
- # doc = minidom.parseString(s1)
783
- # s1 = doc.toprettyxml(' ')
784
- return s1
785
-
786
-
787
- # class ODFTranslator(nodes.SparseNodeVisitor):
788
- class ODFTranslator(nodes.GenericNodeVisitor):
789
-
790
- used_styles = (
791
- 'attribution', 'blockindent', 'blockquote', 'blockquote-bulletitem',
792
- 'blockquote-bulletlist', 'blockquote-enumitem', 'blockquote-enumlist',
793
- 'bulletitem', 'bulletlist',
794
- 'caption', 'legend',
795
- 'centeredtextbody', 'codeblock', 'codeblock-indented',
796
- 'codeblock-classname', 'codeblock-comment', 'codeblock-functionname',
797
- 'codeblock-keyword', 'codeblock-name', 'codeblock-number',
798
- 'codeblock-operator', 'codeblock-string', 'emphasis', 'enumitem',
799
- 'enumlist', 'epigraph', 'epigraph-bulletitem', 'epigraph-bulletlist',
800
- 'epigraph-enumitem', 'epigraph-enumlist', 'footer',
801
- 'footnote', 'citation',
802
- 'header', 'highlights', 'highlights-bulletitem',
803
- 'highlights-bulletlist', 'highlights-enumitem', 'highlights-enumlist',
804
- 'horizontalline', 'inlineliteral', 'quotation', 'rubric',
805
- 'strong', 'table-title', 'textbody', 'tocbulletlist', 'tocenumlist',
806
- 'title',
807
- 'subtitle',
808
- 'heading1',
809
- 'heading2',
810
- 'heading3',
811
- 'heading4',
812
- 'heading5',
813
- 'heading6',
814
- 'heading7',
815
- 'admon-attention-hdr',
816
- 'admon-attention-body',
817
- 'admon-caution-hdr',
818
- 'admon-caution-body',
819
- 'admon-danger-hdr',
820
- 'admon-danger-body',
821
- 'admon-error-hdr',
822
- 'admon-error-body',
823
- 'admon-generic-hdr',
824
- 'admon-generic-body',
825
- 'admon-hint-hdr',
826
- 'admon-hint-body',
827
- 'admon-important-hdr',
828
- 'admon-important-body',
829
- 'admon-note-hdr',
830
- 'admon-note-body',
831
- 'admon-tip-hdr',
832
- 'admon-tip-body',
833
- 'admon-warning-hdr',
834
- 'admon-warning-body',
835
- 'tableoption',
836
- 'tableoption.%c', 'tableoption.%c%d', 'Table%d', 'Table%d.%c',
837
- 'Table%d.%c%d',
838
- 'lineblock1',
839
- 'lineblock2',
840
- 'lineblock3',
841
- 'lineblock4',
842
- 'lineblock5',
843
- 'lineblock6',
844
- 'image', 'figureframe',
845
- )
846
-
847
- def __init__(self, document):
848
- # nodes.SparseNodeVisitor.__init__(self, document)
849
- nodes.GenericNodeVisitor.__init__(self, document)
850
- self.settings = document.settings
851
- self.language_code = self.settings.language_code
852
- self.language = languages.get_language(
853
- self.language_code,
854
- document.reporter)
855
- self.format_map = {}
856
- if self.settings.odf_config_file:
857
- parser = ConfigParser()
858
- parser.read(self.settings.odf_config_file)
859
- for rststyle, format in parser.items("Formats"):
860
- if rststyle not in self.used_styles:
861
- self.document.reporter.warning(
862
- 'Style "%s" is not a style used by odtwriter.' % (
863
- rststyle, ))
864
- self.format_map[rststyle] = format
865
- self.section_level = 0
866
- self.section_count = 0
867
- # Create ElementTree content and styles documents.
868
- root = Element(
869
- 'office:document-content',
870
- attrib=CONTENT_NAMESPACE_ATTRIB,
871
- )
872
- self.content_tree = etree.ElementTree(element=root)
873
- self.current_element = root
874
- SubElement(root, 'office:scripts')
875
- SubElement(root, 'office:font-face-decls')
876
- el = SubElement(root, 'office:automatic-styles')
877
- self.automatic_styles = el
878
- el = SubElement(root, 'office:body')
879
- el = self.generate_content_element(el)
880
- self.current_element = el
881
- self.body_text_element = el
882
- self.paragraph_style_stack = [self.rststyle('textbody'), ]
883
- self.list_style_stack = []
884
- self.table_count = 0
885
- self.column_count = ord('A') - 1
886
- self.trace_level = -1
887
- self.optiontablestyles_generated = False
888
- self.field_name = None
889
- self.field_element = None
890
- self.title = None
891
- self.image_count = 0
892
- self.image_style_count = 0
893
- self.image_dict = {}
894
- self.embedded_file_list = []
895
- self.syntaxhighlighting = 1
896
- self.syntaxhighlight_lexer = 'python'
897
- self.header_content = []
898
- self.footer_content = []
899
- self.in_header = False
900
- self.in_footer = False
901
- self.blockstyle = ''
902
- self.in_table_of_contents = False
903
- self.table_of_content_index_body = None
904
- self.list_level = 0
905
- self.def_list_level = 0
906
- self.footnote_ref_dict = {}
907
- self.footnote_list = []
908
- self.footnote_chars_idx = 0
909
- self.footnote_level = 0
910
- self.pending_ids = []
911
- self.in_paragraph = False
912
- self.found_doc_title = False
913
- self.bumped_list_level_stack = []
914
- self.meta_dict = {}
915
- self.line_block_level = 0
916
- self.line_indent_level = 0
917
- self.citation_id = None
918
- self.style_index = 0 # use to form unique style names
919
- self.str_stylesheet = ''
920
- self.str_stylesheetcontent = ''
921
- self.dom_stylesheet = None
922
- self.table_styles = None
923
- self.in_citation = False
924
-
925
- # Keep track of nested styling classes
926
- self.inline_style_count_stack = []
927
-
928
- def get_str_stylesheet(self):
929
- return self.str_stylesheet
930
-
931
- def retrieve_styles(self, extension):
932
- """Retrieve the stylesheet from either a .xml file or from
933
- a .odt (zip) file. Return the content as a string.
934
- """
935
- s2 = None
936
- stylespath = self.settings.stylesheet
937
- ext = os.path.splitext(stylespath)[1]
938
- if ext == '.xml':
939
- with open(stylespath, 'r', encoding='utf-8') as stylesfile:
940
- s1 = stylesfile.read()
941
- elif ext == extension:
942
- zfile = zipfile.ZipFile(stylespath, 'r')
943
- s1 = zfile.read('styles.xml')
944
- s2 = zfile.read('content.xml')
945
- zfile.close()
946
- else:
947
- raise RuntimeError('stylesheet path (%s) must be %s or '
948
- '.xml file' % (stylespath, extension))
949
- self.str_stylesheet = s1
950
- self.str_stylesheetcontent = s2
951
- self.dom_stylesheet = etree.fromstring(self.str_stylesheet)
952
- self.dom_stylesheetcontent = etree.fromstring(
953
- self.str_stylesheetcontent)
954
- self.table_styles = self.extract_table_styles(s2)
955
-
956
- def extract_table_styles(self, styles_str):
957
- root = etree.fromstring(styles_str)
958
- table_styles = {}
959
- auto_styles = root.find(
960
- '{%s}automatic-styles' % (CNSD['office'], ))
961
- for stylenode in auto_styles:
962
- name = stylenode.get('{%s}name' % (CNSD['style'], ))
963
- tablename = name.split('.')[0]
964
- family = stylenode.get('{%s}family' % (CNSD['style'], ))
965
- if name.startswith(TABLESTYLEPREFIX):
966
- tablestyle = table_styles.get(tablename)
967
- if tablestyle is None:
968
- tablestyle = TableStyle()
969
- table_styles[tablename] = tablestyle
970
- if family == 'table':
971
- properties = stylenode.find(
972
- '{%s}table-properties' % (CNSD['style'], ))
973
- property = properties.get(
974
- '{%s}%s' % (CNSD['fo'], 'background-color', ))
975
- if property is not None and property != 'none':
976
- tablestyle.backgroundcolor = property
977
- elif family == 'table-cell':
978
- properties = stylenode.find(
979
- '{%s}table-cell-properties' % (CNSD['style'], ))
980
- if properties is not None:
981
- border = self.get_property(properties)
982
- if border is not None:
983
- tablestyle.border = border
984
- return table_styles
985
-
986
- def get_property(self, stylenode):
987
- border = None
988
- for propertyname in TABLEPROPERTYNAMES:
989
- border = stylenode.get('{%s}%s' % (CNSD['fo'], propertyname, ))
990
- if border is not None and border != 'none':
991
- return border
992
- return border
993
-
994
- def add_doc_title(self):
995
- text = self.settings.title
996
- if text:
997
- self.title = text
998
- if not self.found_doc_title:
999
- el = Element('text:p', attrib={
1000
- 'text:style-name': self.rststyle('title'),
1001
- })
1002
- el.text = text
1003
- self.body_text_element.insert(0, el)
1004
- el = self.find_first_text_p(self.body_text_element)
1005
- if el is not None:
1006
- self.attach_page_style(el)
1007
-
1008
- def find_first_text_p(self, el):
1009
- """Search the generated doc and return the first <text:p> element.
1010
- """
1011
- if el.tag == 'text:p' or el.tag == 'text:h':
1012
- return el
1013
- else:
1014
- for child in el:
1015
- el1 = self.find_first_text_p(child)
1016
- if el1 is not None:
1017
- return el1
1018
- return None
1019
-
1020
- def attach_page_style(self, el):
1021
- """Attach the default page style.
1022
-
1023
- Create an automatic-style that refers to the current style
1024
- of this element and that refers to the default page style.
1025
- """
1026
- current_style = el.get('text:style-name')
1027
- style_name = 'P1003'
1028
- el1 = SubElement(
1029
- self.automatic_styles, 'style:style', attrib={
1030
- 'style:name': style_name,
1031
- 'style:master-page-name': "rststyle-pagedefault",
1032
- 'style:family': "paragraph",
1033
- }, nsdict=SNSD)
1034
- if current_style:
1035
- el1.set('style:parent-style-name', current_style)
1036
- el.set('text:style-name', style_name)
1037
-
1038
- def rststyle(self, name, parameters=()):
1039
- """
1040
- Returns the style name to use for the given style.
1041
-
1042
- If `parameters` is given `name` must contain a matching number of
1043
- ``%`` and is used as a format expression with `parameters` as
1044
- the value.
1045
- """
1046
- name1 = name % parameters
1047
- return self.format_map.get(name1, 'rststyle-%s' % name1)
1048
-
1049
- def generate_content_element(self, root):
1050
- return SubElement(root, 'office:text')
1051
-
1052
- def setup_page(self):
1053
- self.setup_paper(self.dom_stylesheet)
1054
- if (len(self.header_content) > 0
1055
- or len(self.footer_content) > 0
1056
- or self.settings.custom_header
1057
- or self.settings.custom_footer):
1058
- self.add_header_footer(self.dom_stylesheet)
1059
- return etree.tostring(self.dom_stylesheet)
1060
-
1061
- def get_dom_stylesheet(self):
1062
- return self.dom_stylesheet
1063
-
1064
- def setup_paper(self, root_el):
1065
- try:
1066
- dimensions = subprocess.check_output(('paperconf', '-s'),
1067
- stderr=subprocess.STDOUT)
1068
- w, h = (float(s) for s in dimensions.split())
1069
- except (subprocess.CalledProcessError, FileNotFoundError, ValueError):
1070
- self.document.reporter.info(
1071
- 'Cannot use `paperconf`, defaulting to Letter.')
1072
- w, h = 612, 792 # default to Letter
1073
-
1074
- def walk(el):
1075
- if el.tag == "{%s}page-layout-properties" % SNSD["style"] and \
1076
- "{%s}page-width" % SNSD["fo"] not in el.attrib:
1077
- el.attrib["{%s}page-width" % SNSD["fo"]] = "%.3fpt" % w
1078
- el.attrib["{%s}page-height" % SNSD["fo"]] = "%.3fpt" % h
1079
- el.attrib["{%s}margin-left" % SNSD["fo"]] = \
1080
- el.attrib["{%s}margin-right" % SNSD["fo"]] = \
1081
- "%.3fpt" % (.1 * w)
1082
- el.attrib["{%s}margin-top" % SNSD["fo"]] = \
1083
- el.attrib["{%s}margin-bottom" % SNSD["fo"]] = \
1084
- "%.3fpt" % (.1 * h)
1085
- else:
1086
- for subel in el:
1087
- walk(subel)
1088
- walk(root_el)
1089
-
1090
- def add_header_footer(self, root_el):
1091
- automatic_styles = root_el.find(
1092
- '{%s}automatic-styles' % SNSD['office'])
1093
- path = '{%s}master-styles' % (NAME_SPACE_1, )
1094
- master_el = root_el.find(path)
1095
- if master_el is None:
1096
- return
1097
- path = '{%s}master-page' % (SNSD['style'], )
1098
- master_el_container = master_el.findall(path)
1099
- master_el = None
1100
- target_attrib = '{%s}name' % (SNSD['style'], )
1101
- target_name = self.rststyle('pagedefault')
1102
- for el in master_el_container:
1103
- if el.get(target_attrib) == target_name:
1104
- master_el = el
1105
- break
1106
- if master_el is None:
1107
- return
1108
- el1 = master_el
1109
- if self.header_content or self.settings.custom_header:
1110
- el2 = SubElement(
1111
- el1, 'style:header',
1112
- attrib=STYLES_NAMESPACE_ATTRIB,
1113
- nsdict=STYLES_NAMESPACE_DICT,
1114
- )
1115
- for el in self.header_content:
1116
- attrkey = add_ns('text:style-name', nsdict=SNSD)
1117
- el.attrib[attrkey] = self.rststyle('header')
1118
- el2.append(el)
1119
- if self.settings.custom_header:
1120
- self.create_custom_headfoot(
1121
- el2,
1122
- self.settings.custom_header, 'header', automatic_styles)
1123
- if self.footer_content or self.settings.custom_footer:
1124
- el2 = SubElement(
1125
- el1, 'style:footer',
1126
- attrib=STYLES_NAMESPACE_ATTRIB,
1127
- nsdict=STYLES_NAMESPACE_DICT,
1128
- )
1129
- for el in self.footer_content:
1130
- attrkey = add_ns('text:style-name', nsdict=SNSD)
1131
- el.attrib[attrkey] = self.rststyle('footer')
1132
- el2.append(el)
1133
- if self.settings.custom_footer:
1134
- self.create_custom_headfoot(
1135
- el2,
1136
- self.settings.custom_footer, 'footer', automatic_styles)
1137
-
1138
- code_none, code_field, code_text = list(range(3))
1139
- field_pat = re.compile(r'%(..?)%')
1140
-
1141
- def create_custom_headfoot(
1142
- self, parent, text, style_name, automatic_styles):
1143
- parent = SubElement(parent, 'text:p', attrib={
1144
- 'text:style-name': self.rststyle(style_name),
1145
- })
1146
- current_element = None
1147
- field_iter = self.split_field_specifiers_iter(text)
1148
- for item in field_iter:
1149
- if item[0] == ODFTranslator.code_field:
1150
- if item[1] not in (
1151
- 'p', 'P',
1152
- 't1', 't2', 't3', 't4',
1153
- 'd1', 'd2', 'd3', 'd4', 'd5',
1154
- 's', 't', 'a'):
1155
- msg = 'bad field spec: %%%s%%' % (item[1], )
1156
- raise RuntimeError(msg)
1157
- el1 = self.make_field_element(
1158
- parent,
1159
- item[1], style_name, automatic_styles)
1160
- if el1 is None:
1161
- msg = 'bad field spec: %%%s%%' % (item[1], )
1162
- raise RuntimeError(msg)
1163
- else:
1164
- current_element = el1
1165
- else:
1166
- if current_element is None:
1167
- parent.text = item[1]
1168
- else:
1169
- current_element.tail = item[1]
1170
-
1171
- def make_field_element(self, parent, text, style_name, automatic_styles):
1172
- if text == 'p':
1173
- el1 = SubElement(parent, 'text:page-number', attrib={
1174
- # 'text:style-name': self.rststyle(style_name),
1175
- 'text:select-page': 'current',
1176
- })
1177
- elif text == 'P':
1178
- el1 = SubElement(parent, 'text:page-count', attrib={
1179
- # 'text:style-name': self.rststyle(style_name),
1180
- })
1181
- elif text == 't1':
1182
- self.style_index += 1
1183
- el1 = SubElement(parent, 'text:time', attrib={
1184
- 'text:style-name': self.rststyle(style_name),
1185
- 'text:fixed': 'true',
1186
- 'style:data-style-name':
1187
- 'rst-time-style-%d' % self.style_index,
1188
- })
1189
- el2 = SubElement(automatic_styles, 'number:time-style', attrib={
1190
- 'style:name': 'rst-time-style-%d' % self.style_index,
1191
- 'xmlns:number': SNSD['number'],
1192
- 'xmlns:style': SNSD['style'],
1193
- })
1194
- el3 = SubElement(el2, 'number:hours', attrib={
1195
- 'number:style': 'long',
1196
- })
1197
- el3 = SubElement(el2, 'number:text')
1198
- el3.text = ':'
1199
- el3 = SubElement(el2, 'number:minutes', attrib={
1200
- 'number:style': 'long',
1201
- })
1202
- elif text == 't2':
1203
- self.style_index += 1
1204
- el1 = SubElement(parent, 'text:time', attrib={
1205
- 'text:style-name': self.rststyle(style_name),
1206
- 'text:fixed': 'true',
1207
- 'style:data-style-name':
1208
- 'rst-time-style-%d' % self.style_index,
1209
- })
1210
- el2 = SubElement(automatic_styles, 'number:time-style', attrib={
1211
- 'style:name': 'rst-time-style-%d' % self.style_index,
1212
- 'xmlns:number': SNSD['number'],
1213
- 'xmlns:style': SNSD['style'],
1214
- })
1215
- el3 = SubElement(el2, 'number:hours', attrib={
1216
- 'number:style': 'long',
1217
- })
1218
- el3 = SubElement(el2, 'number:text')
1219
- el3.text = ':'
1220
- el3 = SubElement(el2, 'number:minutes', attrib={
1221
- 'number:style': 'long',
1222
- })
1223
- el3 = SubElement(el2, 'number:text')
1224
- el3.text = ':'
1225
- el3 = SubElement(el2, 'number:seconds', attrib={
1226
- 'number:style': 'long',
1227
- })
1228
- elif text == 't3':
1229
- self.style_index += 1
1230
- el1 = SubElement(parent, 'text:time', attrib={
1231
- 'text:style-name': self.rststyle(style_name),
1232
- 'text:fixed': 'true',
1233
- 'style:data-style-name':
1234
- 'rst-time-style-%d' % self.style_index,
1235
- })
1236
- el2 = SubElement(automatic_styles, 'number:time-style', attrib={
1237
- 'style:name': 'rst-time-style-%d' % self.style_index,
1238
- 'xmlns:number': SNSD['number'],
1239
- 'xmlns:style': SNSD['style'],
1240
- })
1241
- el3 = SubElement(el2, 'number:hours', attrib={
1242
- 'number:style': 'long',
1243
- })
1244
- el3 = SubElement(el2, 'number:text')
1245
- el3.text = ':'
1246
- el3 = SubElement(el2, 'number:minutes', attrib={
1247
- 'number:style': 'long',
1248
- })
1249
- el3 = SubElement(el2, 'number:text')
1250
- el3.text = ' '
1251
- el3 = SubElement(el2, 'number:am-pm')
1252
- elif text == 't4':
1253
- self.style_index += 1
1254
- el1 = SubElement(parent, 'text:time', attrib={
1255
- 'text:style-name': self.rststyle(style_name),
1256
- 'text:fixed': 'true',
1257
- 'style:data-style-name':
1258
- 'rst-time-style-%d' % self.style_index,
1259
- })
1260
- el2 = SubElement(automatic_styles, 'number:time-style', attrib={
1261
- 'style:name': 'rst-time-style-%d' % self.style_index,
1262
- 'xmlns:number': SNSD['number'],
1263
- 'xmlns:style': SNSD['style'],
1264
- })
1265
- el3 = SubElement(el2, 'number:hours', attrib={
1266
- 'number:style': 'long',
1267
- })
1268
- el3 = SubElement(el2, 'number:text')
1269
- el3.text = ':'
1270
- el3 = SubElement(el2, 'number:minutes', attrib={
1271
- 'number:style': 'long',
1272
- })
1273
- el3 = SubElement(el2, 'number:text')
1274
- el3.text = ':'
1275
- el3 = SubElement(el2, 'number:seconds', attrib={
1276
- 'number:style': 'long',
1277
- })
1278
- el3 = SubElement(el2, 'number:text')
1279
- el3.text = ' '
1280
- el3 = SubElement(el2, 'number:am-pm')
1281
- elif text == 'd1':
1282
- self.style_index += 1
1283
- el1 = SubElement(parent, 'text:date', attrib={
1284
- 'text:style-name': self.rststyle(style_name),
1285
- 'style:data-style-name':
1286
- 'rst-date-style-%d' % self.style_index,
1287
- })
1288
- el2 = SubElement(automatic_styles, 'number:date-style', attrib={
1289
- 'style:name': 'rst-date-style-%d' % self.style_index,
1290
- 'number:automatic-order': 'true',
1291
- 'xmlns:number': SNSD['number'],
1292
- 'xmlns:style': SNSD['style'],
1293
- })
1294
- el3 = SubElement(el2, 'number:month', attrib={
1295
- 'number:style': 'long',
1296
- })
1297
- el3 = SubElement(el2, 'number:text')
1298
- el3.text = '/'
1299
- el3 = SubElement(el2, 'number:day', attrib={
1300
- 'number:style': 'long',
1301
- })
1302
- el3 = SubElement(el2, 'number:text')
1303
- el3.text = '/'
1304
- el3 = SubElement(el2, 'number:year')
1305
- elif text == 'd2':
1306
- self.style_index += 1
1307
- el1 = SubElement(parent, 'text:date', attrib={
1308
- 'text:style-name': self.rststyle(style_name),
1309
- 'style:data-style-name':
1310
- 'rst-date-style-%d' % self.style_index,
1311
- })
1312
- el2 = SubElement(automatic_styles, 'number:date-style', attrib={
1313
- 'style:name': 'rst-date-style-%d' % self.style_index,
1314
- 'number:automatic-order': 'true',
1315
- 'xmlns:number': SNSD['number'],
1316
- 'xmlns:style': SNSD['style'],
1317
- })
1318
- el3 = SubElement(el2, 'number:month', attrib={
1319
- 'number:style': 'long',
1320
- })
1321
- el3 = SubElement(el2, 'number:text')
1322
- el3.text = '/'
1323
- el3 = SubElement(el2, 'number:day', attrib={
1324
- 'number:style': 'long',
1325
- })
1326
- el3 = SubElement(el2, 'number:text')
1327
- el3.text = '/'
1328
- el3 = SubElement(el2, 'number:year', attrib={
1329
- 'number:style': 'long',
1330
- })
1331
- elif text == 'd3':
1332
- self.style_index += 1
1333
- el1 = SubElement(parent, 'text:date', attrib={
1334
- 'text:style-name': self.rststyle(style_name),
1335
- 'style:data-style-name':
1336
- 'rst-date-style-%d' % self.style_index,
1337
- })
1338
- el2 = SubElement(automatic_styles, 'number:date-style', attrib={
1339
- 'style:name': 'rst-date-style-%d' % self.style_index,
1340
- 'number:automatic-order': 'true',
1341
- 'xmlns:number': SNSD['number'],
1342
- 'xmlns:style': SNSD['style'],
1343
- })
1344
- el3 = SubElement(el2, 'number:month', attrib={
1345
- 'number:textual': 'true',
1346
- })
1347
- el3 = SubElement(el2, 'number:text')
1348
- el3.text = ' '
1349
- el3 = SubElement(el2, 'number:day', attrib={})
1350
- el3 = SubElement(el2, 'number:text')
1351
- el3.text = ', '
1352
- el3 = SubElement(el2, 'number:year', attrib={
1353
- 'number:style': 'long',
1354
- })
1355
- elif text == 'd4':
1356
- self.style_index += 1
1357
- el1 = SubElement(parent, 'text:date', attrib={
1358
- 'text:style-name': self.rststyle(style_name),
1359
- 'style:data-style-name':
1360
- 'rst-date-style-%d' % self.style_index,
1361
- })
1362
- el2 = SubElement(automatic_styles, 'number:date-style', attrib={
1363
- 'style:name': 'rst-date-style-%d' % self.style_index,
1364
- 'number:automatic-order': 'true',
1365
- 'xmlns:number': SNSD['number'],
1366
- 'xmlns:style': SNSD['style'],
1367
- })
1368
- el3 = SubElement(el2, 'number:month', attrib={
1369
- 'number:textual': 'true',
1370
- 'number:style': 'long',
1371
- })
1372
- el3 = SubElement(el2, 'number:text')
1373
- el3.text = ' '
1374
- el3 = SubElement(el2, 'number:day', attrib={})
1375
- el3 = SubElement(el2, 'number:text')
1376
- el3.text = ', '
1377
- el3 = SubElement(el2, 'number:year', attrib={
1378
- 'number:style': 'long',
1379
- })
1380
- elif text == 'd5':
1381
- self.style_index += 1
1382
- el1 = SubElement(parent, 'text:date', attrib={
1383
- 'text:style-name': self.rststyle(style_name),
1384
- 'style:data-style-name':
1385
- 'rst-date-style-%d' % self.style_index,
1386
- })
1387
- el2 = SubElement(automatic_styles, 'number:date-style', attrib={
1388
- 'style:name': 'rst-date-style-%d' % self.style_index,
1389
- 'xmlns:number': SNSD['number'],
1390
- 'xmlns:style': SNSD['style'],
1391
- })
1392
- el3 = SubElement(el2, 'number:year', attrib={
1393
- 'number:style': 'long',
1394
- })
1395
- el3 = SubElement(el2, 'number:text')
1396
- el3.text = '-'
1397
- el3 = SubElement(el2, 'number:month', attrib={
1398
- 'number:style': 'long',
1399
- })
1400
- el3 = SubElement(el2, 'number:text')
1401
- el3.text = '-'
1402
- el3 = SubElement(el2, 'number:day', attrib={
1403
- 'number:style': 'long',
1404
- })
1405
- elif text == 's':
1406
- el1 = SubElement(parent, 'text:subject', attrib={
1407
- 'text:style-name': self.rststyle(style_name),
1408
- })
1409
- elif text == 't':
1410
- el1 = SubElement(parent, 'text:title', attrib={
1411
- 'text:style-name': self.rststyle(style_name),
1412
- })
1413
- elif text == 'a':
1414
- el1 = SubElement(parent, 'text:author-name', attrib={
1415
- 'text:fixed': 'false',
1416
- })
1417
- else:
1418
- el1 = None
1419
- return el1
1420
-
1421
- def split_field_specifiers_iter(self, text):
1422
- pos1 = 0
1423
- while True:
1424
- mo = ODFTranslator.field_pat.search(text, pos1)
1425
- if mo:
1426
- pos2 = mo.start()
1427
- if pos2 > pos1:
1428
- yield ODFTranslator.code_text, text[pos1:pos2]
1429
- yield ODFTranslator.code_field, mo.group(1)
1430
- pos1 = mo.end()
1431
- else:
1432
- break
1433
- trailing = text[pos1:]
1434
- if trailing:
1435
- yield ODFTranslator.code_text, trailing
1436
-
1437
- def astext(self):
1438
- root = self.content_tree.getroot()
1439
- et = etree.ElementTree(root)
1440
- return ToString(et)
1441
-
1442
- def content_astext(self):
1443
- return self.astext()
1444
-
1445
- def set_title(self, title):
1446
- self.title = title
1447
-
1448
- def get_title(self):
1449
- return self.title
1450
-
1451
- def set_embedded_file_list(self, embedded_file_list):
1452
- self.embedded_file_list = embedded_file_list
1453
-
1454
- def get_embedded_file_list(self):
1455
- return self.embedded_file_list
1456
-
1457
- def get_meta_dict(self):
1458
- return self.meta_dict
1459
-
1460
- def process_footnotes(self):
1461
- for node, el1 in self.footnote_list:
1462
- backrefs = node.attributes.get('backrefs', [])
1463
- first = True
1464
- for ref in backrefs:
1465
- el2 = self.footnote_ref_dict.get(ref)
1466
- if el2 is not None:
1467
- if first:
1468
- first = False
1469
- el3 = copy.deepcopy(el1)
1470
- el2.append(el3)
1471
- else:
1472
- if len(el2) > 0: # and 'id' in el2.attrib:
1473
- child = el2[0]
1474
- ref1 = child.text
1475
- attribkey = add_ns('text:id', nsdict=SNSD)
1476
- id1 = el2.get(attribkey, 'footnote-error')
1477
- if id1 is None:
1478
- id1 = ''
1479
- tag = add_ns('text:note-ref', nsdict=SNSD)
1480
- el2.tag = tag
1481
- if self.settings.endnotes_end_doc:
1482
- note_class = 'endnote'
1483
- else:
1484
- note_class = 'footnote'
1485
- el2.attrib.clear()
1486
- attribkey = add_ns('text:note-class', nsdict=SNSD)
1487
- el2.attrib[attribkey] = note_class
1488
- attribkey = add_ns('text:ref-name', nsdict=SNSD)
1489
- el2.attrib[attribkey] = id1
1490
- attribkey = add_ns(
1491
- 'text:reference-format', nsdict=SNSD)
1492
- el2.attrib[attribkey] = 'page'
1493
- el2.text = ref1
1494
-
1495
- #
1496
- # Utility methods
1497
-
1498
- def append_child(self, tag, attrib=None, parent=None):
1499
- if parent is None:
1500
- parent = self.current_element
1501
- return SubElement(parent, tag, attrib)
1502
-
1503
- def append_p(self, style, text=None):
1504
- result = self.append_child('text:p', attrib={
1505
- 'text:style-name': self.rststyle(style)})
1506
- self.append_pending_ids(result)
1507
- if text is not None:
1508
- result.text = text
1509
- return result
1510
-
1511
- def append_pending_ids(self, el):
1512
- if self.settings.create_links:
1513
- for id in self.pending_ids:
1514
- SubElement(el, 'text:reference-mark', attrib={
1515
- 'text:name': id})
1516
- self.pending_ids = []
1517
-
1518
- def set_current_element(self, el):
1519
- self.current_element = el
1520
-
1521
- def set_to_parent(self):
1522
- self.current_element = self.current_element.getparent()
1523
-
1524
- def generate_labeled_block(self, node, label):
1525
- label = '%s:' % (self.language.labels[label], )
1526
- el = self.append_p('textbody')
1527
- el1 = SubElement(
1528
- el, 'text:span',
1529
- attrib={'text:style-name': self.rststyle('strong')})
1530
- el1.text = label
1531
- return self.append_p('blockindent')
1532
-
1533
- def generate_labeled_line(self, node, label):
1534
- label = '%s:' % (self.language.labels[label], )
1535
- el = self.append_p('textbody')
1536
- el1 = SubElement(
1537
- el, 'text:span',
1538
- attrib={'text:style-name': self.rststyle('strong')})
1539
- el1.text = label
1540
- el1.tail = node.astext()
1541
- return el
1542
-
1543
- def encode(self, text):
1544
- return text.replace('\n', " ")
1545
-
1546
- #
1547
- # Visitor functions
1548
- #
1549
- # In alphabetic order, more or less.
1550
- # See docutils.docutils.nodes.node_class_names.
1551
- #
1552
-
1553
- def dispatch_visit(self, node):
1554
- """Override to catch basic attributes which many nodes have."""
1555
- self.handle_basic_atts(node)
1556
- nodes.GenericNodeVisitor.dispatch_visit(self, node)
1557
-
1558
- def handle_basic_atts(self, node):
1559
- if isinstance(node, nodes.Element) and node['ids']:
1560
- self.pending_ids += node['ids']
1561
-
1562
- def default_visit(self, node):
1563
- self.document.reporter.warning('missing visit_%s' % (node.tagname, ))
1564
-
1565
- def default_departure(self, node):
1566
- self.document.reporter.warning('missing depart_%s' % (node.tagname, ))
1567
-
1568
- def visit_Text(self, node):
1569
- # Skip nodes whose text has been processed in parent nodes.
1570
- if isinstance(node.parent, docutils.nodes.literal_block):
1571
- return
1572
- text = node.astext()
1573
- # Are we in mixed content? If so, add the text to the
1574
- # etree tail of the previous sibling element.
1575
- if len(self.current_element) > 0:
1576
- if self.current_element[-1].tail:
1577
- self.current_element[-1].tail += text
1578
- else:
1579
- self.current_element[-1].tail = text
1580
- else:
1581
- if self.current_element.text:
1582
- self.current_element.text += text
1583
- else:
1584
- self.current_element.text = text
1585
-
1586
- def depart_Text(self, node):
1587
- pass
1588
-
1589
- #
1590
- # Pre-defined fields
1591
- #
1592
-
1593
- def visit_address(self, node):
1594
- el = self.generate_labeled_block(node, 'address')
1595
- self.set_current_element(el)
1596
-
1597
- def depart_address(self, node):
1598
- self.set_to_parent()
1599
-
1600
- def visit_author(self, node):
1601
- if isinstance(node.parent, nodes.authors):
1602
- el = self.append_p('blockindent')
1603
- else:
1604
- el = self.generate_labeled_block(node, 'author')
1605
- self.set_current_element(el)
1606
-
1607
- def depart_author(self, node):
1608
- self.set_to_parent()
1609
-
1610
- def visit_authors(self, node):
1611
- label = '%s:' % (self.language.labels['authors'], )
1612
- el = self.append_p('textbody')
1613
- el1 = SubElement(
1614
- el, 'text:span',
1615
- attrib={'text:style-name': self.rststyle('strong')})
1616
- el1.text = label
1617
-
1618
- def depart_authors(self, node):
1619
- pass
1620
-
1621
- def visit_contact(self, node):
1622
- el = self.generate_labeled_block(node, 'contact')
1623
- self.set_current_element(el)
1624
-
1625
- def depart_contact(self, node):
1626
- self.set_to_parent()
1627
-
1628
- def visit_copyright(self, node):
1629
- el = self.generate_labeled_block(node, 'copyright')
1630
- self.set_current_element(el)
1631
-
1632
- def depart_copyright(self, node):
1633
- self.set_to_parent()
1634
-
1635
- def visit_date(self, node):
1636
- self.generate_labeled_line(node, 'date')
1637
-
1638
- def depart_date(self, node):
1639
- pass
1640
-
1641
- def visit_organization(self, node):
1642
- el = self.generate_labeled_block(node, 'organization')
1643
- self.set_current_element(el)
1644
-
1645
- def depart_organization(self, node):
1646
- self.set_to_parent()
1647
-
1648
- def visit_status(self, node):
1649
- el = self.generate_labeled_block(node, 'status')
1650
- self.set_current_element(el)
1651
-
1652
- def depart_status(self, node):
1653
- self.set_to_parent()
1654
-
1655
- def visit_revision(self, node):
1656
- self.generate_labeled_line(node, 'revision')
1657
-
1658
- def depart_revision(self, node):
1659
- pass
1660
-
1661
- def visit_version(self, node):
1662
- self.generate_labeled_line(node, 'version')
1663
- # self.set_current_element(el)
1664
-
1665
- def depart_version(self, node):
1666
- # self.set_to_parent()
1667
- pass
1668
-
1669
- def visit_attribution(self, node):
1670
- self.append_p('attribution', node.astext())
1671
-
1672
- def depart_attribution(self, node):
1673
- pass
1674
-
1675
- def visit_block_quote(self, node):
1676
- if 'epigraph' in node.attributes['classes']:
1677
- self.paragraph_style_stack.append(self.rststyle('epigraph'))
1678
- self.blockstyle = self.rststyle('epigraph')
1679
- elif 'highlights' in node.attributes['classes']:
1680
- self.paragraph_style_stack.append(self.rststyle('highlights'))
1681
- self.blockstyle = self.rststyle('highlights')
1682
- else:
1683
- self.paragraph_style_stack.append(self.rststyle('blockquote'))
1684
- self.blockstyle = self.rststyle('blockquote')
1685
- self.line_indent_level += 1
1686
-
1687
- def depart_block_quote(self, node):
1688
- self.paragraph_style_stack.pop()
1689
- self.blockstyle = ''
1690
- self.line_indent_level -= 1
1691
-
1692
- def visit_bullet_list(self, node):
1693
- self.list_level += 1
1694
- if self.in_table_of_contents:
1695
- if self.settings.generate_oowriter_toc:
1696
- pass
1697
- else:
1698
- if 'classes' in node and \
1699
- 'auto-toc' in node.attributes['classes']:
1700
- el = SubElement(self.current_element, 'text:list', attrib={
1701
- 'text:style-name': self.rststyle('tocenumlist'),
1702
- })
1703
- self.list_style_stack.append(self.rststyle('enumitem'))
1704
- else:
1705
- el = SubElement(self.current_element, 'text:list', attrib={
1706
- 'text:style-name': self.rststyle('tocbulletlist'),
1707
- })
1708
- self.list_style_stack.append(self.rststyle('bulletitem'))
1709
- self.set_current_element(el)
1710
- else:
1711
- if self.blockstyle == self.rststyle('blockquote'):
1712
- el = SubElement(self.current_element, 'text:list', attrib={
1713
- 'text:style-name': self.rststyle('blockquote-bulletlist'),
1714
- })
1715
- self.list_style_stack.append(
1716
- self.rststyle('blockquote-bulletitem'))
1717
- elif self.blockstyle == self.rststyle('highlights'):
1718
- el = SubElement(self.current_element, 'text:list', attrib={
1719
- 'text:style-name': self.rststyle('highlights-bulletlist'),
1720
- })
1721
- self.list_style_stack.append(
1722
- self.rststyle('highlights-bulletitem'))
1723
- elif self.blockstyle == self.rststyle('epigraph'):
1724
- el = SubElement(self.current_element, 'text:list', attrib={
1725
- 'text:style-name': self.rststyle('epigraph-bulletlist'),
1726
- })
1727
- self.list_style_stack.append(
1728
- self.rststyle('epigraph-bulletitem'))
1729
- else:
1730
- el = SubElement(self.current_element, 'text:list', attrib={
1731
- 'text:style-name': self.rststyle('bulletlist'),
1732
- })
1733
- self.list_style_stack.append(self.rststyle('bulletitem'))
1734
- self.set_current_element(el)
1735
-
1736
- def depart_bullet_list(self, node):
1737
- if self.in_table_of_contents:
1738
- if self.settings.generate_oowriter_toc:
1739
- pass
1740
- else:
1741
- self.set_to_parent()
1742
- self.list_style_stack.pop()
1743
- else:
1744
- self.set_to_parent()
1745
- self.list_style_stack.pop()
1746
- self.list_level -= 1
1747
-
1748
- def visit_caption(self, node):
1749
- raise nodes.SkipChildren()
1750
-
1751
- def depart_caption(self, node):
1752
- pass
1753
-
1754
- def visit_comment(self, node):
1755
- el = self.append_p('textbody')
1756
- el1 = SubElement(el, 'office:annotation', attrib={})
1757
- el2 = SubElement(el1, 'dc:creator', attrib={})
1758
- s1 = os.environ.get('USER', '')
1759
- el2.text = s1
1760
- el2 = SubElement(el1, 'text:p', attrib={})
1761
- el2.text = node.astext()
1762
-
1763
- def depart_comment(self, node):
1764
- pass
1765
-
1766
- def visit_compound(self, node):
1767
- # The compound directive currently receives no special treatment.
1768
- pass
1769
-
1770
- def depart_compound(self, node):
1771
- pass
1772
-
1773
- def visit_container(self, node):
1774
- styles = node.attributes.get('classes', ())
1775
- if len(styles) > 0:
1776
- self.paragraph_style_stack.append(self.rststyle(styles[0]))
1777
-
1778
- def depart_container(self, node):
1779
- styles = node.attributes.get('classes', ())
1780
- if len(styles) > 0:
1781
- self.paragraph_style_stack.pop()
1782
-
1783
- def visit_decoration(self, node):
1784
- pass
1785
-
1786
- def depart_decoration(self, node):
1787
- pass
1788
-
1789
- def visit_definition_list(self, node):
1790
- self.def_list_level += 1
1791
- if self.list_level > 5:
1792
- raise RuntimeError(
1793
- 'max definition list nesting level exceeded')
1794
-
1795
- def depart_definition_list(self, node):
1796
- self.def_list_level -= 1
1797
-
1798
- def visit_definition_list_item(self, node):
1799
- pass
1800
-
1801
- def depart_definition_list_item(self, node):
1802
- pass
1803
-
1804
- def visit_term(self, node):
1805
- el = self.append_p('deflist-term-%d' % self.def_list_level)
1806
- el.text = node.astext()
1807
- self.set_current_element(el)
1808
- raise nodes.SkipChildren()
1809
-
1810
- def depart_term(self, node):
1811
- self.set_to_parent()
1812
-
1813
- def visit_definition(self, node):
1814
- self.paragraph_style_stack.append(
1815
- self.rststyle('deflist-def-%d' % self.def_list_level))
1816
- self.bumped_list_level_stack.append(ListLevel(1))
1817
-
1818
- def depart_definition(self, node):
1819
- self.paragraph_style_stack.pop()
1820
- self.bumped_list_level_stack.pop()
1821
-
1822
- def visit_classifier(self, node):
1823
- if len(self.current_element) > 0:
1824
- el = self.current_element[-1]
1825
- el1 = SubElement(
1826
- el, 'text:span',
1827
- attrib={'text:style-name': self.rststyle('emphasis')})
1828
- el1.text = ' (%s)' % (node.astext(), )
1829
-
1830
- def depart_classifier(self, node):
1831
- pass
1832
-
1833
- def visit_document(self, node):
1834
- pass
1835
-
1836
- def depart_document(self, node):
1837
- self.process_footnotes()
1838
-
1839
- def visit_docinfo(self, node):
1840
- self.section_level += 1
1841
- self.section_count += 1
1842
- if self.settings.create_sections:
1843
- el = self.append_child(
1844
- 'text:section', attrib={
1845
- 'text:name': 'Section%d' % self.section_count,
1846
- 'text:style-name': 'Sect%d' % self.section_level,
1847
- }
1848
- )
1849
- self.set_current_element(el)
1850
-
1851
- def depart_docinfo(self, node):
1852
- self.section_level -= 1
1853
- if self.settings.create_sections:
1854
- self.set_to_parent()
1855
-
1856
- def visit_emphasis(self, node):
1857
- el = SubElement(
1858
- self.current_element, 'text:span',
1859
- attrib={'text:style-name': self.rststyle('emphasis')})
1860
- self.set_current_element(el)
1861
-
1862
- def depart_emphasis(self, node):
1863
- self.set_to_parent()
1864
-
1865
- def visit_enumerated_list(self, node):
1866
- el1 = self.current_element
1867
- if self.blockstyle == self.rststyle('blockquote'):
1868
- el2 = SubElement(el1, 'text:list', attrib={
1869
- 'text:style-name': self.rststyle('blockquote-enumlist'),
1870
- })
1871
- self.list_style_stack.append(self.rststyle('blockquote-enumitem'))
1872
- elif self.blockstyle == self.rststyle('highlights'):
1873
- el2 = SubElement(el1, 'text:list', attrib={
1874
- 'text:style-name': self.rststyle('highlights-enumlist'),
1875
- })
1876
- self.list_style_stack.append(self.rststyle('highlights-enumitem'))
1877
- elif self.blockstyle == self.rststyle('epigraph'):
1878
- el2 = SubElement(el1, 'text:list', attrib={
1879
- 'text:style-name': self.rststyle('epigraph-enumlist'),
1880
- })
1881
- self.list_style_stack.append(self.rststyle('epigraph-enumitem'))
1882
- else:
1883
- liststylename = 'enumlist-%s' % (node.get('enumtype', 'arabic'), )
1884
- el2 = SubElement(el1, 'text:list', attrib={
1885
- 'text:style-name': self.rststyle(liststylename),
1886
- })
1887
- self.list_style_stack.append(self.rststyle('enumitem'))
1888
- self.set_current_element(el2)
1889
-
1890
- def depart_enumerated_list(self, node):
1891
- self.set_to_parent()
1892
- self.list_style_stack.pop()
1893
-
1894
- def visit_list_item(self, node):
1895
- # If we are in a "bumped" list level, then wrap this
1896
- # list in an outer lists in order to increase the
1897
- # indentation level.
1898
- if self.in_table_of_contents:
1899
- if self.settings.generate_oowriter_toc:
1900
- self.paragraph_style_stack.append(
1901
- self.rststyle('contents-%d' % (self.list_level, )))
1902
- else:
1903
- el1 = self.append_child('text:list-item')
1904
- self.set_current_element(el1)
1905
- else:
1906
- el1 = self.append_child('text:list-item')
1907
- el3 = el1
1908
- if len(self.bumped_list_level_stack) > 0:
1909
- level_obj = self.bumped_list_level_stack[-1]
1910
- if level_obj.get_sibling():
1911
- level_obj.set_nested(False)
1912
- for level_obj1 in self.bumped_list_level_stack:
1913
- for idx in range(level_obj1.get_level()):
1914
- el2 = self.append_child('text:list', parent=el3)
1915
- el3 = self.append_child(
1916
- 'text:list-item', parent=el2)
1917
- self.paragraph_style_stack.append(self.list_style_stack[-1])
1918
- self.set_current_element(el3)
1919
-
1920
- def depart_list_item(self, node):
1921
- if self.in_table_of_contents:
1922
- if self.settings.generate_oowriter_toc:
1923
- self.paragraph_style_stack.pop()
1924
- else:
1925
- self.set_to_parent()
1926
- else:
1927
- if len(self.bumped_list_level_stack) > 0:
1928
- level_obj = self.bumped_list_level_stack[-1]
1929
- if level_obj.get_sibling():
1930
- level_obj.set_nested(True)
1931
- for level_obj1 in self.bumped_list_level_stack:
1932
- for idx in range(level_obj1.get_level()):
1933
- self.set_to_parent()
1934
- self.set_to_parent()
1935
- self.paragraph_style_stack.pop()
1936
- self.set_to_parent()
1937
-
1938
- def visit_header(self, node):
1939
- self.in_header = True
1940
-
1941
- def depart_header(self, node):
1942
- self.in_header = False
1943
-
1944
- def visit_footer(self, node):
1945
- self.in_footer = True
1946
-
1947
- def depart_footer(self, node):
1948
- self.in_footer = False
1949
-
1950
- def visit_field(self, node):
1951
- pass
1952
-
1953
- def depart_field(self, node):
1954
- pass
1955
-
1956
- def visit_field_list(self, node):
1957
- pass
1958
-
1959
- def depart_field_list(self, node):
1960
- pass
1961
-
1962
- def visit_field_name(self, node):
1963
- el = self.append_p('textbody')
1964
- el1 = SubElement(
1965
- el, 'text:span',
1966
- attrib={'text:style-name': self.rststyle('strong')})
1967
- el1.text = node.astext()
1968
-
1969
- def depart_field_name(self, node):
1970
- pass
1971
-
1972
- def visit_field_body(self, node):
1973
- self.paragraph_style_stack.append(self.rststyle('blockindent'))
1974
-
1975
- def depart_field_body(self, node):
1976
- self.paragraph_style_stack.pop()
1977
-
1978
- def visit_figure(self, node):
1979
- pass
1980
-
1981
- def depart_figure(self, node):
1982
- pass
1983
-
1984
- def visit_footnote(self, node):
1985
- self.footnote_level += 1
1986
- self.save_footnote_current = self.current_element
1987
- el1 = Element('text:note-body')
1988
- self.current_element = el1
1989
- self.footnote_list.append((node, el1))
1990
- if isinstance(node, docutils.nodes.citation):
1991
- self.paragraph_style_stack.append(self.rststyle('citation'))
1992
- else:
1993
- self.paragraph_style_stack.append(self.rststyle('footnote'))
1994
-
1995
- def depart_footnote(self, node):
1996
- self.paragraph_style_stack.pop()
1997
- self.current_element = self.save_footnote_current
1998
- self.footnote_level -= 1
1999
-
2000
- footnote_chars = [
2001
- '*', '**', '***',
2002
- '++', '+++',
2003
- '##', '###',
2004
- '@@', '@@@',
2005
- ]
2006
-
2007
- def visit_footnote_reference(self, node):
2008
- if self.footnote_level <= 0:
2009
- id = node.attributes['ids'][0]
2010
- refid = node.attributes.get('refid')
2011
- if refid is None:
2012
- refid = ''
2013
- if self.settings.endnotes_end_doc:
2014
- note_class = 'endnote'
2015
- else:
2016
- note_class = 'footnote'
2017
- el1 = self.append_child('text:note', attrib={
2018
- 'text:id': '%s' % (refid, ),
2019
- 'text:note-class': note_class,
2020
- })
2021
- note_auto = str(node.attributes.get('auto', 1))
2022
- if isinstance(node, docutils.nodes.citation_reference):
2023
- citation = '[%s]' % node.astext()
2024
- el2 = SubElement(el1, 'text:note-citation', attrib={
2025
- 'text:label': citation,
2026
- })
2027
- el2.text = citation
2028
- elif note_auto == '1':
2029
- el2 = SubElement(el1, 'text:note-citation', attrib={
2030
- 'text:label': node.astext(),
2031
- })
2032
- el2.text = node.astext()
2033
- elif note_auto == '*':
2034
- if self.footnote_chars_idx >= len(
2035
- ODFTranslator.footnote_chars):
2036
- self.footnote_chars_idx = 0
2037
- footnote_char = ODFTranslator.footnote_chars[
2038
- self.footnote_chars_idx]
2039
- self.footnote_chars_idx += 1
2040
- el2 = SubElement(el1, 'text:note-citation', attrib={
2041
- 'text:label': footnote_char,
2042
- })
2043
- el2.text = footnote_char
2044
- self.footnote_ref_dict[id] = el1
2045
- raise nodes.SkipChildren()
2046
-
2047
- def depart_footnote_reference(self, node):
2048
- pass
2049
-
2050
- def visit_citation(self, node):
2051
- self.in_citation = True
2052
- for id in node.attributes['ids']:
2053
- self.citation_id = id
2054
- break
2055
- self.paragraph_style_stack.append(self.rststyle('blockindent'))
2056
- self.bumped_list_level_stack.append(ListLevel(1))
2057
-
2058
- def depart_citation(self, node):
2059
- self.citation_id = None
2060
- self.paragraph_style_stack.pop()
2061
- self.bumped_list_level_stack.pop()
2062
- self.in_citation = False
2063
-
2064
- def visit_citation_reference(self, node):
2065
- if self.settings.create_links:
2066
- id = node.attributes['refid']
2067
- el = self.append_child('text:reference-ref', attrib={
2068
- 'text:ref-name': '%s' % (id, ),
2069
- 'text:reference-format': 'text',
2070
- })
2071
- el.text = '['
2072
- self.set_current_element(el)
2073
- elif self.current_element.text is None:
2074
- self.current_element.text = '['
2075
- else:
2076
- self.current_element.text += '['
2077
-
2078
- def depart_citation_reference(self, node):
2079
- self.current_element.text += ']'
2080
- if self.settings.create_links:
2081
- self.set_to_parent()
2082
-
2083
- def visit_label(self, node):
2084
- if isinstance(node.parent, docutils.nodes.footnote):
2085
- raise nodes.SkipChildren()
2086
- elif self.citation_id is not None:
2087
- el = self.append_p('textbody')
2088
- self.set_current_element(el)
2089
- if self.settings.create_links:
2090
- el0 = SubElement(el, 'text:span')
2091
- el0.text = '['
2092
- self.append_child('text:reference-mark-start', attrib={
2093
- 'text:name': '%s' % (self.citation_id, ),
2094
- })
2095
- else:
2096
- el.text = '['
2097
-
2098
- def depart_label(self, node):
2099
- if isinstance(node.parent, docutils.nodes.footnote):
2100
- pass
2101
- elif self.citation_id is not None:
2102
- if self.settings.create_links:
2103
- self.append_child('text:reference-mark-end', attrib={
2104
- 'text:name': '%s' % (self.citation_id, ),
2105
- })
2106
- el0 = SubElement(self.current_element, 'text:span')
2107
- el0.text = ']'
2108
- else:
2109
- self.current_element.text += ']'
2110
- self.set_to_parent()
2111
-
2112
- def visit_generated(self, node):
2113
- pass
2114
-
2115
- def depart_generated(self, node):
2116
- pass
2117
-
2118
- def check_file_exists(self, path):
2119
- if os.path.exists(path):
2120
- return 1
2121
- else:
2122
- return 0
2123
-
2124
- def visit_image(self, node):
2125
- # Capture the image file.
2126
- if 'uri' in node.attributes:
2127
- source = node.attributes['uri']
2128
- if not (source.startswith('http:') or source.startswith('https:')):
2129
- if not source.startswith(os.sep):
2130
- docsource, line = utils.get_source_line(node)
2131
- if docsource:
2132
- dirname = os.path.dirname(docsource)
2133
- if dirname:
2134
- source = '%s%s%s' % (dirname, os.sep, source, )
2135
- if not self.check_file_exists(source):
2136
- self.document.reporter.warning(
2137
- 'Cannot find image file %s.' % (source, ))
2138
- return
2139
- else:
2140
- return
2141
- if source in self.image_dict:
2142
- filename, destination = self.image_dict[source]
2143
- else:
2144
- self.image_count += 1
2145
- filename = os.path.split(source)[1]
2146
- destination = 'Pictures/1%08x%s' % (self.image_count, filename, )
2147
- if source.startswith('http:') or source.startswith('https:'):
2148
- try:
2149
- imgfile = urlopen(source)
2150
- content = imgfile.read()
2151
- imgfile.close()
2152
- imgfile2 = tempfile.NamedTemporaryFile('wb', delete=False)
2153
- imgfile2.write(content)
2154
- imgfile2.close()
2155
- imgfilename = imgfile2.name
2156
- source = imgfilename
2157
- except HTTPError:
2158
- self.document.reporter.warning(
2159
- "Can't open image url %s." % (source, ))
2160
- spec = (source, destination,)
2161
- else:
2162
- spec = (os.path.abspath(source), destination,)
2163
- self.embedded_file_list.append(spec)
2164
- self.image_dict[source] = (source, destination,)
2165
- # Is this a figure (containing an image) or just a plain image?
2166
- if self.in_paragraph:
2167
- el1 = self.current_element
2168
- else:
2169
- el1 = SubElement(
2170
- self.current_element, 'text:p',
2171
- attrib={'text:style-name': self.rststyle('textbody')})
2172
- el2 = el1
2173
- if isinstance(node.parent, docutils.nodes.figure):
2174
- el3, el4, el5, caption = self.generate_figure(
2175
- node, source,
2176
- destination, el2)
2177
- attrib = {}
2178
- el6, width = self.generate_image(
2179
- node, source, destination,
2180
- el5, attrib)
2181
- if caption is not None:
2182
- el6.tail = caption
2183
- else: # if isinstance(node.parent, docutils.nodes.image):
2184
- self.generate_image(node, source, destination, el2)
2185
-
2186
- def depart_image(self, node):
2187
- pass
2188
-
2189
- def get_image_width_height(self, node, attr):
2190
- size = None
2191
- unit = None
2192
- if attr in node.attributes:
2193
- size = node.attributes[attr]
2194
- size = size.strip()
2195
- # For conversion factors, see:
2196
- # http://www.unitconversion.org/unit_converter/typography-ex.html
2197
- try:
2198
- if size.endswith('%'):
2199
- if attr == 'height':
2200
- # Percentage allowed for width but not height.
2201
- raise ValueError('percentage not allowed for height')
2202
- size = size.rstrip(' %')
2203
- size = float(size) / 100.0
2204
- unit = '%'
2205
- else:
2206
- size, unit = self.convert_to_cm(size)
2207
- except ValueError as exp:
2208
- self.document.reporter.warning(
2209
- 'Invalid %s for image: "%s". '
2210
- 'Error: "%s".' % (
2211
- attr, node.attributes[attr], exp))
2212
- return size, unit
2213
-
2214
- def convert_to_cm(self, size):
2215
- """Convert various units to centimeters.
2216
-
2217
- Note that a call to this method should be wrapped in:
2218
- try: except ValueError:
2219
- """
2220
- size = size.strip()
2221
- if size.endswith('px'):
2222
- size = float(size[:-2]) * 0.026 # convert px to cm
2223
- elif size.endswith('in'):
2224
- size = float(size[:-2]) * 2.54 # convert in to cm
2225
- elif size.endswith('pt'):
2226
- size = float(size[:-2]) * 0.035 # convert pt to cm
2227
- elif size.endswith('pc'):
2228
- size = float(size[:-2]) * 2.371 # convert pc to cm
2229
- elif size.endswith('mm'):
2230
- size = float(size[:-2]) * 0.1 # convert mm to cm
2231
- elif size.endswith('cm'):
2232
- size = float(size[:-2])
2233
- else:
2234
- raise ValueError('unknown unit type')
2235
- unit = 'cm'
2236
- return size, unit
2237
-
2238
- def get_image_scale(self, node):
2239
- if 'scale' in node.attributes:
2240
- scale = node.attributes['scale']
2241
- try:
2242
- scale = int(scale)
2243
- except ValueError:
2244
- self.document.reporter.warning(
2245
- 'Invalid scale for image: "%s"' % (
2246
- node.attributes['scale'], ))
2247
- if scale < 1: # or scale > 100:
2248
- self.document.reporter.warning(
2249
- 'scale out of range (%s), using 1.' % (scale, ))
2250
- scale = 1
2251
- scale = scale * 0.01
2252
- else:
2253
- scale = 1.0
2254
- return scale
2255
-
2256
- def get_image_scaled_width_height(self, node, source):
2257
- """Return the image size in centimeters adjusted by image attrs."""
2258
- scale = self.get_image_scale(node)
2259
- width, width_unit = self.get_image_width_height(node, 'width')
2260
- height, _ = self.get_image_width_height(node, 'height')
2261
- dpi = (72, 72)
2262
- if PIL is not None and source in self.image_dict:
2263
- filename, destination = self.image_dict[source]
2264
- with PIL.Image.open(filename, 'r') as img:
2265
- img_size = img.size
2266
- dpi = img.info.get('dpi', dpi)
2267
- # dpi information can be (xdpi, ydpi) or xydpi
2268
- try:
2269
- iter(dpi)
2270
- except TypeError:
2271
- dpi = (dpi, dpi)
2272
- else:
2273
- img_size = None
2274
- if width is None or height is None:
2275
- if img_size is None:
2276
- raise RuntimeError(
2277
- 'image size not fully specified and PIL not installed')
2278
- if width is None:
2279
- width = img_size[0]
2280
- width = float(width) * 0.026 # convert px to cm
2281
- if height is None:
2282
- height = img_size[1]
2283
- height = float(height) * 0.026 # convert px to cm
2284
- if width_unit == '%':
2285
- factor = width
2286
- image_width = img_size[0]
2287
- image_width = float(image_width) * 0.026 # convert px to cm
2288
- image_height = img_size[1]
2289
- image_height = float(image_height) * 0.026 # convert px to cm
2290
- line_width = self.get_page_width()
2291
- width = factor * line_width
2292
- factor = (factor * line_width) / image_width
2293
- height = factor * image_height
2294
- width *= scale
2295
- height *= scale
2296
- width = '%.2fcm' % width
2297
- height = '%.2fcm' % height
2298
- return width, height
2299
-
2300
- def get_page_width(self):
2301
- """Return the document's page width in centimeters."""
2302
- root = self.get_dom_stylesheet()
2303
- nodes = root.iterfind(
2304
- './/{urn:oasis:names:tc:opendocument:xmlns:style:1.0}'
2305
- 'page-layout/'
2306
- '{urn:oasis:names:tc:opendocument:xmlns:style:1.0}'
2307
- 'page-layout-properties')
2308
- width = None
2309
- for node in nodes:
2310
- page_width = node.get(
2311
- '{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}'
2312
- 'page-width')
2313
- margin_left = node.get(
2314
- '{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}'
2315
- 'margin-left')
2316
- margin_right = node.get(
2317
- '{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}'
2318
- 'margin-right')
2319
- if (page_width is None
2320
- or margin_left is None
2321
- or margin_right is None):
2322
- continue
2323
- try:
2324
- page_width, _ = self.convert_to_cm(page_width)
2325
- margin_left, _ = self.convert_to_cm(margin_left)
2326
- margin_right, _ = self.convert_to_cm(margin_right)
2327
- except ValueError:
2328
- self.document.reporter.warning(
2329
- 'Stylesheet file contains invalid page width '
2330
- 'or margin size.')
2331
- width = page_width - margin_left - margin_right
2332
- if width is None:
2333
- # We can't find the width in styles, so we make a guess.
2334
- # Use a width of 6 in = 15.24 cm.
2335
- width = 15.24
2336
- return width
2337
-
2338
- def generate_figure(self, node, source, destination, current_element):
2339
- caption = None
2340
- width, height = self.get_image_scaled_width_height(node, source)
2341
- for node1 in node.parent.children:
2342
- if node1.tagname == 'caption':
2343
- caption = node1.astext()
2344
- self.image_style_count += 1
2345
- #
2346
- # Add the style for the caption.
2347
- if caption is not None:
2348
- attrib = {
2349
- 'style:class': 'extra',
2350
- 'style:family': 'paragraph',
2351
- 'style:name': 'Caption',
2352
- 'style:parent-style-name': 'Standard',
2353
- }
2354
- el1 = SubElement(self.automatic_styles, 'style:style',
2355
- attrib=attrib, nsdict=SNSD)
2356
- attrib = {
2357
- 'fo:margin-bottom': '0.0835in',
2358
- 'fo:margin-top': '0.0835in',
2359
- 'text:line-number': '0',
2360
- 'text:number-lines': 'false',
2361
- }
2362
- SubElement(el1, 'style:paragraph-properties',
2363
- attrib=attrib, nsdict=SNSD)
2364
- attrib = {
2365
- 'fo:font-size': '12pt',
2366
- 'fo:font-style': 'italic',
2367
- 'style:font-name': 'Times',
2368
- 'style:font-name-complex': 'Lucidasans1',
2369
- 'style:font-size-asian': '12pt',
2370
- 'style:font-size-complex': '12pt',
2371
- 'style:font-style-asian': 'italic',
2372
- 'style:font-style-complex': 'italic',
2373
- }
2374
- SubElement(el1, 'style:text-properties',
2375
- attrib=attrib, nsdict=SNSD)
2376
- style_name = 'rstframestyle%d' % self.image_style_count
2377
- draw_name = 'graphics%d' % next(IMAGE_NAME_COUNTER)
2378
- # Add the styles
2379
- attrib = {
2380
- 'style:name': style_name,
2381
- 'style:family': 'graphic',
2382
- 'style:parent-style-name': self.rststyle('figureframe'),
2383
- }
2384
- el1 = SubElement(self.automatic_styles,
2385
- 'style:style', attrib=attrib, nsdict=SNSD)
2386
- attrib = {}
2387
- wrap = False
2388
- classes = node.parent.attributes.get('classes')
2389
- if classes and 'wrap' in classes:
2390
- wrap = True
2391
- if wrap:
2392
- attrib['style:wrap'] = 'dynamic'
2393
- else:
2394
- attrib['style:wrap'] = 'none'
2395
- SubElement(el1, 'style:graphic-properties',
2396
- attrib=attrib, nsdict=SNSD)
2397
- attrib = {
2398
- 'draw:style-name': style_name,
2399
- 'draw:name': draw_name,
2400
- 'text:anchor-type': 'paragraph',
2401
- 'draw:z-index': '0',
2402
- }
2403
- attrib['svg:width'] = width
2404
- el3 = SubElement(current_element, 'draw:frame', attrib=attrib)
2405
- attrib = {}
2406
- el4 = SubElement(el3, 'draw:text-box', attrib=attrib)
2407
- attrib = {
2408
- 'text:style-name': self.rststyle('caption'),
2409
- }
2410
- el5 = SubElement(el4, 'text:p', attrib=attrib)
2411
- return el3, el4, el5, caption
2412
-
2413
- def generate_image(self, node, source, destination, current_element,
2414
- frame_attrs=None):
2415
- width, height = self.get_image_scaled_width_height(node, source)
2416
- self.image_style_count += 1
2417
- style_name = 'rstframestyle%d' % self.image_style_count
2418
- # Add the style.
2419
- attrib = {
2420
- 'style:name': style_name,
2421
- 'style:family': 'graphic',
2422
- 'style:parent-style-name': self.rststyle('image'),
2423
- }
2424
- el1 = SubElement(self.automatic_styles,
2425
- 'style:style', attrib=attrib, nsdict=SNSD)
2426
- halign = None
2427
- valign = None
2428
- if 'align' in node.attributes:
2429
- align = node.attributes['align'].split()
2430
- for val in align:
2431
- if val in ('left', 'center', 'right'):
2432
- halign = val
2433
- elif val in ('top', 'middle', 'bottom'):
2434
- valign = val
2435
- if frame_attrs is None:
2436
- attrib = {
2437
- 'style:vertical-pos': 'top',
2438
- 'style:vertical-rel': 'paragraph',
2439
- 'style:horizontal-rel': 'paragraph',
2440
- 'style:mirror': 'none',
2441
- 'fo:clip': 'rect(0cm 0cm 0cm 0cm)',
2442
- 'draw:luminance': '0%',
2443
- 'draw:contrast': '0%',
2444
- 'draw:red': '0%',
2445
- 'draw:green': '0%',
2446
- 'draw:blue': '0%',
2447
- 'draw:gamma': '100%',
2448
- 'draw:color-inversion': 'false',
2449
- 'draw:image-opacity': '100%',
2450
- 'draw:color-mode': 'standard',
2451
- }
2452
- else:
2453
- attrib = frame_attrs
2454
- if halign is not None:
2455
- attrib['style:horizontal-pos'] = halign
2456
- if valign is not None:
2457
- attrib['style:vertical-pos'] = valign
2458
- # If there is a classes/wrap directive or we are
2459
- # inside a table, add a no-wrap style.
2460
- wrap = False
2461
- classes = node.attributes.get('classes')
2462
- if classes and 'wrap' in classes:
2463
- wrap = True
2464
- if wrap:
2465
- attrib['style:wrap'] = 'dynamic'
2466
- else:
2467
- attrib['style:wrap'] = 'none'
2468
- # If we are inside a table, add a no-wrap style.
2469
- if self.is_in_table(node):
2470
- attrib['style:wrap'] = 'none'
2471
- SubElement(el1, 'style:graphic-properties',
2472
- attrib=attrib, nsdict=SNSD)
2473
- draw_name = 'graphics%d' % next(IMAGE_NAME_COUNTER)
2474
- # Add the content.
2475
- # el = SubElement(current_element, 'text:p',
2476
- # attrib={'text:style-name': self.rststyle('textbody')})
2477
- attrib = {
2478
- 'draw:style-name': style_name,
2479
- 'draw:name': draw_name,
2480
- 'draw:z-index': '1',
2481
- }
2482
- if isinstance(node.parent, nodes.TextElement):
2483
- attrib['text:anchor-type'] = 'as-char' # vds
2484
- else:
2485
- attrib['text:anchor-type'] = 'paragraph'
2486
- attrib['svg:width'] = width
2487
- attrib['svg:height'] = height
2488
- el1 = SubElement(current_element, 'draw:frame', attrib=attrib)
2489
- SubElement(el1, 'draw:image', attrib={
2490
- 'xlink:href': '%s' % (destination, ),
2491
- 'xlink:type': 'simple',
2492
- 'xlink:show': 'embed',
2493
- 'xlink:actuate': 'onLoad',
2494
- })
2495
- return el1, width
2496
-
2497
- def is_in_table(self, node):
2498
- node1 = node.parent
2499
- while node1:
2500
- if isinstance(node1, docutils.nodes.entry):
2501
- return True
2502
- node1 = node1.parent
2503
- return False
2504
-
2505
- def visit_legend(self, node):
2506
- if isinstance(node.parent, docutils.nodes.figure):
2507
- el1 = self.current_element[-1]
2508
- el1 = el1[0][0]
2509
- self.current_element = el1
2510
- self.paragraph_style_stack.append(self.rststyle('legend'))
2511
-
2512
- def depart_legend(self, node):
2513
- if isinstance(node.parent, docutils.nodes.figure):
2514
- self.paragraph_style_stack.pop()
2515
- self.set_to_parent()
2516
- self.set_to_parent()
2517
- self.set_to_parent()
2518
-
2519
- def visit_line_block(self, node):
2520
- self.line_indent_level += 1
2521
- self.line_block_level += 1
2522
-
2523
- def depart_line_block(self, node):
2524
- self.line_indent_level -= 1
2525
- self.line_block_level -= 1
2526
-
2527
- def visit_line(self, node):
2528
- style = 'lineblock%d' % self.line_indent_level
2529
- el1 = SubElement(self.current_element, 'text:p',
2530
- attrib={'text:style-name': self.rststyle(style), })
2531
- self.current_element = el1
2532
-
2533
- def depart_line(self, node):
2534
- self.set_to_parent()
2535
-
2536
- def visit_literal(self, node):
2537
- el = SubElement(
2538
- self.current_element, 'text:span',
2539
- attrib={'text:style-name': self.rststyle('inlineliteral')})
2540
- self.set_current_element(el)
2541
-
2542
- def depart_literal(self, node):
2543
- self.set_to_parent()
2544
-
2545
- def visit_inline(self, node):
2546
- styles = node.attributes.get('classes', ())
2547
- if styles:
2548
- el = self.current_element
2549
- for inline_style in styles:
2550
- el = SubElement(el, 'text:span',
2551
- attrib={'text:style-name':
2552
- self.rststyle(inline_style)})
2553
- count = len(styles)
2554
- else:
2555
- # No style was specified so use a default style (old code
2556
- # crashed if no style was given)
2557
- el = SubElement(self.current_element, 'text:span')
2558
- count = 1
2559
-
2560
- self.set_current_element(el)
2561
- self.inline_style_count_stack.append(count)
2562
-
2563
- def depart_inline(self, node):
2564
- count = self.inline_style_count_stack.pop()
2565
- for x in range(count):
2566
- self.set_to_parent()
2567
-
2568
- def _calculate_code_block_padding(self, line):
2569
- count = 0
2570
- matchobj = SPACES_PATTERN.match(line)
2571
- if matchobj:
2572
- pad = matchobj.group()
2573
- count = len(pad)
2574
- else:
2575
- matchobj = TABS_PATTERN.match(line)
2576
- if matchobj:
2577
- pad = matchobj.group()
2578
- count = len(pad) * 8
2579
- return count
2580
-
2581
- def _add_syntax_highlighting(self, insource, language):
2582
- lexer = pygments.lexers.get_lexer_by_name(language, stripall=True)
2583
- if language in ('latex', 'tex'):
2584
- fmtr = OdtPygmentsLaTeXFormatter(
2585
- lambda name, parameters=():
2586
- self.rststyle(name, parameters),
2587
- escape_function=escape_cdata)
2588
- else:
2589
- fmtr = OdtPygmentsProgFormatter(
2590
- lambda name, parameters=():
2591
- self.rststyle(name, parameters),
2592
- escape_function=escape_cdata)
2593
- return pygments.highlight(insource, lexer, fmtr)
2594
-
2595
- def fill_line(self, line):
2596
- line = FILL_PAT1.sub(self.fill_func1, line)
2597
- return FILL_PAT2.sub(self.fill_func2, line)
2598
-
2599
- def fill_func1(self, matchobj):
2600
- spaces = matchobj.group(0)
2601
- return '<text:s text:c="%d"/>' % (len(spaces), )
2602
-
2603
- def fill_func2(self, matchobj):
2604
- spaces = matchobj.group(0)
2605
- return ' <text:s text:c="%d"/>' % (len(spaces) - 1, )
2606
-
2607
- def visit_literal_block(self, node):
2608
- if len(self.paragraph_style_stack) > 1:
2609
- wrapper1 = '<text:p text:style-name="%s">%%s</text:p>' % (
2610
- self.rststyle('codeblock-indented'), )
2611
- else:
2612
- wrapper1 = '<text:p text:style-name="%s">%%s</text:p>' % (
2613
- self.rststyle('codeblock'), )
2614
- source = node.astext()
2615
- if (pygments and self.settings.add_syntax_highlighting):
2616
- language = node.get('language', 'python')
2617
- source = self._add_syntax_highlighting(source, language)
2618
- else:
2619
- source = escape_cdata(source)
2620
- lines = source.split('\n')
2621
- # If there is an empty last line, remove it.
2622
- if lines[-1] == '':
2623
- del lines[-1]
2624
- lines1 = ['<wrappertag1 xmlns:text="urn:oasis:names:tc:'
2625
- 'opendocument:xmlns:text:1.0">']
2626
- my_lines = []
2627
- for my_line in lines:
2628
- my_line = self.fill_line(my_line)
2629
- my_line = my_line.replace("&#10;", "\n")
2630
- my_lines.append(my_line)
2631
- my_lines_str = '<text:line-break/>'.join(my_lines)
2632
- my_lines_str2 = wrapper1 % (my_lines_str, )
2633
- lines1.append(my_lines_str2)
2634
- lines1.append('</wrappertag1>')
2635
- s1 = ''.join(lines1)
2636
- s1 = s1.encode("utf-8")
2637
- el1 = etree.fromstring(s1)
2638
- for child in el1:
2639
- self.current_element.append(child)
2640
-
2641
- def depart_literal_block(self, node):
2642
- pass
2643
-
2644
- visit_doctest_block = visit_literal_block
2645
- depart_doctest_block = depart_literal_block
2646
-
2647
- # placeholder for math (see docs/dev/todo.txt)
2648
- def visit_math(self, node):
2649
- self.document.reporter.warning('"math" role not supported',
2650
- base_node=node)
2651
- self.visit_literal(node)
2652
-
2653
- def depart_math(self, node):
2654
- self.depart_literal(node)
2655
-
2656
- def visit_math_block(self, node):
2657
- self.document.reporter.warning('"math" directive not supported',
2658
- base_node=node)
2659
- self.visit_literal_block(node)
2660
-
2661
- def depart_math_block(self, node):
2662
- self.depart_literal_block(node)
2663
-
2664
- def visit_meta(self, node):
2665
- name = node.attributes.get('name')
2666
- content = node.attributes.get('content')
2667
- if name is not None and content is not None:
2668
- self.meta_dict[name] = content
2669
-
2670
- def depart_meta(self, node):
2671
- pass
2672
-
2673
- def visit_option_list(self, node):
2674
- table_name = 'tableoption'
2675
- #
2676
- # Generate automatic styles
2677
- if not self.optiontablestyles_generated:
2678
- self.optiontablestyles_generated = True
2679
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2680
- 'style:name': self.rststyle(table_name),
2681
- 'style:family': 'table'}, nsdict=SNSD)
2682
- el1 = SubElement(el, 'style:table-properties', attrib={
2683
- 'style:width': '17.59cm',
2684
- 'table:align': 'left',
2685
- 'style:shadow': 'none'}, nsdict=SNSD)
2686
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2687
- 'style:name': self.rststyle('%s.%%c' % table_name, ('A', )),
2688
- 'style:family': 'table-column'}, nsdict=SNSD)
2689
- el1 = SubElement(el, 'style:table-column-properties', attrib={
2690
- 'style:column-width': '4.999cm'}, nsdict=SNSD)
2691
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2692
- 'style:name': self.rststyle('%s.%%c' % table_name, ('B', )),
2693
- 'style:family': 'table-column'}, nsdict=SNSD)
2694
- el1 = SubElement(el, 'style:table-column-properties', attrib={
2695
- 'style:column-width': '12.587cm'}, nsdict=SNSD)
2696
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2697
- 'style:name': self.rststyle(
2698
- '%s.%%c%%d' % table_name, ('A', 1, )),
2699
- 'style:family': 'table-cell'}, nsdict=SNSD)
2700
- el1 = SubElement(el, 'style:table-cell-properties', attrib={
2701
- 'fo:background-color': 'transparent',
2702
- 'fo:padding': '0.097cm',
2703
- 'fo:border-left': '0.035cm solid #000000',
2704
- 'fo:border-right': 'none',
2705
- 'fo:border-top': '0.035cm solid #000000',
2706
- 'fo:border-bottom': '0.035cm solid #000000'}, nsdict=SNSD)
2707
- el2 = SubElement(el1, 'style:background-image', nsdict=SNSD)
2708
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2709
- 'style:name': self.rststyle(
2710
- '%s.%%c%%d' % table_name, ('B', 1, )),
2711
- 'style:family': 'table-cell'}, nsdict=SNSD)
2712
- el1 = SubElement(el, 'style:table-cell-properties', attrib={
2713
- 'fo:padding': '0.097cm',
2714
- 'fo:border': '0.035cm solid #000000'}, nsdict=SNSD)
2715
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2716
- 'style:name': self.rststyle(
2717
- '%s.%%c%%d' % table_name, ('A', 2, )),
2718
- 'style:family': 'table-cell'}, nsdict=SNSD)
2719
- el1 = SubElement(el, 'style:table-cell-properties', attrib={
2720
- 'fo:padding': '0.097cm',
2721
- 'fo:border-left': '0.035cm solid #000000',
2722
- 'fo:border-right': 'none',
2723
- 'fo:border-top': 'none',
2724
- 'fo:border-bottom': '0.035cm solid #000000'}, nsdict=SNSD)
2725
- el = SubElement(self.automatic_styles, 'style:style', attrib={
2726
- 'style:name': self.rststyle(
2727
- '%s.%%c%%d' % table_name, ('B', 2, )),
2728
- 'style:family': 'table-cell'}, nsdict=SNSD)
2729
- el1 = SubElement(el, 'style:table-cell-properties', attrib={
2730
- 'fo:padding': '0.097cm',
2731
- 'fo:border-left': '0.035cm solid #000000',
2732
- 'fo:border-right': '0.035cm solid #000000',
2733
- 'fo:border-top': 'none',
2734
- 'fo:border-bottom': '0.035cm solid #000000'}, nsdict=SNSD)
2735
- #
2736
- # Generate table data
2737
- el = self.append_child('table:table', attrib={
2738
- 'table:name': self.rststyle(table_name),
2739
- 'table:style-name': self.rststyle(table_name),
2740
- })
2741
- el1 = SubElement(el, 'table:table-column', attrib={
2742
- 'table:style-name': self.rststyle(
2743
- '%s.%%c' % table_name, ('A', ))})
2744
- el1 = SubElement(el, 'table:table-column', attrib={
2745
- 'table:style-name': self.rststyle(
2746
- '%s.%%c' % table_name, ('B', ))})
2747
- el1 = SubElement(el, 'table:table-header-rows')
2748
- el2 = SubElement(el1, 'table:table-row')
2749
- el3 = SubElement(el2, 'table:table-cell', attrib={
2750
- 'table:style-name': self.rststyle(
2751
- '%s.%%c%%d' % table_name, ('A', 1, )),
2752
- 'office:value-type': 'string'})
2753
- el4 = SubElement(el3, 'text:p', attrib={
2754
- 'text:style-name': 'Table_20_Heading'})
2755
- el4.text = 'Option'
2756
- el3 = SubElement(el2, 'table:table-cell', attrib={
2757
- 'table:style-name': self.rststyle(
2758
- '%s.%%c%%d' % table_name, ('B', 1, )),
2759
- 'office:value-type': 'string'})
2760
- el4 = SubElement(el3, 'text:p', attrib={
2761
- 'text:style-name': 'Table_20_Heading'})
2762
- el4.text = 'Description'
2763
- self.set_current_element(el)
2764
-
2765
- def depart_option_list(self, node):
2766
- self.set_to_parent()
2767
-
2768
- def visit_option_list_item(self, node):
2769
- el = self.append_child('table:table-row')
2770
- self.set_current_element(el)
2771
-
2772
- def depart_option_list_item(self, node):
2773
- self.set_to_parent()
2774
-
2775
- def visit_option_group(self, node):
2776
- el = self.append_child('table:table-cell', attrib={
2777
- 'table:style-name': 'Table%d.A2' % self.table_count,
2778
- 'office:value-type': 'string',
2779
- })
2780
- self.set_current_element(el)
2781
-
2782
- def depart_option_group(self, node):
2783
- self.set_to_parent()
2784
-
2785
- def visit_option(self, node):
2786
- el = self.append_child('text:p', attrib={
2787
- 'text:style-name': 'Table_20_Contents'})
2788
- el.text = node.astext()
2789
-
2790
- def depart_option(self, node):
2791
- pass
2792
-
2793
- def visit_option_string(self, node):
2794
- pass
2795
-
2796
- def depart_option_string(self, node):
2797
- pass
2798
-
2799
- def visit_option_argument(self, node):
2800
- pass
2801
-
2802
- def depart_option_argument(self, node):
2803
- pass
2804
-
2805
- def visit_description(self, node):
2806
- el = self.append_child('table:table-cell', attrib={
2807
- 'table:style-name': 'Table%d.B2' % self.table_count,
2808
- 'office:value-type': 'string',
2809
- })
2810
- el1 = SubElement(el, 'text:p', attrib={
2811
- 'text:style-name': 'Table_20_Contents'})
2812
- el1.text = node.astext()
2813
- raise nodes.SkipChildren()
2814
-
2815
- def depart_description(self, node):
2816
- pass
2817
-
2818
- def visit_paragraph(self, node):
2819
- self.in_paragraph = True
2820
- if self.in_header:
2821
- el = self.append_p('header')
2822
- elif self.in_footer:
2823
- el = self.append_p('footer')
2824
- else:
2825
- style_name = self.paragraph_style_stack[-1]
2826
- el = self.append_child(
2827
- 'text:p',
2828
- attrib={'text:style-name': style_name})
2829
- self.append_pending_ids(el)
2830
- self.set_current_element(el)
2831
-
2832
- def depart_paragraph(self, node):
2833
- self.in_paragraph = False
2834
- self.set_to_parent()
2835
- if self.in_header:
2836
- self.header_content.append(self.current_element[-1])
2837
- self.current_element.remove(self.current_element[-1])
2838
- elif self.in_footer:
2839
- self.footer_content.append(self.current_element[-1])
2840
- self.current_element.remove(self.current_element[-1])
2841
-
2842
- def visit_problematic(self, node):
2843
- pass
2844
-
2845
- def depart_problematic(self, node):
2846
- pass
2847
-
2848
- def visit_raw(self, node):
2849
- if 'format' in node.attributes:
2850
- formats = node.attributes['format']
2851
- formatlist = formats.split()
2852
- if 'odt' in formatlist:
2853
- rawstr = node.astext()
2854
- attrstr = ' '.join(
2855
- '%s="%s"' % (k, v, )
2856
- for k, v in list(CONTENT_NAMESPACE_ATTRIB.items()))
2857
- contentstr = '<stuff %s>%s</stuff>' % (attrstr, rawstr, )
2858
- contentstr = contentstr.encode("utf-8")
2859
- content = etree.fromstring(contentstr)
2860
- if len(content) > 0:
2861
- el1 = content[0]
2862
- if self.in_header:
2863
- pass
2864
- elif self.in_footer:
2865
- pass
2866
- else:
2867
- self.current_element.append(el1)
2868
- raise nodes.SkipChildren()
2869
-
2870
- def depart_raw(self, node):
2871
- if self.in_header:
2872
- pass
2873
- elif self.in_footer:
2874
- pass
2875
- else:
2876
- pass
2877
-
2878
- def visit_reference(self, node):
2879
- # text = node.astext()
2880
- if self.settings.create_links:
2881
- if 'refuri' in node:
2882
- href = node['refuri']
2883
- if (self.settings.cloak_email_addresses
2884
- and href.startswith('mailto:')):
2885
- href = self.cloak_mailto(href)
2886
- el = self.append_child('text:a', attrib={
2887
- 'xlink:href': '%s' % href,
2888
- 'xlink:type': 'simple',
2889
- })
2890
- self.set_current_element(el)
2891
- elif 'refid' in node:
2892
- if self.settings.create_links:
2893
- href = node['refid']
2894
- el = self.append_child('text:reference-ref', attrib={
2895
- 'text:ref-name': '%s' % href,
2896
- 'text:reference-format': 'text',
2897
- })
2898
- else:
2899
- self.document.reporter.warning(
2900
- 'References must have "refuri" or "refid" attribute.')
2901
- if (self.in_table_of_contents
2902
- and len(node.children) >= 1
2903
- and isinstance(node.children[0], docutils.nodes.generated)):
2904
- node.remove(node.children[0])
2905
-
2906
- def depart_reference(self, node):
2907
- if self.settings.create_links:
2908
- if 'refuri' in node:
2909
- self.set_to_parent()
2910
-
2911
- def visit_rubric(self, node):
2912
- style_name = self.rststyle('rubric')
2913
- classes = node.get('classes')
2914
- if classes:
2915
- class1 = classes[0]
2916
- if class1:
2917
- style_name = class1
2918
- el = SubElement(self.current_element, 'text:h', attrib={
2919
- # 'text:outline-level': '%d' % section_level,
2920
- # 'text:style-name': 'Heading_20_%d' % section_level,
2921
- 'text:style-name': style_name,
2922
- })
2923
- text = node.astext()
2924
- el.text = self.encode(text)
2925
-
2926
- def depart_rubric(self, node):
2927
- pass
2928
-
2929
- def visit_section(self, node, move_ids=1):
2930
- self.section_level += 1
2931
- self.section_count += 1
2932
- if self.settings.create_sections:
2933
- el = self.append_child('text:section', attrib={
2934
- 'text:name': 'Section%d' % self.section_count,
2935
- 'text:style-name': 'Sect%d' % self.section_level,
2936
- })
2937
- self.set_current_element(el)
2938
-
2939
- def depart_section(self, node):
2940
- self.section_level -= 1
2941
- if self.settings.create_sections:
2942
- self.set_to_parent()
2943
-
2944
- def visit_strong(self, node):
2945
- el = SubElement(self.current_element, 'text:span',
2946
- attrib={'text:style-name': self.rststyle('strong')})
2947
- self.set_current_element(el)
2948
-
2949
- def depart_strong(self, node):
2950
- self.set_to_parent()
2951
-
2952
- def visit_substitution_definition(self, node):
2953
- raise nodes.SkipChildren()
2954
-
2955
- def depart_substitution_definition(self, node):
2956
- pass
2957
-
2958
- def visit_system_message(self, node):
2959
- pass
2960
-
2961
- def depart_system_message(self, node):
2962
- pass
2963
-
2964
- def get_table_style(self, node):
2965
- table_style = None
2966
- table_name = None
2967
- str_classes = node.get('classes')
2968
- if str_classes is not None:
2969
- for str_class in str_classes:
2970
- if str_class.startswith(TABLESTYLEPREFIX):
2971
- table_name = str_class
2972
- break
2973
- if table_name is not None:
2974
- table_style = self.table_styles.get(table_name)
2975
- if table_style is None:
2976
- # If we can't find the table style, issue warning
2977
- # and use the default table style.
2978
- self.document.reporter.warning(
2979
- 'Can\'t find table style "%s". Using default.' % (
2980
- table_name, ))
2981
- table_name = TABLENAMEDEFAULT
2982
- table_style = self.table_styles.get(table_name)
2983
- if table_style is None:
2984
- # If we can't find the default table style, issue a warning
2985
- # and use a built-in default style.
2986
- self.document.reporter.warning(
2987
- 'Can\'t find default table style "%s". '
2988
- 'Using built-in default.' % (
2989
- table_name, ))
2990
- table_style = BUILTIN_DEFAULT_TABLE_STYLE
2991
- else:
2992
- table_name = TABLENAMEDEFAULT
2993
- table_style = self.table_styles.get(table_name)
2994
- if table_style is None:
2995
- # If we can't find the default table style, issue a warning
2996
- # and use a built-in default style.
2997
- self.document.reporter.warning(
2998
- 'Can\'t find default table style "%s". '
2999
- 'Using built-in default.' % (
3000
- table_name, ))
3001
- table_style = BUILTIN_DEFAULT_TABLE_STYLE
3002
- return table_style
3003
-
3004
- def visit_table(self, node):
3005
- self.table_count += 1
3006
- table_style = self.get_table_style(node)
3007
- table_name = '%s%%d' % TABLESTYLEPREFIX
3008
- el1 = SubElement(self.automatic_styles, 'style:style', attrib={
3009
- 'style:name': self.rststyle(
3010
- '%s' % table_name, (self.table_count, )),
3011
- 'style:family': 'table',
3012
- }, nsdict=SNSD)
3013
- if table_style.backgroundcolor is None:
3014
- SubElement(el1, 'style:table-properties', attrib={
3015
- # 'style:width': '17.59cm',
3016
- # 'table:align': 'margins',
3017
- 'table:align': 'left',
3018
- 'fo:margin-top': '0in',
3019
- 'fo:margin-bottom': '0.10in',
3020
- }, nsdict=SNSD)
3021
- else:
3022
- SubElement(el1, 'style:table-properties', attrib={
3023
- # 'style:width': '17.59cm',
3024
- 'table:align': 'margins',
3025
- 'fo:margin-top': '0in',
3026
- 'fo:margin-bottom': '0.10in',
3027
- 'fo:background-color': table_style.backgroundcolor,
3028
- }, nsdict=SNSD)
3029
- # We use a single cell style for all cells in this table.
3030
- # That's probably not correct, but seems to work.
3031
- el2 = SubElement(self.automatic_styles, 'style:style', attrib={
3032
- 'style:name': self.rststyle(
3033
- '%s.%%c%%d' % table_name, (self.table_count, 'A', 1, )),
3034
- 'style:family': 'table-cell',
3035
- }, nsdict=SNSD)
3036
- thickness = self.settings.table_border_thickness
3037
- if thickness is None:
3038
- line_style1 = table_style.border
3039
- else:
3040
- line_style1 = '0.%03dcm solid #000000' % (thickness, )
3041
- SubElement(el2, 'style:table-cell-properties', attrib={
3042
- 'fo:padding': '0.049cm',
3043
- 'fo:border-left': line_style1,
3044
- 'fo:border-right': line_style1,
3045
- 'fo:border-top': line_style1,
3046
- 'fo:border-bottom': line_style1,
3047
- }, nsdict=SNSD)
3048
- title = None
3049
- for child in node.children:
3050
- if child.tagname == 'title':
3051
- title = child.astext()
3052
- break
3053
- if title is not None:
3054
- self.append_p('table-title', title)
3055
- else:
3056
- pass
3057
- el4 = SubElement(self.current_element, 'table:table', attrib={
3058
- 'table:name': self.rststyle(
3059
- '%s' % table_name, (self.table_count, )),
3060
- 'table:style-name': self.rststyle(
3061
- '%s' % table_name, (self.table_count, )),
3062
- })
3063
- self.set_current_element(el4)
3064
- self.current_table_style = el1
3065
- self.table_width = 0.0
3066
-
3067
- def depart_table(self, node):
3068
- attribkey = add_ns('style:width', nsdict=SNSD)
3069
- attribval = '%.4fin' % (self.table_width, )
3070
- el1 = self.current_table_style
3071
- el2 = el1[0]
3072
- el2.attrib[attribkey] = attribval
3073
- self.set_to_parent()
3074
-
3075
- def visit_tgroup(self, node):
3076
- self.column_count = ord('A') - 1
3077
-
3078
- def depart_tgroup(self, node):
3079
- pass
3080
-
3081
- def visit_colspec(self, node):
3082
- self.column_count += 1
3083
- colspec_name = self.rststyle(
3084
- '%s%%d.%%s' % TABLESTYLEPREFIX,
3085
- (self.table_count, chr(self.column_count), )
3086
- )
3087
- colwidth = node['colwidth'] / 12.0
3088
- el1 = SubElement(self.automatic_styles, 'style:style', attrib={
3089
- 'style:name': colspec_name,
3090
- 'style:family': 'table-column',
3091
- }, nsdict=SNSD)
3092
- SubElement(el1, 'style:table-column-properties',
3093
- attrib={'style:column-width': '%.4fin' % colwidth},
3094
- nsdict=SNSD)
3095
- self.append_child('table:table-column',
3096
- attrib={'table:style-name': colspec_name, })
3097
- self.table_width += colwidth
3098
-
3099
- def depart_colspec(self, node):
3100
- pass
3101
-
3102
- def visit_thead(self, node):
3103
- el = self.append_child('table:table-header-rows')
3104
- self.set_current_element(el)
3105
- self.in_thead = True
3106
- self.paragraph_style_stack.append('Table_20_Heading')
3107
-
3108
- def depart_thead(self, node):
3109
- self.set_to_parent()
3110
- self.in_thead = False
3111
- self.paragraph_style_stack.pop()
3112
-
3113
- def visit_row(self, node):
3114
- self.column_count = ord('A') - 1
3115
- el = self.append_child('table:table-row')
3116
- self.set_current_element(el)
3117
-
3118
- def depart_row(self, node):
3119
- self.set_to_parent()
3120
-
3121
- def visit_entry(self, node):
3122
- self.column_count += 1
3123
- cellspec_name = self.rststyle(
3124
- '%s%%d.%%c%%d' % TABLESTYLEPREFIX,
3125
- (self.table_count, 'A', 1, )
3126
- )
3127
- attrib = {
3128
- 'table:style-name': cellspec_name,
3129
- 'office:value-type': 'string',
3130
- }
3131
- morecols = node.get('morecols', 0)
3132
- if morecols > 0:
3133
- attrib['table:number-columns-spanned'] = '%d' % (morecols + 1,)
3134
- self.column_count += morecols
3135
- morerows = node.get('morerows', 0)
3136
- if morerows > 0:
3137
- attrib['table:number-rows-spanned'] = '%d' % (morerows + 1,)
3138
- el1 = self.append_child('table:table-cell', attrib=attrib)
3139
- self.set_current_element(el1)
3140
-
3141
- def depart_entry(self, node):
3142
- self.set_to_parent()
3143
-
3144
- def visit_tbody(self, node):
3145
- pass
3146
-
3147
- def depart_tbody(self, node):
3148
- pass
3149
-
3150
- def visit_target(self, node):
3151
- #
3152
- # I don't know how to implement targets in ODF.
3153
- # How do we create a target in oowriter? A cross-reference?
3154
- if ('refuri' not in node
3155
- and 'refid' not in node
3156
- and 'refname' not in node):
3157
- pass
3158
- else:
3159
- pass
3160
-
3161
- def depart_target(self, node):
3162
- pass
3163
-
3164
- def visit_title(self, node, move_ids=1, title_type='title'):
3165
- if isinstance(node.parent, docutils.nodes.section):
3166
- section_level = self.section_level
3167
- if section_level > 7:
3168
- self.document.reporter.warning(
3169
- 'Heading/section levels greater than 7 not supported.')
3170
- self.document.reporter.warning(
3171
- ' Reducing to heading level 7 for heading: "%s"' % (
3172
- node.astext(), ))
3173
- section_level = 7
3174
- el1 = self.append_child(
3175
- 'text:h', attrib={
3176
- 'text:outline-level': '%d' % section_level,
3177
- # 'text:style-name': 'Heading_20_%d' % section_level,
3178
- 'text:style-name': self.rststyle(
3179
- 'heading%d', (section_level, )),
3180
- })
3181
- self.append_pending_ids(el1)
3182
- self.set_current_element(el1)
3183
- elif isinstance(node.parent, docutils.nodes.document):
3184
- # text = self.settings.title
3185
- # else:
3186
- # text = node.astext()
3187
- el1 = SubElement(self.current_element, 'text:p', attrib={
3188
- 'text:style-name': self.rststyle(title_type),
3189
- })
3190
- self.append_pending_ids(el1)
3191
- text = node.astext()
3192
- self.title = text
3193
- self.found_doc_title = True
3194
- self.set_current_element(el1)
3195
-
3196
- def depart_title(self, node):
3197
- if (isinstance(node.parent, docutils.nodes.section)
3198
- or isinstance(node.parent, docutils.nodes.document)):
3199
- self.set_to_parent()
3200
-
3201
- def visit_subtitle(self, node, move_ids=1):
3202
- self.visit_title(node, move_ids, title_type='subtitle')
3203
-
3204
- def depart_subtitle(self, node):
3205
- self.depart_title(node)
3206
-
3207
- def visit_title_reference(self, node):
3208
- el = self.append_child('text:span', attrib={
3209
- 'text:style-name': self.rststyle('quotation')})
3210
- el.text = self.encode(node.astext())
3211
- raise nodes.SkipChildren()
3212
-
3213
- def depart_title_reference(self, node):
3214
- pass
3215
-
3216
- def generate_table_of_content_entry_template(self, el1):
3217
- for idx in range(1, 11):
3218
- el2 = SubElement(
3219
- el1,
3220
- 'text:table-of-content-entry-template',
3221
- attrib={
3222
- 'text:outline-level': "%d" % (idx, ),
3223
- 'text:style-name': self.rststyle('contents-%d' % (idx, )),
3224
- })
3225
- SubElement(el2, 'text:index-entry-chapter')
3226
- SubElement(el2, 'text:index-entry-text')
3227
- SubElement(el2, 'text:index-entry-tab-stop', attrib={
3228
- 'style:leader-char': ".",
3229
- 'style:type': "right",
3230
- })
3231
- SubElement(el2, 'text:index-entry-page-number')
3232
-
3233
- def find_title_label(self, node, class_type, label_key):
3234
- label = ''
3235
- title_node = None
3236
- for child in node.children:
3237
- if isinstance(child, class_type):
3238
- title_node = child
3239
- break
3240
- if title_node is not None:
3241
- label = title_node.astext()
3242
- else:
3243
- label = self.language.labels[label_key]
3244
- return label
3245
-
3246
- def visit_topic(self, node):
3247
- if 'classes' in node.attributes:
3248
- if 'contents' in node.attributes['classes']:
3249
- label = self.find_title_label(
3250
- node, docutils.nodes.title, 'contents')
3251
- if self.settings.generate_oowriter_toc:
3252
- el1 = self.append_child('text:table-of-content', attrib={
3253
- 'text:name': 'Table of Contents1',
3254
- 'text:protected': 'true',
3255
- 'text:style-name': 'Sect1',
3256
- })
3257
- el2 = SubElement(
3258
- el1,
3259
- 'text:table-of-content-source',
3260
- attrib={
3261
- 'text:outline-level': '10',
3262
- })
3263
- el3 = SubElement(el2, 'text:index-title-template', attrib={
3264
- 'text:style-name': 'Contents_20_Heading',
3265
- })
3266
- el3.text = label
3267
- self.generate_table_of_content_entry_template(el2)
3268
- el4 = SubElement(el1, 'text:index-body')
3269
- el5 = SubElement(el4, 'text:index-title')
3270
- el6 = SubElement(el5, 'text:p', attrib={
3271
- 'text:style-name': self.rststyle('contents-heading'),
3272
- })
3273
- el6.text = label
3274
- self.save_current_element = self.current_element
3275
- self.table_of_content_index_body = el4
3276
- self.set_current_element(el4)
3277
- else:
3278
- el = self.append_p('horizontalline')
3279
- el = self.append_p('centeredtextbody')
3280
- el1 = SubElement(
3281
- el, 'text:span',
3282
- attrib={'text:style-name': self.rststyle('strong')})
3283
- el1.text = label
3284
- self.in_table_of_contents = True
3285
- elif 'abstract' in node.attributes['classes']:
3286
- el = self.append_p('horizontalline')
3287
- el = self.append_p('centeredtextbody')
3288
- el1 = SubElement(
3289
- el, 'text:span',
3290
- attrib={'text:style-name': self.rststyle('strong')})
3291
- label = self.find_title_label(
3292
- node, docutils.nodes.title,
3293
- 'abstract')
3294
- el1.text = label
3295
- elif 'dedication' in node.attributes['classes']:
3296
- el = self.append_p('horizontalline')
3297
- el = self.append_p('centeredtextbody')
3298
- el1 = SubElement(
3299
- el, 'text:span',
3300
- attrib={'text:style-name': self.rststyle('strong')})
3301
- label = self.find_title_label(
3302
- node, docutils.nodes.title,
3303
- 'dedication')
3304
- el1.text = label
3305
-
3306
- def depart_topic(self, node):
3307
- if 'classes' in node.attributes:
3308
- if 'contents' in node.attributes['classes']:
3309
- if self.settings.generate_oowriter_toc:
3310
- self.update_toc_page_numbers(
3311
- self.table_of_content_index_body)
3312
- self.set_current_element(self.save_current_element)
3313
- else:
3314
- self.append_p('horizontalline')
3315
- self.in_table_of_contents = False
3316
-
3317
- def update_toc_page_numbers(self, el):
3318
- collection = []
3319
- self.update_toc_collect(el, 0, collection)
3320
- self.update_toc_add_numbers(collection)
3321
-
3322
- def update_toc_collect(self, el, level, collection):
3323
- collection.append((level, el))
3324
- level += 1
3325
- for child_el in el:
3326
- if child_el.tag != 'text:index-body':
3327
- self.update_toc_collect(child_el, level, collection)
3328
-
3329
- def update_toc_add_numbers(self, collection):
3330
- for level, el1 in collection:
3331
- if (el1.tag == 'text:p'
3332
- and el1.text != 'Table of Contents'):
3333
- el2 = SubElement(el1, 'text:tab')
3334
- el2.tail = '9999'
3335
-
3336
- def visit_transition(self, node):
3337
- self.append_p('horizontalline')
3338
-
3339
- def depart_transition(self, node):
3340
- pass
3341
-
3342
- #
3343
- # Admonitions
3344
- #
3345
- def visit_warning(self, node):
3346
- self.generate_admonition(node, 'warning')
3347
-
3348
- def depart_warning(self, node):
3349
- self.paragraph_style_stack.pop()
3350
-
3351
- def visit_attention(self, node):
3352
- self.generate_admonition(node, 'attention')
3353
-
3354
- depart_attention = depart_warning
3355
-
3356
- def visit_caution(self, node):
3357
- self.generate_admonition(node, 'caution')
3358
-
3359
- depart_caution = depart_warning
3360
-
3361
- def visit_danger(self, node):
3362
- self.generate_admonition(node, 'danger')
3363
-
3364
- depart_danger = depart_warning
3365
-
3366
- def visit_error(self, node):
3367
- self.generate_admonition(node, 'error')
3368
-
3369
- depart_error = depart_warning
3370
-
3371
- def visit_hint(self, node):
3372
- self.generate_admonition(node, 'hint')
3373
-
3374
- depart_hint = depart_warning
3375
-
3376
- def visit_important(self, node):
3377
- self.generate_admonition(node, 'important')
3378
-
3379
- depart_important = depart_warning
3380
-
3381
- def visit_note(self, node):
3382
- self.generate_admonition(node, 'note')
3383
-
3384
- depart_note = depart_warning
3385
-
3386
- def visit_tip(self, node):
3387
- self.generate_admonition(node, 'tip')
3388
-
3389
- depart_tip = depart_warning
3390
-
3391
- def visit_admonition(self, node):
3392
- title = None
3393
- for child in node.children:
3394
- if child.tagname == 'title':
3395
- title = child.astext()
3396
- if title is None:
3397
- classes1 = node.get('classes')
3398
- if classes1:
3399
- title = classes1[0]
3400
- self.generate_admonition(node, 'generic', title)
3401
-
3402
- depart_admonition = depart_warning
3403
-
3404
- def generate_admonition(self, node, label, title=None):
3405
- if hasattr(self.language, 'labels'):
3406
- translated_label = self.language.labels.get(label, label)
3407
- else:
3408
- translated_label = label
3409
- el1 = SubElement(self.current_element, 'text:p', attrib={
3410
- 'text:style-name': self.rststyle(
3411
- 'admon-%s-hdr', (label, )),
3412
- })
3413
- if title:
3414
- el1.text = title
3415
- else:
3416
- el1.text = '%s!' % (translated_label.capitalize(), )
3417
- s1 = self.rststyle('admon-%s-body', (label, ))
3418
- self.paragraph_style_stack.append(s1)
3419
-
3420
- #
3421
- # Roles (e.g. subscript, superscript, strong, ...
3422
- #
3423
- def visit_subscript(self, node):
3424
- el = self.append_child('text:span', attrib={
3425
- 'text:style-name': 'rststyle-subscript',
3426
- })
3427
- self.set_current_element(el)
3428
-
3429
- def depart_subscript(self, node):
3430
- self.set_to_parent()
3431
-
3432
- def visit_superscript(self, node):
3433
- el = self.append_child('text:span', attrib={
3434
- 'text:style-name': 'rststyle-superscript',
3435
- })
3436
- self.set_current_element(el)
3437
-
3438
- def depart_superscript(self, node):
3439
- self.set_to_parent()
3440
-
3441
- def visit_abbreviation(self, node):
3442
- pass
3443
-
3444
- def depart_abbreviation(self, node):
3445
- pass
3446
-
3447
- def visit_acronym(self, node):
3448
- pass
3449
-
3450
- def depart_acronym(self, node):
3451
- pass
3452
-
3453
- def visit_sidebar(self, node):
3454
- pass
3455
-
3456
- def depart_sidebar(self, node):
3457
- pass
3458
-
3459
-
3460
- # Use an own reader to modify transformations done.
3461
- class Reader(standalone.Reader):
3462
-
3463
- def get_transforms(self):
3464
- default = standalone.Reader.get_transforms(self)
3465
- if self.settings.create_links:
3466
- return default
3467
- return [i for i in default
3468
- if i is not references.DanglingReferences]