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