py2docfx 0.1.11.dev1830301__py3-none-any.whl → 0.1.11.dev1860114__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 +3 -49
- 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.dev1860114.dist-info}/METADATA +1 -1
- py2docfx-0.1.11.dev1860114.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.dev1860114.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.11.dev1830301.dist-info → py2docfx-0.1.11.dev1860114.dist-info}/top_level.txt +0 -0
@@ -1,1925 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
babel.dates
|
3
|
-
~~~~~~~~~~~
|
4
|
-
|
5
|
-
Locale dependent formatting and parsing of dates and times.
|
6
|
-
|
7
|
-
The default locale for the functions in this module is determined by the
|
8
|
-
following environment variables, in that order:
|
9
|
-
|
10
|
-
* ``LC_TIME``,
|
11
|
-
* ``LC_ALL``, and
|
12
|
-
* ``LANG``
|
13
|
-
|
14
|
-
:copyright: (c) 2013-2024 by the Babel Team.
|
15
|
-
:license: BSD, see LICENSE for more details.
|
16
|
-
"""
|
17
|
-
|
18
|
-
from __future__ import annotations
|
19
|
-
|
20
|
-
import re
|
21
|
-
import warnings
|
22
|
-
from functools import lru_cache
|
23
|
-
from typing import TYPE_CHECKING, SupportsInt
|
24
|
-
|
25
|
-
try:
|
26
|
-
import pytz
|
27
|
-
except ModuleNotFoundError:
|
28
|
-
pytz = None
|
29
|
-
import zoneinfo
|
30
|
-
|
31
|
-
import datetime
|
32
|
-
from collections.abc import Iterable
|
33
|
-
|
34
|
-
from babel import localtime
|
35
|
-
from babel.core import Locale, default_locale, get_global
|
36
|
-
from babel.localedata import LocaleDataDict
|
37
|
-
|
38
|
-
if TYPE_CHECKING:
|
39
|
-
from typing_extensions import Literal, TypeAlias
|
40
|
-
_Instant: TypeAlias = datetime.date | datetime.time | float | None
|
41
|
-
_PredefinedTimeFormat: TypeAlias = Literal['full', 'long', 'medium', 'short']
|
42
|
-
_Context: TypeAlias = Literal['format', 'stand-alone']
|
43
|
-
_DtOrTzinfo: TypeAlias = datetime.datetime | datetime.tzinfo | str | int | datetime.time | None
|
44
|
-
|
45
|
-
# "If a given short metazone form is known NOT to be understood in a given
|
46
|
-
# locale and the parent locale has this value such that it would normally
|
47
|
-
# be inherited, the inheritance of this value can be explicitly disabled by
|
48
|
-
# use of the 'no inheritance marker' as the value, which is 3 simultaneous [sic]
|
49
|
-
# empty set characters ( U+2205 )."
|
50
|
-
# - https://www.unicode.org/reports/tr35/tr35-dates.html#Metazone_Names
|
51
|
-
|
52
|
-
NO_INHERITANCE_MARKER = '\u2205\u2205\u2205'
|
53
|
-
|
54
|
-
UTC = datetime.timezone.utc
|
55
|
-
LOCALTZ = localtime.LOCALTZ
|
56
|
-
|
57
|
-
LC_TIME = default_locale('LC_TIME')
|
58
|
-
|
59
|
-
|
60
|
-
def _localize(tz: datetime.tzinfo, dt: datetime.datetime) -> datetime.datetime:
|
61
|
-
# Support localizing with both pytz and zoneinfo tzinfos
|
62
|
-
# nothing to do
|
63
|
-
if dt.tzinfo is tz:
|
64
|
-
return dt
|
65
|
-
|
66
|
-
if hasattr(tz, 'localize'): # pytz
|
67
|
-
return tz.localize(dt)
|
68
|
-
|
69
|
-
if dt.tzinfo is None:
|
70
|
-
# convert naive to localized
|
71
|
-
return dt.replace(tzinfo=tz)
|
72
|
-
|
73
|
-
# convert timezones
|
74
|
-
return dt.astimezone(tz)
|
75
|
-
|
76
|
-
|
77
|
-
def _get_dt_and_tzinfo(dt_or_tzinfo: _DtOrTzinfo) -> tuple[datetime.datetime | None, datetime.tzinfo]:
|
78
|
-
"""
|
79
|
-
Parse a `dt_or_tzinfo` value into a datetime and a tzinfo.
|
80
|
-
|
81
|
-
See the docs for this function's callers for semantics.
|
82
|
-
|
83
|
-
:rtype: tuple[datetime, tzinfo]
|
84
|
-
"""
|
85
|
-
if dt_or_tzinfo is None:
|
86
|
-
dt = datetime.datetime.now()
|
87
|
-
tzinfo = LOCALTZ
|
88
|
-
elif isinstance(dt_or_tzinfo, str):
|
89
|
-
dt = None
|
90
|
-
tzinfo = get_timezone(dt_or_tzinfo)
|
91
|
-
elif isinstance(dt_or_tzinfo, int):
|
92
|
-
dt = None
|
93
|
-
tzinfo = UTC
|
94
|
-
elif isinstance(dt_or_tzinfo, (datetime.datetime, datetime.time)):
|
95
|
-
dt = _get_datetime(dt_or_tzinfo)
|
96
|
-
tzinfo = dt.tzinfo if dt.tzinfo is not None else UTC
|
97
|
-
else:
|
98
|
-
dt = None
|
99
|
-
tzinfo = dt_or_tzinfo
|
100
|
-
return dt, tzinfo
|
101
|
-
|
102
|
-
|
103
|
-
def _get_tz_name(dt_or_tzinfo: _DtOrTzinfo) -> str:
|
104
|
-
"""
|
105
|
-
Get the timezone name out of a time, datetime, or tzinfo object.
|
106
|
-
|
107
|
-
:rtype: str
|
108
|
-
"""
|
109
|
-
dt, tzinfo = _get_dt_and_tzinfo(dt_or_tzinfo)
|
110
|
-
if hasattr(tzinfo, 'zone'): # pytz object
|
111
|
-
return tzinfo.zone
|
112
|
-
elif hasattr(tzinfo, 'key') and tzinfo.key is not None: # ZoneInfo object
|
113
|
-
return tzinfo.key
|
114
|
-
else:
|
115
|
-
return tzinfo.tzname(dt or datetime.datetime.now(UTC))
|
116
|
-
|
117
|
-
|
118
|
-
def _get_datetime(instant: _Instant) -> datetime.datetime:
|
119
|
-
"""
|
120
|
-
Get a datetime out of an "instant" (date, time, datetime, number).
|
121
|
-
|
122
|
-
.. warning:: The return values of this function may depend on the system clock.
|
123
|
-
|
124
|
-
If the instant is None, the current moment is used.
|
125
|
-
If the instant is a time, it's augmented with today's date.
|
126
|
-
|
127
|
-
Dates are converted to naive datetimes with midnight as the time component.
|
128
|
-
|
129
|
-
>>> from datetime import date, datetime
|
130
|
-
>>> _get_datetime(date(2015, 1, 1))
|
131
|
-
datetime.datetime(2015, 1, 1, 0, 0)
|
132
|
-
|
133
|
-
UNIX timestamps are converted to datetimes.
|
134
|
-
|
135
|
-
>>> _get_datetime(1400000000)
|
136
|
-
datetime.datetime(2014, 5, 13, 16, 53, 20)
|
137
|
-
|
138
|
-
Other values are passed through as-is.
|
139
|
-
|
140
|
-
>>> x = datetime(2015, 1, 1)
|
141
|
-
>>> _get_datetime(x) is x
|
142
|
-
True
|
143
|
-
|
144
|
-
:param instant: date, time, datetime, integer, float or None
|
145
|
-
:type instant: date|time|datetime|int|float|None
|
146
|
-
:return: a datetime
|
147
|
-
:rtype: datetime
|
148
|
-
"""
|
149
|
-
if instant is None:
|
150
|
-
return datetime.datetime.now(UTC).replace(tzinfo=None)
|
151
|
-
elif isinstance(instant, (int, float)):
|
152
|
-
return datetime.datetime.fromtimestamp(instant, UTC).replace(tzinfo=None)
|
153
|
-
elif isinstance(instant, datetime.time):
|
154
|
-
return datetime.datetime.combine(datetime.date.today(), instant)
|
155
|
-
elif isinstance(instant, datetime.date) and not isinstance(instant, datetime.datetime):
|
156
|
-
return datetime.datetime.combine(instant, datetime.time())
|
157
|
-
# TODO (3.x): Add an assertion/type check for this fallthrough branch:
|
158
|
-
return instant
|
159
|
-
|
160
|
-
|
161
|
-
def _ensure_datetime_tzinfo(dt: datetime.datetime, tzinfo: datetime.tzinfo | None = None) -> datetime.datetime:
|
162
|
-
"""
|
163
|
-
Ensure the datetime passed has an attached tzinfo.
|
164
|
-
|
165
|
-
If the datetime is tz-naive to begin with, UTC is attached.
|
166
|
-
|
167
|
-
If a tzinfo is passed in, the datetime is normalized to that timezone.
|
168
|
-
|
169
|
-
>>> from datetime import datetime
|
170
|
-
>>> _get_tz_name(_ensure_datetime_tzinfo(datetime(2015, 1, 1)))
|
171
|
-
'UTC'
|
172
|
-
|
173
|
-
>>> tz = get_timezone("Europe/Stockholm")
|
174
|
-
>>> _ensure_datetime_tzinfo(datetime(2015, 1, 1, 13, 15, tzinfo=UTC), tzinfo=tz).hour
|
175
|
-
14
|
176
|
-
|
177
|
-
:param datetime: Datetime to augment.
|
178
|
-
:param tzinfo: optional tzinfo
|
179
|
-
:return: datetime with tzinfo
|
180
|
-
:rtype: datetime
|
181
|
-
"""
|
182
|
-
if dt.tzinfo is None:
|
183
|
-
dt = dt.replace(tzinfo=UTC)
|
184
|
-
if tzinfo is not None:
|
185
|
-
dt = dt.astimezone(get_timezone(tzinfo))
|
186
|
-
if hasattr(tzinfo, 'normalize'): # pytz
|
187
|
-
dt = tzinfo.normalize(dt)
|
188
|
-
return dt
|
189
|
-
|
190
|
-
|
191
|
-
def _get_time(
|
192
|
-
time: datetime.time | datetime.datetime | None,
|
193
|
-
tzinfo: datetime.tzinfo | None = None,
|
194
|
-
) -> datetime.time:
|
195
|
-
"""
|
196
|
-
Get a timezoned time from a given instant.
|
197
|
-
|
198
|
-
.. warning:: The return values of this function may depend on the system clock.
|
199
|
-
|
200
|
-
:param time: time, datetime or None
|
201
|
-
:rtype: time
|
202
|
-
"""
|
203
|
-
if time is None:
|
204
|
-
time = datetime.datetime.now(UTC)
|
205
|
-
elif isinstance(time, (int, float)):
|
206
|
-
time = datetime.datetime.fromtimestamp(time, UTC)
|
207
|
-
|
208
|
-
if time.tzinfo is None:
|
209
|
-
time = time.replace(tzinfo=UTC)
|
210
|
-
|
211
|
-
if isinstance(time, datetime.datetime):
|
212
|
-
if tzinfo is not None:
|
213
|
-
time = time.astimezone(tzinfo)
|
214
|
-
if hasattr(tzinfo, 'normalize'): # pytz
|
215
|
-
time = tzinfo.normalize(time)
|
216
|
-
time = time.timetz()
|
217
|
-
elif tzinfo is not None:
|
218
|
-
time = time.replace(tzinfo=tzinfo)
|
219
|
-
return time
|
220
|
-
|
221
|
-
|
222
|
-
def get_timezone(zone: str | datetime.tzinfo | None = None) -> datetime.tzinfo:
|
223
|
-
"""Looks up a timezone by name and returns it. The timezone object
|
224
|
-
returned comes from ``pytz`` or ``zoneinfo``, whichever is available.
|
225
|
-
It corresponds to the `tzinfo` interface and can be used with all of
|
226
|
-
the functions of Babel that operate with dates.
|
227
|
-
|
228
|
-
If a timezone is not known a :exc:`LookupError` is raised. If `zone`
|
229
|
-
is ``None`` a local zone object is returned.
|
230
|
-
|
231
|
-
:param zone: the name of the timezone to look up. If a timezone object
|
232
|
-
itself is passed in, it's returned unchanged.
|
233
|
-
"""
|
234
|
-
if zone is None:
|
235
|
-
return LOCALTZ
|
236
|
-
if not isinstance(zone, str):
|
237
|
-
return zone
|
238
|
-
|
239
|
-
if pytz:
|
240
|
-
try:
|
241
|
-
return pytz.timezone(zone)
|
242
|
-
except pytz.UnknownTimeZoneError as e:
|
243
|
-
exc = e
|
244
|
-
else:
|
245
|
-
assert zoneinfo
|
246
|
-
try:
|
247
|
-
return zoneinfo.ZoneInfo(zone)
|
248
|
-
except zoneinfo.ZoneInfoNotFoundError as e:
|
249
|
-
exc = e
|
250
|
-
|
251
|
-
raise LookupError(f"Unknown timezone {zone}") from exc
|
252
|
-
|
253
|
-
|
254
|
-
def get_period_names(width: Literal['abbreviated', 'narrow', 'wide'] = 'wide',
|
255
|
-
context: _Context = 'stand-alone', locale: Locale | str | None = LC_TIME) -> LocaleDataDict:
|
256
|
-
"""Return the names for day periods (AM/PM) used by the locale.
|
257
|
-
|
258
|
-
>>> get_period_names(locale='en_US')['am']
|
259
|
-
u'AM'
|
260
|
-
|
261
|
-
:param width: the width to use, one of "abbreviated", "narrow", or "wide"
|
262
|
-
:param context: the context, either "format" or "stand-alone"
|
263
|
-
:param locale: the `Locale` object, or a locale string
|
264
|
-
"""
|
265
|
-
return Locale.parse(locale).day_periods[context][width]
|
266
|
-
|
267
|
-
|
268
|
-
def get_day_names(width: Literal['abbreviated', 'narrow', 'short', 'wide'] = 'wide',
|
269
|
-
context: _Context = 'format', locale: Locale | str | None = LC_TIME) -> LocaleDataDict:
|
270
|
-
"""Return the day names used by the locale for the specified format.
|
271
|
-
|
272
|
-
>>> get_day_names('wide', locale='en_US')[1]
|
273
|
-
u'Tuesday'
|
274
|
-
>>> get_day_names('short', locale='en_US')[1]
|
275
|
-
u'Tu'
|
276
|
-
>>> get_day_names('abbreviated', locale='es')[1]
|
277
|
-
u'mar'
|
278
|
-
>>> get_day_names('narrow', context='stand-alone', locale='de_DE')[1]
|
279
|
-
u'D'
|
280
|
-
|
281
|
-
:param width: the width to use, one of "wide", "abbreviated", "short" or "narrow"
|
282
|
-
:param context: the context, either "format" or "stand-alone"
|
283
|
-
:param locale: the `Locale` object, or a locale string
|
284
|
-
"""
|
285
|
-
return Locale.parse(locale).days[context][width]
|
286
|
-
|
287
|
-
|
288
|
-
def get_month_names(width: Literal['abbreviated', 'narrow', 'wide'] = 'wide',
|
289
|
-
context: _Context = 'format', locale: Locale | str | None = LC_TIME) -> LocaleDataDict:
|
290
|
-
"""Return the month names used by the locale for the specified format.
|
291
|
-
|
292
|
-
>>> get_month_names('wide', locale='en_US')[1]
|
293
|
-
u'January'
|
294
|
-
>>> get_month_names('abbreviated', locale='es')[1]
|
295
|
-
u'ene'
|
296
|
-
>>> get_month_names('narrow', context='stand-alone', locale='de_DE')[1]
|
297
|
-
u'J'
|
298
|
-
|
299
|
-
:param width: the width to use, one of "wide", "abbreviated", or "narrow"
|
300
|
-
:param context: the context, either "format" or "stand-alone"
|
301
|
-
:param locale: the `Locale` object, or a locale string
|
302
|
-
"""
|
303
|
-
return Locale.parse(locale).months[context][width]
|
304
|
-
|
305
|
-
|
306
|
-
def get_quarter_names(width: Literal['abbreviated', 'narrow', 'wide'] = 'wide',
|
307
|
-
context: _Context = 'format', locale: Locale | str | None = LC_TIME) -> LocaleDataDict:
|
308
|
-
"""Return the quarter names used by the locale for the specified format.
|
309
|
-
|
310
|
-
>>> get_quarter_names('wide', locale='en_US')[1]
|
311
|
-
u'1st quarter'
|
312
|
-
>>> get_quarter_names('abbreviated', locale='de_DE')[1]
|
313
|
-
u'Q1'
|
314
|
-
>>> get_quarter_names('narrow', locale='de_DE')[1]
|
315
|
-
u'1'
|
316
|
-
|
317
|
-
:param width: the width to use, one of "wide", "abbreviated", or "narrow"
|
318
|
-
:param context: the context, either "format" or "stand-alone"
|
319
|
-
:param locale: the `Locale` object, or a locale string
|
320
|
-
"""
|
321
|
-
return Locale.parse(locale).quarters[context][width]
|
322
|
-
|
323
|
-
|
324
|
-
def get_era_names(width: Literal['abbreviated', 'narrow', 'wide'] = 'wide',
|
325
|
-
locale: Locale | str | None = LC_TIME) -> LocaleDataDict:
|
326
|
-
"""Return the era names used by the locale for the specified format.
|
327
|
-
|
328
|
-
>>> get_era_names('wide', locale='en_US')[1]
|
329
|
-
u'Anno Domini'
|
330
|
-
>>> get_era_names('abbreviated', locale='de_DE')[1]
|
331
|
-
u'n. Chr.'
|
332
|
-
|
333
|
-
:param width: the width to use, either "wide", "abbreviated", or "narrow"
|
334
|
-
:param locale: the `Locale` object, or a locale string
|
335
|
-
"""
|
336
|
-
return Locale.parse(locale).eras[width]
|
337
|
-
|
338
|
-
|
339
|
-
def get_date_format(format: _PredefinedTimeFormat = 'medium', locale: Locale | str | None = LC_TIME) -> DateTimePattern:
|
340
|
-
"""Return the date formatting patterns used by the locale for the specified
|
341
|
-
format.
|
342
|
-
|
343
|
-
>>> get_date_format(locale='en_US')
|
344
|
-
<DateTimePattern u'MMM d, y'>
|
345
|
-
>>> get_date_format('full', locale='de_DE')
|
346
|
-
<DateTimePattern u'EEEE, d. MMMM y'>
|
347
|
-
|
348
|
-
:param format: the format to use, one of "full", "long", "medium", or
|
349
|
-
"short"
|
350
|
-
:param locale: the `Locale` object, or a locale string
|
351
|
-
"""
|
352
|
-
return Locale.parse(locale).date_formats[format]
|
353
|
-
|
354
|
-
|
355
|
-
def get_datetime_format(format: _PredefinedTimeFormat = 'medium', locale: Locale | str | None = LC_TIME) -> DateTimePattern:
|
356
|
-
"""Return the datetime formatting patterns used by the locale for the
|
357
|
-
specified format.
|
358
|
-
|
359
|
-
>>> get_datetime_format(locale='en_US')
|
360
|
-
u'{1}, {0}'
|
361
|
-
|
362
|
-
:param format: the format to use, one of "full", "long", "medium", or
|
363
|
-
"short"
|
364
|
-
:param locale: the `Locale` object, or a locale string
|
365
|
-
"""
|
366
|
-
patterns = Locale.parse(locale).datetime_formats
|
367
|
-
if format not in patterns:
|
368
|
-
format = None
|
369
|
-
return patterns[format]
|
370
|
-
|
371
|
-
|
372
|
-
def get_time_format(format: _PredefinedTimeFormat = 'medium', locale: Locale | str | None = LC_TIME) -> DateTimePattern:
|
373
|
-
"""Return the time formatting patterns used by the locale for the specified
|
374
|
-
format.
|
375
|
-
|
376
|
-
>>> get_time_format(locale='en_US')
|
377
|
-
<DateTimePattern u'h:mm:ss\u202fa'>
|
378
|
-
>>> get_time_format('full', locale='de_DE')
|
379
|
-
<DateTimePattern u'HH:mm:ss zzzz'>
|
380
|
-
|
381
|
-
:param format: the format to use, one of "full", "long", "medium", or
|
382
|
-
"short"
|
383
|
-
:param locale: the `Locale` object, or a locale string
|
384
|
-
"""
|
385
|
-
return Locale.parse(locale).time_formats[format]
|
386
|
-
|
387
|
-
|
388
|
-
def get_timezone_gmt(
|
389
|
-
datetime: _Instant = None,
|
390
|
-
width: Literal['long', 'short', 'iso8601', 'iso8601_short'] = 'long',
|
391
|
-
locale: Locale | str | None = LC_TIME,
|
392
|
-
return_z: bool = False,
|
393
|
-
) -> str:
|
394
|
-
"""Return the timezone associated with the given `datetime` object formatted
|
395
|
-
as string indicating the offset from GMT.
|
396
|
-
|
397
|
-
>>> from datetime import datetime
|
398
|
-
>>> dt = datetime(2007, 4, 1, 15, 30)
|
399
|
-
>>> get_timezone_gmt(dt, locale='en')
|
400
|
-
u'GMT+00:00'
|
401
|
-
>>> get_timezone_gmt(dt, locale='en', return_z=True)
|
402
|
-
'Z'
|
403
|
-
>>> get_timezone_gmt(dt, locale='en', width='iso8601_short')
|
404
|
-
u'+00'
|
405
|
-
>>> tz = get_timezone('America/Los_Angeles')
|
406
|
-
>>> dt = _localize(tz, datetime(2007, 4, 1, 15, 30))
|
407
|
-
>>> get_timezone_gmt(dt, locale='en')
|
408
|
-
u'GMT-07:00'
|
409
|
-
>>> get_timezone_gmt(dt, 'short', locale='en')
|
410
|
-
u'-0700'
|
411
|
-
>>> get_timezone_gmt(dt, locale='en', width='iso8601_short')
|
412
|
-
u'-07'
|
413
|
-
|
414
|
-
The long format depends on the locale, for example in France the acronym
|
415
|
-
UTC string is used instead of GMT:
|
416
|
-
|
417
|
-
>>> get_timezone_gmt(dt, 'long', locale='fr_FR')
|
418
|
-
u'UTC-07:00'
|
419
|
-
|
420
|
-
.. versionadded:: 0.9
|
421
|
-
|
422
|
-
:param datetime: the ``datetime`` object; if `None`, the current date and
|
423
|
-
time in UTC is used
|
424
|
-
:param width: either "long" or "short" or "iso8601" or "iso8601_short"
|
425
|
-
:param locale: the `Locale` object, or a locale string
|
426
|
-
:param return_z: True or False; Function returns indicator "Z"
|
427
|
-
when local time offset is 0
|
428
|
-
"""
|
429
|
-
datetime = _ensure_datetime_tzinfo(_get_datetime(datetime))
|
430
|
-
locale = Locale.parse(locale)
|
431
|
-
|
432
|
-
offset = datetime.tzinfo.utcoffset(datetime)
|
433
|
-
seconds = offset.days * 24 * 60 * 60 + offset.seconds
|
434
|
-
hours, seconds = divmod(seconds, 3600)
|
435
|
-
if return_z and hours == 0 and seconds == 0:
|
436
|
-
return 'Z'
|
437
|
-
elif seconds == 0 and width == 'iso8601_short':
|
438
|
-
return '%+03d' % hours
|
439
|
-
elif width == 'short' or width == 'iso8601_short':
|
440
|
-
pattern = '%+03d%02d'
|
441
|
-
elif width == 'iso8601':
|
442
|
-
pattern = '%+03d:%02d'
|
443
|
-
else:
|
444
|
-
pattern = locale.zone_formats['gmt'] % '%+03d:%02d'
|
445
|
-
return pattern % (hours, seconds // 60)
|
446
|
-
|
447
|
-
|
448
|
-
def get_timezone_location(
|
449
|
-
dt_or_tzinfo: _DtOrTzinfo = None,
|
450
|
-
locale: Locale | str | None = LC_TIME,
|
451
|
-
return_city: bool = False,
|
452
|
-
) -> str:
|
453
|
-
"""Return a representation of the given timezone using "location format".
|
454
|
-
|
455
|
-
The result depends on both the local display name of the country and the
|
456
|
-
city associated with the time zone:
|
457
|
-
|
458
|
-
>>> tz = get_timezone('America/St_Johns')
|
459
|
-
>>> print(get_timezone_location(tz, locale='de_DE'))
|
460
|
-
Kanada (St. John’s) (Ortszeit)
|
461
|
-
>>> print(get_timezone_location(tz, locale='en'))
|
462
|
-
Canada (St. John’s) Time
|
463
|
-
>>> print(get_timezone_location(tz, locale='en', return_city=True))
|
464
|
-
St. John’s
|
465
|
-
>>> tz = get_timezone('America/Mexico_City')
|
466
|
-
>>> get_timezone_location(tz, locale='de_DE')
|
467
|
-
u'Mexiko (Mexiko-Stadt) (Ortszeit)'
|
468
|
-
|
469
|
-
If the timezone is associated with a country that uses only a single
|
470
|
-
timezone, just the localized country name is returned:
|
471
|
-
|
472
|
-
>>> tz = get_timezone('Europe/Berlin')
|
473
|
-
>>> get_timezone_name(tz, locale='de_DE')
|
474
|
-
u'Mitteleurop\\xe4ische Zeit'
|
475
|
-
|
476
|
-
.. versionadded:: 0.9
|
477
|
-
|
478
|
-
:param dt_or_tzinfo: the ``datetime`` or ``tzinfo`` object that determines
|
479
|
-
the timezone; if `None`, the current date and time in
|
480
|
-
UTC is assumed
|
481
|
-
:param locale: the `Locale` object, or a locale string
|
482
|
-
:param return_city: True or False, if True then return exemplar city (location)
|
483
|
-
for the time zone
|
484
|
-
:return: the localized timezone name using location format
|
485
|
-
|
486
|
-
"""
|
487
|
-
locale = Locale.parse(locale)
|
488
|
-
|
489
|
-
zone = _get_tz_name(dt_or_tzinfo)
|
490
|
-
|
491
|
-
# Get the canonical time-zone code
|
492
|
-
zone = get_global('zone_aliases').get(zone, zone)
|
493
|
-
|
494
|
-
info = locale.time_zones.get(zone, {})
|
495
|
-
|
496
|
-
# Otherwise, if there is only one timezone for the country, return the
|
497
|
-
# localized country name
|
498
|
-
region_format = locale.zone_formats['region']
|
499
|
-
territory = get_global('zone_territories').get(zone)
|
500
|
-
if territory not in locale.territories:
|
501
|
-
territory = 'ZZ' # invalid/unknown
|
502
|
-
territory_name = locale.territories[territory]
|
503
|
-
if not return_city and territory and len(get_global('territory_zones').get(territory, [])) == 1:
|
504
|
-
return region_format % territory_name
|
505
|
-
|
506
|
-
# Otherwise, include the city in the output
|
507
|
-
fallback_format = locale.zone_formats['fallback']
|
508
|
-
if 'city' in info:
|
509
|
-
city_name = info['city']
|
510
|
-
else:
|
511
|
-
metazone = get_global('meta_zones').get(zone)
|
512
|
-
metazone_info = locale.meta_zones.get(metazone, {})
|
513
|
-
if 'city' in metazone_info:
|
514
|
-
city_name = metazone_info['city']
|
515
|
-
elif '/' in zone:
|
516
|
-
city_name = zone.split('/', 1)[1].replace('_', ' ')
|
517
|
-
else:
|
518
|
-
city_name = zone.replace('_', ' ')
|
519
|
-
|
520
|
-
if return_city:
|
521
|
-
return city_name
|
522
|
-
return region_format % (fallback_format % {
|
523
|
-
'0': city_name,
|
524
|
-
'1': territory_name,
|
525
|
-
})
|
526
|
-
|
527
|
-
|
528
|
-
def get_timezone_name(
|
529
|
-
dt_or_tzinfo: _DtOrTzinfo = None,
|
530
|
-
width: Literal['long', 'short'] = 'long',
|
531
|
-
uncommon: bool = False,
|
532
|
-
locale: Locale | str | None = LC_TIME,
|
533
|
-
zone_variant: Literal['generic', 'daylight', 'standard'] | None = None,
|
534
|
-
return_zone: bool = False,
|
535
|
-
) -> str:
|
536
|
-
r"""Return the localized display name for the given timezone. The timezone
|
537
|
-
may be specified using a ``datetime`` or `tzinfo` object.
|
538
|
-
|
539
|
-
>>> from datetime import time
|
540
|
-
>>> dt = time(15, 30, tzinfo=get_timezone('America/Los_Angeles'))
|
541
|
-
>>> get_timezone_name(dt, locale='en_US') # doctest: +SKIP
|
542
|
-
u'Pacific Standard Time'
|
543
|
-
>>> get_timezone_name(dt, locale='en_US', return_zone=True)
|
544
|
-
'America/Los_Angeles'
|
545
|
-
>>> get_timezone_name(dt, width='short', locale='en_US') # doctest: +SKIP
|
546
|
-
u'PST'
|
547
|
-
|
548
|
-
If this function gets passed only a `tzinfo` object and no concrete
|
549
|
-
`datetime`, the returned display name is independent of daylight savings
|
550
|
-
time. This can be used for example for selecting timezones, or to set the
|
551
|
-
time of events that recur across DST changes:
|
552
|
-
|
553
|
-
>>> tz = get_timezone('America/Los_Angeles')
|
554
|
-
>>> get_timezone_name(tz, locale='en_US')
|
555
|
-
u'Pacific Time'
|
556
|
-
>>> get_timezone_name(tz, 'short', locale='en_US')
|
557
|
-
u'PT'
|
558
|
-
|
559
|
-
If no localized display name for the timezone is available, and the timezone
|
560
|
-
is associated with a country that uses only a single timezone, the name of
|
561
|
-
that country is returned, formatted according to the locale:
|
562
|
-
|
563
|
-
>>> tz = get_timezone('Europe/Berlin')
|
564
|
-
>>> get_timezone_name(tz, locale='de_DE')
|
565
|
-
u'Mitteleurop\xe4ische Zeit'
|
566
|
-
>>> get_timezone_name(tz, locale='pt_BR')
|
567
|
-
u'Hor\xe1rio da Europa Central'
|
568
|
-
|
569
|
-
On the other hand, if the country uses multiple timezones, the city is also
|
570
|
-
included in the representation:
|
571
|
-
|
572
|
-
>>> tz = get_timezone('America/St_Johns')
|
573
|
-
>>> get_timezone_name(tz, locale='de_DE')
|
574
|
-
u'Neufundland-Zeit'
|
575
|
-
|
576
|
-
Note that short format is currently not supported for all timezones and
|
577
|
-
all locales. This is partially because not every timezone has a short
|
578
|
-
code in every locale. In that case it currently falls back to the long
|
579
|
-
format.
|
580
|
-
|
581
|
-
For more information see `LDML Appendix J: Time Zone Display Names
|
582
|
-
<https://www.unicode.org/reports/tr35/#Time_Zone_Fallback>`_
|
583
|
-
|
584
|
-
.. versionadded:: 0.9
|
585
|
-
|
586
|
-
.. versionchanged:: 1.0
|
587
|
-
Added `zone_variant` support.
|
588
|
-
|
589
|
-
:param dt_or_tzinfo: the ``datetime`` or ``tzinfo`` object that determines
|
590
|
-
the timezone; if a ``tzinfo`` object is used, the
|
591
|
-
resulting display name will be generic, i.e.
|
592
|
-
independent of daylight savings time; if `None`, the
|
593
|
-
current date in UTC is assumed
|
594
|
-
:param width: either "long" or "short"
|
595
|
-
:param uncommon: deprecated and ignored
|
596
|
-
:param zone_variant: defines the zone variation to return. By default the
|
597
|
-
variation is defined from the datetime object
|
598
|
-
passed in. If no datetime object is passed in, the
|
599
|
-
``'generic'`` variation is assumed. The following
|
600
|
-
values are valid: ``'generic'``, ``'daylight'`` and
|
601
|
-
``'standard'``.
|
602
|
-
:param locale: the `Locale` object, or a locale string
|
603
|
-
:param return_zone: True or False. If true then function
|
604
|
-
returns long time zone ID
|
605
|
-
"""
|
606
|
-
dt, tzinfo = _get_dt_and_tzinfo(dt_or_tzinfo)
|
607
|
-
locale = Locale.parse(locale)
|
608
|
-
|
609
|
-
zone = _get_tz_name(dt_or_tzinfo)
|
610
|
-
|
611
|
-
if zone_variant is None:
|
612
|
-
if dt is None:
|
613
|
-
zone_variant = 'generic'
|
614
|
-
else:
|
615
|
-
dst = tzinfo.dst(dt)
|
616
|
-
zone_variant = "daylight" if dst else "standard"
|
617
|
-
else:
|
618
|
-
if zone_variant not in ('generic', 'standard', 'daylight'):
|
619
|
-
raise ValueError('Invalid zone variation')
|
620
|
-
|
621
|
-
# Get the canonical time-zone code
|
622
|
-
zone = get_global('zone_aliases').get(zone, zone)
|
623
|
-
if return_zone:
|
624
|
-
return zone
|
625
|
-
info = locale.time_zones.get(zone, {})
|
626
|
-
# Try explicitly translated zone names first
|
627
|
-
if width in info and zone_variant in info[width]:
|
628
|
-
return info[width][zone_variant]
|
629
|
-
|
630
|
-
metazone = get_global('meta_zones').get(zone)
|
631
|
-
if metazone:
|
632
|
-
metazone_info = locale.meta_zones.get(metazone, {})
|
633
|
-
if width in metazone_info:
|
634
|
-
name = metazone_info[width].get(zone_variant)
|
635
|
-
if width == 'short' and name == NO_INHERITANCE_MARKER:
|
636
|
-
# If the short form is marked no-inheritance,
|
637
|
-
# try to fall back to the long name instead.
|
638
|
-
name = metazone_info.get('long', {}).get(zone_variant)
|
639
|
-
if name:
|
640
|
-
return name
|
641
|
-
|
642
|
-
# If we have a concrete datetime, we assume that the result can't be
|
643
|
-
# independent of daylight savings time, so we return the GMT offset
|
644
|
-
if dt is not None:
|
645
|
-
return get_timezone_gmt(dt, width=width, locale=locale)
|
646
|
-
|
647
|
-
return get_timezone_location(dt_or_tzinfo, locale=locale)
|
648
|
-
|
649
|
-
|
650
|
-
def format_date(
|
651
|
-
date: datetime.date | None = None,
|
652
|
-
format: _PredefinedTimeFormat | str = 'medium',
|
653
|
-
locale: Locale | str | None = LC_TIME,
|
654
|
-
) -> str:
|
655
|
-
"""Return a date formatted according to the given pattern.
|
656
|
-
|
657
|
-
>>> from datetime import date
|
658
|
-
>>> d = date(2007, 4, 1)
|
659
|
-
>>> format_date(d, locale='en_US')
|
660
|
-
u'Apr 1, 2007'
|
661
|
-
>>> format_date(d, format='full', locale='de_DE')
|
662
|
-
u'Sonntag, 1. April 2007'
|
663
|
-
|
664
|
-
If you don't want to use the locale default formats, you can specify a
|
665
|
-
custom date pattern:
|
666
|
-
|
667
|
-
>>> format_date(d, "EEE, MMM d, ''yy", locale='en')
|
668
|
-
u"Sun, Apr 1, '07"
|
669
|
-
|
670
|
-
:param date: the ``date`` or ``datetime`` object; if `None`, the current
|
671
|
-
date is used
|
672
|
-
:param format: one of "full", "long", "medium", or "short", or a custom
|
673
|
-
date/time pattern
|
674
|
-
:param locale: a `Locale` object or a locale identifier
|
675
|
-
"""
|
676
|
-
if date is None:
|
677
|
-
date = datetime.date.today()
|
678
|
-
elif isinstance(date, datetime.datetime):
|
679
|
-
date = date.date()
|
680
|
-
|
681
|
-
locale = Locale.parse(locale)
|
682
|
-
if format in ('full', 'long', 'medium', 'short'):
|
683
|
-
format = get_date_format(format, locale=locale)
|
684
|
-
pattern = parse_pattern(format)
|
685
|
-
return pattern.apply(date, locale)
|
686
|
-
|
687
|
-
|
688
|
-
def format_datetime(
|
689
|
-
datetime: _Instant = None,
|
690
|
-
format: _PredefinedTimeFormat | str = 'medium',
|
691
|
-
tzinfo: datetime.tzinfo | None = None,
|
692
|
-
locale: Locale | str | None = LC_TIME,
|
693
|
-
) -> str:
|
694
|
-
r"""Return a date formatted according to the given pattern.
|
695
|
-
|
696
|
-
>>> from datetime import datetime
|
697
|
-
>>> dt = datetime(2007, 4, 1, 15, 30)
|
698
|
-
>>> format_datetime(dt, locale='en_US')
|
699
|
-
u'Apr 1, 2007, 3:30:00\u202fPM'
|
700
|
-
|
701
|
-
For any pattern requiring the display of the timezone:
|
702
|
-
|
703
|
-
>>> format_datetime(dt, 'full', tzinfo=get_timezone('Europe/Paris'),
|
704
|
-
... locale='fr_FR')
|
705
|
-
'dimanche 1 avril 2007, 17:30:00 heure d’été d’Europe centrale'
|
706
|
-
>>> format_datetime(dt, "yyyy.MM.dd G 'at' HH:mm:ss zzz",
|
707
|
-
... tzinfo=get_timezone('US/Eastern'), locale='en')
|
708
|
-
u'2007.04.01 AD at 11:30:00 EDT'
|
709
|
-
|
710
|
-
:param datetime: the `datetime` object; if `None`, the current date and
|
711
|
-
time is used
|
712
|
-
:param format: one of "full", "long", "medium", or "short", or a custom
|
713
|
-
date/time pattern
|
714
|
-
:param tzinfo: the timezone to apply to the time for display
|
715
|
-
:param locale: a `Locale` object or a locale identifier
|
716
|
-
"""
|
717
|
-
datetime = _ensure_datetime_tzinfo(_get_datetime(datetime), tzinfo)
|
718
|
-
|
719
|
-
locale = Locale.parse(locale)
|
720
|
-
if format in ('full', 'long', 'medium', 'short'):
|
721
|
-
return get_datetime_format(format, locale=locale) \
|
722
|
-
.replace("'", "") \
|
723
|
-
.replace('{0}', format_time(datetime, format, tzinfo=None,
|
724
|
-
locale=locale)) \
|
725
|
-
.replace('{1}', format_date(datetime, format, locale=locale))
|
726
|
-
else:
|
727
|
-
return parse_pattern(format).apply(datetime, locale)
|
728
|
-
|
729
|
-
|
730
|
-
def format_time(
|
731
|
-
time: datetime.time | datetime.datetime | float | None = None,
|
732
|
-
format: _PredefinedTimeFormat | str = 'medium',
|
733
|
-
tzinfo: datetime.tzinfo | None = None, locale: Locale | str | None = LC_TIME,
|
734
|
-
) -> str:
|
735
|
-
r"""Return a time formatted according to the given pattern.
|
736
|
-
|
737
|
-
>>> from datetime import datetime, time
|
738
|
-
>>> t = time(15, 30)
|
739
|
-
>>> format_time(t, locale='en_US')
|
740
|
-
u'3:30:00\u202fPM'
|
741
|
-
>>> format_time(t, format='short', locale='de_DE')
|
742
|
-
u'15:30'
|
743
|
-
|
744
|
-
If you don't want to use the locale default formats, you can specify a
|
745
|
-
custom time pattern:
|
746
|
-
|
747
|
-
>>> format_time(t, "hh 'o''clock' a", locale='en')
|
748
|
-
u"03 o'clock PM"
|
749
|
-
|
750
|
-
For any pattern requiring the display of the time-zone a
|
751
|
-
timezone has to be specified explicitly:
|
752
|
-
|
753
|
-
>>> t = datetime(2007, 4, 1, 15, 30)
|
754
|
-
>>> tzinfo = get_timezone('Europe/Paris')
|
755
|
-
>>> t = _localize(tzinfo, t)
|
756
|
-
>>> format_time(t, format='full', tzinfo=tzinfo, locale='fr_FR')
|
757
|
-
'15:30:00 heure d’été d’Europe centrale'
|
758
|
-
>>> format_time(t, "hh 'o''clock' a, zzzz", tzinfo=get_timezone('US/Eastern'),
|
759
|
-
... locale='en')
|
760
|
-
u"09 o'clock AM, Eastern Daylight Time"
|
761
|
-
|
762
|
-
As that example shows, when this function gets passed a
|
763
|
-
``datetime.datetime`` value, the actual time in the formatted string is
|
764
|
-
adjusted to the timezone specified by the `tzinfo` parameter. If the
|
765
|
-
``datetime`` is "naive" (i.e. it has no associated timezone information),
|
766
|
-
it is assumed to be in UTC.
|
767
|
-
|
768
|
-
These timezone calculations are **not** performed if the value is of type
|
769
|
-
``datetime.time``, as without date information there's no way to determine
|
770
|
-
what a given time would translate to in a different timezone without
|
771
|
-
information about whether daylight savings time is in effect or not. This
|
772
|
-
means that time values are left as-is, and the value of the `tzinfo`
|
773
|
-
parameter is only used to display the timezone name if needed:
|
774
|
-
|
775
|
-
>>> t = time(15, 30)
|
776
|
-
>>> format_time(t, format='full', tzinfo=get_timezone('Europe/Paris'),
|
777
|
-
... locale='fr_FR') # doctest: +SKIP
|
778
|
-
u'15:30:00 heure normale d\u2019Europe centrale'
|
779
|
-
>>> format_time(t, format='full', tzinfo=get_timezone('US/Eastern'),
|
780
|
-
... locale='en_US') # doctest: +SKIP
|
781
|
-
u'3:30:00\u202fPM Eastern Standard Time'
|
782
|
-
|
783
|
-
:param time: the ``time`` or ``datetime`` object; if `None`, the current
|
784
|
-
time in UTC is used
|
785
|
-
:param format: one of "full", "long", "medium", or "short", or a custom
|
786
|
-
date/time pattern
|
787
|
-
:param tzinfo: the time-zone to apply to the time for display
|
788
|
-
:param locale: a `Locale` object or a locale identifier
|
789
|
-
"""
|
790
|
-
|
791
|
-
# get reference date for if we need to find the right timezone variant
|
792
|
-
# in the pattern
|
793
|
-
ref_date = time.date() if isinstance(time, datetime.datetime) else None
|
794
|
-
|
795
|
-
time = _get_time(time, tzinfo)
|
796
|
-
|
797
|
-
locale = Locale.parse(locale)
|
798
|
-
if format in ('full', 'long', 'medium', 'short'):
|
799
|
-
format = get_time_format(format, locale=locale)
|
800
|
-
return parse_pattern(format).apply(time, locale, reference_date=ref_date)
|
801
|
-
|
802
|
-
|
803
|
-
def format_skeleton(
|
804
|
-
skeleton: str,
|
805
|
-
datetime: _Instant = None,
|
806
|
-
tzinfo: datetime.tzinfo | None = None,
|
807
|
-
fuzzy: bool = True,
|
808
|
-
locale: Locale | str | None = LC_TIME,
|
809
|
-
) -> str:
|
810
|
-
r"""Return a time and/or date formatted according to the given pattern.
|
811
|
-
|
812
|
-
The skeletons are defined in the CLDR data and provide more flexibility
|
813
|
-
than the simple short/long/medium formats, but are a bit harder to use.
|
814
|
-
The are defined using the date/time symbols without order or punctuation
|
815
|
-
and map to a suitable format for the given locale.
|
816
|
-
|
817
|
-
>>> from datetime import datetime
|
818
|
-
>>> t = datetime(2007, 4, 1, 15, 30)
|
819
|
-
>>> format_skeleton('MMMEd', t, locale='fr')
|
820
|
-
u'dim. 1 avr.'
|
821
|
-
>>> format_skeleton('MMMEd', t, locale='en')
|
822
|
-
u'Sun, Apr 1'
|
823
|
-
>>> format_skeleton('yMMd', t, locale='fi') # yMMd is not in the Finnish locale; yMd gets used
|
824
|
-
u'1.4.2007'
|
825
|
-
>>> format_skeleton('yMMd', t, fuzzy=False, locale='fi') # yMMd is not in the Finnish locale, an error is thrown
|
826
|
-
Traceback (most recent call last):
|
827
|
-
...
|
828
|
-
KeyError: yMMd
|
829
|
-
>>> format_skeleton('GH', t, fuzzy=True, locale='fi_FI') # GH is not in the Finnish locale and there is no close match, an error is thrown
|
830
|
-
Traceback (most recent call last):
|
831
|
-
...
|
832
|
-
KeyError: None
|
833
|
-
|
834
|
-
After the skeleton is resolved to a pattern `format_datetime` is called so
|
835
|
-
all timezone processing etc is the same as for that.
|
836
|
-
|
837
|
-
:param skeleton: A date time skeleton as defined in the cldr data.
|
838
|
-
:param datetime: the ``time`` or ``datetime`` object; if `None`, the current
|
839
|
-
time in UTC is used
|
840
|
-
:param tzinfo: the time-zone to apply to the time for display
|
841
|
-
:param fuzzy: If the skeleton is not found, allow choosing a skeleton that's
|
842
|
-
close enough to it. If there is no close match, a `KeyError`
|
843
|
-
is thrown.
|
844
|
-
:param locale: a `Locale` object or a locale identifier
|
845
|
-
"""
|
846
|
-
locale = Locale.parse(locale)
|
847
|
-
if fuzzy and skeleton not in locale.datetime_skeletons:
|
848
|
-
skeleton = match_skeleton(skeleton, locale.datetime_skeletons)
|
849
|
-
format = locale.datetime_skeletons[skeleton]
|
850
|
-
return format_datetime(datetime, format, tzinfo, locale)
|
851
|
-
|
852
|
-
|
853
|
-
TIMEDELTA_UNITS: tuple[tuple[str, int], ...] = (
|
854
|
-
('year', 3600 * 24 * 365),
|
855
|
-
('month', 3600 * 24 * 30),
|
856
|
-
('week', 3600 * 24 * 7),
|
857
|
-
('day', 3600 * 24),
|
858
|
-
('hour', 3600),
|
859
|
-
('minute', 60),
|
860
|
-
('second', 1),
|
861
|
-
)
|
862
|
-
|
863
|
-
|
864
|
-
def format_timedelta(
|
865
|
-
delta: datetime.timedelta | int,
|
866
|
-
granularity: Literal['year', 'month', 'week', 'day', 'hour', 'minute', 'second'] = 'second',
|
867
|
-
threshold: float = .85,
|
868
|
-
add_direction: bool = False,
|
869
|
-
format: Literal['narrow', 'short', 'medium', 'long'] = 'long',
|
870
|
-
locale: Locale | str | None = LC_TIME,
|
871
|
-
) -> str:
|
872
|
-
"""Return a time delta according to the rules of the given locale.
|
873
|
-
|
874
|
-
>>> from datetime import timedelta
|
875
|
-
>>> format_timedelta(timedelta(weeks=12), locale='en_US')
|
876
|
-
u'3 months'
|
877
|
-
>>> format_timedelta(timedelta(seconds=1), locale='es')
|
878
|
-
u'1 segundo'
|
879
|
-
|
880
|
-
The granularity parameter can be provided to alter the lowest unit
|
881
|
-
presented, which defaults to a second.
|
882
|
-
|
883
|
-
>>> format_timedelta(timedelta(hours=3), granularity='day', locale='en_US')
|
884
|
-
u'1 day'
|
885
|
-
|
886
|
-
The threshold parameter can be used to determine at which value the
|
887
|
-
presentation switches to the next higher unit. A higher threshold factor
|
888
|
-
means the presentation will switch later. For example:
|
889
|
-
|
890
|
-
>>> format_timedelta(timedelta(hours=23), threshold=0.9, locale='en_US')
|
891
|
-
u'1 day'
|
892
|
-
>>> format_timedelta(timedelta(hours=23), threshold=1.1, locale='en_US')
|
893
|
-
u'23 hours'
|
894
|
-
|
895
|
-
In addition directional information can be provided that informs
|
896
|
-
the user if the date is in the past or in the future:
|
897
|
-
|
898
|
-
>>> format_timedelta(timedelta(hours=1), add_direction=True, locale='en')
|
899
|
-
u'in 1 hour'
|
900
|
-
>>> format_timedelta(timedelta(hours=-1), add_direction=True, locale='en')
|
901
|
-
u'1 hour ago'
|
902
|
-
|
903
|
-
The format parameter controls how compact or wide the presentation is:
|
904
|
-
|
905
|
-
>>> format_timedelta(timedelta(hours=3), format='short', locale='en')
|
906
|
-
u'3 hr'
|
907
|
-
>>> format_timedelta(timedelta(hours=3), format='narrow', locale='en')
|
908
|
-
u'3h'
|
909
|
-
|
910
|
-
:param delta: a ``timedelta`` object representing the time difference to
|
911
|
-
format, or the delta in seconds as an `int` value
|
912
|
-
:param granularity: determines the smallest unit that should be displayed,
|
913
|
-
the value can be one of "year", "month", "week", "day",
|
914
|
-
"hour", "minute" or "second"
|
915
|
-
:param threshold: factor that determines at which point the presentation
|
916
|
-
switches to the next higher unit
|
917
|
-
:param add_direction: if this flag is set to `True` the return value will
|
918
|
-
include directional information. For instance a
|
919
|
-
positive timedelta will include the information about
|
920
|
-
it being in the future, a negative will be information
|
921
|
-
about the value being in the past.
|
922
|
-
:param format: the format, can be "narrow", "short" or "long". (
|
923
|
-
"medium" is deprecated, currently converted to "long" to
|
924
|
-
maintain compatibility)
|
925
|
-
:param locale: a `Locale` object or a locale identifier
|
926
|
-
"""
|
927
|
-
if format not in ('narrow', 'short', 'medium', 'long'):
|
928
|
-
raise TypeError('Format must be one of "narrow", "short" or "long"')
|
929
|
-
if format == 'medium':
|
930
|
-
warnings.warn(
|
931
|
-
'"medium" value for format param of format_timedelta'
|
932
|
-
' is deprecated. Use "long" instead',
|
933
|
-
category=DeprecationWarning,
|
934
|
-
stacklevel=2,
|
935
|
-
)
|
936
|
-
format = 'long'
|
937
|
-
if isinstance(delta, datetime.timedelta):
|
938
|
-
seconds = int((delta.days * 86400) + delta.seconds)
|
939
|
-
else:
|
940
|
-
seconds = delta
|
941
|
-
locale = Locale.parse(locale)
|
942
|
-
|
943
|
-
def _iter_patterns(a_unit):
|
944
|
-
if add_direction:
|
945
|
-
unit_rel_patterns = locale._data['date_fields'][a_unit]
|
946
|
-
if seconds >= 0:
|
947
|
-
yield unit_rel_patterns['future']
|
948
|
-
else:
|
949
|
-
yield unit_rel_patterns['past']
|
950
|
-
a_unit = f"duration-{a_unit}"
|
951
|
-
unit_pats = locale._data['unit_patterns'].get(a_unit, {})
|
952
|
-
yield unit_pats.get(format)
|
953
|
-
# We do not support `<alias>` tags at all while ingesting CLDR data,
|
954
|
-
# so these aliases specified in `root.xml` are hard-coded here:
|
955
|
-
# <unitLength type="long"><alias source="locale" path="../unitLength[@type='short']"/></unitLength>
|
956
|
-
# <unitLength type="narrow"><alias source="locale" path="../unitLength[@type='short']"/></unitLength>
|
957
|
-
if format in ("long", "narrow"):
|
958
|
-
yield unit_pats.get("short")
|
959
|
-
|
960
|
-
for unit, secs_per_unit in TIMEDELTA_UNITS:
|
961
|
-
value = abs(seconds) / secs_per_unit
|
962
|
-
if value >= threshold or unit == granularity:
|
963
|
-
if unit == granularity and value > 0:
|
964
|
-
value = max(1, value)
|
965
|
-
value = int(round(value))
|
966
|
-
plural_form = locale.plural_form(value)
|
967
|
-
pattern = None
|
968
|
-
for patterns in _iter_patterns(unit):
|
969
|
-
if patterns is not None:
|
970
|
-
pattern = patterns.get(plural_form) or patterns.get('other')
|
971
|
-
if pattern:
|
972
|
-
break
|
973
|
-
# This really should not happen
|
974
|
-
if pattern is None:
|
975
|
-
return ''
|
976
|
-
return pattern.replace('{0}', str(value))
|
977
|
-
|
978
|
-
return ''
|
979
|
-
|
980
|
-
|
981
|
-
def _format_fallback_interval(
|
982
|
-
start: _Instant,
|
983
|
-
end: _Instant,
|
984
|
-
skeleton: str | None,
|
985
|
-
tzinfo: datetime.tzinfo | None,
|
986
|
-
locale: Locale | str | None = LC_TIME,
|
987
|
-
) -> str:
|
988
|
-
if skeleton in locale.datetime_skeletons: # Use the given skeleton
|
989
|
-
format = lambda dt: format_skeleton(skeleton, dt, tzinfo, locale=locale)
|
990
|
-
elif all((isinstance(d, datetime.date) and not isinstance(d, datetime.datetime)) for d in (start, end)): # Both are just dates
|
991
|
-
format = lambda dt: format_date(dt, locale=locale)
|
992
|
-
elif all((isinstance(d, datetime.time) and not isinstance(d, datetime.date)) for d in (start, end)): # Both are times
|
993
|
-
format = lambda dt: format_time(dt, tzinfo=tzinfo, locale=locale)
|
994
|
-
else:
|
995
|
-
format = lambda dt: format_datetime(dt, tzinfo=tzinfo, locale=locale)
|
996
|
-
|
997
|
-
formatted_start = format(start)
|
998
|
-
formatted_end = format(end)
|
999
|
-
|
1000
|
-
if formatted_start == formatted_end:
|
1001
|
-
return format(start)
|
1002
|
-
|
1003
|
-
return (
|
1004
|
-
locale.interval_formats.get(None, "{0}-{1}").
|
1005
|
-
replace("{0}", formatted_start).
|
1006
|
-
replace("{1}", formatted_end)
|
1007
|
-
)
|
1008
|
-
|
1009
|
-
|
1010
|
-
def format_interval(
|
1011
|
-
start: _Instant,
|
1012
|
-
end: _Instant,
|
1013
|
-
skeleton: str | None = None,
|
1014
|
-
tzinfo: datetime.tzinfo | None = None,
|
1015
|
-
fuzzy: bool = True,
|
1016
|
-
locale: Locale | str | None = LC_TIME,
|
1017
|
-
) -> str:
|
1018
|
-
"""
|
1019
|
-
Format an interval between two instants according to the locale's rules.
|
1020
|
-
|
1021
|
-
>>> from datetime import date, time
|
1022
|
-
>>> format_interval(date(2016, 1, 15), date(2016, 1, 17), "yMd", locale="fi")
|
1023
|
-
u'15.\u201317.1.2016'
|
1024
|
-
|
1025
|
-
>>> format_interval(time(12, 12), time(16, 16), "Hm", locale="en_GB")
|
1026
|
-
'12:12\u201316:16'
|
1027
|
-
|
1028
|
-
>>> format_interval(time(5, 12), time(16, 16), "hm", locale="en_US")
|
1029
|
-
'5:12\u202fAM\u2009–\u20094:16\u202fPM'
|
1030
|
-
|
1031
|
-
>>> format_interval(time(16, 18), time(16, 24), "Hm", locale="it")
|
1032
|
-
'16:18\u201316:24'
|
1033
|
-
|
1034
|
-
If the start instant equals the end instant, the interval is formatted like the instant.
|
1035
|
-
|
1036
|
-
>>> format_interval(time(16, 18), time(16, 18), "Hm", locale="it")
|
1037
|
-
'16:18'
|
1038
|
-
|
1039
|
-
Unknown skeletons fall back to "default" formatting.
|
1040
|
-
|
1041
|
-
>>> format_interval(date(2015, 1, 1), date(2017, 1, 1), "wzq", locale="ja")
|
1042
|
-
'2015/01/01\uff5e2017/01/01'
|
1043
|
-
|
1044
|
-
>>> format_interval(time(16, 18), time(16, 24), "xxx", locale="ja")
|
1045
|
-
'16:18:00\uff5e16:24:00'
|
1046
|
-
|
1047
|
-
>>> format_interval(date(2016, 1, 15), date(2016, 1, 17), "xxx", locale="de")
|
1048
|
-
'15.01.2016\u2009–\u200917.01.2016'
|
1049
|
-
|
1050
|
-
:param start: First instant (datetime/date/time)
|
1051
|
-
:param end: Second instant (datetime/date/time)
|
1052
|
-
:param skeleton: The "skeleton format" to use for formatting.
|
1053
|
-
:param tzinfo: tzinfo to use (if none is already attached)
|
1054
|
-
:param fuzzy: If the skeleton is not found, allow choosing a skeleton that's
|
1055
|
-
close enough to it.
|
1056
|
-
:param locale: A locale object or identifier.
|
1057
|
-
:return: Formatted interval
|
1058
|
-
"""
|
1059
|
-
locale = Locale.parse(locale)
|
1060
|
-
|
1061
|
-
# NB: The quote comments below are from the algorithm description in
|
1062
|
-
# https://www.unicode.org/reports/tr35/tr35-dates.html#intervalFormats
|
1063
|
-
|
1064
|
-
# > Look for the intervalFormatItem element that matches the "skeleton",
|
1065
|
-
# > starting in the current locale and then following the locale fallback
|
1066
|
-
# > chain up to, but not including root.
|
1067
|
-
|
1068
|
-
interval_formats = locale.interval_formats
|
1069
|
-
|
1070
|
-
if skeleton not in interval_formats or not skeleton:
|
1071
|
-
# > If no match was found from the previous step, check what the closest
|
1072
|
-
# > match is in the fallback locale chain, as in availableFormats. That
|
1073
|
-
# > is, this allows for adjusting the string value field's width,
|
1074
|
-
# > including adjusting between "MMM" and "MMMM", and using different
|
1075
|
-
# > variants of the same field, such as 'v' and 'z'.
|
1076
|
-
if skeleton and fuzzy:
|
1077
|
-
skeleton = match_skeleton(skeleton, interval_formats)
|
1078
|
-
else:
|
1079
|
-
skeleton = None
|
1080
|
-
if not skeleton: # Still no match whatsoever?
|
1081
|
-
# > Otherwise, format the start and end datetime using the fallback pattern.
|
1082
|
-
return _format_fallback_interval(start, end, skeleton, tzinfo, locale)
|
1083
|
-
|
1084
|
-
skel_formats = interval_formats[skeleton]
|
1085
|
-
|
1086
|
-
if start == end:
|
1087
|
-
return format_skeleton(skeleton, start, tzinfo, fuzzy=fuzzy, locale=locale)
|
1088
|
-
|
1089
|
-
start = _ensure_datetime_tzinfo(_get_datetime(start), tzinfo=tzinfo)
|
1090
|
-
end = _ensure_datetime_tzinfo(_get_datetime(end), tzinfo=tzinfo)
|
1091
|
-
|
1092
|
-
start_fmt = DateTimeFormat(start, locale=locale)
|
1093
|
-
end_fmt = DateTimeFormat(end, locale=locale)
|
1094
|
-
|
1095
|
-
# > If a match is found from previous steps, compute the calendar field
|
1096
|
-
# > with the greatest difference between start and end datetime. If there
|
1097
|
-
# > is no difference among any of the fields in the pattern, format as a
|
1098
|
-
# > single date using availableFormats, and return.
|
1099
|
-
|
1100
|
-
for field in PATTERN_CHAR_ORDER: # These are in largest-to-smallest order
|
1101
|
-
if field in skel_formats and start_fmt.extract(field) != end_fmt.extract(field):
|
1102
|
-
# > If there is a match, use the pieces of the corresponding pattern to
|
1103
|
-
# > format the start and end datetime, as above.
|
1104
|
-
return "".join(
|
1105
|
-
parse_pattern(pattern).apply(instant, locale)
|
1106
|
-
for pattern, instant
|
1107
|
-
in zip(skel_formats[field], (start, end))
|
1108
|
-
)
|
1109
|
-
|
1110
|
-
# > Otherwise, format the start and end datetime using the fallback pattern.
|
1111
|
-
|
1112
|
-
return _format_fallback_interval(start, end, skeleton, tzinfo, locale)
|
1113
|
-
|
1114
|
-
|
1115
|
-
def get_period_id(
|
1116
|
-
time: _Instant,
|
1117
|
-
tzinfo: datetime.tzinfo | None = None,
|
1118
|
-
type: Literal['selection'] | None = None,
|
1119
|
-
locale: Locale | str | None = LC_TIME,
|
1120
|
-
) -> str:
|
1121
|
-
"""
|
1122
|
-
Get the day period ID for a given time.
|
1123
|
-
|
1124
|
-
This ID can be used as a key for the period name dictionary.
|
1125
|
-
|
1126
|
-
>>> from datetime import time
|
1127
|
-
>>> get_period_names(locale="de")[get_period_id(time(7, 42), locale="de")]
|
1128
|
-
u'Morgen'
|
1129
|
-
|
1130
|
-
>>> get_period_id(time(0), locale="en_US")
|
1131
|
-
u'midnight'
|
1132
|
-
|
1133
|
-
>>> get_period_id(time(0), type="selection", locale="en_US")
|
1134
|
-
u'night1'
|
1135
|
-
|
1136
|
-
:param time: The time to inspect.
|
1137
|
-
:param tzinfo: The timezone for the time. See ``format_time``.
|
1138
|
-
:param type: The period type to use. Either "selection" or None.
|
1139
|
-
The selection type is used for selecting among phrases such as
|
1140
|
-
“Your email arrived yesterday evening” or “Your email arrived last night”.
|
1141
|
-
:param locale: the `Locale` object, or a locale string
|
1142
|
-
:return: period ID. Something is always returned -- even if it's just "am" or "pm".
|
1143
|
-
"""
|
1144
|
-
time = _get_time(time, tzinfo)
|
1145
|
-
seconds_past_midnight = int(time.hour * 60 * 60 + time.minute * 60 + time.second)
|
1146
|
-
locale = Locale.parse(locale)
|
1147
|
-
|
1148
|
-
# The LDML rules state that the rules may not overlap, so iterating in arbitrary
|
1149
|
-
# order should be alright, though `at` periods should be preferred.
|
1150
|
-
rulesets = locale.day_period_rules.get(type, {}).items()
|
1151
|
-
|
1152
|
-
for rule_id, rules in rulesets:
|
1153
|
-
for rule in rules:
|
1154
|
-
if "at" in rule and rule["at"] == seconds_past_midnight:
|
1155
|
-
return rule_id
|
1156
|
-
|
1157
|
-
for rule_id, rules in rulesets:
|
1158
|
-
for rule in rules:
|
1159
|
-
if "from" in rule and "before" in rule:
|
1160
|
-
if rule["from"] < rule["before"]:
|
1161
|
-
if rule["from"] <= seconds_past_midnight < rule["before"]:
|
1162
|
-
return rule_id
|
1163
|
-
else:
|
1164
|
-
# e.g. from="21:00" before="06:00"
|
1165
|
-
if rule["from"] <= seconds_past_midnight < 86400 or \
|
1166
|
-
0 <= seconds_past_midnight < rule["before"]:
|
1167
|
-
return rule_id
|
1168
|
-
|
1169
|
-
start_ok = end_ok = False
|
1170
|
-
|
1171
|
-
if "from" in rule and seconds_past_midnight >= rule["from"]:
|
1172
|
-
start_ok = True
|
1173
|
-
if "to" in rule and seconds_past_midnight <= rule["to"]:
|
1174
|
-
# This rule type does not exist in the present CLDR data;
|
1175
|
-
# excuse the lack of test coverage.
|
1176
|
-
end_ok = True
|
1177
|
-
if "before" in rule and seconds_past_midnight < rule["before"]:
|
1178
|
-
end_ok = True
|
1179
|
-
if "after" in rule:
|
1180
|
-
raise NotImplementedError("'after' is deprecated as of CLDR 29.")
|
1181
|
-
|
1182
|
-
if start_ok and end_ok:
|
1183
|
-
return rule_id
|
1184
|
-
|
1185
|
-
if seconds_past_midnight < 43200:
|
1186
|
-
return "am"
|
1187
|
-
else:
|
1188
|
-
return "pm"
|
1189
|
-
|
1190
|
-
|
1191
|
-
class ParseError(ValueError):
|
1192
|
-
pass
|
1193
|
-
|
1194
|
-
|
1195
|
-
def parse_date(
|
1196
|
-
string: str,
|
1197
|
-
locale: Locale | str | None = LC_TIME,
|
1198
|
-
format: _PredefinedTimeFormat = 'medium',
|
1199
|
-
) -> datetime.date:
|
1200
|
-
"""Parse a date from a string.
|
1201
|
-
|
1202
|
-
This function first tries to interpret the string as ISO-8601
|
1203
|
-
date format, then uses the date format for the locale as a hint to
|
1204
|
-
determine the order in which the date fields appear in the string.
|
1205
|
-
|
1206
|
-
>>> parse_date('4/1/04', locale='en_US')
|
1207
|
-
datetime.date(2004, 4, 1)
|
1208
|
-
>>> parse_date('01.04.2004', locale='de_DE')
|
1209
|
-
datetime.date(2004, 4, 1)
|
1210
|
-
>>> parse_date('2004-04-01', locale='en_US')
|
1211
|
-
datetime.date(2004, 4, 1)
|
1212
|
-
>>> parse_date('2004-04-01', locale='de_DE')
|
1213
|
-
datetime.date(2004, 4, 1)
|
1214
|
-
|
1215
|
-
:param string: the string containing the date
|
1216
|
-
:param locale: a `Locale` object or a locale identifier
|
1217
|
-
:param format: the format to use (see ``get_date_format``)
|
1218
|
-
"""
|
1219
|
-
numbers = re.findall(r'(\d+)', string)
|
1220
|
-
if not numbers:
|
1221
|
-
raise ParseError("No numbers were found in input")
|
1222
|
-
|
1223
|
-
# we try ISO-8601 format first, meaning similar to formats
|
1224
|
-
# extended YYYY-MM-DD or basic YYYYMMDD
|
1225
|
-
iso_alike = re.match(r'^(\d{4})-?([01]\d)-?([0-3]\d)$',
|
1226
|
-
string, flags=re.ASCII) # allow only ASCII digits
|
1227
|
-
if iso_alike:
|
1228
|
-
try:
|
1229
|
-
return datetime.date(*map(int, iso_alike.groups()))
|
1230
|
-
except ValueError:
|
1231
|
-
pass # a locale format might fit better, so let's continue
|
1232
|
-
|
1233
|
-
format_str = get_date_format(format=format, locale=locale).pattern.lower()
|
1234
|
-
year_idx = format_str.index('y')
|
1235
|
-
month_idx = format_str.index('m')
|
1236
|
-
if month_idx < 0:
|
1237
|
-
month_idx = format_str.index('l')
|
1238
|
-
day_idx = format_str.index('d')
|
1239
|
-
|
1240
|
-
indexes = sorted([(year_idx, 'Y'), (month_idx, 'M'), (day_idx, 'D')])
|
1241
|
-
indexes = {item[1]: idx for idx, item in enumerate(indexes)}
|
1242
|
-
|
1243
|
-
# FIXME: this currently only supports numbers, but should also support month
|
1244
|
-
# names, both in the requested locale, and english
|
1245
|
-
|
1246
|
-
year = numbers[indexes['Y']]
|
1247
|
-
year = 2000 + int(year) if len(year) == 2 else int(year)
|
1248
|
-
month = int(numbers[indexes['M']])
|
1249
|
-
day = int(numbers[indexes['D']])
|
1250
|
-
if month > 12:
|
1251
|
-
month, day = day, month
|
1252
|
-
return datetime.date(year, month, day)
|
1253
|
-
|
1254
|
-
|
1255
|
-
def parse_time(
|
1256
|
-
string: str,
|
1257
|
-
locale: Locale | str | None = LC_TIME,
|
1258
|
-
format: _PredefinedTimeFormat = 'medium',
|
1259
|
-
) -> datetime.time:
|
1260
|
-
"""Parse a time from a string.
|
1261
|
-
|
1262
|
-
This function uses the time format for the locale as a hint to determine
|
1263
|
-
the order in which the time fields appear in the string.
|
1264
|
-
|
1265
|
-
>>> parse_time('15:30:00', locale='en_US')
|
1266
|
-
datetime.time(15, 30)
|
1267
|
-
|
1268
|
-
:param string: the string containing the time
|
1269
|
-
:param locale: a `Locale` object or a locale identifier
|
1270
|
-
:param format: the format to use (see ``get_time_format``)
|
1271
|
-
:return: the parsed time
|
1272
|
-
:rtype: `time`
|
1273
|
-
"""
|
1274
|
-
numbers = re.findall(r'(\d+)', string)
|
1275
|
-
if not numbers:
|
1276
|
-
raise ParseError("No numbers were found in input")
|
1277
|
-
|
1278
|
-
# TODO: try ISO format first?
|
1279
|
-
format_str = get_time_format(format=format, locale=locale).pattern.lower()
|
1280
|
-
hour_idx = format_str.index('h')
|
1281
|
-
if hour_idx < 0:
|
1282
|
-
hour_idx = format_str.index('k')
|
1283
|
-
min_idx = format_str.index('m')
|
1284
|
-
sec_idx = format_str.index('s')
|
1285
|
-
|
1286
|
-
indexes = sorted([(hour_idx, 'H'), (min_idx, 'M'), (sec_idx, 'S')])
|
1287
|
-
indexes = {item[1]: idx for idx, item in enumerate(indexes)}
|
1288
|
-
|
1289
|
-
# TODO: support time zones
|
1290
|
-
|
1291
|
-
# Check if the format specifies a period to be used;
|
1292
|
-
# if it does, look for 'pm' to figure out an offset.
|
1293
|
-
hour_offset = 0
|
1294
|
-
if 'a' in format_str and 'pm' in string.lower():
|
1295
|
-
hour_offset = 12
|
1296
|
-
|
1297
|
-
# Parse up to three numbers from the string.
|
1298
|
-
minute = second = 0
|
1299
|
-
hour = int(numbers[indexes['H']]) + hour_offset
|
1300
|
-
if len(numbers) > 1:
|
1301
|
-
minute = int(numbers[indexes['M']])
|
1302
|
-
if len(numbers) > 2:
|
1303
|
-
second = int(numbers[indexes['S']])
|
1304
|
-
return datetime.time(hour, minute, second)
|
1305
|
-
|
1306
|
-
|
1307
|
-
class DateTimePattern:
|
1308
|
-
|
1309
|
-
def __init__(self, pattern: str, format: DateTimeFormat):
|
1310
|
-
self.pattern = pattern
|
1311
|
-
self.format = format
|
1312
|
-
|
1313
|
-
def __repr__(self) -> str:
|
1314
|
-
return f"<{type(self).__name__} {self.pattern!r}>"
|
1315
|
-
|
1316
|
-
def __str__(self) -> str:
|
1317
|
-
pat = self.pattern
|
1318
|
-
return pat
|
1319
|
-
|
1320
|
-
def __mod__(self, other: DateTimeFormat) -> str:
|
1321
|
-
if not isinstance(other, DateTimeFormat):
|
1322
|
-
return NotImplemented
|
1323
|
-
return self.format % other
|
1324
|
-
|
1325
|
-
def apply(
|
1326
|
-
self,
|
1327
|
-
datetime: datetime.date | datetime.time,
|
1328
|
-
locale: Locale | str | None,
|
1329
|
-
reference_date: datetime.date | None = None,
|
1330
|
-
) -> str:
|
1331
|
-
return self % DateTimeFormat(datetime, locale, reference_date)
|
1332
|
-
|
1333
|
-
|
1334
|
-
class DateTimeFormat:
|
1335
|
-
|
1336
|
-
def __init__(
|
1337
|
-
self,
|
1338
|
-
value: datetime.date | datetime.time,
|
1339
|
-
locale: Locale | str,
|
1340
|
-
reference_date: datetime.date | None = None,
|
1341
|
-
) -> None:
|
1342
|
-
assert isinstance(value, (datetime.date, datetime.datetime, datetime.time))
|
1343
|
-
if isinstance(value, (datetime.datetime, datetime.time)) and value.tzinfo is None:
|
1344
|
-
value = value.replace(tzinfo=UTC)
|
1345
|
-
self.value = value
|
1346
|
-
self.locale = Locale.parse(locale)
|
1347
|
-
self.reference_date = reference_date
|
1348
|
-
|
1349
|
-
def __getitem__(self, name: str) -> str:
|
1350
|
-
char = name[0]
|
1351
|
-
num = len(name)
|
1352
|
-
if char == 'G':
|
1353
|
-
return self.format_era(char, num)
|
1354
|
-
elif char in ('y', 'Y', 'u'):
|
1355
|
-
return self.format_year(char, num)
|
1356
|
-
elif char in ('Q', 'q'):
|
1357
|
-
return self.format_quarter(char, num)
|
1358
|
-
elif char in ('M', 'L'):
|
1359
|
-
return self.format_month(char, num)
|
1360
|
-
elif char in ('w', 'W'):
|
1361
|
-
return self.format_week(char, num)
|
1362
|
-
elif char == 'd':
|
1363
|
-
return self.format(self.value.day, num)
|
1364
|
-
elif char == 'D':
|
1365
|
-
return self.format_day_of_year(num)
|
1366
|
-
elif char == 'F':
|
1367
|
-
return self.format_day_of_week_in_month()
|
1368
|
-
elif char in ('E', 'e', 'c'):
|
1369
|
-
return self.format_weekday(char, num)
|
1370
|
-
elif char in ('a', 'b', 'B'):
|
1371
|
-
return self.format_period(char, num)
|
1372
|
-
elif char == 'h':
|
1373
|
-
if self.value.hour % 12 == 0:
|
1374
|
-
return self.format(12, num)
|
1375
|
-
else:
|
1376
|
-
return self.format(self.value.hour % 12, num)
|
1377
|
-
elif char == 'H':
|
1378
|
-
return self.format(self.value.hour, num)
|
1379
|
-
elif char == 'K':
|
1380
|
-
return self.format(self.value.hour % 12, num)
|
1381
|
-
elif char == 'k':
|
1382
|
-
if self.value.hour == 0:
|
1383
|
-
return self.format(24, num)
|
1384
|
-
else:
|
1385
|
-
return self.format(self.value.hour, num)
|
1386
|
-
elif char == 'm':
|
1387
|
-
return self.format(self.value.minute, num)
|
1388
|
-
elif char == 's':
|
1389
|
-
return self.format(self.value.second, num)
|
1390
|
-
elif char == 'S':
|
1391
|
-
return self.format_frac_seconds(num)
|
1392
|
-
elif char == 'A':
|
1393
|
-
return self.format_milliseconds_in_day(num)
|
1394
|
-
elif char in ('z', 'Z', 'v', 'V', 'x', 'X', 'O'):
|
1395
|
-
return self.format_timezone(char, num)
|
1396
|
-
else:
|
1397
|
-
raise KeyError(f"Unsupported date/time field {char!r}")
|
1398
|
-
|
1399
|
-
def extract(self, char: str) -> int:
|
1400
|
-
char = str(char)[0]
|
1401
|
-
if char == 'y':
|
1402
|
-
return self.value.year
|
1403
|
-
elif char == 'M':
|
1404
|
-
return self.value.month
|
1405
|
-
elif char == 'd':
|
1406
|
-
return self.value.day
|
1407
|
-
elif char == 'H':
|
1408
|
-
return self.value.hour
|
1409
|
-
elif char == 'h':
|
1410
|
-
return self.value.hour % 12 or 12
|
1411
|
-
elif char == 'm':
|
1412
|
-
return self.value.minute
|
1413
|
-
elif char == 'a':
|
1414
|
-
return int(self.value.hour >= 12) # 0 for am, 1 for pm
|
1415
|
-
else:
|
1416
|
-
raise NotImplementedError(f"Not implemented: extracting {char!r} from {self.value!r}")
|
1417
|
-
|
1418
|
-
def format_era(self, char: str, num: int) -> str:
|
1419
|
-
width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[max(3, num)]
|
1420
|
-
era = int(self.value.year >= 0)
|
1421
|
-
return get_era_names(width, self.locale)[era]
|
1422
|
-
|
1423
|
-
def format_year(self, char: str, num: int) -> str:
|
1424
|
-
value = self.value.year
|
1425
|
-
if char.isupper():
|
1426
|
-
value = self.value.isocalendar()[0]
|
1427
|
-
year = self.format(value, num)
|
1428
|
-
if num == 2:
|
1429
|
-
year = year[-2:]
|
1430
|
-
return year
|
1431
|
-
|
1432
|
-
def format_quarter(self, char: str, num: int) -> str:
|
1433
|
-
quarter = (self.value.month - 1) // 3 + 1
|
1434
|
-
if num <= 2:
|
1435
|
-
return '%0*d' % (num, quarter)
|
1436
|
-
width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
|
1437
|
-
context = {'Q': 'format', 'q': 'stand-alone'}[char]
|
1438
|
-
return get_quarter_names(width, context, self.locale)[quarter]
|
1439
|
-
|
1440
|
-
def format_month(self, char: str, num: int) -> str:
|
1441
|
-
if num <= 2:
|
1442
|
-
return '%0*d' % (num, self.value.month)
|
1443
|
-
width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
|
1444
|
-
context = {'M': 'format', 'L': 'stand-alone'}[char]
|
1445
|
-
return get_month_names(width, context, self.locale)[self.value.month]
|
1446
|
-
|
1447
|
-
def format_week(self, char: str, num: int) -> str:
|
1448
|
-
if char.islower(): # week of year
|
1449
|
-
day_of_year = self.get_day_of_year()
|
1450
|
-
week = self.get_week_number(day_of_year)
|
1451
|
-
if week == 0:
|
1452
|
-
date = self.value - datetime.timedelta(days=day_of_year)
|
1453
|
-
week = self.get_week_number(self.get_day_of_year(date),
|
1454
|
-
date.weekday())
|
1455
|
-
return self.format(week, num)
|
1456
|
-
else: # week of month
|
1457
|
-
week = self.get_week_number(self.value.day)
|
1458
|
-
if week == 0:
|
1459
|
-
date = self.value - datetime.timedelta(days=self.value.day)
|
1460
|
-
week = self.get_week_number(date.day, date.weekday())
|
1461
|
-
return str(week)
|
1462
|
-
|
1463
|
-
def format_weekday(self, char: str = 'E', num: int = 4) -> str:
|
1464
|
-
"""
|
1465
|
-
Return weekday from parsed datetime according to format pattern.
|
1466
|
-
|
1467
|
-
>>> from datetime import date
|
1468
|
-
>>> format = DateTimeFormat(date(2016, 2, 28), Locale.parse('en_US'))
|
1469
|
-
>>> format.format_weekday()
|
1470
|
-
u'Sunday'
|
1471
|
-
|
1472
|
-
'E': Day of week - Use one through three letters for the abbreviated day name, four for the full (wide) name,
|
1473
|
-
five for the narrow name, or six for the short name.
|
1474
|
-
>>> format.format_weekday('E',2)
|
1475
|
-
u'Sun'
|
1476
|
-
|
1477
|
-
'e': Local day of week. Same as E except adds a numeric value that will depend on the local starting day of the
|
1478
|
-
week, using one or two letters. For this example, Monday is the first day of the week.
|
1479
|
-
>>> format.format_weekday('e',2)
|
1480
|
-
'01'
|
1481
|
-
|
1482
|
-
'c': Stand-Alone local day of week - Use one letter for the local numeric value (same as 'e'), three for the
|
1483
|
-
abbreviated day name, four for the full (wide) name, five for the narrow name, or six for the short name.
|
1484
|
-
>>> format.format_weekday('c',1)
|
1485
|
-
'1'
|
1486
|
-
|
1487
|
-
:param char: pattern format character ('e','E','c')
|
1488
|
-
:param num: count of format character
|
1489
|
-
|
1490
|
-
"""
|
1491
|
-
if num < 3:
|
1492
|
-
if char.islower():
|
1493
|
-
value = 7 - self.locale.first_week_day + self.value.weekday()
|
1494
|
-
return self.format(value % 7 + 1, num)
|
1495
|
-
num = 3
|
1496
|
-
weekday = self.value.weekday()
|
1497
|
-
width = {3: 'abbreviated', 4: 'wide', 5: 'narrow', 6: 'short'}[num]
|
1498
|
-
context = "stand-alone" if char == "c" else "format"
|
1499
|
-
return get_day_names(width, context, self.locale)[weekday]
|
1500
|
-
|
1501
|
-
def format_day_of_year(self, num: int) -> str:
|
1502
|
-
return self.format(self.get_day_of_year(), num)
|
1503
|
-
|
1504
|
-
def format_day_of_week_in_month(self) -> str:
|
1505
|
-
return str((self.value.day - 1) // 7 + 1)
|
1506
|
-
|
1507
|
-
def format_period(self, char: str, num: int) -> str:
|
1508
|
-
"""
|
1509
|
-
Return period from parsed datetime according to format pattern.
|
1510
|
-
|
1511
|
-
>>> from datetime import datetime, time
|
1512
|
-
>>> format = DateTimeFormat(time(13, 42), 'fi_FI')
|
1513
|
-
>>> format.format_period('a', 1)
|
1514
|
-
u'ip.'
|
1515
|
-
>>> format.format_period('b', 1)
|
1516
|
-
u'iltap.'
|
1517
|
-
>>> format.format_period('b', 4)
|
1518
|
-
u'iltapäivä'
|
1519
|
-
>>> format.format_period('B', 4)
|
1520
|
-
u'iltapäivällä'
|
1521
|
-
>>> format.format_period('B', 5)
|
1522
|
-
u'ip.'
|
1523
|
-
|
1524
|
-
>>> format = DateTimeFormat(datetime(2022, 4, 28, 6, 27), 'zh_Hant')
|
1525
|
-
>>> format.format_period('a', 1)
|
1526
|
-
u'上午'
|
1527
|
-
>>> format.format_period('B', 1)
|
1528
|
-
u'清晨'
|
1529
|
-
|
1530
|
-
:param char: pattern format character ('a', 'b', 'B')
|
1531
|
-
:param num: count of format character
|
1532
|
-
|
1533
|
-
"""
|
1534
|
-
widths = [{3: 'abbreviated', 4: 'wide', 5: 'narrow'}[max(3, num)],
|
1535
|
-
'wide', 'narrow', 'abbreviated']
|
1536
|
-
if char == 'a':
|
1537
|
-
period = 'pm' if self.value.hour >= 12 else 'am'
|
1538
|
-
context = 'format'
|
1539
|
-
else:
|
1540
|
-
period = get_period_id(self.value, locale=self.locale)
|
1541
|
-
context = 'format' if char == 'B' else 'stand-alone'
|
1542
|
-
for width in widths:
|
1543
|
-
period_names = get_period_names(context=context, width=width, locale=self.locale)
|
1544
|
-
if period in period_names:
|
1545
|
-
return period_names[period]
|
1546
|
-
raise ValueError(f"Could not format period {period} in {self.locale}")
|
1547
|
-
|
1548
|
-
def format_frac_seconds(self, num: int) -> str:
|
1549
|
-
""" Return fractional seconds.
|
1550
|
-
|
1551
|
-
Rounds the time's microseconds to the precision given by the number \
|
1552
|
-
of digits passed in.
|
1553
|
-
"""
|
1554
|
-
value = self.value.microsecond / 1000000
|
1555
|
-
return self.format(round(value, num) * 10**num, num)
|
1556
|
-
|
1557
|
-
def format_milliseconds_in_day(self, num):
|
1558
|
-
msecs = self.value.microsecond // 1000 + self.value.second * 1000 + \
|
1559
|
-
self.value.minute * 60000 + self.value.hour * 3600000
|
1560
|
-
return self.format(msecs, num)
|
1561
|
-
|
1562
|
-
def format_timezone(self, char: str, num: int) -> str:
|
1563
|
-
width = {3: 'short', 4: 'long', 5: 'iso8601'}[max(3, num)]
|
1564
|
-
|
1565
|
-
# It could be that we only receive a time to format, but also have a
|
1566
|
-
# reference date which is important to distinguish between timezone
|
1567
|
-
# variants (summer/standard time)
|
1568
|
-
value = self.value
|
1569
|
-
if self.reference_date:
|
1570
|
-
value = datetime.datetime.combine(self.reference_date, self.value)
|
1571
|
-
|
1572
|
-
if char == 'z':
|
1573
|
-
return get_timezone_name(value, width, locale=self.locale)
|
1574
|
-
elif char == 'Z':
|
1575
|
-
if num == 5:
|
1576
|
-
return get_timezone_gmt(value, width, locale=self.locale, return_z=True)
|
1577
|
-
return get_timezone_gmt(value, width, locale=self.locale)
|
1578
|
-
elif char == 'O':
|
1579
|
-
if num == 4:
|
1580
|
-
return get_timezone_gmt(value, width, locale=self.locale)
|
1581
|
-
# TODO: To add support for O:1
|
1582
|
-
elif char == 'v':
|
1583
|
-
return get_timezone_name(value.tzinfo, width,
|
1584
|
-
locale=self.locale)
|
1585
|
-
elif char == 'V':
|
1586
|
-
if num == 1:
|
1587
|
-
return get_timezone_name(value.tzinfo, width,
|
1588
|
-
uncommon=True, locale=self.locale)
|
1589
|
-
elif num == 2:
|
1590
|
-
return get_timezone_name(value.tzinfo, locale=self.locale, return_zone=True)
|
1591
|
-
elif num == 3:
|
1592
|
-
return get_timezone_location(value.tzinfo, locale=self.locale, return_city=True)
|
1593
|
-
return get_timezone_location(value.tzinfo, locale=self.locale)
|
1594
|
-
# Included additional elif condition to add support for 'Xx' in timezone format
|
1595
|
-
elif char == 'X':
|
1596
|
-
if num == 1:
|
1597
|
-
return get_timezone_gmt(value, width='iso8601_short', locale=self.locale,
|
1598
|
-
return_z=True)
|
1599
|
-
elif num in (2, 4):
|
1600
|
-
return get_timezone_gmt(value, width='short', locale=self.locale,
|
1601
|
-
return_z=True)
|
1602
|
-
elif num in (3, 5):
|
1603
|
-
return get_timezone_gmt(value, width='iso8601', locale=self.locale,
|
1604
|
-
return_z=True)
|
1605
|
-
elif char == 'x':
|
1606
|
-
if num == 1:
|
1607
|
-
return get_timezone_gmt(value, width='iso8601_short', locale=self.locale)
|
1608
|
-
elif num in (2, 4):
|
1609
|
-
return get_timezone_gmt(value, width='short', locale=self.locale)
|
1610
|
-
elif num in (3, 5):
|
1611
|
-
return get_timezone_gmt(value, width='iso8601', locale=self.locale)
|
1612
|
-
|
1613
|
-
def format(self, value: SupportsInt, length: int) -> str:
|
1614
|
-
return '%0*d' % (length, value)
|
1615
|
-
|
1616
|
-
def get_day_of_year(self, date: datetime.date | None = None) -> int:
|
1617
|
-
if date is None:
|
1618
|
-
date = self.value
|
1619
|
-
return (date - date.replace(month=1, day=1)).days + 1
|
1620
|
-
|
1621
|
-
def get_week_number(self, day_of_period: int, day_of_week: int | None = None) -> int:
|
1622
|
-
"""Return the number of the week of a day within a period. This may be
|
1623
|
-
the week number in a year or the week number in a month.
|
1624
|
-
|
1625
|
-
Usually this will return a value equal to or greater than 1, but if the
|
1626
|
-
first week of the period is so short that it actually counts as the last
|
1627
|
-
week of the previous period, this function will return 0.
|
1628
|
-
|
1629
|
-
>>> date = datetime.date(2006, 1, 8)
|
1630
|
-
>>> DateTimeFormat(date, 'de_DE').get_week_number(6)
|
1631
|
-
1
|
1632
|
-
>>> DateTimeFormat(date, 'en_US').get_week_number(6)
|
1633
|
-
2
|
1634
|
-
|
1635
|
-
:param day_of_period: the number of the day in the period (usually
|
1636
|
-
either the day of month or the day of year)
|
1637
|
-
:param day_of_week: the week day; if omitted, the week day of the
|
1638
|
-
current date is assumed
|
1639
|
-
"""
|
1640
|
-
if day_of_week is None:
|
1641
|
-
day_of_week = self.value.weekday()
|
1642
|
-
first_day = (day_of_week - self.locale.first_week_day -
|
1643
|
-
day_of_period + 1) % 7
|
1644
|
-
if first_day < 0:
|
1645
|
-
first_day += 7
|
1646
|
-
week_number = (day_of_period + first_day - 1) // 7
|
1647
|
-
|
1648
|
-
if 7 - first_day >= self.locale.min_week_days:
|
1649
|
-
week_number += 1
|
1650
|
-
|
1651
|
-
if self.locale.first_week_day == 0:
|
1652
|
-
# Correct the weeknumber in case of iso-calendar usage (first_week_day=0).
|
1653
|
-
# If the weeknumber exceeds the maximum number of weeks for the given year
|
1654
|
-
# we must count from zero.For example the above calculation gives week 53
|
1655
|
-
# for 2018-12-31. By iso-calender definition 2018 has a max of 52
|
1656
|
-
# weeks, thus the weeknumber must be 53-52=1.
|
1657
|
-
max_weeks = datetime.date(year=self.value.year, day=28, month=12).isocalendar()[1]
|
1658
|
-
if week_number > max_weeks:
|
1659
|
-
week_number -= max_weeks
|
1660
|
-
|
1661
|
-
return week_number
|
1662
|
-
|
1663
|
-
|
1664
|
-
PATTERN_CHARS: dict[str, list[int] | None] = {
|
1665
|
-
'G': [1, 2, 3, 4, 5], # era
|
1666
|
-
'y': None, 'Y': None, 'u': None, # year
|
1667
|
-
'Q': [1, 2, 3, 4, 5], 'q': [1, 2, 3, 4, 5], # quarter
|
1668
|
-
'M': [1, 2, 3, 4, 5], 'L': [1, 2, 3, 4, 5], # month
|
1669
|
-
'w': [1, 2], 'W': [1], # week
|
1670
|
-
'd': [1, 2], 'D': [1, 2, 3], 'F': [1], 'g': None, # day
|
1671
|
-
'E': [1, 2, 3, 4, 5, 6], 'e': [1, 2, 3, 4, 5, 6], 'c': [1, 3, 4, 5, 6], # week day
|
1672
|
-
'a': [1, 2, 3, 4, 5], 'b': [1, 2, 3, 4, 5], 'B': [1, 2, 3, 4, 5], # period
|
1673
|
-
'h': [1, 2], 'H': [1, 2], 'K': [1, 2], 'k': [1, 2], # hour
|
1674
|
-
'm': [1, 2], # minute
|
1675
|
-
's': [1, 2], 'S': None, 'A': None, # second
|
1676
|
-
'z': [1, 2, 3, 4], 'Z': [1, 2, 3, 4, 5], 'O': [1, 4], 'v': [1, 4], # zone
|
1677
|
-
'V': [1, 2, 3, 4], 'x': [1, 2, 3, 4, 5], 'X': [1, 2, 3, 4, 5], # zone
|
1678
|
-
}
|
1679
|
-
|
1680
|
-
#: The pattern characters declared in the Date Field Symbol Table
|
1681
|
-
#: (https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)
|
1682
|
-
#: in order of decreasing magnitude.
|
1683
|
-
PATTERN_CHAR_ORDER = "GyYuUQqMLlwWdDFgEecabBChHKkjJmsSAzZOvVXx"
|
1684
|
-
|
1685
|
-
|
1686
|
-
def parse_pattern(pattern: str | DateTimePattern) -> DateTimePattern:
|
1687
|
-
"""Parse date, time, and datetime format patterns.
|
1688
|
-
|
1689
|
-
>>> parse_pattern("MMMMd").format
|
1690
|
-
u'%(MMMM)s%(d)s'
|
1691
|
-
>>> parse_pattern("MMM d, yyyy").format
|
1692
|
-
u'%(MMM)s %(d)s, %(yyyy)s'
|
1693
|
-
|
1694
|
-
Pattern can contain literal strings in single quotes:
|
1695
|
-
|
1696
|
-
>>> parse_pattern("H:mm' Uhr 'z").format
|
1697
|
-
u'%(H)s:%(mm)s Uhr %(z)s'
|
1698
|
-
|
1699
|
-
An actual single quote can be used by using two adjacent single quote
|
1700
|
-
characters:
|
1701
|
-
|
1702
|
-
>>> parse_pattern("hh' o''clock'").format
|
1703
|
-
u"%(hh)s o'clock"
|
1704
|
-
|
1705
|
-
:param pattern: the formatting pattern to parse
|
1706
|
-
"""
|
1707
|
-
if isinstance(pattern, DateTimePattern):
|
1708
|
-
return pattern
|
1709
|
-
return _cached_parse_pattern(pattern)
|
1710
|
-
|
1711
|
-
|
1712
|
-
@lru_cache(maxsize=1024)
|
1713
|
-
def _cached_parse_pattern(pattern: str) -> DateTimePattern:
|
1714
|
-
result = []
|
1715
|
-
|
1716
|
-
for tok_type, tok_value in tokenize_pattern(pattern):
|
1717
|
-
if tok_type == "chars":
|
1718
|
-
result.append(tok_value.replace('%', '%%'))
|
1719
|
-
elif tok_type == "field":
|
1720
|
-
fieldchar, fieldnum = tok_value
|
1721
|
-
limit = PATTERN_CHARS[fieldchar]
|
1722
|
-
if limit and fieldnum not in limit:
|
1723
|
-
raise ValueError(f"Invalid length for field: {fieldchar * fieldnum!r}")
|
1724
|
-
result.append('%%(%s)s' % (fieldchar * fieldnum))
|
1725
|
-
else:
|
1726
|
-
raise NotImplementedError(f"Unknown token type: {tok_type}")
|
1727
|
-
return DateTimePattern(pattern, ''.join(result))
|
1728
|
-
|
1729
|
-
|
1730
|
-
def tokenize_pattern(pattern: str) -> list[tuple[str, str | tuple[str, int]]]:
|
1731
|
-
"""
|
1732
|
-
Tokenize date format patterns.
|
1733
|
-
|
1734
|
-
Returns a list of (token_type, token_value) tuples.
|
1735
|
-
|
1736
|
-
``token_type`` may be either "chars" or "field".
|
1737
|
-
|
1738
|
-
For "chars" tokens, the value is the literal value.
|
1739
|
-
|
1740
|
-
For "field" tokens, the value is a tuple of (field character, repetition count).
|
1741
|
-
|
1742
|
-
:param pattern: Pattern string
|
1743
|
-
:type pattern: str
|
1744
|
-
:rtype: list[tuple]
|
1745
|
-
"""
|
1746
|
-
result = []
|
1747
|
-
quotebuf = None
|
1748
|
-
charbuf = []
|
1749
|
-
fieldchar = ['']
|
1750
|
-
fieldnum = [0]
|
1751
|
-
|
1752
|
-
def append_chars():
|
1753
|
-
result.append(('chars', ''.join(charbuf).replace('\0', "'")))
|
1754
|
-
del charbuf[:]
|
1755
|
-
|
1756
|
-
def append_field():
|
1757
|
-
result.append(('field', (fieldchar[0], fieldnum[0])))
|
1758
|
-
fieldchar[0] = ''
|
1759
|
-
fieldnum[0] = 0
|
1760
|
-
|
1761
|
-
for char in pattern.replace("''", '\0'):
|
1762
|
-
if quotebuf is None:
|
1763
|
-
if char == "'": # quote started
|
1764
|
-
if fieldchar[0]:
|
1765
|
-
append_field()
|
1766
|
-
elif charbuf:
|
1767
|
-
append_chars()
|
1768
|
-
quotebuf = []
|
1769
|
-
elif char in PATTERN_CHARS:
|
1770
|
-
if charbuf:
|
1771
|
-
append_chars()
|
1772
|
-
if char == fieldchar[0]:
|
1773
|
-
fieldnum[0] += 1
|
1774
|
-
else:
|
1775
|
-
if fieldchar[0]:
|
1776
|
-
append_field()
|
1777
|
-
fieldchar[0] = char
|
1778
|
-
fieldnum[0] = 1
|
1779
|
-
else:
|
1780
|
-
if fieldchar[0]:
|
1781
|
-
append_field()
|
1782
|
-
charbuf.append(char)
|
1783
|
-
|
1784
|
-
elif quotebuf is not None:
|
1785
|
-
if char == "'": # end of quote
|
1786
|
-
charbuf.extend(quotebuf)
|
1787
|
-
quotebuf = None
|
1788
|
-
else: # inside quote
|
1789
|
-
quotebuf.append(char)
|
1790
|
-
|
1791
|
-
if fieldchar[0]:
|
1792
|
-
append_field()
|
1793
|
-
elif charbuf:
|
1794
|
-
append_chars()
|
1795
|
-
|
1796
|
-
return result
|
1797
|
-
|
1798
|
-
|
1799
|
-
def untokenize_pattern(tokens: Iterable[tuple[str, str | tuple[str, int]]]) -> str:
|
1800
|
-
"""
|
1801
|
-
Turn a date format pattern token stream back into a string.
|
1802
|
-
|
1803
|
-
This is the reverse operation of ``tokenize_pattern``.
|
1804
|
-
|
1805
|
-
:type tokens: Iterable[tuple]
|
1806
|
-
:rtype: str
|
1807
|
-
"""
|
1808
|
-
output = []
|
1809
|
-
for tok_type, tok_value in tokens:
|
1810
|
-
if tok_type == "field":
|
1811
|
-
output.append(tok_value[0] * tok_value[1])
|
1812
|
-
elif tok_type == "chars":
|
1813
|
-
if not any(ch in PATTERN_CHARS for ch in tok_value): # No need to quote
|
1814
|
-
output.append(tok_value)
|
1815
|
-
else:
|
1816
|
-
output.append("'%s'" % tok_value.replace("'", "''"))
|
1817
|
-
return "".join(output)
|
1818
|
-
|
1819
|
-
|
1820
|
-
def split_interval_pattern(pattern: str) -> list[str]:
|
1821
|
-
"""
|
1822
|
-
Split an interval-describing datetime pattern into multiple pieces.
|
1823
|
-
|
1824
|
-
> The pattern is then designed to be broken up into two pieces by determining the first repeating field.
|
1825
|
-
- https://www.unicode.org/reports/tr35/tr35-dates.html#intervalFormats
|
1826
|
-
|
1827
|
-
>>> split_interval_pattern(u'E d.M. \u2013 E d.M.')
|
1828
|
-
[u'E d.M. \u2013 ', 'E d.M.']
|
1829
|
-
>>> split_interval_pattern("Y 'text' Y 'more text'")
|
1830
|
-
["Y 'text '", "Y 'more text'"]
|
1831
|
-
>>> split_interval_pattern(u"E, MMM d \u2013 E")
|
1832
|
-
[u'E, MMM d \u2013 ', u'E']
|
1833
|
-
>>> split_interval_pattern("MMM d")
|
1834
|
-
['MMM d']
|
1835
|
-
>>> split_interval_pattern("y G")
|
1836
|
-
['y G']
|
1837
|
-
>>> split_interval_pattern(u"MMM d \u2013 d")
|
1838
|
-
[u'MMM d \u2013 ', u'd']
|
1839
|
-
|
1840
|
-
:param pattern: Interval pattern string
|
1841
|
-
:return: list of "subpatterns"
|
1842
|
-
"""
|
1843
|
-
|
1844
|
-
seen_fields = set()
|
1845
|
-
parts = [[]]
|
1846
|
-
|
1847
|
-
for tok_type, tok_value in tokenize_pattern(pattern):
|
1848
|
-
if tok_type == "field":
|
1849
|
-
if tok_value[0] in seen_fields: # Repeated field
|
1850
|
-
parts.append([])
|
1851
|
-
seen_fields.clear()
|
1852
|
-
seen_fields.add(tok_value[0])
|
1853
|
-
parts[-1].append((tok_type, tok_value))
|
1854
|
-
|
1855
|
-
return [untokenize_pattern(tokens) for tokens in parts]
|
1856
|
-
|
1857
|
-
|
1858
|
-
def match_skeleton(skeleton: str, options: Iterable[str], allow_different_fields: bool = False) -> str | None:
|
1859
|
-
"""
|
1860
|
-
Find the closest match for the given datetime skeleton among the options given.
|
1861
|
-
|
1862
|
-
This uses the rules outlined in the TR35 document.
|
1863
|
-
|
1864
|
-
>>> match_skeleton('yMMd', ('yMd', 'yMMMd'))
|
1865
|
-
'yMd'
|
1866
|
-
|
1867
|
-
>>> match_skeleton('yMMd', ('jyMMd',), allow_different_fields=True)
|
1868
|
-
'jyMMd'
|
1869
|
-
|
1870
|
-
>>> match_skeleton('yMMd', ('qyMMd',), allow_different_fields=False)
|
1871
|
-
|
1872
|
-
>>> match_skeleton('hmz', ('hmv',))
|
1873
|
-
'hmv'
|
1874
|
-
|
1875
|
-
:param skeleton: The skeleton to match
|
1876
|
-
:type skeleton: str
|
1877
|
-
:param options: An iterable of other skeletons to match against
|
1878
|
-
:type options: Iterable[str]
|
1879
|
-
:return: The closest skeleton match, or if no match was found, None.
|
1880
|
-
:rtype: str|None
|
1881
|
-
"""
|
1882
|
-
|
1883
|
-
# TODO: maybe implement pattern expansion?
|
1884
|
-
|
1885
|
-
# Based on the implementation in
|
1886
|
-
# http://source.icu-project.org/repos/icu/icu4j/trunk/main/classes/core/src/com/ibm/icu/text/DateIntervalInfo.java
|
1887
|
-
|
1888
|
-
# Filter out falsy values and sort for stability; when `interval_formats` is passed in, there may be a None key.
|
1889
|
-
options = sorted(option for option in options if option)
|
1890
|
-
|
1891
|
-
if 'z' in skeleton and not any('z' in option for option in options):
|
1892
|
-
skeleton = skeleton.replace('z', 'v')
|
1893
|
-
|
1894
|
-
get_input_field_width = dict(t[1] for t in tokenize_pattern(skeleton) if t[0] == "field").get
|
1895
|
-
best_skeleton = None
|
1896
|
-
best_distance = None
|
1897
|
-
for option in options:
|
1898
|
-
get_opt_field_width = dict(t[1] for t in tokenize_pattern(option) if t[0] == "field").get
|
1899
|
-
distance = 0
|
1900
|
-
for field in PATTERN_CHARS:
|
1901
|
-
input_width = get_input_field_width(field, 0)
|
1902
|
-
opt_width = get_opt_field_width(field, 0)
|
1903
|
-
if input_width == opt_width:
|
1904
|
-
continue
|
1905
|
-
if opt_width == 0 or input_width == 0:
|
1906
|
-
if not allow_different_fields: # This one is not okay
|
1907
|
-
option = None
|
1908
|
-
break
|
1909
|
-
distance += 0x1000 # Magic weight constant for "entirely different fields"
|
1910
|
-
elif field == 'M' and ((input_width > 2 and opt_width <= 2) or (input_width <= 2 and opt_width > 2)):
|
1911
|
-
distance += 0x100 # Magic weight for "text turns into a number"
|
1912
|
-
else:
|
1913
|
-
distance += abs(input_width - opt_width)
|
1914
|
-
|
1915
|
-
if not option: # We lost the option along the way (probably due to "allow_different_fields")
|
1916
|
-
continue
|
1917
|
-
|
1918
|
-
if not best_skeleton or distance < best_distance:
|
1919
|
-
best_skeleton = option
|
1920
|
-
best_distance = distance
|
1921
|
-
|
1922
|
-
if distance == 0: # Found a perfect match!
|
1923
|
-
break
|
1924
|
-
|
1925
|
-
return best_skeleton
|