├── 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('<User 1>')
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 |
--------------------------------------------------------------------------------