├── myenv ├── Lib │ └── site-packages │ │ ├── h11 │ │ ├── py.typed │ │ ├── tests │ │ │ ├── data │ │ │ │ └── test-file │ │ │ └── test_helpers.py │ │ ├── _version.py │ │ └── __init__.py │ │ ├── hypercorn │ │ ├── py.typed │ │ ├── __init__.py │ │ ├── middleware │ │ │ ├── __init__.py │ │ │ └── wsgi.py │ │ ├── events.py │ │ ├── trio │ │ │ ├── statsd.py │ │ │ ├── worker_context.py │ │ │ ├── udp_server.py │ │ │ └── __init__.py │ │ ├── asyncio │ │ │ ├── statsd.py │ │ │ ├── worker_context.py │ │ │ └── __init__.py │ │ └── protocol │ │ │ └── events.py │ │ ├── blinker-1.5.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE.rst │ │ ├── click-8.1.7.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ └── LICENSE.rst │ │ ├── h11-0.14.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ └── LICENSE.txt │ │ ├── h2-4.1.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── LICENSE │ │ └── RECORD │ │ ├── hpack-4.0.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── LICENSE │ │ └── RECORD │ │ ├── idna-3.4.dist-info │ │ ├── INSTALLER │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE.md │ │ ├── pip-19.0.3.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── entry_points.txt │ │ ├── WHEEL │ │ └── LICENSE.txt │ │ ├── Jinja2-3.1.2.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── entry_points.txt │ │ ├── WHEEL │ │ └── LICENSE.rst │ │ ├── MarkupSafe-2.1.3.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE.rst │ │ ├── aiofiles-23.2.1.dist-info │ │ ├── INSTALLER │ │ ├── licenses │ │ │ └── NOTICE │ │ ├── WHEEL │ │ └── RECORD │ │ ├── colorama-0.4.6.dist-info │ │ ├── INSTALLER │ │ ├── WHEEL │ │ └── licenses │ │ │ └── LICENSE.txt │ │ ├── hypercorn-0.14.4.dist-info │ │ ├── INSTALLER │ │ ├── entry_points.txt │ │ ├── WHEEL │ │ └── LICENSE │ │ ├── hyperframe-6.0.1.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE │ │ ├── pip │ │ ├── __init__.py │ │ ├── _vendor │ │ │ ├── chardet │ │ │ │ ├── cli │ │ │ │ │ └── __init__.py │ │ │ │ ├── version.py │ │ │ │ ├── compat.py │ │ │ │ ├── __init__.py │ │ │ │ ├── euctwprober.py │ │ │ │ ├── euckrprober.py │ │ │ │ ├── gb2312prober.py │ │ │ │ ├── big5prober.py │ │ │ │ └── enums.py │ │ │ ├── msgpack │ │ │ │ ├── _version.py │ │ │ │ ├── exceptions.py │ │ │ │ └── __init__.py │ │ │ ├── idna │ │ │ │ ├── package_data.py │ │ │ │ ├── __init__.py │ │ │ │ ├── compat.py │ │ │ │ └── intranges.py │ │ │ ├── certifi │ │ │ │ ├── __main__.py │ │ │ │ ├── __init__.py │ │ │ │ └── core.py │ │ │ ├── pep517 │ │ │ │ ├── __init__.py │ │ │ │ └── compat.py │ │ │ ├── cachecontrol │ │ │ │ ├── caches │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── redis_cache.py │ │ │ │ ├── __init__.py │ │ │ │ ├── wrapper.py │ │ │ │ ├── compat.py │ │ │ │ ├── cache.py │ │ │ │ └── _cmd.py │ │ │ ├── distlib │ │ │ │ ├── t32.exe │ │ │ │ ├── t64.exe │ │ │ │ ├── w32.exe │ │ │ │ ├── w64.exe │ │ │ │ ├── _backport │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── misc.py │ │ │ │ └── __init__.py │ │ │ ├── pytoml │ │ │ │ ├── __init__.py │ │ │ │ ├── core.py │ │ │ │ ├── test.py │ │ │ │ └── utils.py │ │ │ ├── urllib3 │ │ │ │ ├── packages │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── ssl_match_hostname │ │ │ │ │ │ └── __init__.py │ │ │ │ │ └── backports │ │ │ │ │ │ └── makefile.py │ │ │ │ ├── util │ │ │ │ │ ├── queue.py │ │ │ │ │ └── __init__.py │ │ │ │ └── contrib │ │ │ │ │ └── _appengine_environ.py │ │ │ ├── colorama │ │ │ │ └── __init__.py │ │ │ ├── html5lib │ │ │ │ ├── filters │ │ │ │ │ ├── base.py │ │ │ │ │ ├── alphabeticalattributes.py │ │ │ │ │ └── whitespace.py │ │ │ │ ├── _trie │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── _base.py │ │ │ │ │ └── datrie.py │ │ │ │ ├── treeadapters │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── genshi.py │ │ │ │ │ └── sax.py │ │ │ │ ├── __init__.py │ │ │ │ └── treewalkers │ │ │ │ │ └── dom.py │ │ │ ├── requests │ │ │ │ ├── __version__.py │ │ │ │ ├── certs.py │ │ │ │ ├── packages.py │ │ │ │ ├── hooks.py │ │ │ │ └── _internal_utils.py │ │ │ ├── pkg_resources │ │ │ │ └── py31compat.py │ │ │ ├── packaging │ │ │ │ ├── __init__.py │ │ │ │ ├── __about__.py │ │ │ │ ├── _compat.py │ │ │ │ ├── _structures.py │ │ │ │ └── utils.py │ │ │ ├── webencodings │ │ │ │ └── mklabels.py │ │ │ └── progress │ │ │ │ ├── spinner.py │ │ │ │ └── counter.py │ │ ├── _internal │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── index.py │ │ │ │ └── candidate.py │ │ │ ├── cli │ │ │ │ ├── __init__.py │ │ │ │ └── status_codes.py │ │ │ ├── utils │ │ │ │ ├── setuptools_build.py │ │ │ │ ├── filesystem.py │ │ │ │ ├── models.py │ │ │ │ ├── typing.py │ │ │ │ └── encoding.py │ │ │ └── commands │ │ │ │ ├── help.py │ │ │ │ ├── check.py │ │ │ │ └── hash.py │ │ └── __main__.py │ │ ├── priority-2.0.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE │ │ ├── certifi-2023.7.22.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── RECORD │ │ └── LICENSE │ │ ├── idna │ │ ├── package_data.py │ │ ├── compat.py │ │ └── __init__.py │ │ ├── itsdangerous-2.1.2.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ ├── LICENSE.rst │ │ └── RECORD │ │ ├── charset_normalizer-3.2.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── entry_points.txt │ │ ├── WHEEL │ │ └── LICENSE │ │ ├── importlib_metadata-6.7.0.dist-info │ │ ├── INSTALLER │ │ ├── top_level.txt │ │ ├── WHEEL │ │ └── RECORD │ │ ├── colorama │ │ ├── tests │ │ │ ├── __init__.py │ │ │ └── utils.py │ │ └── __init__.py │ │ ├── certifi │ │ ├── __init__.py │ │ └── __main__.py │ │ ├── h2 │ │ ├── __init__.py │ │ └── errors.py │ │ ├── charset_normalizer │ │ ├── version.py │ │ └── __init__.py │ │ ├── quart │ │ ├── __main__.py │ │ ├── flask_patch │ │ │ ├── testing.py │ │ │ ├── cli.py │ │ │ ├── _synchronise.py │ │ │ └── globals.py │ │ ├── wrappers │ │ │ └── __init__.py │ │ ├── json │ │ │ └── __init__.py │ │ └── testing │ │ │ └── __init__.py │ │ ├── hyperframe │ │ ├── __init__.py │ │ ├── flags.py │ │ └── exceptions.py │ │ ├── markupsafe │ │ ├── _speedups.pyi │ │ └── _native.py │ │ ├── blinker │ │ └── __init__.py │ │ ├── priority │ │ └── __init__.py │ │ ├── aiofiles │ │ ├── __init__.py │ │ ├── ospath.py │ │ ├── os.py │ │ └── threadpool │ │ │ └── text.py │ │ ├── pkg_resources │ │ ├── _vendor │ │ │ └── packaging │ │ │ │ ├── utils.py │ │ │ │ ├── __init__.py │ │ │ │ ├── __about__.py │ │ │ │ ├── _compat.py │ │ │ │ └── _structures.py │ │ └── py31compat.py │ │ ├── itsdangerous │ │ ├── _json.py │ │ ├── __init__.py │ │ └── encoding.py │ │ ├── hpack │ │ ├── __init__.py │ │ ├── exceptions.py │ │ └── struct.py │ │ ├── importlib_metadata │ │ ├── _collections.py │ │ ├── _py39compat.py │ │ └── _meta.py │ │ ├── jinja2 │ │ ├── _identifier.py │ │ ├── defaults.py │ │ ├── constants.py │ │ ├── optimizer.py │ │ └── __init__.py │ │ └── click │ │ └── _textwrap.py └── Scripts │ ├── python.exe │ └── pythonw.exe ├── logo.png ├── img ├── load.png ├── pluginshop.png ├── settings.png ├── shellmaster0.png └── chatgpt-shellmaster1.png ├── logo-cmd.png ├── requirements.txt ├── database_metadata.json ├── settings.json ├── .well-known └── ai-plugin.json └── LICENSE /myenv/Lib/site-packages/h11/py.typed: -------------------------------------------------------------------------------- 1 | Marker 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/py.typed: -------------------------------------------------------------------------------- 1 | Marker 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker-1.5.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/click-8.1.7.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11-0.14.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2-4.1.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2-4.1.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | h2 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack-4.0.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna-3.4.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip-19.0.3.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/Jinja2-3.1.2.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/MarkupSafe-2.1.3.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles-23.2.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama-0.4.6.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11-0.14.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | h11 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn-0.14.4.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe-6.0.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip-19.0.3.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "19.0.3" 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority-2.0.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/logo.png -------------------------------------------------------------------------------- /myenv/Lib/site-packages/Jinja2-3.1.2.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | jinja2 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker-1.5.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | blinker 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi-2023.7.22.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/click-8.1.7.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | click 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack-4.0.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | hpack 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna/package_data.py: -------------------------------------------------------------------------------- 1 | __version__ = '3.4' 2 | 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous-2.1.2.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi-2023.7.22.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | certifi 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer-3.2.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata-6.7.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority-2.0.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | priority 2 | -------------------------------------------------------------------------------- /img/load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/img/load.png -------------------------------------------------------------------------------- /logo-cmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/logo-cmd.png -------------------------------------------------------------------------------- /myenv/Lib/site-packages/MarkupSafe-2.1.3.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | markupsafe 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe-6.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | hyperframe 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous-2.1.2.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | itsdangerous 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/msgpack/_version.py: -------------------------------------------------------------------------------- 1 | version = (0, 5, 6) 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/idna/package_data.py: -------------------------------------------------------------------------------- 1 | __version__ = '2.8' 2 | 3 | -------------------------------------------------------------------------------- /img/pluginshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/img/pluginshop.png -------------------------------------------------------------------------------- /img/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/img/settings.png -------------------------------------------------------------------------------- /img/shellmaster0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/img/shellmaster0.png -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer-3.2.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | charset_normalizer 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata-6.7.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | importlib_metadata 2 | -------------------------------------------------------------------------------- /myenv/Scripts/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Scripts/python.exe -------------------------------------------------------------------------------- /myenv/Scripts/pythonw.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Scripts/pythonw.exe -------------------------------------------------------------------------------- /img/chatgpt-shellmaster1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/img/chatgpt-shellmaster1.png -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11/tests/data/test-file: -------------------------------------------------------------------------------- 1 | 92b12bc045050b55b848d37167a1a63947c364579889ce1d39788e45e9fac9e5 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/certifi/__main__.py: -------------------------------------------------------------------------------- 1 | from pip._vendor.certifi import where 2 | print(where()) 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/idna/__init__.py: -------------------------------------------------------------------------------- 1 | from .package_data import __version__ 2 | from .core import * 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/certifi/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import where 2 | 3 | __version__ = "2018.11.29" 4 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles-23.2.1.dist-info/licenses/NOTICE: -------------------------------------------------------------------------------- 1 | Asyncio support for files 2 | Copyright 2016 Tin Tvrtkovic 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/models/__init__.py: -------------------------------------------------------------------------------- 1 | """A package that contains models that represent entities. 2 | """ 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [babel.extractors] 2 | jinja2 = jinja2.ext:babel_extract[i18n] 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. 2 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn-0.14.4.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | hypercorn=hypercorn.__main__:main 3 | 4 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna-3.4.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: flit 3.7.1 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import contents, where 2 | 3 | __all__ = ["contents", "where"] 4 | __version__ = "2023.07.22" 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from .config import Config 4 | 5 | __all__ = ("Config",) 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles-23.2.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: hatchling 1.17.1 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | h2 4 | ~~ 5 | 6 | A HTTP/2 implementation. 7 | """ 8 | __version__ = '4.1.0' 9 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pep517/__init__.py: -------------------------------------------------------------------------------- 1 | """Wrappers to build Python packages using PEP 517 hooks 2 | """ 3 | 4 | __version__ = '0.5.0' 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer-3.2.0.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | normalizer = charset_normalizer.cli.normalizer:cli_detect 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer/version.py: -------------------------------------------------------------------------------- 1 | """ 2 | Expose version 3 | """ 4 | 5 | __version__ = "3.2.0" 6 | VERSION = __version__.split(".") 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/click-8.1.7.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.41.1) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11-0.14.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.0) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2-4.1.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack-4.0.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.34.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn-0.14.4.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: poetry-core 1.6.1 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py: -------------------------------------------------------------------------------- 1 | from .file_cache import FileCache # noqa 2 | from .redis_cache import RedisCache # noqa 3 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/t32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Lib/site-packages/pip/_vendor/distlib/t32.exe -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/t64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Lib/site-packages/pip/_vendor/distlib/t64.exe -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/w32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Lib/site-packages/pip/_vendor/distlib/w32.exe -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/w64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ravi-Teja-konda/OSGPT/HEAD/myenv/Lib/site-packages/pip/_vendor/distlib/w64.exe -------------------------------------------------------------------------------- /myenv/Lib/site-packages/Jinja2-3.1.2.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.1) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe-6.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority-2.0.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/__main__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | if __name__ == "__main__": 4 | from .cli import main 5 | 6 | main() 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi-2023.7.22.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.0) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous-2.1.2.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.1) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/MarkupSafe-2.1.3.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.40.0) 3 | Root-Is-Purelib: false 4 | Tag: cp37-cp37m-win_amd64 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata-6.7.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.40.0) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama-0.4.6.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: hatchling 1.11.1 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip-19.0.3.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | pip = pip._internal:main 3 | pip3 = pip._internal:main 4 | pip3.7 = pip._internal:main 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker-1.5.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.1) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer-3.2.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.40.0) 3 | Root-Is-Purelib: false 4 | Tag: cp37-cp37m-win_amd64 5 | 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip-19.0.3.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.33.1) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pytoml/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import TomlError 2 | from .parser import load, loads 3 | from .test import translate_to_test 4 | from .writer import dump, dumps -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from . import ssl_match_hostname 4 | 5 | __all__ = ('ssl_match_hostname', ) 6 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/cli/__init__.py: -------------------------------------------------------------------------------- 1 | """Subpackage containing all of pip's command line interface related code 2 | """ 3 | 4 | # This file intentionally does not import submodules 5 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/flask_patch/testing.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from quart.testing import QuartClient 4 | 5 | FlaskClient = QuartClient 6 | 7 | __all__ = ("FlaskClient",) 8 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hyperframe 4 | ~~~~~~~~~~ 5 | 6 | A module for providing a pure-Python HTTP/2 framing layer. 7 | """ 8 | __version__ = '6.0.1' 9 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/cli/status_codes.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | SUCCESS = 0 4 | ERROR = 1 5 | UNKNOWN_ERROR = 2 6 | VIRTUALENV_NOT_FOUND = 3 7 | PREVIOUS_BUILD_DIR_ERROR = 4 8 | NO_MATCHES_FOUND = 23 9 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/flask_patch/cli.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from quart.cli import ( # noqa: F401 4 | AppGroup, 5 | QuartGroup, 6 | run_command, 7 | ScriptInfo, 8 | shell_command, 9 | with_appcontext, 10 | ) 11 | 12 | FlaskGroup = QuartGroup 13 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | asyncio 2 | json 3 | logging 4 | os 5 | subprocess 6 | quart 7 | quart-cors 8 | 9 | # For Document retrieval langchain 10 | PyPDFLoader 11 | Docx2txtLoader 12 | TextLoader 13 | CSVLoader 14 | UnstructuredHTMLLoader 15 | OpenAIEmbeddings 16 | Chroma 17 | CharacterTextSplitter 18 | nltk 19 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/colorama/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. 2 | from .initialise import init, deinit, reinit, colorama_text 3 | from .ansi import Fore, Back, Style, Cursor 4 | from .ansitowin32 import AnsiToWin32 5 | 6 | __version__ = '0.4.1' 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/markupsafe/_speedups.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | from typing import Optional 3 | 4 | from . import Markup 5 | 6 | def escape(s: Any) -> Markup: ... 7 | def escape_silent(s: Optional[Any]) -> Markup: ... 8 | def soft_str(s: Any) -> str: ... 9 | def soft_unicode(s: Any) -> str: ... 10 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. 2 | from .initialise import init, deinit, reinit, colorama_text, just_fix_windows_console 3 | from .ansi import Fore, Back, Style, Cursor 4 | from .ansitowin32 import AnsiToWin32 5 | 6 | __version__ = '0.4.6' 7 | 8 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/version.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module exists only to simplify retrieving the version number of chardet 3 | from within setup.py and from chardet subpackages. 4 | 5 | :author: Dan Blanchard (dan.blanchard@gmail.com) 6 | """ 7 | 8 | __version__ = "3.0.4" 9 | VERSION = __version__.split('.') 10 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/idna/compat.py: -------------------------------------------------------------------------------- 1 | from .core import * 2 | from .codec import * 3 | 4 | def ToASCII(label): 5 | return encode(label) 6 | 7 | def ToUnicode(label): 8 | return decode(label) 9 | 10 | def nameprep(s): 11 | raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") 12 | 13 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi/__main__.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from certifi import contents, where 4 | 5 | parser = argparse.ArgumentParser() 6 | parser.add_argument("-c", "--contents", action="store_true") 7 | args = parser.parse_args() 8 | 9 | if args.contents: 10 | print(contents()) 11 | else: 12 | print(where()) 13 | -------------------------------------------------------------------------------- /database_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "personal_files": { 3 | "db_path": "databases/personal_files", 4 | "folder_path": "/home/runner/OSGPT/OSGPT/docs" 5 | }, 6 | "technical_files": { 7 | "db_path": "databases/technical_files", 8 | "folder_path": "/home/runner/OSGPT/OSGPT/technical_files" 9 | } 10 | } -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/_backport/__init__.py: -------------------------------------------------------------------------------- 1 | """Modules copied from Python 3 standard libraries, for internal use only. 2 | 3 | Individual classes and functions are found in d2._backport.misc. Intended 4 | usage is to always import things missing from 3.1 from that module: the 5 | built-in/stdlib objects will be used if found. 6 | """ 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/utils/setuptools_build.py: -------------------------------------------------------------------------------- 1 | # Shim to wrap setup.py invocation with setuptools 2 | SETUPTOOLS_SHIM = ( 3 | "import setuptools, tokenize;__file__=%r;" 4 | "f=getattr(tokenize, 'open', open)(__file__);" 5 | "code=f.read().replace('\\r\\n', '\\n');" 6 | "f.close();" 7 | "exec(compile(code, __file__, 'exec'))" 8 | ) 9 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/wrappers/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from .base import BaseRequestWebsocket 4 | from .request import Body, Request 5 | from .response import Response 6 | from .websocket import Websocket 7 | 8 | __all__ = ( 9 | "BaseRequestWebsocket", 10 | "Body", 11 | "Request", 12 | "Response", 13 | "Websocket", 14 | ) 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/filters/base.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | 4 | class Filter(object): 5 | def __init__(self, source): 6 | self.source = source 7 | 8 | def __iter__(self): 9 | return iter(self.source) 10 | 11 | def __getattr__(self, name): 12 | return getattr(self.source, name) 13 | -------------------------------------------------------------------------------- /settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "This is the working directory for commands", 3 | "working_directory_unix": "/tmp", 4 | "working_directory_windows": "%TEMP%", 5 | "OPENAI_API_KEY": "", 6 | "DOCUMENTS_PATH": "/home/runner/OSGPT/OSGPT/docs", 7 | "METADATA_FILE_PATH": "/home/runner/OSGPT/OSGPT/database_metadata.json", 8 | "HOST": "0.0.0.0", 9 | "PORT": 5004 10 | } 11 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py: -------------------------------------------------------------------------------- 1 | """CacheControl import Interface. 2 | 3 | Make it easy to import from cachecontrol without long namespaces. 4 | """ 5 | __author__ = "Eric Larson" 6 | __email__ = "eric@ionrock.org" 7 | __version__ = "0.12.5" 8 | 9 | from .wrapper import CacheControl 10 | from .adapter import CacheControlAdapter 11 | from .controller import CacheController 12 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/_trie/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from .py import Trie as PyTrie 4 | 5 | Trie = PyTrie 6 | 7 | # pylint:disable=wrong-import-position 8 | try: 9 | from .datrie import Trie as DATrie 10 | except ImportError: 11 | pass 12 | else: 13 | Trie = DATrie 14 | # pylint:enable=wrong-import-position 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna/compat.py: -------------------------------------------------------------------------------- 1 | from .core import * 2 | from .codec import * 3 | from typing import Any, Union 4 | 5 | def ToASCII(label: str) -> bytes: 6 | return encode(label) 7 | 8 | def ToUnicode(label: Union[bytes, bytearray]) -> str: 9 | return decode(label) 10 | 11 | def nameprep(s: Any) -> None: 12 | raise NotImplementedError('IDNA 2008 does not utilise nameprep protocol') 13 | 14 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/certifi/core.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | certifi.py 6 | ~~~~~~~~~~ 7 | 8 | This module returns the installation location of cacert.pem. 9 | """ 10 | import os 11 | 12 | 13 | def where(): 14 | f = os.path.dirname(__file__) 15 | 16 | return os.path.join(f, 'cacert.pem') 17 | 18 | 19 | if __name__ == '__main__': 20 | print(where()) 21 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/middleware/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from .dispatcher import DispatcherMiddleware 4 | from .http_to_https import HTTPToHTTPSRedirectMiddleware 5 | from .wsgi import AsyncioWSGIMiddleware, TrioWSGIMiddleware 6 | 7 | __all__ = ( 8 | "AsyncioWSGIMiddleware", 9 | "DispatcherMiddleware", 10 | "HTTPToHTTPSRedirectMiddleware", 11 | "TrioWSGIMiddleware", 12 | ) 13 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker/__init__.py: -------------------------------------------------------------------------------- 1 | from blinker.base import ( 2 | ANY, 3 | NamedSignal, 4 | Namespace, 5 | Signal, 6 | WeakNamespace, 7 | receiver_connected, 8 | signal, 9 | ) 10 | 11 | __all__ = [ 12 | 'ANY', 13 | 'NamedSignal', 14 | 'Namespace', 15 | 'Signal', 16 | 'WeakNamespace', 17 | 'receiver_connected', 18 | 'signal', 19 | ] 20 | 21 | 22 | __version__ = '1.5' 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | priority: HTTP/2 priority implementation for Python 4 | """ 5 | from .priority import ( # noqa 6 | Stream, 7 | PriorityTree, 8 | DeadlockError, 9 | PriorityLoop, 10 | PriorityError, 11 | DuplicateStreamError, 12 | MissingStreamError, 13 | TooManyStreamsError, 14 | BadWeightError, 15 | PseudoStreamError, 16 | ) 17 | 18 | 19 | __version__ = "2.0.0" 20 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles/__init__.py: -------------------------------------------------------------------------------- 1 | """Utilities for asyncio-friendly file handling.""" 2 | from .threadpool import ( 3 | open, 4 | stdin, 5 | stdout, 6 | stderr, 7 | stdin_bytes, 8 | stdout_bytes, 9 | stderr_bytes, 10 | ) 11 | from . import tempfile 12 | 13 | __all__ = [ 14 | "open", 15 | "tempfile", 16 | "stdin", 17 | "stdout", 18 | "stderr", 19 | "stdin_bytes", 20 | "stdout_bytes", 21 | "stderr_bytes", 22 | ] 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/events.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from abc import ABC 4 | from dataclasses import dataclass 5 | from typing import Optional, Tuple 6 | 7 | 8 | class Event(ABC): 9 | pass 10 | 11 | 12 | @dataclass(frozen=True) 13 | class RawData(Event): 14 | data: bytes 15 | address: Optional[Tuple[str, int]] = None 16 | 17 | 18 | @dataclass(frozen=True) 19 | class Closed(Event): 20 | pass 21 | 22 | 23 | @dataclass(frozen=True) 24 | class Updated(Event): 25 | idle: bool 26 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/_vendor/packaging/utils.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | import re 7 | 8 | 9 | _canonicalize_regex = re.compile(r"[-_.]+") 10 | 11 | 12 | def canonicalize_name(name): 13 | # This is taken from PEP 503. 14 | return _canonicalize_regex.sub("-", name).lower() 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/requests/__version__.py: -------------------------------------------------------------------------------- 1 | # .-. .-. .-. . . .-. .-. .-. .-. 2 | # |( |- |.| | | |- `-. | `-. 3 | # ' ' `-' `-`.`-' `-' `-' ' `-' 4 | 5 | __title__ = 'requests' 6 | __description__ = 'Python HTTP for Humans.' 7 | __url__ = 'http://python-requests.org' 8 | __version__ = '2.21.0' 9 | __build__ = 0x022100 10 | __author__ = 'Kenneth Reitz' 11 | __author_email__ = 'me@kennethreitz.org' 12 | __license__ = 'Apache 2.0' 13 | __copyright__ = 'Copyright 2018 Kenneth Reitz' 14 | __cake__ = u'\u2728 \U0001f370 \u2728' 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous/_json.py: -------------------------------------------------------------------------------- 1 | import json as _json 2 | import typing as _t 3 | 4 | 5 | class _CompactJSON: 6 | """Wrapper around json module that strips whitespace.""" 7 | 8 | @staticmethod 9 | def loads(payload: _t.Union[str, bytes]) -> _t.Any: 10 | return _json.loads(payload) 11 | 12 | @staticmethod 13 | def dumps(obj: _t.Any, **kwargs: _t.Any) -> str: 14 | kwargs.setdefault("ensure_ascii", False) 15 | kwargs.setdefault("separators", (",", ":")) 16 | return _json.dumps(obj, **kwargs) 17 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/requests/certs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | requests.certs 6 | ~~~~~~~~~~~~~~ 7 | 8 | This module returns the preferred default CA certificate bundle. There is 9 | only one — the one from the certifi package. 10 | 11 | If you are packaging Requests, e.g., for a Linux distribution or a managed 12 | environment, you can change the definition of where() to return a separately 13 | packaged CA bundle. 14 | """ 15 | from pip._vendor.certifi import where 16 | 17 | if __name__ == '__main__': 18 | print(where()) 19 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/trio/statsd.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import trio 4 | 5 | from ..config import Config 6 | from ..statsd import StatsdLogger as Base 7 | 8 | 9 | class StatsdLogger(Base): 10 | def __init__(self, config: Config) -> None: 11 | super().__init__(config) 12 | self.address = tuple(config.statsd_host.rsplit(":", 1)) 13 | self.socket = trio.socket.socket(trio.socket.AF_INET, trio.socket.SOCK_DGRAM) 14 | 15 | async def _socket_send(self, message: bytes) -> None: 16 | await self.socket.sendto(message, self.address) 17 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pytoml/core.py: -------------------------------------------------------------------------------- 1 | class TomlError(RuntimeError): 2 | def __init__(self, message, line, col, filename): 3 | RuntimeError.__init__(self, message, line, col, filename) 4 | self.message = message 5 | self.line = line 6 | self.col = col 7 | self.filename = filename 8 | 9 | def __str__(self): 10 | return '{}({}, {}): {}'.format(self.filename, self.line, self.col, self.message) 11 | 12 | def __repr__(self): 13 | return 'TomlError({!r}, {!r}, {!r}, {!r})'.format(self.message, self.line, self.col, self.filename) 14 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | from .__about__ import ( 7 | __author__, __copyright__, __email__, __license__, __summary__, __title__, 8 | __uri__, __version__ 9 | ) 10 | 11 | __all__ = [ 12 | "__title__", "__summary__", "__uri__", "__version__", "__author__", 13 | "__email__", "__license__", "__copyright__", 14 | ] 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py: -------------------------------------------------------------------------------- 1 | import collections 2 | from ..packages import six 3 | from ..packages.six.moves import queue 4 | 5 | if six.PY2: 6 | # Queue is imported for side effects on MS Windows. See issue #229. 7 | import Queue as _unused_module_Queue # noqa: F401 8 | 9 | 10 | class LifoQueue(queue.Queue): 11 | def _init(self, _): 12 | self.queue = collections.deque() 13 | 14 | def _qsize(self, len=len): 15 | return len(self.queue) 16 | 17 | def _put(self, item): 18 | self.queue.append(item) 19 | 20 | def _get(self): 21 | return self.queue.pop() 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/py31compat.py: -------------------------------------------------------------------------------- 1 | import os 2 | import errno 3 | import sys 4 | 5 | from .extern import six 6 | 7 | 8 | def _makedirs_31(path, exist_ok=False): 9 | try: 10 | os.makedirs(path) 11 | except OSError as exc: 12 | if not exist_ok or exc.errno != errno.EEXIST: 13 | raise 14 | 15 | 16 | # rely on compatibility behavior until mode considerations 17 | # and exists_ok considerations are disentangled. 18 | # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 19 | needs_makedirs = ( 20 | six.PY2 or 21 | (3, 4) <= sys.version_info < (3, 4, 1) 22 | ) 23 | makedirs = _makedirs_31 if needs_makedirs else os.makedirs 24 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pkg_resources/py31compat.py: -------------------------------------------------------------------------------- 1 | import os 2 | import errno 3 | import sys 4 | 5 | from pip._vendor import six 6 | 7 | 8 | def _makedirs_31(path, exist_ok=False): 9 | try: 10 | os.makedirs(path) 11 | except OSError as exc: 12 | if not exist_ok or exc.errno != errno.EEXIST: 13 | raise 14 | 15 | 16 | # rely on compatibility behavior until mode considerations 17 | # and exists_ok considerations are disentangled. 18 | # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 19 | needs_makedirs = ( 20 | six.PY2 or 21 | (3, 4) <= sys.version_info < (3, 4, 1) 22 | ) 23 | makedirs = _makedirs_31 if needs_makedirs else os.makedirs 24 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012-2017 Vinay Sajip. 4 | # Licensed to the Python Software Foundation under a contributor agreement. 5 | # See LICENSE.txt and CONTRIBUTORS.txt. 6 | # 7 | import logging 8 | 9 | __version__ = '0.2.8' 10 | 11 | class DistlibException(Exception): 12 | pass 13 | 14 | try: 15 | from logging import NullHandler 16 | except ImportError: # pragma: no cover 17 | class NullHandler(logging.Handler): 18 | def handle(self, record): pass 19 | def emit(self, record): pass 20 | def createLock(self): self.lock = None 21 | 22 | logger = logging.getLogger(__name__) 23 | logger.addHandler(NullHandler()) 24 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/packaging/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | from .__about__ import ( 7 | __author__, 8 | __copyright__, 9 | __email__, 10 | __license__, 11 | __summary__, 12 | __title__, 13 | __uri__, 14 | __version__, 15 | ) 16 | 17 | __all__ = [ 18 | "__title__", 19 | "__summary__", 20 | "__uri__", 21 | "__version__", 22 | "__author__", 23 | "__email__", 24 | "__license__", 25 | "__copyright__", 26 | ] 27 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/__main__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | import os 4 | import sys 5 | 6 | # If we are running from a wheel, add the wheel to sys.path 7 | # This allows the usage python pip-*.whl/pip install pip-*.whl 8 | if __package__ == '': 9 | # __file__ is pip-*.whl/pip/__main__.py 10 | # first dirname call strips of '/__main__.py', second strips off '/pip' 11 | # Resulting path is the name of the wheel itself 12 | # Add that to sys.path so we can import pip 13 | path = os.path.dirname(os.path.dirname(__file__)) 14 | sys.path.insert(0, path) 15 | 16 | from pip._internal import main as _main # isort:skip # noqa 17 | 18 | if __name__ == '__main__': 19 | sys.exit(_main()) 20 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hpack 4 | ~~~~~ 5 | 6 | HTTP/2 header encoding for Python. 7 | """ 8 | from .hpack import Encoder, Decoder 9 | from .struct import HeaderTuple, NeverIndexedHeaderTuple 10 | from .exceptions import ( 11 | HPACKError, 12 | HPACKDecodingError, 13 | InvalidTableIndex, 14 | OversizedHeaderListError, 15 | InvalidTableSizeError 16 | ) 17 | 18 | __all__ = [ 19 | 'Encoder', 20 | 'Decoder', 21 | 'HeaderTuple', 22 | 'NeverIndexedHeaderTuple', 23 | 'HPACKError', 24 | 'HPACKDecodingError', 25 | 'InvalidTableIndex', 26 | 'OversizedHeaderListError', 27 | 'InvalidTableSizeError', 28 | ] 29 | 30 | __version__ = '4.0.0' 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pep517/compat.py: -------------------------------------------------------------------------------- 1 | """Handle reading and writing JSON in UTF-8, on Python 3 and 2.""" 2 | import json 3 | import sys 4 | 5 | if sys.version_info[0] >= 3: 6 | # Python 3 7 | def write_json(obj, path, **kwargs): 8 | with open(path, 'w', encoding='utf-8') as f: 9 | json.dump(obj, f, **kwargs) 10 | 11 | def read_json(path): 12 | with open(path, 'r', encoding='utf-8') as f: 13 | return json.load(f) 14 | 15 | else: 16 | # Python 2 17 | def write_json(obj, path, **kwargs): 18 | with open(path, 'wb') as f: 19 | json.dump(obj, f, encoding='utf-8', **kwargs) 20 | 21 | def read_json(path): 22 | with open(path, 'rb') as f: 23 | return json.load(f) 24 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11/_version.py: -------------------------------------------------------------------------------- 1 | # This file must be kept very simple, because it is consumed from several 2 | # places -- it is imported by h11/__init__.py, execfile'd by setup.py, etc. 3 | 4 | # We use a simple scheme: 5 | # 1.0.0 -> 1.0.0+dev -> 1.1.0 -> 1.1.0+dev 6 | # where the +dev versions are never released into the wild, they're just what 7 | # we stick into the VCS in between releases. 8 | # 9 | # This is compatible with PEP 440: 10 | # http://legacy.python.org/dev/peps/pep-0440/ 11 | # via the use of the "local suffix" "+dev", which is disallowed on index 12 | # servers and causes 1.0.0+dev to sort after plain 1.0.0, which is what we 13 | # want. (Contrast with the special suffix 1.0.0.dev, which sorts *before* 14 | # 1.0.0.) 15 | 16 | __version__ = "0.14.0" 17 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/requests/packages.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | # This code exists for backwards compatibility reasons. 4 | # I don't like it either. Just look the other way. :) 5 | 6 | for package in ('urllib3', 'idna', 'chardet'): 7 | vendored_package = "pip._vendor." + package 8 | locals()[package] = __import__(vendored_package) 9 | # This traversal is apparently necessary such that the identities are 10 | # preserved (requests.packages.urllib3.* is urllib3.*) 11 | for mod in list(sys.modules): 12 | if mod == vendored_package or mod.startswith(vendored_package + '.'): 13 | unprefixed_mod = mod[len("pip._vendor."):] 14 | sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] 15 | 16 | # Kinda cool, though, right? 17 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | try: 4 | # Our match_hostname function is the same as 3.5's, so we only want to 5 | # import the match_hostname function if it's at least that good. 6 | if sys.version_info < (3, 5): 7 | raise ImportError("Fallback to vendored code") 8 | 9 | from ssl import CertificateError, match_hostname 10 | except ImportError: 11 | try: 12 | # Backport of the function from a pypi module 13 | from backports.ssl_match_hostname import CertificateError, match_hostname 14 | except ImportError: 15 | # Our vendored copy 16 | from ._implementation import CertificateError, match_hostname 17 | 18 | # Not needed, but documenting what we provide. 19 | __all__ = ('CertificateError', 'match_hostname') 20 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py: -------------------------------------------------------------------------------- 1 | from .adapter import CacheControlAdapter 2 | from .cache import DictCache 3 | 4 | 5 | def CacheControl( 6 | sess, 7 | cache=None, 8 | cache_etags=True, 9 | serializer=None, 10 | heuristic=None, 11 | controller_class=None, 12 | adapter_class=None, 13 | cacheable_methods=None, 14 | ): 15 | 16 | cache = cache or DictCache() 17 | adapter_class = adapter_class or CacheControlAdapter 18 | adapter = adapter_class( 19 | cache, 20 | cache_etags=cache_etags, 21 | serializer=serializer, 22 | heuristic=heuristic, 23 | controller_class=controller_class, 24 | cacheable_methods=cacheable_methods, 25 | ) 26 | sess.mount("http://", adapter) 27 | sess.mount("https://", adapter) 28 | 29 | return sess 30 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/_vendor/packaging/__about__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | __all__ = [ 7 | "__title__", "__summary__", "__uri__", "__version__", "__author__", 8 | "__email__", "__license__", "__copyright__", 9 | ] 10 | 11 | __title__ = "packaging" 12 | __summary__ = "Core utilities for Python packages" 13 | __uri__ = "https://github.com/pypa/packaging" 14 | 15 | __version__ = "16.8" 16 | 17 | __author__ = "Donald Stufft and individual contributors" 18 | __email__ = "donald@stufft.io" 19 | 20 | __license__ = "BSD or Apache License, Version 2.0" 21 | __copyright__ = "Copyright 2014-2016 %s" % __author__ 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/compat.py: -------------------------------------------------------------------------------- 1 | try: 2 | from urllib.parse import urljoin 3 | except ImportError: 4 | from urlparse import urljoin 5 | 6 | 7 | try: 8 | import cPickle as pickle 9 | except ImportError: 10 | import pickle 11 | 12 | 13 | # Handle the case where the requests module has been patched to not have 14 | # urllib3 bundled as part of its source. 15 | try: 16 | from pip._vendor.requests.packages.urllib3.response import HTTPResponse 17 | except ImportError: 18 | from pip._vendor.urllib3.response import HTTPResponse 19 | 20 | try: 21 | from pip._vendor.requests.packages.urllib3.util import is_fp_closed 22 | except ImportError: 23 | from pip._vendor.urllib3.util import is_fp_closed 24 | 25 | # Replicate some six behaviour 26 | try: 27 | text_type = unicode 28 | except NameError: 29 | text_type = str 30 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py: -------------------------------------------------------------------------------- 1 | """Tree adapters let you convert from one tree structure to another 2 | 3 | Example: 4 | 5 | .. code-block:: python 6 | 7 | from pip._vendor import html5lib 8 | from pip._vendor.html5lib.treeadapters import genshi 9 | 10 | doc = 'Hi!' 11 | treebuilder = html5lib.getTreeBuilder('etree') 12 | parser = html5lib.HTMLParser(tree=treebuilder) 13 | tree = parser.parse(doc) 14 | TreeWalker = html5lib.getTreeWalker('etree') 15 | 16 | genshi_tree = genshi.to_genshi(TreeWalker(tree)) 17 | 18 | """ 19 | from __future__ import absolute_import, division, unicode_literals 20 | 21 | from . import sax 22 | 23 | __all__ = ["sax"] 24 | 25 | try: 26 | from . import genshi # noqa 27 | except ImportError: 28 | pass 29 | else: 30 | __all__.append("genshi") 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority-2.0.0.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | priority-2.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | priority-2.0.0.dist-info/LICENSE,sha256=8-nCnj2zbcMFpL5oqKIl-TlJhSzi0ZtbCjwJnu5lCcU,1056 3 | priority-2.0.0.dist-info/METADATA,sha256=AWLjIqaR_M8YjwACkkUeXZ_npK47hu_KHXSHvYp_gHs,6642 4 | priority-2.0.0.dist-info/RECORD,, 5 | priority-2.0.0.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92 6 | priority-2.0.0.dist-info/top_level.txt,sha256=h3tSuUixZwbNNnmCDpCI-prFqZAqquWlneJge51DLkQ,9 7 | priority/__init__.py,sha256=LrhWbuqUtoxqJdlTMcaDW8AAsuxSY9kayhUJkMKAUkc,346 8 | priority/__pycache__/__init__.cpython-37.pyc,, 9 | priority/__pycache__/priority.cpython-37.pyc,, 10 | priority/priority.py,sha256=qhffE4QR9sYGZlNmDuFWOWmZsguKbC3g3SZkl5Wkj_k,16074 11 | priority/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 12 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/flask_patch/_synchronise.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import asyncio 4 | from typing import Any, Awaitable 5 | 6 | from quart.globals import _cv_app, _cv_request, _cv_websocket 7 | 8 | 9 | def sync_with_context(future: Awaitable) -> Any: 10 | context: Any = None 11 | if _cv_request.get(None) is not None: 12 | context = _cv_request.get().copy() 13 | elif _cv_websocket.get(None) is not None: 14 | context = _cv_websocket.get().copy() 15 | elif _cv_app.get(None) is not None: 16 | context = _cv_app.get().copy() 17 | 18 | async def context_wrapper() -> Any: 19 | if context is not None: 20 | async with context: 21 | return await future 22 | else: 23 | return await future 24 | 25 | return asyncio.get_event_loop().sync_wait(context_wrapper()) # type: ignore 26 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/packaging/__about__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | __all__ = [ 7 | "__title__", 8 | "__summary__", 9 | "__uri__", 10 | "__version__", 11 | "__author__", 12 | "__email__", 13 | "__license__", 14 | "__copyright__", 15 | ] 16 | 17 | __title__ = "packaging" 18 | __summary__ = "Core utilities for Python packages" 19 | __uri__ = "https://github.com/pypa/packaging" 20 | 21 | __version__ = "19.0" 22 | 23 | __author__ = "Donald Stufft and individual contributors" 24 | __email__ = "donald@stufft.io" 25 | 26 | __license__ = "BSD or Apache License, Version 2.0" 27 | __copyright__ = "Copyright 2014-2019 %s" % __author__ 28 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module provides means to detect the App Engine environment. 3 | """ 4 | 5 | import os 6 | 7 | 8 | def is_appengine(): 9 | return (is_local_appengine() or 10 | is_prod_appengine() or 11 | is_prod_appengine_mvms()) 12 | 13 | 14 | def is_appengine_sandbox(): 15 | return is_appengine() and not is_prod_appengine_mvms() 16 | 17 | 18 | def is_local_appengine(): 19 | return ('APPENGINE_RUNTIME' in os.environ and 20 | 'Development/' in os.environ['SERVER_SOFTWARE']) 21 | 22 | 23 | def is_prod_appengine(): 24 | return ('APPENGINE_RUNTIME' in os.environ and 25 | 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and 26 | not is_prod_appengine_mvms()) 27 | 28 | 29 | def is_prod_appengine_mvms(): 30 | return os.environ.get('GAE_VM', False) == 'true' 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles/ospath.py: -------------------------------------------------------------------------------- 1 | """Async executor versions of file functions from the os.path module.""" 2 | import asyncio 3 | from functools import partial, wraps 4 | from os import path 5 | 6 | 7 | def wrap(func): 8 | @wraps(func) 9 | async def run(*args, loop=None, executor=None, **kwargs): 10 | if loop is None: 11 | loop = asyncio.get_running_loop() 12 | pfunc = partial(func, *args, **kwargs) 13 | return await loop.run_in_executor(executor, pfunc) 14 | 15 | return run 16 | 17 | 18 | exists = wrap(path.exists) 19 | isfile = wrap(path.isfile) 20 | isdir = wrap(path.isdir) 21 | islink = wrap(path.islink) 22 | ismount = wrap(path.ismount) 23 | getsize = wrap(path.getsize) 24 | getmtime = wrap(path.getmtime) 25 | getatime = wrap(path.getatime) 26 | getctime = wrap(path.getctime) 27 | samefile = wrap(path.samefile) 28 | sameopenfile = wrap(path.sameopenfile) 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/asyncio/statsd.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import asyncio 4 | from typing import Optional 5 | 6 | from ..config import Config 7 | from ..statsd import StatsdLogger as Base 8 | 9 | 10 | class _DummyProto(asyncio.DatagramProtocol): 11 | pass 12 | 13 | 14 | class StatsdLogger(Base): 15 | def __init__(self, config: Config) -> None: 16 | super().__init__(config) 17 | self.address = config.statsd_host.rsplit(":", 1) 18 | self.transport: Optional[asyncio.BaseTransport] = None 19 | 20 | async def _socket_send(self, message: bytes) -> None: 21 | if self.transport is None: 22 | self.transport, _ = await asyncio.get_event_loop().create_datagram_endpoint( 23 | _DummyProto, remote_addr=(self.address[0], int(self.address[1])) 24 | ) 25 | 26 | self.transport.sendto(message) # type: ignore 27 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata/_collections.py: -------------------------------------------------------------------------------- 1 | import collections 2 | 3 | 4 | # from jaraco.collections 3.3 5 | class FreezableDefaultDict(collections.defaultdict): 6 | """ 7 | Often it is desirable to prevent the mutation of 8 | a default dict after its initial construction, such 9 | as to prevent mutation during iteration. 10 | 11 | >>> dd = FreezableDefaultDict(list) 12 | >>> dd[0].append('1') 13 | >>> dd.freeze() 14 | >>> dd[1] 15 | [] 16 | >>> len(dd) 17 | 1 18 | """ 19 | 20 | def __missing__(self, key): 21 | return getattr(self, '_frozen', super().__missing__)(key) 22 | 23 | def freeze(self): 24 | self._frozen = lambda key: self.default_factory() 25 | 26 | 27 | class Pair(collections.namedtuple('Pair', 'name value')): 28 | @classmethod 29 | def parse(cls, text): 30 | return cls(*map(str.strip, text.split("=", 1))) 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/requests/hooks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | """ 4 | requests.hooks 5 | ~~~~~~~~~~~~~~ 6 | 7 | This module provides the capabilities for the Requests hooks system. 8 | 9 | Available hooks: 10 | 11 | ``response``: 12 | The response generated from a Request. 13 | """ 14 | HOOKS = ['response'] 15 | 16 | 17 | def default_hooks(): 18 | return {event: [] for event in HOOKS} 19 | 20 | # TODO: response is the only one 21 | 22 | 23 | def dispatch_hook(key, hooks, hook_data, **kwargs): 24 | """Dispatches a hook dictionary on a given piece of data.""" 25 | hooks = hooks or {} 26 | hooks = hooks.get(key) 27 | if hooks: 28 | if hasattr(hooks, '__call__'): 29 | hooks = [hooks] 30 | for hook in hooks: 31 | _hook_data = hook(hook_data, **kwargs) 32 | if _hook_data is not None: 33 | hook_data = _hook_data 34 | return hook_data 35 | -------------------------------------------------------------------------------- /.well-known/ai-plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "schema_version": "v1", 3 | "name_for_human": "OS GPT", 4 | "name_for_model": "Command", 5 | "description_for_human": "Plugin for executing CLI commands on the host system like Linux or Windows and searching documents based on queries.", 6 | "description_for_model": "Plugin for executing CLI commands on the host system like Linux / Unix or Windows and searching documents based on queries. Also, it can dynamically load documents from specified folders and create searchable vector databases. Output the results as markdown.", 7 | "auth": { 8 | "type": "none" 9 | }, 10 | "api": { 11 | "type": "openapi", 12 | "url": "http://localhost:5004/openapi.yaml", 13 | "is_user_authenticated": false 14 | }, 15 | "logo_url": "http://localhost:5004/logo.png", 16 | "contact_email": "plugins@aicodecraft.io", 17 | "legal_info_url": "https://aicodecraft.io/plugin-legal.html" 18 | } 19 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/json/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import json 4 | from typing import Any, IO, TYPE_CHECKING 5 | 6 | from .provider import _default 7 | from ..globals import current_app 8 | 9 | if TYPE_CHECKING: 10 | from ..wrappers import Response # noqa: F401 11 | 12 | 13 | def dumps(object_: Any, **kwargs: Any) -> str: 14 | kwargs.setdefault("default", _default) 15 | return json.dumps(object_, **kwargs) 16 | 17 | 18 | def dump(object_: Any, fp: IO[str], **kwargs: Any) -> None: 19 | kwargs.setdefault("default", _default) 20 | json.dump(object_, fp, **kwargs) 21 | 22 | 23 | def loads(object_: str, **kwargs: Any) -> Any: 24 | return json.loads(object_, **kwargs) 25 | 26 | 27 | def load(fp: IO[str], **kwargs: Any) -> Any: 28 | return json.load(fp, **kwargs) 29 | 30 | 31 | def jsonify(*args: Any, **kwargs: Any) -> "Response": 32 | return current_app.json.response(*args, **kwargs) 33 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11/tests/test_helpers.py: -------------------------------------------------------------------------------- 1 | from .._events import ( 2 | ConnectionClosed, 3 | Data, 4 | EndOfMessage, 5 | Event, 6 | InformationalResponse, 7 | Request, 8 | Response, 9 | ) 10 | from .helpers import normalize_data_events 11 | 12 | 13 | def test_normalize_data_events() -> None: 14 | assert normalize_data_events( 15 | [ 16 | Data(data=bytearray(b"1")), 17 | Data(data=b"2"), 18 | Response(status_code=200, headers=[]), # type: ignore[arg-type] 19 | Data(data=b"3"), 20 | Data(data=b"4"), 21 | EndOfMessage(), 22 | Data(data=b"5"), 23 | Data(data=b"6"), 24 | Data(data=b"7"), 25 | ] 26 | ) == [ 27 | Data(data=b"12"), 28 | Response(status_code=200, headers=[]), # type: ignore[arg-type] 29 | Data(data=b"34"), 30 | EndOfMessage(), 31 | Data(data=b"567"), 32 | ] 33 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous/__init__.py: -------------------------------------------------------------------------------- 1 | from .encoding import base64_decode as base64_decode 2 | from .encoding import base64_encode as base64_encode 3 | from .encoding import want_bytes as want_bytes 4 | from .exc import BadData as BadData 5 | from .exc import BadHeader as BadHeader 6 | from .exc import BadPayload as BadPayload 7 | from .exc import BadSignature as BadSignature 8 | from .exc import BadTimeSignature as BadTimeSignature 9 | from .exc import SignatureExpired as SignatureExpired 10 | from .serializer import Serializer as Serializer 11 | from .signer import HMACAlgorithm as HMACAlgorithm 12 | from .signer import NoneAlgorithm as NoneAlgorithm 13 | from .signer import Signer as Signer 14 | from .timed import TimedSerializer as TimedSerializer 15 | from .timed import TimestampSigner as TimestampSigner 16 | from .url_safe import URLSafeSerializer as URLSafeSerializer 17 | from .url_safe import URLSafeTimedSerializer as URLSafeTimedSerializer 18 | 19 | __version__ = "2.1.2" 20 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/jinja2/_identifier.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # generated by scripts/generate_identifier_pattern.py 4 | pattern = re.compile( 5 | r"[\w·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𐴤-𐽆𐴧-𐽐𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑄴𑅅𑅆𑅳𑆀-𑆂𑆳-𑇀𑇉-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌻𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑑞𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑠬-𑠺𑨁-𑨊𑨳-𑨹𑨻-𑨾𑩇𑩑-𑩛𑪊-𑪙𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𑴱-𑴶𑴺𑴼𑴽𑴿-𑵅𑵇𑶊-𑶎𑶐𑶑𑶓-𑶗𑻳-𑻶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯]+" # noqa: B950 6 | ) 7 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/trio/worker_context.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Type, Union 4 | 5 | import trio 6 | 7 | from ..typing import Event 8 | 9 | 10 | class EventWrapper: 11 | def __init__(self) -> None: 12 | self._event = trio.Event() 13 | 14 | async def clear(self) -> None: 15 | self._event = trio.Event() 16 | 17 | async def wait(self) -> None: 18 | await self._event.wait() 19 | 20 | async def set(self) -> None: 21 | self._event.set() 22 | 23 | def is_set(self) -> bool: 24 | return self._event.is_set() 25 | 26 | 27 | class WorkerContext: 28 | event_class: Type[Event] = EventWrapper 29 | 30 | def __init__(self) -> None: 31 | self.terminated = self.event_class() 32 | 33 | @staticmethod 34 | async def sleep(wait: Union[float, int]) -> None: 35 | return await trio.sleep(wait) 36 | 37 | @staticmethod 38 | def time() -> float: 39 | return trio.current_time() 40 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py: -------------------------------------------------------------------------------- 1 | """ 2 | The cache object API for implementing caches. The default is a thread 3 | safe in-memory dictionary. 4 | """ 5 | from threading import Lock 6 | 7 | 8 | class BaseCache(object): 9 | 10 | def get(self, key): 11 | raise NotImplementedError() 12 | 13 | def set(self, key, value): 14 | raise NotImplementedError() 15 | 16 | def delete(self, key): 17 | raise NotImplementedError() 18 | 19 | def close(self): 20 | pass 21 | 22 | 23 | class DictCache(BaseCache): 24 | 25 | def __init__(self, init_dict=None): 26 | self.lock = Lock() 27 | self.data = init_dict or {} 28 | 29 | def get(self, key): 30 | return self.data.get(key, None) 31 | 32 | def set(self, key, value): 33 | with self.lock: 34 | self.data.update({key: value}) 35 | 36 | def delete(self, key): 37 | with self.lock: 38 | if key in self.data: 39 | self.data.pop(key) 40 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/asyncio/worker_context.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import asyncio 4 | from typing import Type, Union 5 | 6 | from ..typing import Event 7 | 8 | 9 | class EventWrapper: 10 | def __init__(self) -> None: 11 | self._event = asyncio.Event() 12 | 13 | async def clear(self) -> None: 14 | self._event.clear() 15 | 16 | async def wait(self) -> None: 17 | await self._event.wait() 18 | 19 | async def set(self) -> None: 20 | self._event.set() 21 | 22 | def is_set(self) -> bool: 23 | return self._event.is_set() 24 | 25 | 26 | class WorkerContext: 27 | event_class: Type[Event] = EventWrapper 28 | 29 | def __init__(self) -> None: 30 | self.terminated = self.event_class() 31 | 32 | @staticmethod 33 | async def sleep(wait: Union[float, int]) -> None: 34 | return await asyncio.sleep(wait) 35 | 36 | @staticmethod 37 | def time() -> float: 38 | return asyncio.get_event_loop().time() 39 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/packaging/_compat.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | import sys 7 | 8 | 9 | PY2 = sys.version_info[0] == 2 10 | PY3 = sys.version_info[0] == 3 11 | 12 | # flake8: noqa 13 | 14 | if PY3: 15 | string_types = (str,) 16 | else: 17 | string_types = (basestring,) 18 | 19 | 20 | def with_metaclass(meta, *bases): 21 | """ 22 | Create a base class with a metaclass. 23 | """ 24 | # This requires a bit of explanation: the basic idea is to make a dummy 25 | # metaclass for one level of class instantiation that replaces itself with 26 | # the actual metaclass. 27 | class metaclass(meta): 28 | def __new__(cls, name, this_bases, d): 29 | return meta(name, bases, d) 30 | 31 | return type.__new__(metaclass, "temporary_class", (), {}) 32 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/_vendor/packaging/_compat.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | import sys 7 | 8 | 9 | PY2 = sys.version_info[0] == 2 10 | PY3 = sys.version_info[0] == 3 11 | 12 | # flake8: noqa 13 | 14 | if PY3: 15 | string_types = str, 16 | else: 17 | string_types = basestring, 18 | 19 | 20 | def with_metaclass(meta, *bases): 21 | """ 22 | Create a base class with a metaclass. 23 | """ 24 | # This requires a bit of explanation: the basic idea is to make a dummy 25 | # metaclass for one level of class instantiation that replaces itself with 26 | # the actual metaclass. 27 | class metaclass(meta): 28 | def __new__(cls, name, this_bases, d): 29 | return meta(name, bases, d) 30 | return type.__new__(metaclass, 'temporary_class', (), {}) 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker-1.5.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | blinker-1.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | blinker-1.5.dist-info/LICENSE.rst,sha256=nrc6HzhZekqhcCXSrhvjg5Ykx5XphdTw6Xac4p-spGc,1054 3 | blinker-1.5.dist-info/METADATA,sha256=15oXZzkKrP9uVdSyojUFVqwmd92Gkvqq2mM_fU9BEsI,1826 4 | blinker-1.5.dist-info/RECORD,, 5 | blinker-1.5.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110 6 | blinker-1.5.dist-info/top_level.txt,sha256=2NmsENM0J2t9Z8mkjxHDmGMQj7Bm8f5ZTTYe1x1fZtM,8 7 | blinker/__init__.py,sha256=OHXgv3DB2NRKQAQZRDrcIRtUKPLBfDregv17AXFS1as,300 8 | blinker/__pycache__/__init__.cpython-37.pyc,, 9 | blinker/__pycache__/_saferef.cpython-37.pyc,, 10 | blinker/__pycache__/_utilities.cpython-37.pyc,, 11 | blinker/__pycache__/base.cpython-37.pyc,, 12 | blinker/_saferef.py,sha256=1kB1HhMNz--rSGRFIgRhWcV1yWvPAy8FHo3NWJHDcFc,9227 13 | blinker/_utilities.py,sha256=ekvmsOY6SMP60s7-VNdH-NC-bGhgbeDB_nxl8IUgC58,4148 14 | blinker/base.py,sha256=IEMKoz9UDXNjqL4DLV0fIRUvMhBhnSxuvVpmlxHw1Ss,16458 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py: -------------------------------------------------------------------------------- 1 | from __future__ import division 2 | 3 | from datetime import datetime 4 | from pip._vendor.cachecontrol.cache import BaseCache 5 | 6 | 7 | class RedisCache(BaseCache): 8 | 9 | def __init__(self, conn): 10 | self.conn = conn 11 | 12 | def get(self, key): 13 | return self.conn.get(key) 14 | 15 | def set(self, key, value, expires=None): 16 | if not expires: 17 | self.conn.set(key, value) 18 | else: 19 | expires = expires - datetime.utcnow() 20 | self.conn.setex(key, int(expires.total_seconds()), value) 21 | 22 | def delete(self, key): 23 | self.conn.delete(key) 24 | 25 | def clear(self): 26 | """Helper for clearing all the keys in a database. Use with 27 | caution!""" 28 | for key in self.conn.keys(): 29 | self.conn.delete(key) 30 | 31 | def close(self): 32 | """Redis uses connection pooling, no need to close the connection.""" 33 | pass 34 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna/__init__.py: -------------------------------------------------------------------------------- 1 | from .package_data import __version__ 2 | from .core import ( 3 | IDNABidiError, 4 | IDNAError, 5 | InvalidCodepoint, 6 | InvalidCodepointContext, 7 | alabel, 8 | check_bidi, 9 | check_hyphen_ok, 10 | check_initial_combiner, 11 | check_label, 12 | check_nfc, 13 | decode, 14 | encode, 15 | ulabel, 16 | uts46_remap, 17 | valid_contextj, 18 | valid_contexto, 19 | valid_label_length, 20 | valid_string_length, 21 | ) 22 | from .intranges import intranges_contain 23 | 24 | __all__ = [ 25 | "IDNABidiError", 26 | "IDNAError", 27 | "InvalidCodepoint", 28 | "InvalidCodepointContext", 29 | "alabel", 30 | "check_bidi", 31 | "check_hyphen_ok", 32 | "check_initial_combiner", 33 | "check_label", 34 | "check_nfc", 35 | "decode", 36 | "encode", 37 | "intranges_contain", 38 | "ulabel", 39 | "uts46_remap", 40 | "valid_contextj", 41 | "valid_contexto", 42 | "valid_label_length", 43 | "valid_string_length", 44 | ] 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | "Help the World Grow" (like MIT) License 2 | This project is a gift to the world. It is free and open-source. You are permitted to use it for private and commercial purposes, 3 | modify it, and distribute it. 4 | 5 | The world needs free resources to grow and evolve. Often, it's individuals like me who invest their time and passion into projects, 6 | making them accessible for everyone. However, free development is not always easy and requires ongoing support. 7 | 8 | If you find this project useful and you use it for commercial purposes where you make a financial profit, 9 | please consider giving something back. Even a small contribution can help to finance ongoing development and enable myself and 10 | other developers to continue sharing our work with the world. 11 | 12 | The generosity and support of the community allow projects like this to thrive. 13 | Every gift, no matter its size, is deeply appreciated and helps make the world a little bit better. 14 | 15 | All gifts are used to support my free projects such as JADE and JADE Advisor. 16 | 17 | Copyright 2023 Volkan Sah 18 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi-2023.7.22.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | certifi-2023.7.22.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | certifi-2023.7.22.dist-info/LICENSE,sha256=oC9sY4-fuE0G93ZMOrCF2K9-2luTwWbaVDEkeQd8b7A,1052 3 | certifi-2023.7.22.dist-info/METADATA,sha256=oyc8gd32SOVo0IGolt8-bR7FnZ9Z99GoHoGE6ACcvFA,2191 4 | certifi-2023.7.22.dist-info/RECORD,, 5 | certifi-2023.7.22.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 6 | certifi-2023.7.22.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 7 | certifi/__init__.py,sha256=L_j-d0kYuA_MzA2_2hraF1ovf6KT6DTquRdV3paQwOk,94 8 | certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 9 | certifi/__pycache__/__init__.cpython-37.pyc,, 10 | certifi/__pycache__/__main__.cpython-37.pyc,, 11 | certifi/__pycache__/core.cpython-37.pyc,, 12 | certifi/cacert.pem,sha256=eU0Dn_3yd8BH4m8sfVj4Glhl2KDrcCSg-sEWT-pNJ88,281617 13 | certifi/core.py,sha256=lhewz0zFb2b4ULsQurElmloYwQoecjWzPqY67P8T7iM,4219 14 | certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from . import base 4 | 5 | from collections import OrderedDict 6 | 7 | 8 | def _attr_key(attr): 9 | """Return an appropriate key for an attribute for sorting 10 | 11 | Attributes have a namespace that can be either ``None`` or a string. We 12 | can't compare the two because they're different types, so we convert 13 | ``None`` to an empty string first. 14 | 15 | """ 16 | return (attr[0][0] or ''), attr[0][1] 17 | 18 | 19 | class Filter(base.Filter): 20 | """Alphabetizes attributes for elements""" 21 | def __iter__(self): 22 | for token in base.Filter.__iter__(self): 23 | if token["type"] in ("StartTag", "EmptyTag"): 24 | attrs = OrderedDict() 25 | for name, value in sorted(token["data"].items(), 26 | key=_attr_key): 27 | attrs[name] = value 28 | token["data"] = attrs 29 | yield token 30 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/_trie/_base.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from collections import Mapping 4 | 5 | 6 | class Trie(Mapping): 7 | """Abstract base class for tries""" 8 | 9 | def keys(self, prefix=None): 10 | # pylint:disable=arguments-differ 11 | keys = super(Trie, self).keys() 12 | 13 | if prefix is None: 14 | return set(keys) 15 | 16 | return {x for x in keys if x.startswith(prefix)} 17 | 18 | def has_keys_with_prefix(self, prefix): 19 | for key in self.keys(): 20 | if key.startswith(prefix): 21 | return True 22 | 23 | return False 24 | 25 | def longest_prefix(self, prefix): 26 | if prefix in self: 27 | return prefix 28 | 29 | for i in range(1, len(prefix) + 1): 30 | if prefix[:-i] in self: 31 | return prefix[:-i] 32 | 33 | raise KeyError(prefix) 34 | 35 | def longest_prefix_item(self, prefix): 36 | lprefix = self.longest_prefix(prefix) 37 | return (lprefix, self[lprefix]) 38 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/utils/filesystem.py: -------------------------------------------------------------------------------- 1 | import os 2 | import os.path 3 | 4 | from pip._internal.utils.compat import get_path_uid 5 | 6 | 7 | def check_path_owner(path): 8 | # type: (str) -> bool 9 | # If we don't have a way to check the effective uid of this process, then 10 | # we'll just assume that we own the directory. 11 | if not hasattr(os, "geteuid"): 12 | return True 13 | 14 | previous = None 15 | while path != previous: 16 | if os.path.lexists(path): 17 | # Check if path is writable by current user. 18 | if os.geteuid() == 0: 19 | # Special handling for root user in order to handle properly 20 | # cases where users use sudo without -H flag. 21 | try: 22 | path_uid = get_path_uid(path) 23 | except OSError: 24 | return False 25 | return path_uid == 0 26 | else: 27 | return os.access(path, os.W_OK) 28 | else: 29 | previous, path = path, os.path.dirname(path) 30 | return False # assume we don't own the path 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/priority-2.0.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Cory Benfield 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /myenv/Lib/site-packages/blinker-1.5.dist-info/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright 2010 Jason Kirtland 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a 4 | copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included 12 | in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/certifi-2023.7.22.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | This package contains a modified version of ca-bundle.crt: 2 | 3 | ca-bundle.crt -- Bundle of CA Root Certificates 4 | 5 | Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011# 6 | This is a bundle of X.509 certificates of public Certificate Authorities 7 | (CA). These were automatically extracted from Mozilla's root certificates 8 | file (certdata.txt). This file can be found in the mozilla source tree: 9 | https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt 10 | It contains the certificates in PEM format and therefore 11 | can be directly used with curl / libcurl / php_curl, or with 12 | an Apache+mod_ssl webserver for SSL client authentication. 13 | Just configure this file as the SSLCACertificateFile.# 14 | 15 | ***** BEGIN LICENSE BLOCK ***** 16 | This Source Code Form is subject to the terms of the Mozilla Public License, 17 | v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain 18 | one at http://mozilla.org/MPL/2.0/. 19 | 20 | ***** END LICENSE BLOCK ***** 21 | @(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe-6.0.1.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | hyperframe-6.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | hyperframe-6.0.1.dist-info/LICENSE,sha256=djqTQqBN9iBGydx0ilKHk06wpTMcaGOzygruIOGMtO0,1080 3 | hyperframe-6.0.1.dist-info/METADATA,sha256=XnsPRyOH2AV1DTg_TAcQjPgpDC1PY27R6ULErLxmuXI,2681 4 | hyperframe-6.0.1.dist-info/RECORD,, 5 | hyperframe-6.0.1.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92 6 | hyperframe-6.0.1.dist-info/top_level.txt,sha256=aIXWNxzKF_jwE8lyWG5Paqn5RP7PDBYeguraia-oHJE,11 7 | hyperframe/__init__.py,sha256=PU-Ys-1uB09DyuTKVqwHCUOi4ssg1RV_yrCCqCzIraA,136 8 | hyperframe/__pycache__/__init__.cpython-37.pyc,, 9 | hyperframe/__pycache__/exceptions.cpython-37.pyc,, 10 | hyperframe/__pycache__/flags.cpython-37.pyc,, 11 | hyperframe/__pycache__/frame.cpython-37.pyc,, 12 | hyperframe/exceptions.py,sha256=HEcJVI7kLuTeugt-yGHGq-pzb4pFbDAnARToFiwKnTY,1607 13 | hyperframe/flags.py,sha256=28hP4RjxBL3I5Ks9-xF12zTf9G0Xh8Ja_iJLqDc7O44,1386 14 | hyperframe/frame.py,sha256=5C_73047zn0qMBelEakVcp9uvvXJIbLkCX7If_g9BIk,31981 15 | hyperframe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 16 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/MarkupSafe-2.1.3.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | MarkupSafe-2.1.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | MarkupSafe-2.1.3.dist-info/LICENSE.rst,sha256=RjHsDbX9kKVH4zaBcmTGeYIUM4FG-KyUtKV_lu6MnsQ,1503 3 | MarkupSafe-2.1.3.dist-info/METADATA,sha256=5gU_TQw6eHpTaqkI6SPeZje6KTPlJPAV82uNiL3naKE,3096 4 | MarkupSafe-2.1.3.dist-info/RECORD,, 5 | MarkupSafe-2.1.3.dist-info/WHEEL,sha256=bipuClDp75Tl92wOCbNQvfy8uWiHgUDTfxkDCRx_slY,101 6 | MarkupSafe-2.1.3.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 7 | markupsafe/__init__.py,sha256=GsRaSTjrhvg6c88PnPJNqm4MafU_mFatfXz4-h80-Qc,10642 8 | markupsafe/__pycache__/__init__.cpython-37.pyc,, 9 | markupsafe/__pycache__/_native.cpython-37.pyc,, 10 | markupsafe/_native.py,sha256=_Q7UsXCOvgdonCgqG3l5asANI6eo50EKnDM-mlwEC5M,1776 11 | markupsafe/_speedups.c,sha256=n3jzzaJwXcoN8nTFyA53f3vSqsWK2vujI-v6QYifjhQ,7403 12 | markupsafe/_speedups.cp37-win_amd64.pyd,sha256=kLPcfJpKWV5UNOnflnp3vFkiX_S53fdjfiU4AHZx8ZA,15872 13 | markupsafe/_speedups.pyi,sha256=f5QtwIOP0eLrxh2v5p6SmaYmlcHIGIfmz0DovaqL0OU,238 14 | markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 15 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn-0.14.4.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright P G Jones 2018. 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pytoml/test.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | from .utils import format_rfc3339 3 | 4 | try: 5 | _string_types = (str, unicode) 6 | _int_types = (int, long) 7 | except NameError: 8 | _string_types = str 9 | _int_types = int 10 | 11 | def translate_to_test(v): 12 | if isinstance(v, dict): 13 | return { k: translate_to_test(v) for k, v in v.items() } 14 | if isinstance(v, list): 15 | a = [translate_to_test(x) for x in v] 16 | if v and isinstance(v[0], dict): 17 | return a 18 | else: 19 | return {'type': 'array', 'value': a} 20 | if isinstance(v, datetime.datetime): 21 | return {'type': 'datetime', 'value': format_rfc3339(v)} 22 | if isinstance(v, bool): 23 | return {'type': 'bool', 'value': 'true' if v else 'false'} 24 | if isinstance(v, _int_types): 25 | return {'type': 'integer', 'value': str(v)} 26 | if isinstance(v, float): 27 | return {'type': 'float', 'value': '{:.17}'.format(v)} 28 | if isinstance(v, _string_types): 29 | return {'type': 'string', 'value': v} 30 | raise RuntimeError('unexpected value: {!r}'.format(v)) 31 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/distlib/_backport/misc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012 The Python Software Foundation. 4 | # See LICENSE.txt and CONTRIBUTORS.txt. 5 | # 6 | """Backports for individual classes and functions.""" 7 | 8 | import os 9 | import sys 10 | 11 | __all__ = ['cache_from_source', 'callable', 'fsencode'] 12 | 13 | 14 | try: 15 | from imp import cache_from_source 16 | except ImportError: 17 | def cache_from_source(py_file, debug=__debug__): 18 | ext = debug and 'c' or 'o' 19 | return py_file + ext 20 | 21 | 22 | try: 23 | callable = callable 24 | except NameError: 25 | from collections import Callable 26 | 27 | def callable(obj): 28 | return isinstance(obj, Callable) 29 | 30 | 31 | try: 32 | fsencode = os.fsencode 33 | except AttributeError: 34 | def fsencode(filename): 35 | if isinstance(filename, bytes): 36 | return filename 37 | elif isinstance(filename, str): 38 | return filename.encode(sys.getfilesystemencoding()) 39 | else: 40 | raise TypeError("expect bytes or str, not %s" % 41 | type(filename).__name__) 42 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack-4.0.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Cory Benfield 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe-6.0.1.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Cory Benfield 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip-19.0.3.dist-info/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2019 The pip developers (see AUTHORS.txt file) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer-3.2.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 TAHRI Ahmed R. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2-4.1.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2020 Cory Benfield and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack/exceptions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hyper/http20/exceptions 4 | ~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | This defines exceptions used in the HTTP/2 portion of hyper. 7 | """ 8 | 9 | 10 | class HPACKError(Exception): 11 | """ 12 | The base class for all ``hpack`` exceptions. 13 | """ 14 | pass 15 | 16 | 17 | class HPACKDecodingError(HPACKError): 18 | """ 19 | An error has been encountered while performing HPACK decoding. 20 | """ 21 | pass 22 | 23 | 24 | class InvalidTableIndex(HPACKDecodingError): 25 | """ 26 | An invalid table index was received. 27 | """ 28 | pass 29 | 30 | 31 | class OversizedHeaderListError(HPACKDecodingError): 32 | """ 33 | A header list that was larger than we allow has been received. This may be 34 | a DoS attack. 35 | 36 | .. versionadded:: 2.3.0 37 | """ 38 | pass 39 | 40 | 41 | class InvalidTableSizeError(HPACKDecodingError): 42 | """ 43 | An attempt was made to change the decoder table size to a value larger than 44 | allowed, or the list was shrunk and the remote peer didn't shrink their 45 | table size. 46 | 47 | .. versionadded:: 3.0.0 48 | """ 49 | pass 50 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles/os.py: -------------------------------------------------------------------------------- 1 | """Async executor versions of file functions from the os module.""" 2 | import os 3 | 4 | from . import ospath as path 5 | from .ospath import wrap 6 | 7 | __all__ = [ 8 | "path", 9 | "stat", 10 | "statvfs", 11 | "rename", 12 | "renames", 13 | "replace", 14 | "remove", 15 | "unlink", 16 | "mkdir", 17 | "makedirs", 18 | "rmdir", 19 | "removedirs", 20 | "link", 21 | "symlink", 22 | "readlink", 23 | "listdir", 24 | "scandir", 25 | "access", 26 | "sendfile", 27 | "wrap", 28 | ] 29 | 30 | 31 | stat = wrap(os.stat) 32 | rename = wrap(os.rename) 33 | renames = wrap(os.renames) 34 | replace = wrap(os.replace) 35 | remove = wrap(os.remove) 36 | unlink = wrap(os.unlink) 37 | mkdir = wrap(os.mkdir) 38 | makedirs = wrap(os.makedirs) 39 | rmdir = wrap(os.rmdir) 40 | removedirs = wrap(os.removedirs) 41 | link = wrap(os.link) 42 | symlink = wrap(os.symlink) 43 | readlink = wrap(os.readlink) 44 | listdir = wrap(os.listdir) 45 | scandir = wrap(os.scandir) 46 | access = wrap(os.access) 47 | 48 | if hasattr(os, "sendfile"): 49 | sendfile = wrap(os.sendfile) 50 | if hasattr(os, "statvfs"): 51 | statvfs = wrap(os.statvfs) 52 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/models/index.py: -------------------------------------------------------------------------------- 1 | from pip._vendor.six.moves.urllib import parse as urllib_parse 2 | 3 | 4 | class PackageIndex(object): 5 | """Represents a Package Index and provides easier access to endpoints 6 | """ 7 | 8 | def __init__(self, url, file_storage_domain): 9 | # type: (str, str) -> None 10 | super(PackageIndex, self).__init__() 11 | self.url = url 12 | self.netloc = urllib_parse.urlsplit(url).netloc 13 | self.simple_url = self._url_for_path('simple') 14 | self.pypi_url = self._url_for_path('pypi') 15 | 16 | # This is part of a temporary hack used to block installs of PyPI 17 | # packages which depend on external urls only necessary until PyPI can 18 | # block such packages themselves 19 | self.file_storage_domain = file_storage_domain 20 | 21 | def _url_for_path(self, path): 22 | # type: (str) -> str 23 | return urllib_parse.urljoin(self.url, path) 24 | 25 | 26 | PyPI = PackageIndex( 27 | 'https://pypi.org/', file_storage_domain='files.pythonhosted.org' 28 | ) 29 | TestPyPI = PackageIndex( 30 | 'https://test.pypi.org/', file_storage_domain='test-files.pythonhosted.org' 31 | ) 32 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack/struct.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hpack/struct 4 | ~~~~~~~~~~~~ 5 | 6 | Contains structures for representing header fields with associated metadata. 7 | """ 8 | 9 | 10 | class HeaderTuple(tuple): 11 | """ 12 | A data structure that stores a single header field. 13 | 14 | HTTP headers can be thought of as tuples of ``(field name, field value)``. 15 | A single header block is a sequence of such tuples. 16 | 17 | In HTTP/2, however, certain bits of additional information are required for 18 | compressing these headers: in particular, whether the header field can be 19 | safely added to the HPACK compression context. 20 | 21 | This class stores a header that can be added to the compression context. In 22 | all other ways it behaves exactly like a tuple. 23 | """ 24 | __slots__ = () 25 | 26 | indexable = True 27 | 28 | def __new__(cls, *args): 29 | return tuple.__new__(cls, args) 30 | 31 | 32 | class NeverIndexedHeaderTuple(HeaderTuple): 33 | """ 34 | A data structure that stores a single header field that cannot be added to 35 | a HTTP/2 header compression context. 36 | """ 37 | __slots__ = () 38 | 39 | indexable = False 40 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11-0.14.0.dist-info/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Nathaniel J. Smith and other contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/utils/models.py: -------------------------------------------------------------------------------- 1 | """Utilities for defining models 2 | """ 3 | 4 | import operator 5 | 6 | 7 | class KeyBasedCompareMixin(object): 8 | """Provides comparision capabilities that is based on a key 9 | """ 10 | 11 | def __init__(self, key, defining_class): 12 | self._compare_key = key 13 | self._defining_class = defining_class 14 | 15 | def __hash__(self): 16 | return hash(self._compare_key) 17 | 18 | def __lt__(self, other): 19 | return self._compare(other, operator.__lt__) 20 | 21 | def __le__(self, other): 22 | return self._compare(other, operator.__le__) 23 | 24 | def __gt__(self, other): 25 | return self._compare(other, operator.__gt__) 26 | 27 | def __ge__(self, other): 28 | return self._compare(other, operator.__ge__) 29 | 30 | def __eq__(self, other): 31 | return self._compare(other, operator.__eq__) 32 | 33 | def __ne__(self, other): 34 | return self._compare(other, operator.__ne__) 35 | 36 | def _compare(self, other, method): 37 | if not isinstance(other, self._defining_class): 38 | return NotImplemented 39 | 40 | return method(self._compare_key, other._compare_key) 41 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/models/candidate.py: -------------------------------------------------------------------------------- 1 | from pip._vendor.packaging.version import parse as parse_version 2 | 3 | from pip._internal.utils.models import KeyBasedCompareMixin 4 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 5 | 6 | if MYPY_CHECK_RUNNING: 7 | from pip._vendor.packaging.version import _BaseVersion # noqa: F401 8 | from pip._internal.models.link import Link # noqa: F401 9 | from typing import Any, Union # noqa: F401 10 | 11 | 12 | class InstallationCandidate(KeyBasedCompareMixin): 13 | """Represents a potential "candidate" for installation. 14 | """ 15 | 16 | def __init__(self, project, version, location): 17 | # type: (Any, str, Link) -> None 18 | self.project = project 19 | self.version = parse_version(version) # type: _BaseVersion 20 | self.location = location 21 | 22 | super(InstallationCandidate, self).__init__( 23 | key=(self.project, self.version, self.location), 24 | defining_class=InstallationCandidate 25 | ) 26 | 27 | def __repr__(self): 28 | # type: () -> str 29 | return "".format( 30 | self.project, self.version, self.location, 31 | ) 32 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py: -------------------------------------------------------------------------------- 1 | class UnpackException(Exception): 2 | """Deprecated. Use Exception instead to catch all exception during unpacking.""" 3 | 4 | 5 | class BufferFull(UnpackException): 6 | pass 7 | 8 | 9 | class OutOfData(UnpackException): 10 | pass 11 | 12 | 13 | class UnpackValueError(UnpackException, ValueError): 14 | """Deprecated. Use ValueError instead.""" 15 | 16 | 17 | class ExtraData(UnpackValueError): 18 | def __init__(self, unpacked, extra): 19 | self.unpacked = unpacked 20 | self.extra = extra 21 | 22 | def __str__(self): 23 | return "unpack(b) received extra data." 24 | 25 | 26 | class PackException(Exception): 27 | """Deprecated. Use Exception instead to catch all exception during packing.""" 28 | 29 | 30 | class PackValueError(PackException, ValueError): 31 | """PackValueError is raised when type of input data is supported but it's value is unsupported. 32 | 33 | Deprecated. Use ValueError instead. 34 | """ 35 | 36 | 37 | class PackOverflowError(PackValueError, OverflowError): 38 | """PackOverflowError is raised when integer value is out of range of msgpack support [-2**31, 2**32). 39 | 40 | Deprecated. Use ValueError instead. 41 | """ 42 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata/_py39compat.py: -------------------------------------------------------------------------------- 1 | """ 2 | Compatibility layer with Python 3.8/3.9 3 | """ 4 | from typing import TYPE_CHECKING, Any, Optional 5 | 6 | if TYPE_CHECKING: # pragma: no cover 7 | # Prevent circular imports on runtime. 8 | from . import Distribution, EntryPoint 9 | else: 10 | Distribution = EntryPoint = Any 11 | 12 | 13 | def normalized_name(dist: Distribution) -> Optional[str]: 14 | """ 15 | Honor name normalization for distributions that don't provide ``_normalized_name``. 16 | """ 17 | try: 18 | return dist._normalized_name 19 | except AttributeError: 20 | from . import Prepared # -> delay to prevent circular imports. 21 | 22 | return Prepared.normalize(getattr(dist, "name", None) or dist.metadata['Name']) 23 | 24 | 25 | def ep_matches(ep: EntryPoint, **params) -> bool: 26 | """ 27 | Workaround for ``EntryPoint`` objects without the ``matches`` method. 28 | """ 29 | try: 30 | return ep.matches(**params) 31 | except AttributeError: 32 | from . import EntryPoint # -> delay to prevent circular imports. 33 | 34 | # Reconstruct the EntryPoint object to make sure it is compatible. 35 | return EntryPoint(ep.name, ep.value, ep.group).matches(**params) 36 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/commands/help.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from pip._internal.cli.base_command import Command 4 | from pip._internal.cli.status_codes import SUCCESS 5 | from pip._internal.exceptions import CommandError 6 | 7 | 8 | class HelpCommand(Command): 9 | """Show help for commands""" 10 | name = 'help' 11 | usage = """ 12 | %prog """ 13 | summary = 'Show help for commands.' 14 | ignore_require_venv = True 15 | 16 | def run(self, options, args): 17 | from pip._internal.commands import commands_dict, get_similar_commands 18 | 19 | try: 20 | # 'pip help' with no args is handled by pip.__init__.parseopt() 21 | cmd_name = args[0] # the command we need help for 22 | except IndexError: 23 | return SUCCESS 24 | 25 | if cmd_name not in commands_dict: 26 | guess = get_similar_commands(cmd_name) 27 | 28 | msg = ['unknown command "%s"' % cmd_name] 29 | if guess: 30 | msg.append('maybe you meant "%s"' % guess) 31 | 32 | raise CommandError(' - '.join(msg)) 33 | 34 | command = commands_dict[cmd_name]() 35 | command.parser.print_help() 36 | 37 | return SUCCESS 38 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/utils/typing.py: -------------------------------------------------------------------------------- 1 | """For neatly implementing static typing in pip. 2 | 3 | `mypy` - the static type analysis tool we use - uses the `typing` module, which 4 | provides core functionality fundamental to mypy's functioning. 5 | 6 | Generally, `typing` would be imported at runtime and used in that fashion - 7 | it acts as a no-op at runtime and does not have any run-time overhead by 8 | design. 9 | 10 | As it turns out, `typing` is not vendorable - it uses separate sources for 11 | Python 2/Python 3. Thus, this codebase can not expect it to be present. 12 | To work around this, mypy allows the typing import to be behind a False-y 13 | optional to prevent it from running at runtime and type-comments can be used 14 | to remove the need for the types to be accessible directly during runtime. 15 | 16 | This module provides the False-y guard in a nicely named fashion so that a 17 | curious maintainer can reach here to read this. 18 | 19 | In pip, all static-typing related imports should be guarded as follows: 20 | 21 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 22 | 23 | if MYPY_CHECK_RUNNING: 24 | from typing import ... # noqa: F401 25 | 26 | Ref: https://github.com/python/mypy/issues/3216 27 | """ 28 | 29 | MYPY_CHECK_RUNNING = False 30 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/protocol/events.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from dataclasses import dataclass 4 | from typing import List, Tuple 5 | 6 | 7 | @dataclass(frozen=True) 8 | class Event: 9 | stream_id: int 10 | 11 | 12 | @dataclass(frozen=True) 13 | class Request(Event): 14 | headers: List[Tuple[bytes, bytes]] 15 | http_version: str 16 | method: str 17 | raw_path: bytes 18 | 19 | 20 | @dataclass(frozen=True) 21 | class Body(Event): 22 | data: bytes 23 | 24 | 25 | @dataclass(frozen=True) 26 | class EndBody(Event): 27 | pass 28 | 29 | 30 | @dataclass(frozen=True) 31 | class Data(Event): 32 | data: bytes 33 | 34 | 35 | @dataclass(frozen=True) 36 | class EndData(Event): 37 | pass 38 | 39 | 40 | @dataclass(frozen=True) 41 | class Response(Event): 42 | headers: List[Tuple[bytes, bytes]] 43 | status_code: int 44 | 45 | 46 | @dataclass(frozen=True) 47 | class InformationalResponse(Event): 48 | headers: List[Tuple[bytes, bytes]] 49 | status_code: int 50 | 51 | def __post_init__(self) -> None: 52 | if self.status_code >= 200 or self.status_code < 100: 53 | raise ValueError(f"Status code must be 1XX not {self.status_code}") 54 | 55 | 56 | @dataclass(frozen=True) 57 | class StreamClosed(Event): 58 | pass 59 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/compat.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # Contributor(s): 3 | # Dan Blanchard 4 | # Ian Cordasco 5 | # 6 | # This library is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # This library is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with this library; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 19 | # 02110-1301 USA 20 | ######################### END LICENSE BLOCK ######################### 21 | 22 | import sys 23 | 24 | 25 | if sys.version_info < (3, 0): 26 | PY2 = True 27 | PY3 = False 28 | base_str = (str, unicode) 29 | text_type = unicode 30 | else: 31 | PY2 = False 32 | PY3 = True 33 | base_str = (bytes, str) 34 | text_type = str 35 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama/tests/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. 2 | from contextlib import contextmanager 3 | from io import StringIO 4 | import sys 5 | import os 6 | 7 | 8 | class StreamTTY(StringIO): 9 | def isatty(self): 10 | return True 11 | 12 | class StreamNonTTY(StringIO): 13 | def isatty(self): 14 | return False 15 | 16 | @contextmanager 17 | def osname(name): 18 | orig = os.name 19 | os.name = name 20 | yield 21 | os.name = orig 22 | 23 | @contextmanager 24 | def replace_by(stream): 25 | orig_stdout = sys.stdout 26 | orig_stderr = sys.stderr 27 | sys.stdout = stream 28 | sys.stderr = stream 29 | yield 30 | sys.stdout = orig_stdout 31 | sys.stderr = orig_stderr 32 | 33 | @contextmanager 34 | def replace_original_by(stream): 35 | orig_stdout = sys.__stdout__ 36 | orig_stderr = sys.__stderr__ 37 | sys.__stdout__ = stream 38 | sys.__stderr__ = stream 39 | yield 40 | sys.__stdout__ = orig_stdout 41 | sys.__stderr__ = orig_stderr 42 | 43 | @contextmanager 44 | def pycharm(): 45 | os.environ["PYCHARM_HOSTED"] = "1" 46 | non_tty = StreamNonTTY() 47 | with replace_by(non_tty), replace_original_by(non_tty): 48 | yield 49 | del os.environ["PYCHARM_HOSTED"] 50 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | """ 4 | requests._internal_utils 5 | ~~~~~~~~~~~~~~ 6 | 7 | Provides utility functions that are consumed internally by Requests 8 | which depend on extremely few external helpers (such as compat) 9 | """ 10 | 11 | from .compat import is_py2, builtin_str, str 12 | 13 | 14 | def to_native_string(string, encoding='ascii'): 15 | """Given a string object, regardless of type, returns a representation of 16 | that string in the native string type, encoding and decoding where 17 | necessary. This assumes ASCII unless told otherwise. 18 | """ 19 | if isinstance(string, builtin_str): 20 | out = string 21 | else: 22 | if is_py2: 23 | out = string.encode(encoding) 24 | else: 25 | out = string.decode(encoding) 26 | 27 | return out 28 | 29 | 30 | def unicode_is_ascii(u_string): 31 | """Determine if unicode string only contains ASCII characters. 32 | 33 | :param str u_string: unicode string to check. Must be unicode 34 | and not Python 2 `str`. 35 | :rtype: bool 36 | """ 37 | assert isinstance(u_string, str) 38 | try: 39 | u_string.encode('ascii') 40 | return True 41 | except UnicodeEncodeError: 42 | return False 43 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | # For backwards compatibility, provide imports that used to be here. 3 | from .connection import is_connection_dropped 4 | from .request import make_headers 5 | from .response import is_fp_closed 6 | from .ssl_ import ( 7 | SSLContext, 8 | HAS_SNI, 9 | IS_PYOPENSSL, 10 | IS_SECURETRANSPORT, 11 | assert_fingerprint, 12 | resolve_cert_reqs, 13 | resolve_ssl_version, 14 | ssl_wrap_socket, 15 | ) 16 | from .timeout import ( 17 | current_time, 18 | Timeout, 19 | ) 20 | 21 | from .retry import Retry 22 | from .url import ( 23 | get_host, 24 | parse_url, 25 | split_first, 26 | Url, 27 | ) 28 | from .wait import ( 29 | wait_for_read, 30 | wait_for_write 31 | ) 32 | 33 | __all__ = ( 34 | 'HAS_SNI', 35 | 'IS_PYOPENSSL', 36 | 'IS_SECURETRANSPORT', 37 | 'SSLContext', 38 | 'Retry', 39 | 'Timeout', 40 | 'Url', 41 | 'assert_fingerprint', 42 | 'current_time', 43 | 'is_connection_dropped', 44 | 'is_fp_closed', 45 | 'get_host', 46 | 'parse_url', 47 | 'make_headers', 48 | 'resolve_cert_reqs', 49 | 'resolve_ssl_version', 50 | 'split_first', 51 | 'ssl_wrap_socket', 52 | 'wait_for_read', 53 | 'wait_for_write' 54 | ) 55 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | HTML parsing library based on the `WHATWG HTML specification 3 | `_. The parser is designed to be compatible with 4 | existing HTML found in the wild and implements well-defined error recovery that 5 | is largely compatible with modern desktop web browsers. 6 | 7 | Example usage:: 8 | 9 | from pip._vendor import html5lib 10 | with open("my_document.html", "rb") as f: 11 | tree = html5lib.parse(f) 12 | 13 | For convenience, this module re-exports the following names: 14 | 15 | * :func:`~.html5parser.parse` 16 | * :func:`~.html5parser.parseFragment` 17 | * :class:`~.html5parser.HTMLParser` 18 | * :func:`~.treebuilders.getTreeBuilder` 19 | * :func:`~.treewalkers.getTreeWalker` 20 | * :func:`~.serializer.serialize` 21 | """ 22 | 23 | from __future__ import absolute_import, division, unicode_literals 24 | 25 | from .html5parser import HTMLParser, parse, parseFragment 26 | from .treebuilders import getTreeBuilder 27 | from .treewalkers import getTreeWalker 28 | from .serializer import serialize 29 | 30 | __all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", 31 | "getTreeWalker", "serialize"] 32 | 33 | # this has to be at the top level, see how setup.py parses this 34 | #: Distribution version number. 35 | __version__ = "1.0.1" 36 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/testing/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Any, TYPE_CHECKING 4 | 5 | from click.testing import CliRunner 6 | 7 | from .app import TestApp 8 | from .client import QuartClient 9 | from .connections import WebsocketResponseError 10 | from .utils import ( 11 | make_test_body_with_headers, 12 | make_test_headers_path_and_query_string, 13 | make_test_scope, 14 | no_op_push, 15 | sentinel, 16 | ) 17 | from ..cli import ScriptInfo 18 | 19 | if TYPE_CHECKING: 20 | from ..app import Quart 21 | 22 | 23 | class QuartCliRunner(CliRunner): 24 | def __init__(self, app: "Quart", **kwargs: Any) -> None: 25 | self.app = app 26 | super().__init__(**kwargs) 27 | 28 | def invoke(self, cli: Any = None, args: Any = None, **kwargs: Any) -> Any: # type: ignore 29 | if cli is None: 30 | cli = self.app.cli # type: ignore 31 | 32 | if "obj" not in kwargs: 33 | kwargs["obj"] = ScriptInfo(create_app=lambda: self.app) 34 | 35 | return super().invoke(cli, args, **kwargs) 36 | 37 | 38 | __all__ = ( 39 | "make_test_body_with_headers", 40 | "make_test_headers_path_and_query_string", 41 | "make_test_scope", 42 | "no_op_push", 43 | "QuartClient", 44 | "QuartCliRunner", 45 | "sentinel", 46 | "TestApp", 47 | "WebsocketResponseError", 48 | ) 49 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/_trie/datrie.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from datrie import Trie as DATrie 4 | from pip._vendor.six import text_type 5 | 6 | from ._base import Trie as ABCTrie 7 | 8 | 9 | class Trie(ABCTrie): 10 | def __init__(self, data): 11 | chars = set() 12 | for key in data.keys(): 13 | if not isinstance(key, text_type): 14 | raise TypeError("All keys must be strings") 15 | for char in key: 16 | chars.add(char) 17 | 18 | self._data = DATrie("".join(chars)) 19 | for key, value in data.items(): 20 | self._data[key] = value 21 | 22 | def __contains__(self, key): 23 | return key in self._data 24 | 25 | def __len__(self): 26 | return len(self._data) 27 | 28 | def __iter__(self): 29 | raise NotImplementedError() 30 | 31 | def __getitem__(self, key): 32 | return self._data[key] 33 | 34 | def keys(self, prefix=None): 35 | return self._data.keys(prefix) 36 | 37 | def has_keys_with_prefix(self, prefix): 38 | return self._data.has_keys_with_prefix(prefix) 39 | 40 | def longest_prefix(self, prefix): 41 | return self._data.longest_prefix(prefix) 42 | 43 | def longest_prefix_item(self, prefix): 44 | return self._data.longest_prefix_item(prefix) 45 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/filters/whitespace.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | import re 4 | 5 | from . import base 6 | from ..constants import rcdataElements, spaceCharacters 7 | spaceCharacters = "".join(spaceCharacters) 8 | 9 | SPACES_REGEX = re.compile("[%s]+" % spaceCharacters) 10 | 11 | 12 | class Filter(base.Filter): 13 | """Collapses whitespace except in pre, textarea, and script elements""" 14 | spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements)) 15 | 16 | def __iter__(self): 17 | preserve = 0 18 | for token in base.Filter.__iter__(self): 19 | type = token["type"] 20 | if type == "StartTag" \ 21 | and (preserve or token["name"] in self.spacePreserveElements): 22 | preserve += 1 23 | 24 | elif type == "EndTag" and preserve: 25 | preserve -= 1 26 | 27 | elif not preserve and type == "SpaceCharacters" and token["data"]: 28 | # Test on token["data"] above to not introduce spaces where there were not 29 | token["data"] = " " 30 | 31 | elif not preserve and type == "Characters": 32 | token["data"] = collapse_spaces(token["data"]) 33 | 34 | yield token 35 | 36 | 37 | def collapse_spaces(text): 38 | return SPACES_REGEX.sub(' ', text) 39 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/utils/encoding.py: -------------------------------------------------------------------------------- 1 | import codecs 2 | import locale 3 | import re 4 | import sys 5 | 6 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 7 | 8 | if MYPY_CHECK_RUNNING: 9 | from typing import List, Tuple, Text # noqa: F401 10 | 11 | BOMS = [ 12 | (codecs.BOM_UTF8, 'utf8'), 13 | (codecs.BOM_UTF16, 'utf16'), 14 | (codecs.BOM_UTF16_BE, 'utf16-be'), 15 | (codecs.BOM_UTF16_LE, 'utf16-le'), 16 | (codecs.BOM_UTF32, 'utf32'), 17 | (codecs.BOM_UTF32_BE, 'utf32-be'), 18 | (codecs.BOM_UTF32_LE, 'utf32-le'), 19 | ] # type: List[Tuple[bytes, Text]] 20 | 21 | ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)') 22 | 23 | 24 | def auto_decode(data): 25 | # type: (bytes) -> Text 26 | """Check a bytes string for a BOM to correctly detect the encoding 27 | 28 | Fallback to locale.getpreferredencoding(False) like open() on Python3""" 29 | for bom, encoding in BOMS: 30 | if data.startswith(bom): 31 | return data[len(bom):].decode(encoding) 32 | # Lets check the first two lines as in PEP263 33 | for line in data.split(b'\n')[:2]: 34 | if line[0:1] == b'#' and ENCODING_RE.search(line): 35 | encoding = ENCODING_RE.search(line).groups()[0].decode('ascii') 36 | return data.decode(encoding) 37 | return data.decode( 38 | locale.getpreferredencoding(False) or sys.getdefaultencoding(), 39 | ) 40 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna-3.4.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | idna-3.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | idna-3.4.dist-info/LICENSE.md,sha256=otbk2UC9JNvnuWRc3hmpeSzFHbeuDVrNMBrIYMqj6DY,1523 3 | idna-3.4.dist-info/METADATA,sha256=8aLSf9MFS7oB26pZh2hprg7eJp0UJSc-3rpf_evp4DA,9830 4 | idna-3.4.dist-info/RECORD,, 5 | idna-3.4.dist-info/WHEEL,sha256=4TfKIB_xu-04bc2iKz6_zFt-gEFEEDU_31HGhqzOCE8,81 6 | idna/__init__.py,sha256=KJQN1eQBr8iIK5SKrJ47lXvxG0BJ7Lm38W4zT0v_8lk,849 7 | idna/__pycache__/__init__.cpython-37.pyc,, 8 | idna/__pycache__/codec.cpython-37.pyc,, 9 | idna/__pycache__/compat.cpython-37.pyc,, 10 | idna/__pycache__/core.cpython-37.pyc,, 11 | idna/__pycache__/idnadata.cpython-37.pyc,, 12 | idna/__pycache__/intranges.cpython-37.pyc,, 13 | idna/__pycache__/package_data.cpython-37.pyc,, 14 | idna/__pycache__/uts46data.cpython-37.pyc,, 15 | idna/codec.py,sha256=6ly5odKfqrytKT9_7UrlGklHnf1DSK2r9C6cSM4sa28,3374 16 | idna/compat.py,sha256=0_sOEUMT4CVw9doD3vyRhX80X19PwqFoUBs7gWsFME4,321 17 | idna/core.py,sha256=1JxchwKzkxBSn7R_oCE12oBu3eVux0VzdxolmIad24M,12950 18 | idna/idnadata.py,sha256=xUjqKqiJV8Ho_XzBpAtv5JFoVPSupK-SUXvtjygUHqw,44375 19 | idna/intranges.py,sha256=YBr4fRYuWH7kTKS2tXlFjM24ZF1Pdvcir-aywniInqg,1881 20 | idna/package_data.py,sha256=C_jHJzmX8PI4xq0jpzmcTMxpb5lDsq4o5VyxQzlVrZE,21 21 | idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 22 | idna/uts46data.py,sha256=zvjZU24s58_uAS850Mcd0NnD0X7_gCMAMjzWNIeUJdc,206539 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/jinja2/defaults.py: -------------------------------------------------------------------------------- 1 | import typing as t 2 | 3 | from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 4 | from .tests import TESTS as DEFAULT_TESTS # noqa: F401 5 | from .utils import Cycler 6 | from .utils import generate_lorem_ipsum 7 | from .utils import Joiner 8 | from .utils import Namespace 9 | 10 | if t.TYPE_CHECKING: 11 | import typing_extensions as te 12 | 13 | # defaults for the parser / lexer 14 | BLOCK_START_STRING = "{%" 15 | BLOCK_END_STRING = "%}" 16 | VARIABLE_START_STRING = "{{" 17 | VARIABLE_END_STRING = "}}" 18 | COMMENT_START_STRING = "{#" 19 | COMMENT_END_STRING = "#}" 20 | LINE_STATEMENT_PREFIX: t.Optional[str] = None 21 | LINE_COMMENT_PREFIX: t.Optional[str] = None 22 | TRIM_BLOCKS = False 23 | LSTRIP_BLOCKS = False 24 | NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" 25 | KEEP_TRAILING_NEWLINE = False 26 | 27 | # default filters, tests and namespace 28 | 29 | DEFAULT_NAMESPACE = { 30 | "range": range, 31 | "dict": dict, 32 | "lipsum": generate_lorem_ipsum, 33 | "cycler": Cycler, 34 | "joiner": Joiner, 35 | "namespace": Namespace, 36 | } 37 | 38 | # default policies 39 | DEFAULT_POLICIES: t.Dict[str, t.Any] = { 40 | "compiler.ascii_str": True, 41 | "urlize.rel": "noopener", 42 | "urlize.target": None, 43 | "urlize.extra_schemes": None, 44 | "truncate.leeway": 5, 45 | "json.dumps_function": None, 46 | "json.dumps_kwargs": {"sort_keys": True}, 47 | "ext.i18n.trimmed": False, 48 | } 49 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/jinja2/constants.py: -------------------------------------------------------------------------------- 1 | #: list of lorem ipsum words used by the lipsum() helper function 2 | LOREM_IPSUM_WORDS = """\ 3 | a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at 4 | auctor augue bibendum blandit class commodo condimentum congue consectetuer 5 | consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus 6 | diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend 7 | elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames 8 | faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac 9 | hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum 10 | justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem 11 | luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie 12 | mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non 13 | nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque 14 | penatibus per pharetra phasellus placerat platea porta porttitor posuere 15 | potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus 16 | ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit 17 | sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor 18 | tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices 19 | ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus 20 | viverra volutpat vulputate""" 21 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles/threadpool/text.py: -------------------------------------------------------------------------------- 1 | from ..base import AsyncBase, AsyncIndirectBase 2 | from .utils import delegate_to_executor, proxy_method_directly, proxy_property_directly 3 | 4 | 5 | @delegate_to_executor( 6 | "close", 7 | "flush", 8 | "isatty", 9 | "read", 10 | "readable", 11 | "readline", 12 | "readlines", 13 | "seek", 14 | "seekable", 15 | "tell", 16 | "truncate", 17 | "write", 18 | "writable", 19 | "writelines", 20 | ) 21 | @proxy_method_directly("detach", "fileno", "readable") 22 | @proxy_property_directly( 23 | "buffer", 24 | "closed", 25 | "encoding", 26 | "errors", 27 | "line_buffering", 28 | "newlines", 29 | "name", 30 | "mode", 31 | ) 32 | class AsyncTextIOWrapper(AsyncBase): 33 | """The asyncio executor version of io.TextIOWrapper.""" 34 | 35 | 36 | @delegate_to_executor( 37 | "close", 38 | "flush", 39 | "isatty", 40 | "read", 41 | "readable", 42 | "readline", 43 | "readlines", 44 | "seek", 45 | "seekable", 46 | "tell", 47 | "truncate", 48 | "write", 49 | "writable", 50 | "writelines", 51 | ) 52 | @proxy_method_directly("detach", "fileno", "readable") 53 | @proxy_property_directly( 54 | "buffer", 55 | "closed", 56 | "encoding", 57 | "errors", 58 | "line_buffering", 59 | "newlines", 60 | "name", 61 | "mode", 62 | ) 63 | class AsyncTextIndirectIOWrapper(AsyncIndirectBase): 64 | """The indirect asyncio executor version of io.TextIOWrapper.""" 65 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hpack-4.0.0.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | hpack-4.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | hpack-4.0.0.dist-info/LICENSE,sha256=djqTQqBN9iBGydx0ilKHk06wpTMcaGOzygruIOGMtO0,1080 3 | hpack-4.0.0.dist-info/METADATA,sha256=qvjQZKJbV8sOvv6Xp_6VPcp_zuJMWUg81Q5XQYNoyEI,2533 4 | hpack-4.0.0.dist-info/RECORD,, 5 | hpack-4.0.0.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92 6 | hpack-4.0.0.dist-info/top_level.txt,sha256=nyrZLbQo-0nC6ot3YO_109pkUiTtK1M0wUJfLHuQceE,6 7 | hpack/__init__.py,sha256=1v7RdDmqOTWOFJ4WulrMdwHNBfQNjP0XRlpw5KFya3U,568 8 | hpack/__pycache__/__init__.cpython-37.pyc,, 9 | hpack/__pycache__/exceptions.cpython-37.pyc,, 10 | hpack/__pycache__/hpack.cpython-37.pyc,, 11 | hpack/__pycache__/huffman.cpython-37.pyc,, 12 | hpack/__pycache__/huffman_constants.cpython-37.pyc,, 13 | hpack/__pycache__/huffman_table.cpython-37.pyc,, 14 | hpack/__pycache__/struct.cpython-37.pyc,, 15 | hpack/__pycache__/table.cpython-37.pyc,, 16 | hpack/exceptions.py,sha256=Rrw1Fke5Cfq72OwvwrnS6JucBvw3_bxu3o_ujtAUlrM,974 17 | hpack/hpack.py,sha256=qoOPcsqMdE6DzqIIoxs-UY-rvMzPn4AStqhFfbHzUBw,22683 18 | hpack/huffman.py,sha256=0efgsl0EjRoRCI0PuX8G9yK4P48dmOSD5pepMbkxSTY,2443 19 | hpack/huffman_constants.py,sha256=in1pbqU6HktjFwQ5gltrXZVdL3U4k_QstG9rIQgBWzM,4643 20 | hpack/huffman_table.py,sha256=5yijIuaylIePwkbhWMXKf3EXspeXKY7hakpvPdSRJkg,168580 21 | hpack/struct.py,sha256=gw7oxmlVzXyzVEV4Y6uvS3wnGrJ0zOljqH-xLpJqWZc,1050 22 | hpack/table.py,sha256=kC8SweTJIH3jB_qlEJj069jOkEYQGzQHhwELr-RnGkM,9635 23 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from pip._vendor import requests 4 | 5 | from pip._vendor.cachecontrol.adapter import CacheControlAdapter 6 | from pip._vendor.cachecontrol.cache import DictCache 7 | from pip._vendor.cachecontrol.controller import logger 8 | 9 | from argparse import ArgumentParser 10 | 11 | 12 | def setup_logging(): 13 | logger.setLevel(logging.DEBUG) 14 | handler = logging.StreamHandler() 15 | logger.addHandler(handler) 16 | 17 | 18 | def get_session(): 19 | adapter = CacheControlAdapter( 20 | DictCache(), cache_etags=True, serializer=None, heuristic=None 21 | ) 22 | sess = requests.Session() 23 | sess.mount("http://", adapter) 24 | sess.mount("https://", adapter) 25 | 26 | sess.cache_controller = adapter.controller 27 | return sess 28 | 29 | 30 | def get_args(): 31 | parser = ArgumentParser() 32 | parser.add_argument("url", help="The URL to try and cache") 33 | return parser.parse_args() 34 | 35 | 36 | def main(args=None): 37 | args = get_args() 38 | sess = get_session() 39 | 40 | # Make a request to get a response 41 | resp = sess.get(args.url) 42 | 43 | # Turn on logging 44 | setup_logging() 45 | 46 | # try setting the cache 47 | sess.cache_controller.cache_response(resp.request, resp.raw) 48 | 49 | # Now try to get it 50 | if sess.cache_controller.cached_request(resp.request): 51 | print("Cached!") 52 | else: 53 | print("Not cached :(") 54 | 55 | 56 | if __name__ == "__main__": 57 | main() 58 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/click/_textwrap.py: -------------------------------------------------------------------------------- 1 | import textwrap 2 | import typing as t 3 | from contextlib import contextmanager 4 | 5 | 6 | class TextWrapper(textwrap.TextWrapper): 7 | def _handle_long_word( 8 | self, 9 | reversed_chunks: t.List[str], 10 | cur_line: t.List[str], 11 | cur_len: int, 12 | width: int, 13 | ) -> None: 14 | space_left = max(width - cur_len, 1) 15 | 16 | if self.break_long_words: 17 | last = reversed_chunks[-1] 18 | cut = last[:space_left] 19 | res = last[space_left:] 20 | cur_line.append(cut) 21 | reversed_chunks[-1] = res 22 | elif not cur_line: 23 | cur_line.append(reversed_chunks.pop()) 24 | 25 | @contextmanager 26 | def extra_indent(self, indent: str) -> t.Iterator[None]: 27 | old_initial_indent = self.initial_indent 28 | old_subsequent_indent = self.subsequent_indent 29 | self.initial_indent += indent 30 | self.subsequent_indent += indent 31 | 32 | try: 33 | yield 34 | finally: 35 | self.initial_indent = old_initial_indent 36 | self.subsequent_indent = old_subsequent_indent 37 | 38 | def indent_only(self, text: str) -> str: 39 | rv = [] 40 | 41 | for idx, line in enumerate(text.splitlines()): 42 | indent = self.initial_indent 43 | 44 | if idx > 0: 45 | indent = self.subsequent_indent 46 | 47 | rv.append(f"{indent}{line}") 48 | 49 | return "\n".join(rv) 50 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/webencodings/mklabels.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | webencodings.mklabels 4 | ~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | Regenarate the webencodings.labels module. 7 | 8 | :copyright: Copyright 2012 by Simon Sapin 9 | :license: BSD, see LICENSE for details. 10 | 11 | """ 12 | 13 | import json 14 | try: 15 | from urllib import urlopen 16 | except ImportError: 17 | from urllib.request import urlopen 18 | 19 | 20 | def assert_lower(string): 21 | assert string == string.lower() 22 | return string 23 | 24 | 25 | def generate(url): 26 | parts = ['''\ 27 | """ 28 | 29 | webencodings.labels 30 | ~~~~~~~~~~~~~~~~~~~ 31 | 32 | Map encoding labels to their name. 33 | 34 | :copyright: Copyright 2012 by Simon Sapin 35 | :license: BSD, see LICENSE for details. 36 | 37 | """ 38 | 39 | # XXX Do not edit! 40 | # This file is automatically generated by mklabels.py 41 | 42 | LABELS = { 43 | '''] 44 | labels = [ 45 | (repr(assert_lower(label)).lstrip('u'), 46 | repr(encoding['name']).lstrip('u')) 47 | for category in json.loads(urlopen(url).read().decode('ascii')) 48 | for encoding in category['encodings'] 49 | for label in encoding['labels']] 50 | max_len = max(len(label) for label, name in labels) 51 | parts.extend( 52 | ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name) 53 | for label, name in labels) 54 | parts.append('}') 55 | return ''.join(parts) 56 | 57 | 58 | if __name__ == '__main__': 59 | print(generate('http://encoding.spec.whatwg.org/encodings.json')) 60 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/click-8.1.7.dist-info/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright 2014 Pallets 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/progress/spinner.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (c) 2012 Giorgos Verigakis 4 | # 5 | # Permission to use, copy, modify, and distribute this software for any 6 | # purpose with or without fee is hereby granted, provided that the above 7 | # copyright notice and this permission notice appear in all copies. 8 | # 9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | 17 | from __future__ import unicode_literals 18 | from . import Infinite 19 | from .helpers import WriteMixin 20 | 21 | 22 | class Spinner(WriteMixin, Infinite): 23 | message = '' 24 | phases = ('-', '\\', '|', '/') 25 | hide_cursor = True 26 | 27 | def update(self): 28 | i = self.index % len(self.phases) 29 | self.write(self.phases[i]) 30 | 31 | 32 | class PieSpinner(Spinner): 33 | phases = ['◷', '◶', '◵', '◴'] 34 | 35 | 36 | class MoonSpinner(Spinner): 37 | phases = ['◑', '◒', '◐', '◓'] 38 | 39 | 40 | class LineSpinner(Spinner): 41 | phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻'] 42 | 43 | class PixelSpinner(Spinner): 44 | phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽'] 45 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright 2007 Pallets 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous-2.1.2.dist-info/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright 2011 Pallets 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe/flags.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hyperframe/flags 4 | ~~~~~~~~~~~~~~~~ 5 | 6 | Defines basic Flag and Flags data structures. 7 | """ 8 | from collections.abc import MutableSet 9 | from typing import NamedTuple, Iterable, Set, Iterator 10 | 11 | 12 | class Flag(NamedTuple): 13 | name: str 14 | bit: int 15 | 16 | 17 | class Flags(MutableSet): # type: ignore 18 | """ 19 | A simple MutableSet implementation that will only accept known flags as 20 | elements. 21 | 22 | Will behave like a regular set(), except that a ValueError will be thrown 23 | when .add()ing unexpected flags. 24 | """ 25 | def __init__(self, defined_flags: Iterable[Flag]): 26 | self._valid_flags = set(flag.name for flag in defined_flags) 27 | self._flags: Set[str] = set() 28 | 29 | def __repr__(self) -> str: 30 | return repr(sorted(list(self._flags))) 31 | 32 | def __contains__(self, x: object) -> bool: 33 | return self._flags.__contains__(x) 34 | 35 | def __iter__(self) -> Iterator[str]: 36 | return self._flags.__iter__() 37 | 38 | def __len__(self) -> int: 39 | return self._flags.__len__() 40 | 41 | def discard(self, value: str) -> None: 42 | return self._flags.discard(value) 43 | 44 | def add(self, value: str) -> None: 45 | if value not in self._valid_flags: 46 | raise ValueError( 47 | "Unexpected flag: {}. Valid flags are: {}".format( 48 | value, self._valid_flags 49 | ) 50 | ) 51 | return self._flags.add(value) 52 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/commands/check.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from pip._internal.cli.base_command import Command 4 | from pip._internal.operations.check import ( 5 | check_package_set, create_package_set_from_installed, 6 | ) 7 | 8 | logger = logging.getLogger(__name__) 9 | 10 | 11 | class CheckCommand(Command): 12 | """Verify installed packages have compatible dependencies.""" 13 | name = 'check' 14 | usage = """ 15 | %prog [options]""" 16 | summary = 'Verify installed packages have compatible dependencies.' 17 | 18 | def run(self, options, args): 19 | package_set, parsing_probs = create_package_set_from_installed() 20 | missing, conflicting = check_package_set(package_set) 21 | 22 | for project_name in missing: 23 | version = package_set[project_name].version 24 | for dependency in missing[project_name]: 25 | logger.info( 26 | "%s %s requires %s, which is not installed.", 27 | project_name, version, dependency[0], 28 | ) 29 | 30 | for project_name in conflicting: 31 | version = package_set[project_name].version 32 | for dep_name, dep_version, req in conflicting[project_name]: 33 | logger.info( 34 | "%s %s has requirement %s, but you have %s %s.", 35 | project_name, version, req, dep_name, dep_version, 36 | ) 37 | 38 | if missing or conflicting or parsing_probs: 39 | return 1 40 | else: 41 | logger.info("No broken requirements found.") 42 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/dom.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from xml.dom import Node 4 | 5 | from . import base 6 | 7 | 8 | class TreeWalker(base.NonRecursiveTreeWalker): 9 | def getNodeDetails(self, node): 10 | if node.nodeType == Node.DOCUMENT_TYPE_NODE: 11 | return base.DOCTYPE, node.name, node.publicId, node.systemId 12 | 13 | elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE): 14 | return base.TEXT, node.nodeValue 15 | 16 | elif node.nodeType == Node.ELEMENT_NODE: 17 | attrs = {} 18 | for attr in list(node.attributes.keys()): 19 | attr = node.getAttributeNode(attr) 20 | if attr.namespaceURI: 21 | attrs[(attr.namespaceURI, attr.localName)] = attr.value 22 | else: 23 | attrs[(None, attr.name)] = attr.value 24 | return (base.ELEMENT, node.namespaceURI, node.nodeName, 25 | attrs, node.hasChildNodes()) 26 | 27 | elif node.nodeType == Node.COMMENT_NODE: 28 | return base.COMMENT, node.nodeValue 29 | 30 | elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE): 31 | return (base.DOCUMENT,) 32 | 33 | else: 34 | return base.UNKNOWN, node.nodeType 35 | 36 | def getFirstChild(self, node): 37 | return node.firstChild 38 | 39 | def getNextSibling(self, node): 40 | return node.nextSibling 41 | 42 | def getParentNode(self, node): 43 | return node.parentNode 44 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 Jonathan Hartley 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of the copyright holders, nor those of its contributors 15 | may be used to endorse or promote products derived from this software without 16 | specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/MarkupSafe-2.1.3.dist-info/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright 2010 Pallets 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/idna-3.4.dist-info/LICENSE.md: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2013-2021, Kim Davies 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous/encoding.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import string 3 | import struct 4 | import typing as _t 5 | 6 | from .exc import BadData 7 | 8 | _t_str_bytes = _t.Union[str, bytes] 9 | 10 | 11 | def want_bytes( 12 | s: _t_str_bytes, encoding: str = "utf-8", errors: str = "strict" 13 | ) -> bytes: 14 | if isinstance(s, str): 15 | s = s.encode(encoding, errors) 16 | 17 | return s 18 | 19 | 20 | def base64_encode(string: _t_str_bytes) -> bytes: 21 | """Base64 encode a string of bytes or text. The resulting bytes are 22 | safe to use in URLs. 23 | """ 24 | string = want_bytes(string) 25 | return base64.urlsafe_b64encode(string).rstrip(b"=") 26 | 27 | 28 | def base64_decode(string: _t_str_bytes) -> bytes: 29 | """Base64 decode a URL-safe string of bytes or text. The result is 30 | bytes. 31 | """ 32 | string = want_bytes(string, encoding="ascii", errors="ignore") 33 | string += b"=" * (-len(string) % 4) 34 | 35 | try: 36 | return base64.urlsafe_b64decode(string) 37 | except (TypeError, ValueError) as e: 38 | raise BadData("Invalid base64-encoded data") from e 39 | 40 | 41 | # The alphabet used by base64.urlsafe_* 42 | _base64_alphabet = f"{string.ascii_letters}{string.digits}-_=".encode("ascii") 43 | 44 | _int64_struct = struct.Struct(">Q") 45 | _int_to_bytes = _int64_struct.pack 46 | _bytes_to_int = _t.cast("_t.Callable[[bytes], _t.Tuple[int]]", _int64_struct.unpack) 47 | 48 | 49 | def int_to_bytes(num: int) -> bytes: 50 | return _int_to_bytes(num).lstrip(b"\x00") 51 | 52 | 53 | def bytes_to_int(bytestr: bytes) -> int: 54 | return _bytes_to_int(bytestr.rjust(8, b"\x00"))[0] 55 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/middleware/wsgi.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import asyncio 4 | from functools import partial 5 | from typing import Any, Callable, Iterable 6 | 7 | from ..app_wrappers import WSGIWrapper 8 | from ..typing import ASGIReceiveCallable, ASGISendCallable, Scope, WSGIFramework 9 | 10 | MAX_BODY_SIZE = 2**16 11 | 12 | WSGICallable = Callable[[dict, Callable], Iterable[bytes]] 13 | 14 | 15 | class InvalidPathError(Exception): 16 | pass 17 | 18 | 19 | class _WSGIMiddleware: 20 | def __init__(self, wsgi_app: WSGIFramework, max_body_size: int = MAX_BODY_SIZE) -> None: 21 | self.wsgi_app = WSGIWrapper(wsgi_app, max_body_size) 22 | self.max_body_size = max_body_size 23 | 24 | async def __call__( 25 | self, scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable 26 | ) -> None: 27 | pass 28 | 29 | 30 | class AsyncioWSGIMiddleware(_WSGIMiddleware): 31 | async def __call__( 32 | self, scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable 33 | ) -> None: 34 | loop = asyncio.get_event_loop() 35 | 36 | def _call_soon(func: Callable, *args: Any) -> Any: 37 | future = asyncio.run_coroutine_threadsafe(func(*args), loop) 38 | return future.result() 39 | 40 | await self.wsgi_app(scope, receive, send, partial(loop.run_in_executor, None), _call_soon) 41 | 42 | 43 | class TrioWSGIMiddleware(_WSGIMiddleware): 44 | async def __call__( 45 | self, scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable 46 | ) -> None: 47 | import trio 48 | 49 | await self.wsgi_app(scope, receive, send, trio.to_thread.run_sync, trio.from_thread.run) 50 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/trio/udp_server.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import trio 4 | 5 | from .task_group import TaskGroup 6 | from .worker_context import WorkerContext 7 | from ..config import Config 8 | from ..events import Event, RawData 9 | from ..typing import AppWrapper 10 | from ..utils import parse_socket_addr 11 | 12 | MAX_RECV = 2**16 13 | 14 | 15 | class UDPServer: 16 | def __init__( 17 | self, 18 | app: AppWrapper, 19 | config: Config, 20 | context: WorkerContext, 21 | socket: trio.socket.socket, 22 | ) -> None: 23 | self.app = app 24 | self.config = config 25 | self.context = context 26 | self.socket = trio.socket.from_stdlib_socket(socket) 27 | 28 | async def run( 29 | self, task_status: trio._core._run._TaskStatus = trio.TASK_STATUS_IGNORED 30 | ) -> None: 31 | from ..protocol.quic import QuicProtocol # h3/Quic is an optional part of Hypercorn 32 | 33 | task_status.started() 34 | server = parse_socket_addr(self.socket.family, self.socket.getsockname()) 35 | async with TaskGroup() as task_group: 36 | self.protocol = QuicProtocol( 37 | self.app, self.config, self.context, task_group, server, self.protocol_send 38 | ) 39 | 40 | while not self.context.terminated.is_set() or not self.protocol.idle: 41 | data, address = await self.socket.recvfrom(MAX_RECV) 42 | await self.protocol.handle(RawData(data=data, address=address)) 43 | 44 | async def protocol_send(self, event: Event) -> None: 45 | if isinstance(event, RawData): 46 | await self.socket.sendto(event.data, event.address) 47 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/progress/counter.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (c) 2012 Giorgos Verigakis 4 | # 5 | # Permission to use, copy, modify, and distribute this software for any 6 | # purpose with or without fee is hereby granted, provided that the above 7 | # copyright notice and this permission notice appear in all copies. 8 | # 9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | 17 | from __future__ import unicode_literals 18 | from . import Infinite, Progress 19 | from .helpers import WriteMixin 20 | 21 | 22 | class Counter(WriteMixin, Infinite): 23 | message = '' 24 | hide_cursor = True 25 | 26 | def update(self): 27 | self.write(str(self.index)) 28 | 29 | 30 | class Countdown(WriteMixin, Progress): 31 | hide_cursor = True 32 | 33 | def update(self): 34 | self.write(str(self.remaining)) 35 | 36 | 37 | class Stack(WriteMixin, Progress): 38 | phases = (' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█') 39 | hide_cursor = True 40 | 41 | def update(self): 42 | nphases = len(self.phases) 43 | i = min(nphases - 1, int(self.progress * nphases)) 44 | self.write(self.phases[i]) 45 | 46 | 47 | class Pie(Stack): 48 | phases = ('○', '◔', '◑', '◕', '●') 49 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | backports.makefile 4 | ~~~~~~~~~~~~~~~~~~ 5 | 6 | Backports the Python 3 ``socket.makefile`` method for use with anything that 7 | wants to create a "fake" socket object. 8 | """ 9 | import io 10 | 11 | from socket import SocketIO 12 | 13 | 14 | def backport_makefile(self, mode="r", buffering=None, encoding=None, 15 | errors=None, newline=None): 16 | """ 17 | Backport of ``socket.makefile`` from Python 3.5. 18 | """ 19 | if not set(mode) <= {"r", "w", "b"}: 20 | raise ValueError( 21 | "invalid mode %r (only r, w, b allowed)" % (mode,) 22 | ) 23 | writing = "w" in mode 24 | reading = "r" in mode or not writing 25 | assert reading or writing 26 | binary = "b" in mode 27 | rawmode = "" 28 | if reading: 29 | rawmode += "r" 30 | if writing: 31 | rawmode += "w" 32 | raw = SocketIO(self, rawmode) 33 | self._makefile_refs += 1 34 | if buffering is None: 35 | buffering = -1 36 | if buffering < 0: 37 | buffering = io.DEFAULT_BUFFER_SIZE 38 | if buffering == 0: 39 | if not binary: 40 | raise ValueError("unbuffered streams must be binary") 41 | return raw 42 | if reading and writing: 43 | buffer = io.BufferedRWPair(raw, raw, buffering) 44 | elif reading: 45 | buffer = io.BufferedReader(raw, buffering) 46 | else: 47 | assert writing 48 | buffer = io.BufferedWriter(raw, buffering) 49 | if binary: 50 | return buffer 51 | text = io.TextIOWrapper(buffer, encoding, errors, newline) 52 | text.mode = mode 53 | return text 54 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/itsdangerous-2.1.2.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | itsdangerous-2.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | itsdangerous-2.1.2.dist-info/LICENSE.rst,sha256=Y68JiRtr6K0aQlLtQ68PTvun_JSOIoNnvtfzxa4LCdc,1475 3 | itsdangerous-2.1.2.dist-info/METADATA,sha256=ThrHIJQ_6XlfbDMCAVe_hawT7IXiIxnTBIDrwxxtucQ,2928 4 | itsdangerous-2.1.2.dist-info/RECORD,, 5 | itsdangerous-2.1.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 6 | itsdangerous-2.1.2.dist-info/top_level.txt,sha256=gKN1OKLk81i7fbWWildJA88EQ9NhnGMSvZqhfz9ICjk,13 7 | itsdangerous/__init__.py,sha256=n4mkyjlIVn23pgsgCIw0MJKPdcHIetyeRpe5Fwsn8qg,876 8 | itsdangerous/__pycache__/__init__.cpython-37.pyc,, 9 | itsdangerous/__pycache__/_json.cpython-37.pyc,, 10 | itsdangerous/__pycache__/encoding.cpython-37.pyc,, 11 | itsdangerous/__pycache__/exc.cpython-37.pyc,, 12 | itsdangerous/__pycache__/serializer.cpython-37.pyc,, 13 | itsdangerous/__pycache__/signer.cpython-37.pyc,, 14 | itsdangerous/__pycache__/timed.cpython-37.pyc,, 15 | itsdangerous/__pycache__/url_safe.cpython-37.pyc,, 16 | itsdangerous/_json.py,sha256=wIhs_7-_XZolmyr-JvKNiy_LgAcfevYR0qhCVdlIhg8,450 17 | itsdangerous/encoding.py,sha256=pgh86snHC76dPLNCnPlrjR5SaYL_M8H-gWRiiLNbhCU,1419 18 | itsdangerous/exc.py,sha256=VFxmP2lMoSJFqxNMzWonqs35ROII4-fvCBfG0v1Tkbs,3206 19 | itsdangerous/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 20 | itsdangerous/serializer.py,sha256=zgZ1-U705jHDpt62x_pmLJdryEKDNAbt5UkJtnkcCSw,11144 21 | itsdangerous/signer.py,sha256=QUH0iX0in-OTptMAXKU5zWMwmOCXn1fsDsubXiGdFN4,9367 22 | itsdangerous/timed.py,sha256=5CBWLds4Nm8-3bFVC8RxNzFjx6PSwjch8wuZ5cwcHFI,8174 23 | itsdangerous/url_safe.py,sha256=5bC4jSKOjWNRkWrFseifWVXUnHnPgwOLROjiOwb-eeo,2402 24 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/__init__.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # This library is free software; you can redistribute it and/or 3 | # modify it under the terms of the GNU Lesser General Public 4 | # License as published by the Free Software Foundation; either 5 | # version 2.1 of the License, or (at your option) any later version. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 15 | # 02110-1301 USA 16 | ######################### END LICENSE BLOCK ######################### 17 | 18 | 19 | from .compat import PY2, PY3 20 | from .universaldetector import UniversalDetector 21 | from .version import __version__, VERSION 22 | 23 | 24 | def detect(byte_str): 25 | """ 26 | Detect the encoding of the given byte string. 27 | 28 | :param byte_str: The byte sequence to examine. 29 | :type byte_str: ``bytes`` or ``bytearray`` 30 | """ 31 | if not isinstance(byte_str, bytearray): 32 | if not isinstance(byte_str, bytes): 33 | raise TypeError('Expected object of type bytes or bytearray, got: ' 34 | '{0}'.format(type(byte_str))) 35 | else: 36 | byte_str = bytearray(byte_str) 37 | detector = UniversalDetector() 38 | detector.feed(byte_str) 39 | return detector.close() 40 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/packaging/_structures.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | 7 | class Infinity(object): 8 | def __repr__(self): 9 | return "Infinity" 10 | 11 | def __hash__(self): 12 | return hash(repr(self)) 13 | 14 | def __lt__(self, other): 15 | return False 16 | 17 | def __le__(self, other): 18 | return False 19 | 20 | def __eq__(self, other): 21 | return isinstance(other, self.__class__) 22 | 23 | def __ne__(self, other): 24 | return not isinstance(other, self.__class__) 25 | 26 | def __gt__(self, other): 27 | return True 28 | 29 | def __ge__(self, other): 30 | return True 31 | 32 | def __neg__(self): 33 | return NegativeInfinity 34 | 35 | 36 | Infinity = Infinity() 37 | 38 | 39 | class NegativeInfinity(object): 40 | def __repr__(self): 41 | return "-Infinity" 42 | 43 | def __hash__(self): 44 | return hash(repr(self)) 45 | 46 | def __lt__(self, other): 47 | return True 48 | 49 | def __le__(self, other): 50 | return True 51 | 52 | def __eq__(self, other): 53 | return isinstance(other, self.__class__) 54 | 55 | def __ne__(self, other): 56 | return not isinstance(other, self.__class__) 57 | 58 | def __gt__(self, other): 59 | return False 60 | 61 | def __ge__(self, other): 62 | return False 63 | 64 | def __neg__(self): 65 | return Infinity 66 | 67 | 68 | NegativeInfinity = NegativeInfinity() 69 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/charset_normalizer/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Charset-Normalizer 4 | ~~~~~~~~~~~~~~ 5 | The Real First Universal Charset Detector. 6 | A library that helps you read text from an unknown charset encoding. 7 | Motivated by chardet, This package is trying to resolve the issue by taking a new approach. 8 | All IANA character set names for which the Python core library provides codecs are supported. 9 | 10 | Basic usage: 11 | >>> from charset_normalizer import from_bytes 12 | >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) 13 | >>> best_guess = results.best() 14 | >>> str(best_guess) 15 | 'Bсеки човек има право на образование. Oбразованието!' 16 | 17 | Others methods and usages are available - see the full documentation 18 | at . 19 | :copyright: (c) 2021 by Ahmed TAHRI 20 | :license: MIT, see LICENSE for more details. 21 | """ 22 | import logging 23 | 24 | from .api import from_bytes, from_fp, from_path, is_binary 25 | from .legacy import detect 26 | from .models import CharsetMatch, CharsetMatches 27 | from .utils import set_logging_handler 28 | from .version import VERSION, __version__ 29 | 30 | __all__ = ( 31 | "from_fp", 32 | "from_path", 33 | "from_bytes", 34 | "is_binary", 35 | "detect", 36 | "CharsetMatch", 37 | "CharsetMatches", 38 | "__version__", 39 | "VERSION", 40 | "set_logging_handler", 41 | ) 42 | 43 | # Attach a NullHandler to the top level logger by default 44 | # https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library 45 | 46 | logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) 47 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | 7 | class Infinity(object): 8 | 9 | def __repr__(self): 10 | return "Infinity" 11 | 12 | def __hash__(self): 13 | return hash(repr(self)) 14 | 15 | def __lt__(self, other): 16 | return False 17 | 18 | def __le__(self, other): 19 | return False 20 | 21 | def __eq__(self, other): 22 | return isinstance(other, self.__class__) 23 | 24 | def __ne__(self, other): 25 | return not isinstance(other, self.__class__) 26 | 27 | def __gt__(self, other): 28 | return True 29 | 30 | def __ge__(self, other): 31 | return True 32 | 33 | def __neg__(self): 34 | return NegativeInfinity 35 | 36 | Infinity = Infinity() 37 | 38 | 39 | class NegativeInfinity(object): 40 | 41 | def __repr__(self): 42 | return "-Infinity" 43 | 44 | def __hash__(self): 45 | return hash(repr(self)) 46 | 47 | def __lt__(self, other): 48 | return True 49 | 50 | def __le__(self, other): 51 | return True 52 | 53 | def __eq__(self, other): 54 | return isinstance(other, self.__class__) 55 | 56 | def __ne__(self, other): 57 | return not isinstance(other, self.__class__) 58 | 59 | def __gt__(self, other): 60 | return False 61 | 62 | def __ge__(self, other): 63 | return False 64 | 65 | def __neg__(self): 66 | return Infinity 67 | 68 | NegativeInfinity = NegativeInfinity() 69 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/quart/flask_patch/globals.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Any, AnyStr 4 | 5 | from werkzeug.datastructures import MultiDict 6 | from werkzeug.local import LocalProxy 7 | 8 | from quart.globals import ( 9 | _cv_app, 10 | _cv_request, 11 | _cv_websocket, 12 | app_ctx, 13 | current_app, 14 | g, 15 | request as quart_request, 16 | request_ctx, 17 | session, 18 | ) 19 | from ._synchronise import sync_with_context 20 | 21 | 22 | class FlaskRequestProxy(LocalProxy): 23 | @property 24 | def data(self) -> bytes: 25 | return sync_with_context(self._get_current_object().data) # type: ignore 26 | 27 | @property 28 | def form(self) -> MultiDict: 29 | return sync_with_context(self._get_current_object().form) # type: ignore 30 | 31 | @property 32 | def files(self) -> MultiDict: 33 | return sync_with_context(self._get_current_object().files) # type: ignore 34 | 35 | @property 36 | def json(self) -> Any: 37 | return sync_with_context(self._get_current_object().json) # type: ignore 38 | 39 | def get_json(self, *args: Any, **kwargs: Any) -> Any: 40 | return sync_with_context(self._get_current_object().get_json(*args, **kwargs)) # type: ignore # noqa: E501 41 | 42 | def get_data(self, *args: Any, **kwargs: Any) -> AnyStr: 43 | return sync_with_context(self._get_current_object().get_data(*args, **kwargs)) # type: ignore # noqa: E501 44 | 45 | 46 | request = FlaskRequestProxy(lambda: quart_request) 47 | 48 | 49 | __all__ = ( 50 | "_cv_app", 51 | "_cv_request", 52 | "_cv_websocket", 53 | "app_ctx", 54 | "current_app", 55 | "g", 56 | "request", 57 | "request_ctx", 58 | "session", 59 | ) 60 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h11/__init__.py: -------------------------------------------------------------------------------- 1 | # A highish-level implementation of the HTTP/1.1 wire protocol (RFC 7230), 2 | # containing no networking code at all, loosely modelled on hyper-h2's generic 3 | # implementation of HTTP/2 (and in particular the h2.connection.H2Connection 4 | # class). There's still a bunch of subtle details you need to get right if you 5 | # want to make this actually useful, because it doesn't implement all the 6 | # semantics to check that what you're asking to write to the wire is sensible, 7 | # but at least it gets you out of dealing with the wire itself. 8 | 9 | from h11._connection import Connection, NEED_DATA, PAUSED 10 | from h11._events import ( 11 | ConnectionClosed, 12 | Data, 13 | EndOfMessage, 14 | Event, 15 | InformationalResponse, 16 | Request, 17 | Response, 18 | ) 19 | from h11._state import ( 20 | CLIENT, 21 | CLOSED, 22 | DONE, 23 | ERROR, 24 | IDLE, 25 | MIGHT_SWITCH_PROTOCOL, 26 | MUST_CLOSE, 27 | SEND_BODY, 28 | SEND_RESPONSE, 29 | SERVER, 30 | SWITCHED_PROTOCOL, 31 | ) 32 | from h11._util import LocalProtocolError, ProtocolError, RemoteProtocolError 33 | from h11._version import __version__ 34 | 35 | PRODUCT_ID = "python-h11/" + __version__ 36 | 37 | 38 | __all__ = ( 39 | "Connection", 40 | "NEED_DATA", 41 | "PAUSED", 42 | "ConnectionClosed", 43 | "Data", 44 | "EndOfMessage", 45 | "Event", 46 | "InformationalResponse", 47 | "Request", 48 | "Response", 49 | "CLIENT", 50 | "CLOSED", 51 | "DONE", 52 | "ERROR", 53 | "IDLE", 54 | "MUST_CLOSE", 55 | "SEND_BODY", 56 | "SEND_RESPONSE", 57 | "SERVER", 58 | "SWITCHED_PROTOCOL", 59 | "ProtocolError", 60 | "LocalProtocolError", 61 | "RemoteProtocolError", 62 | ) 63 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/packaging/utils.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | from __future__ import absolute_import, division, print_function 5 | 6 | import re 7 | 8 | from .version import InvalidVersion, Version 9 | 10 | 11 | _canonicalize_regex = re.compile(r"[-_.]+") 12 | 13 | 14 | def canonicalize_name(name): 15 | # This is taken from PEP 503. 16 | return _canonicalize_regex.sub("-", name).lower() 17 | 18 | 19 | def canonicalize_version(version): 20 | """ 21 | This is very similar to Version.__str__, but has one subtle differences 22 | with the way it handles the release segment. 23 | """ 24 | 25 | try: 26 | version = Version(version) 27 | except InvalidVersion: 28 | # Legacy versions cannot be normalized 29 | return version 30 | 31 | parts = [] 32 | 33 | # Epoch 34 | if version.epoch != 0: 35 | parts.append("{0}!".format(version.epoch)) 36 | 37 | # Release segment 38 | # NB: This strips trailing '.0's to normalize 39 | parts.append(re.sub(r"(\.0)+$", "", ".".join(str(x) for x in version.release))) 40 | 41 | # Pre-release 42 | if version.pre is not None: 43 | parts.append("".join(str(x) for x in version.pre)) 44 | 45 | # Post-release 46 | if version.post is not None: 47 | parts.append(".post{0}".format(version.post)) 48 | 49 | # Development release 50 | if version.dev is not None: 51 | parts.append(".dev{0}".format(version.dev)) 52 | 53 | # Local version segment 54 | if version.local is not None: 55 | parts.append("+{0}".format(version.local)) 56 | 57 | return "".join(parts) 58 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/asyncio/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import warnings 4 | from typing import Awaitable, Callable, Optional 5 | 6 | from .run import worker_serve 7 | from ..config import Config 8 | from ..typing import Framework 9 | from ..utils import wrap_app 10 | 11 | try: 12 | from typing import Literal 13 | except ImportError: 14 | from typing_extensions import Literal # type: ignore 15 | 16 | 17 | async def serve( 18 | app: Framework, 19 | config: Config, 20 | *, 21 | shutdown_trigger: Optional[Callable[..., Awaitable[None]]] = None, 22 | mode: Optional[Literal["asgi", "wsgi"]] = None, 23 | ) -> None: 24 | """Serve an ASGI or WSGI framework app given the config. 25 | 26 | This allows for a programmatic way to serve an ASGI or WSGI 27 | framework, it can be used via, 28 | 29 | .. code-block:: python 30 | 31 | asyncio.run(serve(app, config)) 32 | 33 | It is assumed that the event-loop is configured before calling 34 | this function, therefore configuration values that relate to loop 35 | setup or process setup are ignored. 36 | 37 | Arguments: 38 | app: The ASGI or WSGI application to serve. 39 | config: A Hypercorn configuration object. 40 | shutdown_trigger: This should return to trigger a graceful 41 | shutdown. 42 | mode: Specify if the app is WSGI or ASGI. 43 | """ 44 | if config.debug: 45 | warnings.warn("The config `debug` has no affect when using serve", Warning) 46 | if config.workers != 1: 47 | warnings.warn("The config `workers` has no affect when using serve", Warning) 48 | 49 | await worker_serve( 50 | wrap_app(app, config.wsgi_max_body_size, mode), config, shutdown_trigger=shutdown_trigger 51 | ) 52 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2-4.1.0.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | h2-4.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | h2-4.1.0.dist-info/LICENSE,sha256=emWlrwy6vxwWJRx8ayt8tG0WpyIueZdbm2H81mouPyg,1102 3 | h2-4.1.0.dist-info/METADATA,sha256=xQTqopWF9r3ZVkT-xCDHAWWZQB3g_zyqgKxCl0ioR6Q,3583 4 | h2-4.1.0.dist-info/RECORD,, 5 | h2-4.1.0.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92 6 | h2-4.1.0.dist-info/top_level.txt,sha256=Hiulx8KxI2jFUM1dG7-CZeRkO3j50MBwCLG36Vrq-kI,3 7 | h2/__init__.py,sha256=inV-bCAUhD_QGjQe5Mk8gl7F85v26UW9W3BHov9vBAA,86 8 | h2/__pycache__/__init__.cpython-37.pyc,, 9 | h2/__pycache__/config.cpython-37.pyc,, 10 | h2/__pycache__/connection.cpython-37.pyc,, 11 | h2/__pycache__/errors.cpython-37.pyc,, 12 | h2/__pycache__/events.cpython-37.pyc,, 13 | h2/__pycache__/exceptions.cpython-37.pyc,, 14 | h2/__pycache__/frame_buffer.cpython-37.pyc,, 15 | h2/__pycache__/settings.cpython-37.pyc,, 16 | h2/__pycache__/stream.cpython-37.pyc,, 17 | h2/__pycache__/utilities.cpython-37.pyc,, 18 | h2/__pycache__/windows.cpython-37.pyc,, 19 | h2/config.py,sha256=kMXdIbOm1vRqLM7aPJGg6EHuJBDo9yS23_I5d9TtiTw,7348 20 | h2/connection.py,sha256=IsWckfO6JuNDWBV8i7Ry-IrZOcb-2K-VHzfSv7zXC-0,82989 21 | h2/errors.py,sha256=6KzmbyYSKM9RuCd6nz7P2LtxmlSs5P2mneS_Sa8vTEo,1543 22 | h2/events.py,sha256=GptETVwff3OpaxRTHP4bvd3gRnn3nDPwqqpRoNl-mpc,21587 23 | h2/exceptions.py,sha256=OlfeNH_fcGGM0rFlOpD2JGOkW6r0HxDN7nSeGzO-Hz0,5334 24 | h2/frame_buffer.py,sha256=7i15oPLqfAPPfTDE5A87gggW4FxB7l__vMX4Xe9R7TU,6208 25 | h2/settings.py,sha256=zRs_bAz9qg21jsp6HQY-TZWncIbCDwEJ_1wZOydmYNc,11690 26 | h2/stream.py,sha256=b3hApRwvxk4rlUHDrB1ZbwgwPokOaZa8MMZSFREcViE,54533 27 | h2/utilities.py,sha256=RwgoIQRCmDrRvyUx054TyOKW1Hljdm_ZNz3jx4o9s_E,23246 28 | h2/windows.py,sha256=N_P9mTi0VZ26-eY2QsvWYi6NLx73xswvUZb7VGod1zk,5595 29 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/jinja2/optimizer.py: -------------------------------------------------------------------------------- 1 | """The optimizer tries to constant fold expressions and modify the AST 2 | in place so that it should be faster to evaluate. 3 | 4 | Because the AST does not contain all the scoping information and the 5 | compiler has to find that out, we cannot do all the optimizations we 6 | want. For example, loop unrolling doesn't work because unrolled loops 7 | would have a different scope. The solution would be a second syntax tree 8 | that stored the scoping rules. 9 | """ 10 | import typing as t 11 | 12 | from . import nodes 13 | from .visitor import NodeTransformer 14 | 15 | if t.TYPE_CHECKING: 16 | from .environment import Environment 17 | 18 | 19 | def optimize(node: nodes.Node, environment: "Environment") -> nodes.Node: 20 | """The context hint can be used to perform an static optimization 21 | based on the context given.""" 22 | optimizer = Optimizer(environment) 23 | return t.cast(nodes.Node, optimizer.visit(node)) 24 | 25 | 26 | class Optimizer(NodeTransformer): 27 | def __init__(self, environment: "t.Optional[Environment]") -> None: 28 | self.environment = environment 29 | 30 | def generic_visit( 31 | self, node: nodes.Node, *args: t.Any, **kwargs: t.Any 32 | ) -> nodes.Node: 33 | node = super().generic_visit(node, *args, **kwargs) 34 | 35 | # Do constant folding. Some other nodes besides Expr have 36 | # as_const, but folding them causes errors later on. 37 | if isinstance(node, nodes.Expr): 38 | try: 39 | return nodes.Const.from_untrusted( 40 | node.as_const(args[0] if args else None), 41 | lineno=node.lineno, 42 | environment=self.environment, 43 | ) 44 | except nodes.Impossible: 45 | pass 46 | 47 | return node 48 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/h2/errors.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | h2/errors 4 | ~~~~~~~~~ 5 | 6 | Global error code registry containing the established HTTP/2 error codes. 7 | 8 | The current registry is available at: 9 | https://tools.ietf.org/html/rfc7540#section-11.4 10 | """ 11 | import enum 12 | 13 | 14 | class ErrorCodes(enum.IntEnum): 15 | """ 16 | All known HTTP/2 error codes. 17 | 18 | .. versionadded:: 2.5.0 19 | """ 20 | #: Graceful shutdown. 21 | NO_ERROR = 0x0 22 | 23 | #: Protocol error detected. 24 | PROTOCOL_ERROR = 0x1 25 | 26 | #: Implementation fault. 27 | INTERNAL_ERROR = 0x2 28 | 29 | #: Flow-control limits exceeded. 30 | FLOW_CONTROL_ERROR = 0x3 31 | 32 | #: Settings not acknowledged. 33 | SETTINGS_TIMEOUT = 0x4 34 | 35 | #: Frame received for closed stream. 36 | STREAM_CLOSED = 0x5 37 | 38 | #: Frame size incorrect. 39 | FRAME_SIZE_ERROR = 0x6 40 | 41 | #: Stream not processed. 42 | REFUSED_STREAM = 0x7 43 | 44 | #: Stream cancelled. 45 | CANCEL = 0x8 46 | 47 | #: Compression state not updated. 48 | COMPRESSION_ERROR = 0x9 49 | 50 | #: TCP connection error for CONNECT method. 51 | CONNECT_ERROR = 0xa 52 | 53 | #: Processing capacity exceeded. 54 | ENHANCE_YOUR_CALM = 0xb 55 | 56 | #: Negotiated TLS parameters not acceptable. 57 | INADEQUATE_SECURITY = 0xc 58 | 59 | #: Use HTTP/1.1 for the request. 60 | HTTP_1_1_REQUIRED = 0xd 61 | 62 | 63 | def _error_code_from_int(code): 64 | """ 65 | Given an integer error code, returns either one of :class:`ErrorCodes 66 | ` or, if not present in the known set of codes, 67 | returns the integer directly. 68 | """ 69 | try: 70 | return ErrorCodes(code) 71 | except ValueError: 72 | return code 73 | 74 | 75 | __all__ = ['ErrorCodes'] 76 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata/_meta.py: -------------------------------------------------------------------------------- 1 | from ._compat import Protocol 2 | from typing import Any, Dict, Iterator, List, Optional, TypeVar, Union, overload 3 | 4 | 5 | _T = TypeVar("_T") 6 | 7 | 8 | class PackageMetadata(Protocol): 9 | def __len__(self) -> int: 10 | ... # pragma: no cover 11 | 12 | def __contains__(self, item: str) -> bool: 13 | ... # pragma: no cover 14 | 15 | def __getitem__(self, key: str) -> str: 16 | ... # pragma: no cover 17 | 18 | def __iter__(self) -> Iterator[str]: 19 | ... # pragma: no cover 20 | 21 | @overload 22 | def get(self, name: str, failobj: None = None) -> Optional[str]: 23 | ... # pragma: no cover 24 | 25 | @overload 26 | def get(self, name: str, failobj: _T) -> Union[str, _T]: 27 | ... # pragma: no cover 28 | 29 | # overload per python/importlib_metadata#435 30 | @overload 31 | def get_all(self, name: str, failobj: None = None) -> Optional[List[Any]]: 32 | ... # pragma: no cover 33 | 34 | @overload 35 | def get_all(self, name: str, failobj: _T) -> Union[List[Any], _T]: 36 | """ 37 | Return all values associated with a possibly multi-valued key. 38 | """ 39 | 40 | @property 41 | def json(self) -> Dict[str, Union[str, List[str]]]: 42 | """ 43 | A JSON-compatible form of the metadata. 44 | """ 45 | 46 | 47 | class SimplePath(Protocol[_T]): 48 | """ 49 | A minimal subset of pathlib.Path required by PathDistribution. 50 | """ 51 | 52 | def joinpath(self, other: Union[str, _T]) -> _T: 53 | ... # pragma: no cover 54 | 55 | def __truediv__(self, other: Union[str, _T]) -> _T: 56 | ... # pragma: no cover 57 | 58 | @property 59 | def parent(self) -> _T: 60 | ... # pragma: no cover 61 | 62 | def read_text(self) -> str: 63 | ... # pragma: no cover 64 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hyperframe/exceptions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | hyperframe/exceptions 4 | ~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | Defines the exceptions that can be thrown by hyperframe. 7 | """ 8 | 9 | 10 | class HyperframeError(Exception): 11 | """ 12 | The base class for all exceptions for the hyperframe module. 13 | 14 | .. versionadded:: 6.0.0 15 | """ 16 | 17 | 18 | class UnknownFrameError(HyperframeError): 19 | """ 20 | A frame of unknown type was received. 21 | 22 | .. versionchanged:: 6.0.0 23 | Changed base class from `ValueError` to :class:`HyperframeError` 24 | """ 25 | def __init__(self, frame_type: int, length: int) -> None: 26 | #: The type byte of the unknown frame that was received. 27 | self.frame_type = frame_type 28 | 29 | #: The length of the data portion of the unknown frame. 30 | self.length = length 31 | 32 | def __str__(self) -> str: 33 | return ( 34 | "UnknownFrameError: Unknown frame type 0x%X received, " 35 | "length %d bytes" % (self.frame_type, self.length) 36 | ) 37 | 38 | 39 | class InvalidPaddingError(HyperframeError): 40 | """ 41 | A frame with invalid padding was received. 42 | 43 | .. versionchanged:: 6.0.0 44 | Changed base class from `ValueError` to :class:`HyperframeError` 45 | """ 46 | pass 47 | 48 | 49 | class InvalidFrameError(HyperframeError): 50 | """ 51 | Parsing a frame failed because the data was not laid out appropriately. 52 | 53 | .. versionadded:: 3.0.2 54 | 55 | .. versionchanged:: 6.0.0 56 | Changed base class from `ValueError` to :class:`HyperframeError` 57 | """ 58 | pass 59 | 60 | 61 | class InvalidDataError(HyperframeError): 62 | """ 63 | Content or data of a frame was is invalid or violates the specification. 64 | 65 | .. versionadded:: 6.0.0 66 | """ 67 | pass 68 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/hypercorn/trio/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import warnings 4 | from typing import Awaitable, Callable, Optional 5 | 6 | import trio 7 | 8 | from .run import worker_serve 9 | from ..config import Config 10 | from ..typing import Framework 11 | from ..utils import wrap_app 12 | 13 | try: 14 | from typing import Literal 15 | except ImportError: 16 | from typing_extensions import Literal # type: ignore 17 | 18 | 19 | async def serve( 20 | app: Framework, 21 | config: Config, 22 | *, 23 | shutdown_trigger: Optional[Callable[..., Awaitable[None]]] = None, 24 | task_status: trio._core._run._TaskStatus = trio.TASK_STATUS_IGNORED, 25 | mode: Optional[Literal["asgi", "wsgi"]] = None, 26 | ) -> None: 27 | """Serve an ASGI framework app given the config. 28 | 29 | This allows for a programmatic way to serve an ASGI framework, it 30 | can be used via, 31 | 32 | .. code-block:: python 33 | 34 | trio.run(serve, app, config) 35 | 36 | It is assumed that the event-loop is configured before calling 37 | this function, therefore configuration values that relate to loop 38 | setup or process setup are ignored. 39 | 40 | Arguments: 41 | app: The ASGI application to serve. 42 | config: A Hypercorn configuration object. 43 | shutdown_trigger: This should return to trigger a graceful 44 | shutdown. 45 | mode: Specify if the app is WSGI or ASGI. 46 | """ 47 | if config.debug: 48 | warnings.warn("The config `debug` has no affect when using serve", Warning) 49 | if config.workers != 1: 50 | warnings.warn("The config `workers` has no affect when using serve", Warning) 51 | 52 | await worker_serve( 53 | wrap_app(app, config.wsgi_max_body_size, mode), 54 | config, 55 | shutdown_trigger=shutdown_trigger, 56 | task_status=task_status, 57 | ) 58 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_internal/commands/hash.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | import hashlib 4 | import logging 5 | import sys 6 | 7 | from pip._internal.cli.base_command import Command 8 | from pip._internal.cli.status_codes import ERROR 9 | from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES 10 | from pip._internal.utils.misc import read_chunks 11 | 12 | logger = logging.getLogger(__name__) 13 | 14 | 15 | class HashCommand(Command): 16 | """ 17 | Compute a hash of a local package archive. 18 | 19 | These can be used with --hash in a requirements file to do repeatable 20 | installs. 21 | 22 | """ 23 | name = 'hash' 24 | usage = '%prog [options] ...' 25 | summary = 'Compute hashes of package archives.' 26 | ignore_require_venv = True 27 | 28 | def __init__(self, *args, **kw): 29 | super(HashCommand, self).__init__(*args, **kw) 30 | self.cmd_opts.add_option( 31 | '-a', '--algorithm', 32 | dest='algorithm', 33 | choices=STRONG_HASHES, 34 | action='store', 35 | default=FAVORITE_HASH, 36 | help='The hash algorithm to use: one of %s' % 37 | ', '.join(STRONG_HASHES)) 38 | self.parser.insert_option_group(0, self.cmd_opts) 39 | 40 | def run(self, options, args): 41 | if not args: 42 | self.parser.print_usage(sys.stderr) 43 | return ERROR 44 | 45 | algorithm = options.algorithm 46 | for path in args: 47 | logger.info('%s:\n--hash=%s:%s', 48 | path, algorithm, _hash_of_file(path, algorithm)) 49 | 50 | 51 | def _hash_of_file(path, algorithm): 52 | """Return the hash digest of a file.""" 53 | with open(path, 'rb') as archive: 54 | hash = hashlib.new(algorithm) 55 | for chunk in read_chunks(archive): 56 | hash.update(chunk) 57 | return hash.hexdigest() 58 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/aiofiles-23.2.1.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | aiofiles-23.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | aiofiles-23.2.1.dist-info/METADATA,sha256=cot28p_PNjdl_MK--l9Qu2e6QOv9OxdHrKbjLmYf9Uw,9673 3 | aiofiles-23.2.1.dist-info/RECORD,, 4 | aiofiles-23.2.1.dist-info/WHEEL,sha256=KGYbc1zXlYddvwxnNty23BeaKzh7YuoSIvIMO4jEhvw,87 5 | aiofiles-23.2.1.dist-info/licenses/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 6 | aiofiles-23.2.1.dist-info/licenses/NOTICE,sha256=EExY0dRQvWR0wJ2LZLwBgnM6YKw9jCU-M0zegpRSD_E,55 7 | aiofiles/__init__.py,sha256=1iAMJQyJtX3LGIS0AoFTJeO1aJ_RK2jpBSBhg0VoIrE,344 8 | aiofiles/__pycache__/__init__.cpython-37.pyc,, 9 | aiofiles/__pycache__/base.cpython-37.pyc,, 10 | aiofiles/__pycache__/os.cpython-37.pyc,, 11 | aiofiles/__pycache__/ospath.cpython-37.pyc,, 12 | aiofiles/base.py,sha256=rZwA151Ji8XlBkzvDmcF1CgDTY2iKNuJMfvNlM0s0E0,2684 13 | aiofiles/os.py,sha256=zuFGaIyGCGUuFb7trFFEm6SLdCRqTFsSV0mY6SO8z3M,970 14 | aiofiles/ospath.py,sha256=zqG2VFzRb6yYiIOWipqsdgvZmoMTFvZmBdkxkAl1FT4,764 15 | aiofiles/tempfile/__init__.py,sha256=hFSNTOjOUv371Ozdfy6FIxeln46Nm3xOVh4ZR3Q94V0,10244 16 | aiofiles/tempfile/__pycache__/__init__.cpython-37.pyc,, 17 | aiofiles/tempfile/__pycache__/temptypes.cpython-37.pyc,, 18 | aiofiles/tempfile/temptypes.py,sha256=ddEvNjMLVlr7WUILCe6ypTqw77yREeIonTk16Uw_NVs,2093 19 | aiofiles/threadpool/__init__.py,sha256=c_aexl1t193iKdPZaolPEEbHDrQ0RrsH_HTAToMPQBo,3171 20 | aiofiles/threadpool/__pycache__/__init__.cpython-37.pyc,, 21 | aiofiles/threadpool/__pycache__/binary.cpython-37.pyc,, 22 | aiofiles/threadpool/__pycache__/text.cpython-37.pyc,, 23 | aiofiles/threadpool/__pycache__/utils.cpython-37.pyc,, 24 | aiofiles/threadpool/binary.py,sha256=hp-km9VCRu0MLz_wAEUfbCz7OL7xtn9iGAawabpnp5U,2315 25 | aiofiles/threadpool/text.py,sha256=fNmpw2PEkj0BZSldipJXAgZqVGLxALcfOMiuDQ54Eas,1223 26 | aiofiles/threadpool/utils.py,sha256=B59dSZwO_WZs2dFFycKeA91iD2Xq2nNw1EFF8YMBI5k,1868 27 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/euctwprober.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # The Original Code is mozilla.org code. 3 | # 4 | # The Initial Developer of the Original Code is 5 | # Netscape Communications Corporation. 6 | # Portions created by the Initial Developer are Copyright (C) 1998 7 | # the Initial Developer. All Rights Reserved. 8 | # 9 | # Contributor(s): 10 | # Mark Pilgrim - port to Python 11 | # 12 | # This library is free software; you can redistribute it and/or 13 | # modify it under the terms of the GNU Lesser General Public 14 | # License as published by the Free Software Foundation; either 15 | # version 2.1 of the License, or (at your option) any later version. 16 | # 17 | # This library is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 | # Lesser General Public License for more details. 21 | # 22 | # You should have received a copy of the GNU Lesser General Public 23 | # License along with this library; if not, write to the Free Software 24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 25 | # 02110-1301 USA 26 | ######################### END LICENSE BLOCK ######################### 27 | 28 | from .mbcharsetprober import MultiByteCharSetProber 29 | from .codingstatemachine import CodingStateMachine 30 | from .chardistribution import EUCTWDistributionAnalysis 31 | from .mbcssm import EUCTW_SM_MODEL 32 | 33 | class EUCTWProber(MultiByteCharSetProber): 34 | def __init__(self): 35 | super(EUCTWProber, self).__init__() 36 | self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL) 37 | self.distribution_analyzer = EUCTWDistributionAnalysis() 38 | self.reset() 39 | 40 | @property 41 | def charset_name(self): 42 | return "EUC-TW" 43 | 44 | @property 45 | def language(self): 46 | return "Taiwan" 47 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/euckrprober.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # The Original Code is mozilla.org code. 3 | # 4 | # The Initial Developer of the Original Code is 5 | # Netscape Communications Corporation. 6 | # Portions created by the Initial Developer are Copyright (C) 1998 7 | # the Initial Developer. All Rights Reserved. 8 | # 9 | # Contributor(s): 10 | # Mark Pilgrim - port to Python 11 | # 12 | # This library is free software; you can redistribute it and/or 13 | # modify it under the terms of the GNU Lesser General Public 14 | # License as published by the Free Software Foundation; either 15 | # version 2.1 of the License, or (at your option) any later version. 16 | # 17 | # This library is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 | # Lesser General Public License for more details. 21 | # 22 | # You should have received a copy of the GNU Lesser General Public 23 | # License along with this library; if not, write to the Free Software 24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 25 | # 02110-1301 USA 26 | ######################### END LICENSE BLOCK ######################### 27 | 28 | from .mbcharsetprober import MultiByteCharSetProber 29 | from .codingstatemachine import CodingStateMachine 30 | from .chardistribution import EUCKRDistributionAnalysis 31 | from .mbcssm import EUCKR_SM_MODEL 32 | 33 | 34 | class EUCKRProber(MultiByteCharSetProber): 35 | def __init__(self): 36 | super(EUCKRProber, self).__init__() 37 | self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL) 38 | self.distribution_analyzer = EUCKRDistributionAnalysis() 39 | self.reset() 40 | 41 | @property 42 | def charset_name(self): 43 | return "EUC-KR" 44 | 45 | @property 46 | def language(self): 47 | return "Korean" 48 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # The Original Code is mozilla.org code. 3 | # 4 | # The Initial Developer of the Original Code is 5 | # Netscape Communications Corporation. 6 | # Portions created by the Initial Developer are Copyright (C) 1998 7 | # the Initial Developer. All Rights Reserved. 8 | # 9 | # Contributor(s): 10 | # Mark Pilgrim - port to Python 11 | # 12 | # This library is free software; you can redistribute it and/or 13 | # modify it under the terms of the GNU Lesser General Public 14 | # License as published by the Free Software Foundation; either 15 | # version 2.1 of the License, or (at your option) any later version. 16 | # 17 | # This library is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 | # Lesser General Public License for more details. 21 | # 22 | # You should have received a copy of the GNU Lesser General Public 23 | # License along with this library; if not, write to the Free Software 24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 25 | # 02110-1301 USA 26 | ######################### END LICENSE BLOCK ######################### 27 | 28 | from .mbcharsetprober import MultiByteCharSetProber 29 | from .codingstatemachine import CodingStateMachine 30 | from .chardistribution import GB2312DistributionAnalysis 31 | from .mbcssm import GB2312_SM_MODEL 32 | 33 | class GB2312Prober(MultiByteCharSetProber): 34 | def __init__(self): 35 | super(GB2312Prober, self).__init__() 36 | self.coding_sm = CodingStateMachine(GB2312_SM_MODEL) 37 | self.distribution_analyzer = GB2312DistributionAnalysis() 38 | self.reset() 39 | 40 | @property 41 | def charset_name(self): 42 | return "GB2312" 43 | 44 | @property 45 | def language(self): 46 | return "Chinese" 47 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/big5prober.py: -------------------------------------------------------------------------------- 1 | ######################## BEGIN LICENSE BLOCK ######################## 2 | # The Original Code is Mozilla Communicator client code. 3 | # 4 | # The Initial Developer of the Original Code is 5 | # Netscape Communications Corporation. 6 | # Portions created by the Initial Developer are Copyright (C) 1998 7 | # the Initial Developer. All Rights Reserved. 8 | # 9 | # Contributor(s): 10 | # Mark Pilgrim - port to Python 11 | # 12 | # This library is free software; you can redistribute it and/or 13 | # modify it under the terms of the GNU Lesser General Public 14 | # License as published by the Free Software Foundation; either 15 | # version 2.1 of the License, or (at your option) any later version. 16 | # 17 | # This library is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 | # Lesser General Public License for more details. 21 | # 22 | # You should have received a copy of the GNU Lesser General Public 23 | # License along with this library; if not, write to the Free Software 24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 25 | # 02110-1301 USA 26 | ######################### END LICENSE BLOCK ######################### 27 | 28 | from .mbcharsetprober import MultiByteCharSetProber 29 | from .codingstatemachine import CodingStateMachine 30 | from .chardistribution import Big5DistributionAnalysis 31 | from .mbcssm import BIG5_SM_MODEL 32 | 33 | 34 | class Big5Prober(MultiByteCharSetProber): 35 | def __init__(self): 36 | super(Big5Prober, self).__init__() 37 | self.coding_sm = CodingStateMachine(BIG5_SM_MODEL) 38 | self.distribution_analyzer = Big5DistributionAnalysis() 39 | self.reset() 40 | 41 | @property 42 | def charset_name(self): 43 | return "Big5" 44 | 45 | @property 46 | def language(self): 47 | return "Chinese" 48 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from genshi.core import QName, Attrs 4 | from genshi.core import START, END, TEXT, COMMENT, DOCTYPE 5 | 6 | 7 | def to_genshi(walker): 8 | """Convert a tree to a genshi tree 9 | 10 | :arg walker: the treewalker to use to walk the tree to convert it 11 | 12 | :returns: generator of genshi nodes 13 | 14 | """ 15 | text = [] 16 | for token in walker: 17 | type = token["type"] 18 | if type in ("Characters", "SpaceCharacters"): 19 | text.append(token["data"]) 20 | elif text: 21 | yield TEXT, "".join(text), (None, -1, -1) 22 | text = [] 23 | 24 | if type in ("StartTag", "EmptyTag"): 25 | if token["namespace"]: 26 | name = "{%s}%s" % (token["namespace"], token["name"]) 27 | else: 28 | name = token["name"] 29 | attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value) 30 | for attr, value in token["data"].items()]) 31 | yield (START, (QName(name), attrs), (None, -1, -1)) 32 | if type == "EmptyTag": 33 | type = "EndTag" 34 | 35 | if type == "EndTag": 36 | if token["namespace"]: 37 | name = "{%s}%s" % (token["namespace"], token["name"]) 38 | else: 39 | name = token["name"] 40 | 41 | yield END, QName(name), (None, -1, -1) 42 | 43 | elif type == "Comment": 44 | yield COMMENT, token["data"], (None, -1, -1) 45 | 46 | elif type == "Doctype": 47 | yield DOCTYPE, (token["name"], token["publicId"], 48 | token["systemId"]), (None, -1, -1) 49 | 50 | else: 51 | pass # FIXME: What to do? 52 | 53 | if text: 54 | yield TEXT, "".join(text), (None, -1, -1) 55 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/pytoml/utils.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import re 3 | 4 | rfc3339_re = re.compile(r'(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(?:Z|([+-]\d{2}):(\d{2}))') 5 | 6 | def parse_rfc3339(v): 7 | m = rfc3339_re.match(v) 8 | if not m or m.group(0) != v: 9 | return None 10 | return parse_rfc3339_re(m) 11 | 12 | def parse_rfc3339_re(m): 13 | r = map(int, m.groups()[:6]) 14 | if m.group(7): 15 | micro = float(m.group(7)) 16 | else: 17 | micro = 0 18 | 19 | if m.group(8): 20 | g = int(m.group(8), 10) * 60 + int(m.group(9), 10) 21 | tz = _TimeZone(datetime.timedelta(0, g * 60)) 22 | else: 23 | tz = _TimeZone(datetime.timedelta(0, 0)) 24 | 25 | y, m, d, H, M, S = r 26 | return datetime.datetime(y, m, d, H, M, S, int(micro * 1000000), tz) 27 | 28 | 29 | def format_rfc3339(v): 30 | offs = v.utcoffset() 31 | offs = int(offs.total_seconds()) // 60 if offs is not None else 0 32 | 33 | if offs == 0: 34 | suffix = 'Z' 35 | else: 36 | if offs > 0: 37 | suffix = '+' 38 | else: 39 | suffix = '-' 40 | offs = -offs 41 | suffix = '{0}{1:02}:{2:02}'.format(suffix, offs // 60, offs % 60) 42 | 43 | if v.microsecond: 44 | return v.strftime('%Y-%m-%dT%H:%M:%S.%f') + suffix 45 | else: 46 | return v.strftime('%Y-%m-%dT%H:%M:%S') + suffix 47 | 48 | class _TimeZone(datetime.tzinfo): 49 | def __init__(self, offset): 50 | self._offset = offset 51 | 52 | def utcoffset(self, dt): 53 | return self._offset 54 | 55 | def dst(self, dt): 56 | return None 57 | 58 | def tzname(self, dt): 59 | m = self._offset.total_seconds() // 60 60 | if m < 0: 61 | res = '-' 62 | m = -m 63 | else: 64 | res = '+' 65 | h = m // 60 66 | m = m - h * 60 67 | return '{}{:.02}{:.02}'.format(res, h, m) 68 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/msgpack/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | from pip._vendor.msgpack._version import version 3 | from pip._vendor.msgpack.exceptions import * 4 | 5 | from collections import namedtuple 6 | 7 | 8 | class ExtType(namedtuple('ExtType', 'code data')): 9 | """ExtType represents ext type in msgpack.""" 10 | def __new__(cls, code, data): 11 | if not isinstance(code, int): 12 | raise TypeError("code must be int") 13 | if not isinstance(data, bytes): 14 | raise TypeError("data must be bytes") 15 | if not 0 <= code <= 127: 16 | raise ValueError("code must be 0~127") 17 | return super(ExtType, cls).__new__(cls, code, data) 18 | 19 | 20 | import os 21 | if os.environ.get('MSGPACK_PUREPYTHON'): 22 | from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker 23 | else: 24 | try: 25 | from pip._vendor.msgpack._packer import Packer 26 | from pip._vendor.msgpack._unpacker import unpackb, Unpacker 27 | except ImportError: 28 | from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker 29 | 30 | 31 | def pack(o, stream, **kwargs): 32 | """ 33 | Pack object `o` and write it to `stream` 34 | 35 | See :class:`Packer` for options. 36 | """ 37 | packer = Packer(**kwargs) 38 | stream.write(packer.pack(o)) 39 | 40 | 41 | def packb(o, **kwargs): 42 | """ 43 | Pack object `o` and return packed bytes 44 | 45 | See :class:`Packer` for options. 46 | """ 47 | return Packer(**kwargs).pack(o) 48 | 49 | 50 | def unpack(stream, **kwargs): 51 | """ 52 | Unpack an object from `stream`. 53 | 54 | Raises `ExtraData` when `stream` contains extra bytes. 55 | See :class:`Unpacker` for options. 56 | """ 57 | data = stream.read() 58 | return unpackb(data, **kwargs) 59 | 60 | 61 | # alias for compatibility to simplejson/marshal/pickle. 62 | load = unpack 63 | loads = unpackb 64 | 65 | dump = pack 66 | dumps = packb 67 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/idna/intranges.py: -------------------------------------------------------------------------------- 1 | """ 2 | Given a list of integers, made up of (hopefully) a small number of long runs 3 | of consecutive integers, compute a representation of the form 4 | ((start1, end1), (start2, end2) ...). Then answer the question "was x present 5 | in the original list?" in time O(log(# runs)). 6 | """ 7 | 8 | import bisect 9 | 10 | def intranges_from_list(list_): 11 | """Represent a list of integers as a sequence of ranges: 12 | ((start_0, end_0), (start_1, end_1), ...), such that the original 13 | integers are exactly those x such that start_i <= x < end_i for some i. 14 | 15 | Ranges are encoded as single integers (start << 32 | end), not as tuples. 16 | """ 17 | 18 | sorted_list = sorted(list_) 19 | ranges = [] 20 | last_write = -1 21 | for i in range(len(sorted_list)): 22 | if i+1 < len(sorted_list): 23 | if sorted_list[i] == sorted_list[i+1]-1: 24 | continue 25 | current_range = sorted_list[last_write+1:i+1] 26 | ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) 27 | last_write = i 28 | 29 | return tuple(ranges) 30 | 31 | def _encode_range(start, end): 32 | return (start << 32) | end 33 | 34 | def _decode_range(r): 35 | return (r >> 32), (r & ((1 << 32) - 1)) 36 | 37 | 38 | def intranges_contain(int_, ranges): 39 | """Determine if `int_` falls into one of the ranges in `ranges`.""" 40 | tuple_ = _encode_range(int_, 0) 41 | pos = bisect.bisect_left(ranges, tuple_) 42 | # we could be immediately ahead of a tuple (start, end) 43 | # with start < int_ <= end 44 | if pos > 0: 45 | left, right = _decode_range(ranges[pos-1]) 46 | if left <= int_ < right: 47 | return True 48 | # or we could be immediately behind a tuple (int_, end) 49 | if pos < len(ranges): 50 | left, _ = _decode_range(ranges[pos]) 51 | if left == int_: 52 | return True 53 | return False 54 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/sax.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from xml.sax.xmlreader import AttributesNSImpl 4 | 5 | from ..constants import adjustForeignAttributes, unadjustForeignAttributes 6 | 7 | prefix_mapping = {} 8 | for prefix, localName, namespace in adjustForeignAttributes.values(): 9 | if prefix is not None: 10 | prefix_mapping[prefix] = namespace 11 | 12 | 13 | def to_sax(walker, handler): 14 | """Call SAX-like content handler based on treewalker walker 15 | 16 | :arg walker: the treewalker to use to walk the tree to convert it 17 | 18 | :arg handler: SAX handler to use 19 | 20 | """ 21 | handler.startDocument() 22 | for prefix, namespace in prefix_mapping.items(): 23 | handler.startPrefixMapping(prefix, namespace) 24 | 25 | for token in walker: 26 | type = token["type"] 27 | if type == "Doctype": 28 | continue 29 | elif type in ("StartTag", "EmptyTag"): 30 | attrs = AttributesNSImpl(token["data"], 31 | unadjustForeignAttributes) 32 | handler.startElementNS((token["namespace"], token["name"]), 33 | token["name"], 34 | attrs) 35 | if type == "EmptyTag": 36 | handler.endElementNS((token["namespace"], token["name"]), 37 | token["name"]) 38 | elif type == "EndTag": 39 | handler.endElementNS((token["namespace"], token["name"]), 40 | token["name"]) 41 | elif type in ("Characters", "SpaceCharacters"): 42 | handler.characters(token["data"]) 43 | elif type == "Comment": 44 | pass 45 | else: 46 | assert False, "Unknown token type" 47 | 48 | for prefix, namespace in prefix_mapping.items(): 49 | handler.endPrefixMapping(prefix) 50 | handler.endDocument() 51 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/pip/_vendor/chardet/enums.py: -------------------------------------------------------------------------------- 1 | """ 2 | All of the Enums that are used throughout the chardet package. 3 | 4 | :author: Dan Blanchard (dan.blanchard@gmail.com) 5 | """ 6 | 7 | 8 | class InputState(object): 9 | """ 10 | This enum represents the different states a universal detector can be in. 11 | """ 12 | PURE_ASCII = 0 13 | ESC_ASCII = 1 14 | HIGH_BYTE = 2 15 | 16 | 17 | class LanguageFilter(object): 18 | """ 19 | This enum represents the different language filters we can apply to a 20 | ``UniversalDetector``. 21 | """ 22 | CHINESE_SIMPLIFIED = 0x01 23 | CHINESE_TRADITIONAL = 0x02 24 | JAPANESE = 0x04 25 | KOREAN = 0x08 26 | NON_CJK = 0x10 27 | ALL = 0x1F 28 | CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL 29 | CJK = CHINESE | JAPANESE | KOREAN 30 | 31 | 32 | class ProbingState(object): 33 | """ 34 | This enum represents the different states a prober can be in. 35 | """ 36 | DETECTING = 0 37 | FOUND_IT = 1 38 | NOT_ME = 2 39 | 40 | 41 | class MachineState(object): 42 | """ 43 | This enum represents the different states a state machine can be in. 44 | """ 45 | START = 0 46 | ERROR = 1 47 | ITS_ME = 2 48 | 49 | 50 | class SequenceLikelihood(object): 51 | """ 52 | This enum represents the likelihood of a character following the previous one. 53 | """ 54 | NEGATIVE = 0 55 | UNLIKELY = 1 56 | LIKELY = 2 57 | POSITIVE = 3 58 | 59 | @classmethod 60 | def get_num_categories(cls): 61 | """:returns: The number of likelihood categories in the enum.""" 62 | return 4 63 | 64 | 65 | class CharacterCategory(object): 66 | """ 67 | This enum represents the different categories language models for 68 | ``SingleByteCharsetProber`` put characters into. 69 | 70 | Anything less than CONTROL is considered a letter. 71 | """ 72 | UNDEFINED = 255 73 | LINE_BREAK = 254 74 | SYMBOL = 253 75 | DIGIT = 252 76 | CONTROL = 251 77 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/markupsafe/_native.py: -------------------------------------------------------------------------------- 1 | import typing as t 2 | 3 | from . import Markup 4 | 5 | 6 | def escape(s: t.Any) -> Markup: 7 | """Replace the characters ``&``, ``<``, ``>``, ``'``, and ``"`` in 8 | the string with HTML-safe sequences. Use this if you need to display 9 | text that might contain such characters in HTML. 10 | 11 | If the object has an ``__html__`` method, it is called and the 12 | return value is assumed to already be safe for HTML. 13 | 14 | :param s: An object to be converted to a string and escaped. 15 | :return: A :class:`Markup` string with the escaped text. 16 | """ 17 | if hasattr(s, "__html__"): 18 | return Markup(s.__html__()) 19 | 20 | return Markup( 21 | str(s) 22 | .replace("&", "&") 23 | .replace(">", ">") 24 | .replace("<", "<") 25 | .replace("'", "'") 26 | .replace('"', """) 27 | ) 28 | 29 | 30 | def escape_silent(s: t.Optional[t.Any]) -> Markup: 31 | """Like :func:`escape` but treats ``None`` as the empty string. 32 | Useful with optional values, as otherwise you get the string 33 | ``'None'`` when the value is ``None``. 34 | 35 | >>> escape(None) 36 | Markup('None') 37 | >>> escape_silent(None) 38 | Markup('') 39 | """ 40 | if s is None: 41 | return Markup() 42 | 43 | return escape(s) 44 | 45 | 46 | def soft_str(s: t.Any) -> str: 47 | """Convert an object to a string if it isn't already. This preserves 48 | a :class:`Markup` string rather than converting it back to a basic 49 | string, so it will still be marked as safe and won't be escaped 50 | again. 51 | 52 | >>> value = escape("") 53 | >>> value 54 | Markup('<User 1>') 55 | >>> escape(str(value)) 56 | Markup('&lt;User 1&gt;') 57 | >>> escape(soft_str(value)) 58 | Markup('<User 1>') 59 | """ 60 | if not isinstance(s, str): 61 | return str(s) 62 | 63 | return s 64 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/importlib_metadata-6.7.0.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | importlib_metadata-6.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | importlib_metadata-6.7.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 3 | importlib_metadata-6.7.0.dist-info/METADATA,sha256=JDrzuuLRE3CxIRXLeXdZGGFDrVlEXUvt-chm0-s-TtI,4878 4 | importlib_metadata-6.7.0.dist-info/RECORD,, 5 | importlib_metadata-6.7.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92 6 | importlib_metadata-6.7.0.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 7 | importlib_metadata/__init__.py,sha256=MQx_tU_lZg-7U91wdrlrsDt0MGPXkpraLevB8LO1NNc,30724 8 | importlib_metadata/__pycache__/__init__.cpython-37.pyc,, 9 | importlib_metadata/__pycache__/_adapters.cpython-37.pyc,, 10 | importlib_metadata/__pycache__/_collections.cpython-37.pyc,, 11 | importlib_metadata/__pycache__/_compat.cpython-37.pyc,, 12 | importlib_metadata/__pycache__/_functools.cpython-37.pyc,, 13 | importlib_metadata/__pycache__/_itertools.cpython-37.pyc,, 14 | importlib_metadata/__pycache__/_meta.cpython-37.pyc,, 15 | importlib_metadata/__pycache__/_py39compat.cpython-37.pyc,, 16 | importlib_metadata/__pycache__/_text.cpython-37.pyc,, 17 | importlib_metadata/_adapters.py,sha256=i8S6Ib1OQjcILA-l4gkzktMZe18TaeUNI49PLRp6OBU,2454 18 | importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743 19 | importlib_metadata/_compat.py,sha256=xaiD8pwYYPCWkVgR30411iT4OmLbSbSAigzhp0nTROw,1735 20 | importlib_metadata/_functools.py,sha256=PsY2-4rrKX4RVeRC1oGp1lB1pmC9eKN88_f-bD9uOoA,2895 21 | importlib_metadata/_itertools.py,sha256=cvr_2v8BRbxcIl5x5ldfqdHjhI8Yi8s8yk50G_nm6jQ,2068 22 | importlib_metadata/_meta.py,sha256=I2AuaUMr5a6cTdZleV9WpyqUCSooqqV-zSzr1qn7FMw,1615 23 | importlib_metadata/_py39compat.py,sha256=2Tk5twb_VgLCY-1NEAQjdZp_S9OFMC-pUzP2isuaPsQ,1098 24 | importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 25 | importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 26 | -------------------------------------------------------------------------------- /myenv/Lib/site-packages/jinja2/__init__.py: -------------------------------------------------------------------------------- 1 | """Jinja is a template engine written in pure Python. It provides a 2 | non-XML syntax that supports inline expressions and an optional 3 | sandboxed environment. 4 | """ 5 | from .bccache import BytecodeCache as BytecodeCache 6 | from .bccache import FileSystemBytecodeCache as FileSystemBytecodeCache 7 | from .bccache import MemcachedBytecodeCache as MemcachedBytecodeCache 8 | from .environment import Environment as Environment 9 | from .environment import Template as Template 10 | from .exceptions import TemplateAssertionError as TemplateAssertionError 11 | from .exceptions import TemplateError as TemplateError 12 | from .exceptions import TemplateNotFound as TemplateNotFound 13 | from .exceptions import TemplateRuntimeError as TemplateRuntimeError 14 | from .exceptions import TemplatesNotFound as TemplatesNotFound 15 | from .exceptions import TemplateSyntaxError as TemplateSyntaxError 16 | from .exceptions import UndefinedError as UndefinedError 17 | from .loaders import BaseLoader as BaseLoader 18 | from .loaders import ChoiceLoader as ChoiceLoader 19 | from .loaders import DictLoader as DictLoader 20 | from .loaders import FileSystemLoader as FileSystemLoader 21 | from .loaders import FunctionLoader as FunctionLoader 22 | from .loaders import ModuleLoader as ModuleLoader 23 | from .loaders import PackageLoader as PackageLoader 24 | from .loaders import PrefixLoader as PrefixLoader 25 | from .runtime import ChainableUndefined as ChainableUndefined 26 | from .runtime import DebugUndefined as DebugUndefined 27 | from .runtime import make_logging_undefined as make_logging_undefined 28 | from .runtime import StrictUndefined as StrictUndefined 29 | from .runtime import Undefined as Undefined 30 | from .utils import clear_caches as clear_caches 31 | from .utils import is_undefined as is_undefined 32 | from .utils import pass_context as pass_context 33 | from .utils import pass_environment as pass_environment 34 | from .utils import pass_eval_context as pass_eval_context 35 | from .utils import select_autoescape as select_autoescape 36 | 37 | __version__ = "3.1.2" 38 | --------------------------------------------------------------------------------