From 9158e507ce687fbea9257bc8bcc2aec2742f881f Mon Sep 17 00:00:00 2001 From: ford-at-aws Date: Thu, 18 May 2023 11:30:44 -0600 Subject: [PATCH] # This is a combination of 13 commits. # This is the 1st commit message: s3 README updated # This is the commit message #2: new readmes # This is the commit message #3: fixes # This is the commit message #4: Apply suggestions from code review Co-authored-by: Liz Kellebrew-Davies <35241259+lkdavies@users.noreply.github.com> # This is the commit message #5: Apply suggestions from code review Co-authored-by: Liz Kellebrew-Davies <35241259+lkdavies@users.noreply.github.com> # This is the commit message #6: Apply suggestions from code review Co-authored-by: Liz Kellebrew-Davies <35241259+lkdavies@users.noreply.github.com> # This is the commit message #7: Apply suggestions from code review Co-authored-by: Liz Kellebrew-Davies <35241259+lkdavies@users.noreply.github.com> # This is the commit message #8: updates # This is the commit message #9: moving tags # This is the commit message #10: adding tag back # This is the commit message #11: running new version of tool # This is the commit message #12: get out of here" " # This is the commit message #13: fixing broken links --- .gitignore | 1 + .venv/bin/Activate.ps1 | 247 - .venv/bin/activate | 69 - .venv/bin/activate.csh | 26 - .venv/bin/activate.fish | 69 - .venv/bin/pip | 8 - .venv/bin/pip3 | 8 - .venv/bin/pip3.11 | 8 - .venv/bin/python | 1 - .venv/bin/python3 | 1 - .venv/bin/python3.11 | 1 - .../Jinja2-3.1.2.dist-info/INSTALLER | 1 - .../Jinja2-3.1.2.dist-info/LICENSE.rst | 28 - .../Jinja2-3.1.2.dist-info/METADATA | 113 - .../Jinja2-3.1.2.dist-info/RECORD | 59 - .../Jinja2-3.1.2.dist-info/REQUESTED | 0 .../Jinja2-3.1.2.dist-info/WHEEL | 5 - .../Jinja2-3.1.2.dist-info/entry_points.txt | 2 - .../Jinja2-3.1.2.dist-info/top_level.txt | 1 - .../MarkupSafe-2.1.2.dist-info/INSTALLER | 1 - .../MarkupSafe-2.1.2.dist-info/LICENSE.rst | 28 - .../MarkupSafe-2.1.2.dist-info/METADATA | 98 - .../MarkupSafe-2.1.2.dist-info/RECORD | 14 - .../MarkupSafe-2.1.2.dist-info/WHEEL | 5 - .../MarkupSafe-2.1.2.dist-info/top_level.txt | 1 - .../PyYAML-6.0.dist-info/INSTALLER | 1 - .../PyYAML-6.0.dist-info/LICENSE | 20 - .../PyYAML-6.0.dist-info/METADATA | 46 - .../site-packages/PyYAML-6.0.dist-info/RECORD | 44 - .../PyYAML-6.0.dist-info/REQUESTED | 0 .../site-packages/PyYAML-6.0.dist-info/WHEEL | 5 - .../PyYAML-6.0.dist-info/top_level.txt | 2 - .../site-packages/_distutils_hack/__init__.py | 222 - .../__pycache__/__init__.cpython-311.pyc | Bin 11190 -> 0 bytes .../__pycache__/override.cpython-311.pyc | Bin 347 -> 0 bytes .../site-packages/_distutils_hack/override.py | 1 - .../site-packages/_yaml/__init__.py | 33 - .../__pycache__/__init__.cpython-311.pyc | Bin 964 -> 0 bytes .../site-packages/distutils-precedence.pth | 1 - .../site-packages/jinja2/__init__.py | 37 - .../__pycache__/__init__.cpython-311.pyc | Bin 2149 -> 0 bytes .../__pycache__/_identifier.cpython-311.pyc | Bin 2165 -> 0 bytes .../__pycache__/async_utils.cpython-311.pyc | Bin 4666 -> 0 bytes .../__pycache__/bccache.cpython-311.pyc | Bin 20947 -> 0 bytes .../__pycache__/compiler.cpython-311.pyc | Bin 110508 -> 0 bytes .../__pycache__/constants.cpython-311.pyc | Bin 1584 -> 0 bytes .../jinja2/__pycache__/debug.cpython-311.pyc | Bin 6744 -> 0 bytes .../__pycache__/defaults.cpython-311.pyc | Bin 1750 -> 0 bytes .../__pycache__/environment.cpython-311.pyc | Bin 80566 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 8635 -> 0 bytes .../jinja2/__pycache__/ext.cpython-311.pyc | Bin 43214 -> 0 bytes .../__pycache__/filters.cpython-311.pyc | Bin 75912 -> 0 bytes .../__pycache__/idtracking.cpython-311.pyc | Bin 19570 -> 0 bytes .../jinja2/__pycache__/lexer.cpython-311.pyc | Bin 35645 -> 0 bytes .../__pycache__/loaders.cpython-311.pyc | Bin 33103 -> 0 bytes .../jinja2/__pycache__/meta.cpython-311.pyc | Bin 5729 -> 0 bytes .../__pycache__/nativetypes.cpython-311.pyc | Bin 7991 -> 0 bytes .../jinja2/__pycache__/nodes.cpython-311.pyc | Bin 64510 -> 0 bytes .../__pycache__/optimizer.cpython-311.pyc | Bin 2880 -> 0 bytes .../jinja2/__pycache__/parser.cpython-311.pyc | Bin 59324 -> 0 bytes .../__pycache__/runtime.cpython-311.pyc | Bin 50676 -> 0 bytes .../__pycache__/sandbox.cpython-311.pyc | Bin 18848 -> 0 bytes .../jinja2/__pycache__/tests.cpython-311.pyc | Bin 9271 -> 0 bytes .../jinja2/__pycache__/utils.cpython-311.pyc | Bin 37086 -> 0 bytes .../__pycache__/visitor.cpython-311.pyc | Bin 5740 -> 0 bytes .../site-packages/jinja2/_identifier.py | 6 - .../site-packages/jinja2/async_utils.py | 84 - .../site-packages/jinja2/bccache.py | 406 - .../site-packages/jinja2/compiler.py | 1957 ---- .../site-packages/jinja2/constants.py | 20 - .../python3.11/site-packages/jinja2/debug.py | 191 - .../site-packages/jinja2/defaults.py | 48 - .../site-packages/jinja2/environment.py | 1667 ---- .../site-packages/jinja2/exceptions.py | 166 - .../python3.11/site-packages/jinja2/ext.py | 859 -- .../site-packages/jinja2/filters.py | 1840 ---- .../site-packages/jinja2/idtracking.py | 318 - .../python3.11/site-packages/jinja2/lexer.py | 866 -- .../site-packages/jinja2/loaders.py | 661 -- .../python3.11/site-packages/jinja2/meta.py | 111 - .../site-packages/jinja2/nativetypes.py | 130 - .../python3.11/site-packages/jinja2/nodes.py | 1204 --- .../site-packages/jinja2/optimizer.py | 47 - .../python3.11/site-packages/jinja2/parser.py | 1032 -- .../python3.11/site-packages/jinja2/py.typed | 0 .../site-packages/jinja2/runtime.py | 1053 -- .../site-packages/jinja2/sandbox.py | 428 - .../python3.11/site-packages/jinja2/tests.py | 255 - .../python3.11/site-packages/jinja2/utils.py | 755 -- .../site-packages/jinja2/visitor.py | 92 - .../site-packages/markupsafe/__init__.py | 295 - .../__pycache__/__init__.cpython-311.pyc | Bin 18395 -> 0 bytes .../__pycache__/_native.cpython-311.pyc | Bin 2767 -> 0 bytes .../site-packages/markupsafe/_native.py | 63 - .../site-packages/markupsafe/_speedups.c | 320 - .../_speedups.cpython-311-darwin.so | Bin 117484 -> 0 bytes .../site-packages/markupsafe/_speedups.pyi | 9 - .../site-packages/markupsafe/py.typed | 0 .../pip-22.3.1.dist-info/INSTALLER | 1 - .../pip-22.3.1.dist-info/LICENSE.txt | 20 - .../pip-22.3.1.dist-info/METADATA | 88 - .../site-packages/pip-22.3.1.dist-info/RECORD | 992 -- .../pip-22.3.1.dist-info/REQUESTED | 0 .../site-packages/pip-22.3.1.dist-info/WHEEL | 5 - .../pip-22.3.1.dist-info/entry_points.txt | 4 - .../pip-22.3.1.dist-info/top_level.txt | 1 - .../python3.11/site-packages/pip/__init__.py | 13 - .../python3.11/site-packages/pip/__main__.py | 31 - .../site-packages/pip/__pip-runner__.py | 50 - .../pip/__pycache__/__init__.cpython-311.pyc | Bin 802 -> 0 bytes .../pip/__pycache__/__main__.cpython-311.pyc | Bin 1111 -> 0 bytes .../__pip-runner__.cpython-311.pyc | Bin 2539 -> 0 bytes .../site-packages/pip/_internal/__init__.py | 19 - .../__pycache__/__init__.cpython-311.pyc | Bin 985 -> 0 bytes .../__pycache__/build_env.cpython-311.pyc | Bin 15932 -> 0 bytes .../__pycache__/cache.cpython-311.pyc | Bin 14730 -> 0 bytes .../__pycache__/configuration.cpython-311.pyc | Bin 19261 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 33965 -> 0 bytes .../__pycache__/main.cpython-311.pyc | Bin 785 -> 0 bytes .../__pycache__/pyproject.cpython-311.pyc | Bin 5557 -> 0 bytes .../self_outdated_check.cpython-311.pyc | Bin 11199 -> 0 bytes .../__pycache__/wheel_builder.cpython-311.pyc | Bin 16025 -> 0 bytes .../site-packages/pip/_internal/build_env.py | 310 - .../site-packages/pip/_internal/cache.py | 293 - .../pip/_internal/cli/__init__.py | 4 - .../cli/__pycache__/__init__.cpython-311.pyc | Bin 320 -> 0 bytes .../autocompletion.cpython-311.pyc | Bin 10110 -> 0 bytes .../__pycache__/base_command.cpython-311.pyc | Bin 11108 -> 0 bytes .../__pycache__/cmdoptions.cpython-311.pyc | Bin 32874 -> 0 bytes .../command_context.cpython-311.pyc | Bin 2142 -> 0 bytes .../cli/__pycache__/main.cpython-311.pyc | Bin 2397 -> 0 bytes .../__pycache__/main_parser.cpython-311.pyc | Bin 5556 -> 0 bytes .../cli/__pycache__/parser.cpython-311.pyc | Bin 17057 -> 0 bytes .../__pycache__/progress_bars.cpython-311.pyc | Bin 3204 -> 0 bytes .../__pycache__/req_command.cpython-311.pyc | Bin 20169 -> 0 bytes .../cli/__pycache__/spinners.cpython-311.pyc | Bin 8869 -> 0 bytes .../__pycache__/status_codes.cpython-311.pyc | Bin 408 -> 0 bytes .../pip/_internal/cli/autocompletion.py | 171 - .../pip/_internal/cli/base_command.py | 216 - .../pip/_internal/cli/cmdoptions.py | 1049 -- .../pip/_internal/cli/command_context.py | 27 - .../site-packages/pip/_internal/cli/main.py | 70 - .../pip/_internal/cli/main_parser.py | 134 - .../site-packages/pip/_internal/cli/parser.py | 294 - .../pip/_internal/cli/progress_bars.py | 68 - .../pip/_internal/cli/req_command.py | 502 - .../pip/_internal/cli/spinners.py | 159 - .../pip/_internal/cli/status_codes.py | 6 - .../pip/_internal/commands/__init__.py | 132 - .../__pycache__/__init__.cpython-311.pyc | Bin 4488 -> 0 bytes .../__pycache__/cache.cpython-311.pyc | Bin 10587 -> 0 bytes .../__pycache__/check.cpython-311.pyc | Bin 2338 -> 0 bytes .../__pycache__/completion.cpython-311.pyc | Bin 5500 -> 0 bytes .../__pycache__/configuration.cpython-311.pyc | Bin 14929 -> 0 bytes .../__pycache__/debug.cpython-311.pyc | Bin 11964 -> 0 bytes .../__pycache__/download.cpython-311.pyc | Bin 7844 -> 0 bytes .../__pycache__/freeze.cpython-311.pyc | Bin 4174 -> 0 bytes .../commands/__pycache__/hash.cpython-311.pyc | Bin 3390 -> 0 bytes .../commands/__pycache__/help.cpython-311.pyc | Bin 2002 -> 0 bytes .../__pycache__/index.cpython-311.pyc | Bin 7791 -> 0 bytes .../__pycache__/inspect.cpython-311.pyc | Bin 4697 -> 0 bytes .../__pycache__/install.cpython-311.pyc | Bin 35135 -> 0 bytes .../commands/__pycache__/list.cpython-311.pyc | Bin 17182 -> 0 bytes .../__pycache__/search.cpython-311.pyc | Bin 8984 -> 0 bytes .../commands/__pycache__/show.cpython-311.pyc | Bin 11091 -> 0 bytes .../__pycache__/uninstall.cpython-311.pyc | Bin 4901 -> 0 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 9984 -> 0 bytes .../pip/_internal/commands/cache.py | 223 - .../pip/_internal/commands/check.py | 53 - .../pip/_internal/commands/completion.py | 126 - .../pip/_internal/commands/configuration.py | 282 - .../pip/_internal/commands/debug.py | 199 - .../pip/_internal/commands/download.py | 149 - .../pip/_internal/commands/freeze.py | 97 - .../pip/_internal/commands/hash.py | 59 - .../pip/_internal/commands/help.py | 41 - .../pip/_internal/commands/index.py | 138 - .../pip/_internal/commands/inspect.py | 97 - .../pip/_internal/commands/install.py | 860 -- .../pip/_internal/commands/list.py | 365 - .../pip/_internal/commands/search.py | 174 - .../pip/_internal/commands/show.py | 183 - .../pip/_internal/commands/uninstall.py | 106 - .../pip/_internal/commands/wheel.py | 203 - .../pip/_internal/configuration.py | 374 - .../pip/_internal/distributions/__init__.py | 21 - .../__pycache__/__init__.cpython-311.pyc | Bin 1070 -> 0 bytes .../__pycache__/base.cpython-311.pyc | Bin 2442 -> 0 bytes .../__pycache__/installed.cpython-311.pyc | Bin 1579 -> 0 bytes .../__pycache__/sdist.cpython-311.pyc | Bin 8981 -> 0 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 2173 -> 0 bytes .../pip/_internal/distributions/base.py | 39 - .../pip/_internal/distributions/installed.py | 23 - .../pip/_internal/distributions/sdist.py | 150 - .../pip/_internal/distributions/wheel.py | 34 - .../site-packages/pip/_internal/exceptions.py | 660 -- .../pip/_internal/index/__init__.py | 2 - .../__pycache__/__init__.cpython-311.pyc | Bin 274 -> 0 bytes .../__pycache__/collector.cpython-311.pyc | Bin 24580 -> 0 bytes .../package_finder.cpython-311.pyc | Bin 43643 -> 0 bytes .../index/__pycache__/sources.cpython-311.pyc | Bin 11056 -> 0 bytes .../pip/_internal/index/collector.py | 505 - .../pip/_internal/index/package_finder.py | 1025 -- .../pip/_internal/index/sources.py | 224 - .../pip/_internal/locations/__init__.py | 528 - .../__pycache__/__init__.cpython-311.pyc | Bin 20699 -> 0 bytes .../__pycache__/_distutils.cpython-311.pyc | Bin 7940 -> 0 bytes .../__pycache__/_sysconfig.cpython-311.pyc | Bin 9272 -> 0 bytes .../__pycache__/base.cpython-311.pyc | Bin 4066 -> 0 bytes .../pip/_internal/locations/_distutils.py | 180 - .../pip/_internal/locations/_sysconfig.py | 218 - .../pip/_internal/locations/base.py | 81 - .../site-packages/pip/_internal/main.py | 12 - .../pip/_internal/metadata/__init__.py | 127 - .../__pycache__/__init__.cpython-311.pyc | Bin 6445 -> 0 bytes .../__pycache__/_json.cpython-311.pyc | Bin 3599 -> 0 bytes .../metadata/__pycache__/base.cpython-311.pyc | Bin 38044 -> 0 bytes .../__pycache__/pkg_resources.cpython-311.pyc | Bin 16892 -> 0 bytes .../pip/_internal/metadata/_json.py | 84 - .../pip/_internal/metadata/base.py | 688 -- .../_internal/metadata/importlib/__init__.py | 4 - .../__pycache__/__init__.cpython-311.pyc | Bin 391 -> 0 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 3598 -> 0 bytes .../__pycache__/_dists.cpython-311.pyc | Bin 14614 -> 0 bytes .../__pycache__/_envs.cpython-311.pyc | Bin 12452 -> 0 bytes .../_internal/metadata/importlib/_compat.py | 55 - .../_internal/metadata/importlib/_dists.py | 224 - .../pip/_internal/metadata/importlib/_envs.py | 188 - .../pip/_internal/metadata/pkg_resources.py | 270 - .../pip/_internal/models/__init__.py | 2 - .../__pycache__/__init__.cpython-311.pyc | Bin 308 -> 0 bytes .../__pycache__/candidate.cpython-311.pyc | Bin 2127 -> 0 bytes .../__pycache__/direct_url.cpython-311.pyc | Bin 11632 -> 0 bytes .../format_control.cpython-311.pyc | Bin 4691 -> 0 bytes .../models/__pycache__/index.cpython-311.pyc | Bin 1933 -> 0 bytes .../installation_report.cpython-311.pyc | Bin 2647 -> 0 bytes .../models/__pycache__/link.cpython-311.pyc | Bin 25043 -> 0 bytes .../models/__pycache__/scheme.cpython-311.pyc | Bin 1299 -> 0 bytes .../__pycache__/search_scope.cpython-311.pyc | Bin 5862 -> 0 bytes .../selection_prefs.cpython-311.pyc | Bin 2030 -> 0 bytes .../__pycache__/target_python.cpython-311.pyc | Bin 4792 -> 0 bytes .../models/__pycache__/wheel.cpython-311.pyc | Bin 6455 -> 0 bytes .../pip/_internal/models/candidate.py | 34 - .../pip/_internal/models/direct_url.py | 212 - .../pip/_internal/models/format_control.py | 80 - .../pip/_internal/models/index.py | 28 - .../_internal/models/installation_report.py | 53 - .../pip/_internal/models/link.py | 507 - .../pip/_internal/models/scheme.py | 31 - .../pip/_internal/models/search_scope.py | 133 - .../pip/_internal/models/selection_prefs.py | 51 - .../pip/_internal/models/target_python.py | 110 - .../pip/_internal/models/wheel.py | 92 - .../pip/_internal/network/__init__.py | 2 - .../__pycache__/__init__.cpython-311.pyc | Bin 296 -> 0 bytes .../network/__pycache__/auth.cpython-311.pyc | Bin 12215 -> 0 bytes .../network/__pycache__/cache.cpython-311.pyc | Bin 5219 -> 0 bytes .../__pycache__/download.cpython-311.pyc | Bin 9611 -> 0 bytes .../__pycache__/lazy_wheel.cpython-311.pyc | Bin 13057 -> 0 bytes .../__pycache__/session.cpython-311.pyc | Bin 21324 -> 0 bytes .../network/__pycache__/utils.cpython-311.pyc | Bin 2445 -> 0 bytes .../__pycache__/xmlrpc.cpython-311.pyc | Bin 3224 -> 0 bytes .../pip/_internal/network/auth.py | 323 - .../pip/_internal/network/cache.py | 69 - .../pip/_internal/network/download.py | 186 - .../pip/_internal/network/lazy_wheel.py | 210 - .../pip/_internal/network/session.py | 518 - .../pip/_internal/network/utils.py | 96 - .../pip/_internal/network/xmlrpc.py | 60 - .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 234 -> 0 bytes .../__pycache__/check.cpython-311.pyc | Bin 6646 -> 0 bytes .../__pycache__/freeze.cpython-311.pyc | Bin 11630 -> 0 bytes .../__pycache__/prepare.cpython-311.pyc | Bin 26414 -> 0 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 240 -> 0 bytes .../__pycache__/build_tracker.cpython-311.pyc | Bin 8163 -> 0 bytes .../__pycache__/metadata.cpython-311.pyc | Bin 2305 -> 0 bytes .../metadata_editable.cpython-311.pyc | Bin 2341 -> 0 bytes .../metadata_legacy.cpython-311.pyc | Bin 3747 -> 0 bytes .../build/__pycache__/wheel.cpython-311.pyc | Bin 1971 -> 0 bytes .../wheel_editable.cpython-311.pyc | Bin 2415 -> 0 bytes .../__pycache__/wheel_legacy.cpython-311.pyc | Bin 4528 -> 0 bytes .../operations/build/build_tracker.py | 124 - .../_internal/operations/build/metadata.py | 39 - .../operations/build/metadata_editable.py | 41 - .../operations/build/metadata_legacy.py | 74 - .../pip/_internal/operations/build/wheel.py | 37 - .../operations/build/wheel_editable.py | 46 - .../operations/build/wheel_legacy.py | 102 - .../pip/_internal/operations/check.py | 149 - .../pip/_internal/operations/freeze.py | 254 - .../_internal/operations/install/__init__.py | 2 - .../__pycache__/__init__.cpython-311.pyc | Bin 308 -> 0 bytes .../editable_legacy.cpython-311.pyc | Bin 2304 -> 0 bytes .../__pycache__/legacy.cpython-311.pyc | Bin 6144 -> 0 bytes .../install/__pycache__/wheel.cpython-311.pyc | Bin 40030 -> 0 bytes .../operations/install/editable_legacy.py | 47 - .../_internal/operations/install/legacy.py | 120 - .../pip/_internal/operations/install/wheel.py | 738 -- .../pip/_internal/operations/prepare.py | 667 -- .../site-packages/pip/_internal/pyproject.py | 175 - .../pip/_internal/req/__init__.py | 94 - .../req/__pycache__/__init__.cpython-311.pyc | Bin 4480 -> 0 bytes .../__pycache__/constructors.cpython-311.pyc | Bin 20739 -> 0 bytes .../req/__pycache__/req_file.cpython-311.pyc | Bin 22468 -> 0 bytes .../__pycache__/req_install.cpython-311.pyc | Bin 40318 -> 0 bytes .../req/__pycache__/req_set.cpython-311.pyc | Bin 6036 -> 0 bytes .../__pycache__/req_uninstall.cpython-311.pyc | Bin 37034 -> 0 bytes .../pip/_internal/req/constructors.py | 501 - .../pip/_internal/req/req_file.py | 544 -- .../pip/_internal/req/req_install.py | 942 -- .../pip/_internal/req/req_set.py | 82 - .../pip/_internal/req/req_uninstall.py | 640 -- .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 234 -> 0 bytes .../__pycache__/base.cpython-311.pyc | Bin 1405 -> 0 bytes .../pip/_internal/resolution/base.py | 20 - .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 241 -> 0 bytes .../__pycache__/resolver.cpython-311.pyc | Bin 23827 -> 0 bytes .../_internal/resolution/legacy/resolver.py | 600 -- .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 245 -> 0 bytes .../__pycache__/base.cpython-311.pyc | Bin 9658 -> 0 bytes .../__pycache__/candidates.cpython-311.pyc | Bin 28868 -> 0 bytes .../__pycache__/factory.cpython-311.pyc | Bin 32012 -> 0 bytes .../found_candidates.cpython-311.pyc | Bin 6793 -> 0 bytes .../__pycache__/provider.cpython-311.pyc | Bin 11087 -> 0 bytes .../__pycache__/reporter.cpython-311.pyc | Bin 4690 -> 0 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 11155 -> 0 bytes .../__pycache__/resolver.cpython-311.pyc | Bin 12342 -> 0 bytes .../_internal/resolution/resolvelib/base.py | 141 - .../resolution/resolvelib/candidates.py | 556 -- .../resolution/resolvelib/factory.py | 731 -- .../resolution/resolvelib/found_candidates.py | 155 - .../resolution/resolvelib/provider.py | 248 - .../resolution/resolvelib/reporter.py | 68 - .../resolution/resolvelib/requirements.py | 166 - .../resolution/resolvelib/resolver.py | 296 - .../pip/_internal/self_outdated_check.py | 239 - .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 229 -> 0 bytes .../utils/__pycache__/_log.cpython-311.pyc | Bin 2050 -> 0 bytes .../utils/__pycache__/appdirs.cpython-311.pyc | Bin 2588 -> 0 bytes .../utils/__pycache__/compat.cpython-311.pyc | Bin 2296 -> 0 bytes .../compatibility_tags.cpython-311.pyc | Bin 6788 -> 0 bytes .../__pycache__/datetime.cpython-311.pyc | Bin 746 -> 0 bytes .../__pycache__/deprecation.cpython-311.pyc | Bin 7119 -> 0 bytes .../direct_url_helpers.cpython-311.pyc | Bin 3752 -> 0 bytes .../distutils_args.cpython-311.pyc | Bin 1496 -> 0 bytes .../__pycache__/egg_link.cpython-311.pyc | Bin 3248 -> 0 bytes .../__pycache__/encoding.cpython-311.pyc | Bin 2352 -> 0 bytes .../__pycache__/entrypoints.cpython-311.pyc | Bin 4274 -> 0 bytes .../__pycache__/filesystem.cpython-311.pyc | Bin 8259 -> 0 bytes .../__pycache__/filetypes.cpython-311.pyc | Bin 1345 -> 0 bytes .../utils/__pycache__/glibc.cpython-311.pyc | Bin 2588 -> 0 bytes .../utils/__pycache__/hashes.cpython-311.pyc | Bin 8366 -> 0 bytes .../inject_securetransport.cpython-311.pyc | Bin 1363 -> 0 bytes .../utils/__pycache__/logging.cpython-311.pyc | Bin 15488 -> 0 bytes .../utils/__pycache__/misc.cpython-311.pyc | Bin 35802 -> 0 bytes .../utils/__pycache__/models.cpython-311.pyc | Bin 2969 -> 0 bytes .../__pycache__/packaging.cpython-311.pyc | Bin 2836 -> 0 bytes .../setuptools_build.cpython-311.pyc | Bin 6133 -> 0 bytes .../__pycache__/subprocess.cpython-311.pyc | Bin 9920 -> 0 bytes .../__pycache__/temp_dir.cpython-311.pyc | Bin 11450 -> 0 bytes .../__pycache__/unpacking.cpython-311.pyc | Bin 12925 -> 0 bytes .../utils/__pycache__/urls.cpython-311.pyc | Bin 2722 -> 0 bytes .../__pycache__/virtualenv.cpython-311.pyc | Bin 4969 -> 0 bytes .../utils/__pycache__/wheel.cpython-311.pyc | Bin 7139 -> 0 bytes .../site-packages/pip/_internal/utils/_log.py | 38 - .../pip/_internal/utils/appdirs.py | 52 - .../pip/_internal/utils/compat.py | 63 - .../pip/_internal/utils/compatibility_tags.py | 165 - .../pip/_internal/utils/datetime.py | 11 - .../pip/_internal/utils/deprecation.py | 188 - .../pip/_internal/utils/direct_url_helpers.py | 87 - .../pip/_internal/utils/distutils_args.py | 43 - .../pip/_internal/utils/egg_link.py | 75 - .../pip/_internal/utils/encoding.py | 36 - .../pip/_internal/utils/entrypoints.py | 84 - .../pip/_internal/utils/filesystem.py | 153 - .../pip/_internal/utils/filetypes.py | 27 - .../pip/_internal/utils/glibc.py | 88 - .../pip/_internal/utils/hashes.py | 144 - .../_internal/utils/inject_securetransport.py | 35 - .../pip/_internal/utils/logging.py | 348 - .../site-packages/pip/_internal/utils/misc.py | 723 -- .../pip/_internal/utils/models.py | 39 - .../pip/_internal/utils/packaging.py | 57 - .../pip/_internal/utils/setuptools_build.py | 195 - .../pip/_internal/utils/subprocess.py | 260 - .../pip/_internal/utils/temp_dir.py | 246 - .../pip/_internal/utils/unpacking.py | 257 - .../site-packages/pip/_internal/utils/urls.py | 62 - .../pip/_internal/utils/virtualenv.py | 104 - .../pip/_internal/utils/wheel.py | 136 - .../pip/_internal/vcs/__init__.py | 15 - .../vcs/__pycache__/__init__.cpython-311.pyc | Bin 664 -> 0 bytes .../vcs/__pycache__/bazaar.cpython-311.pyc | Bin 5889 -> 0 bytes .../vcs/__pycache__/git.cpython-311.pyc | Bin 21553 -> 0 bytes .../vcs/__pycache__/mercurial.cpython-311.pyc | Bin 8735 -> 0 bytes .../__pycache__/subversion.cpython-311.pyc | Bin 14632 -> 0 bytes .../versioncontrol.cpython-311.pyc | Bin 31901 -> 0 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 112 - .../site-packages/pip/_internal/vcs/git.py | 526 - .../pip/_internal/vcs/mercurial.py | 163 - .../pip/_internal/vcs/subversion.py | 324 - .../pip/_internal/vcs/versioncontrol.py | 705 -- .../pip/_internal/wheel_builder.py | 382 - .../site-packages/pip/_vendor/__init__.py | 120 - .../__pycache__/__init__.cpython-311.pyc | Bin 5642 -> 0 bytes .../_vendor/__pycache__/six.cpython-311.pyc | Bin 46444 -> 0 bytes .../typing_extensions.cpython-311.pyc | Bin 97474 -> 0 bytes .../pip/_vendor/cachecontrol/__init__.py | 18 - .../__pycache__/__init__.cpython-311.pyc | Bin 871 -> 0 bytes .../__pycache__/_cmd.cpython-311.pyc | Bin 2726 -> 0 bytes .../__pycache__/adapter.cpython-311.pyc | Bin 5533 -> 0 bytes .../__pycache__/cache.cpython-311.pyc | Bin 3807 -> 0 bytes .../__pycache__/compat.cpython-311.pyc | Bin 1164 -> 0 bytes .../__pycache__/controller.cpython-311.pyc | Bin 16479 -> 0 bytes .../__pycache__/filewrapper.cpython-311.pyc | Bin 4266 -> 0 bytes .../__pycache__/heuristics.cpython-311.pyc | Bin 6711 -> 0 bytes .../__pycache__/serialize.cpython-311.pyc | Bin 8426 -> 0 bytes .../__pycache__/wrapper.cpython-311.pyc | Bin 992 -> 0 bytes .../pip/_vendor/cachecontrol/_cmd.py | 61 - .../pip/_vendor/cachecontrol/adapter.py | 137 - .../pip/_vendor/cachecontrol/cache.py | 65 - .../_vendor/cachecontrol/caches/__init__.py | 9 - .../__pycache__/__init__.cpython-311.pyc | Bin 446 -> 0 bytes .../__pycache__/file_cache.cpython-311.pyc | Bin 8429 -> 0 bytes .../__pycache__/redis_cache.cpython-311.pyc | Bin 2526 -> 0 bytes .../_vendor/cachecontrol/caches/file_cache.py | 188 - .../cachecontrol/caches/redis_cache.py | 39 - .../pip/_vendor/cachecontrol/compat.py | 32 - .../pip/_vendor/cachecontrol/controller.py | 439 - .../pip/_vendor/cachecontrol/filewrapper.py | 111 - .../pip/_vendor/cachecontrol/heuristics.py | 139 - .../pip/_vendor/cachecontrol/serialize.py | 190 - .../pip/_vendor/cachecontrol/wrapper.py | 33 - .../pip/_vendor/certifi/__init__.py | 4 - .../pip/_vendor/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-311.pyc | Bin 371 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 772 -> 0 bytes .../certifi/__pycache__/core.cpython-311.pyc | Bin 3394 -> 0 bytes .../pip/_vendor/certifi/cacert.pem | 4708 --------- .../site-packages/pip/_vendor/certifi/core.py | 108 - .../pip/_vendor/chardet/__init__.py | 93 - .../__pycache__/__init__.cpython-311.pyc | Bin 3997 -> 0 bytes .../__pycache__/big5freq.cpython-311.pyc | Bin 27233 -> 0 bytes .../__pycache__/big5prober.cpython-311.pyc | Bin 1643 -> 0 bytes .../chardistribution.cpython-311.pyc | Bin 10425 -> 0 bytes .../charsetgroupprober.cpython-311.pyc | Bin 3959 -> 0 bytes .../__pycache__/charsetprober.cpython-311.pyc | Bin 4773 -> 0 bytes .../codingstatemachine.cpython-311.pyc | Bin 3718 -> 0 bytes .../__pycache__/cp949prober.cpython-311.pyc | Bin 1652 -> 0 bytes .../chardet/__pycache__/enums.cpython-311.pyc | Bin 3282 -> 0 bytes .../__pycache__/escprober.cpython-311.pyc | Bin 4561 -> 0 bytes .../chardet/__pycache__/escsm.cpython-311.pyc | Bin 12430 -> 0 bytes .../__pycache__/eucjpprober.cpython-311.pyc | Bin 4410 -> 0 bytes .../__pycache__/euckrfreq.cpython-311.pyc | Bin 12116 -> 0 bytes .../__pycache__/euckrprober.cpython-311.pyc | Bin 1644 -> 0 bytes .../__pycache__/euctwfreq.cpython-311.pyc | Bin 27238 -> 0 bytes .../__pycache__/euctwprober.cpython-311.pyc | Bin 1644 -> 0 bytes .../__pycache__/gb2312freq.cpython-311.pyc | Bin 19160 -> 0 bytes .../__pycache__/gb2312prober.cpython-311.pyc | Bin 1659 -> 0 bytes .../__pycache__/hebrewprober.cpython-311.pyc | Bin 4973 -> 0 bytes .../__pycache__/jisfreq.cpython-311.pyc | Bin 22189 -> 0 bytes .../__pycache__/johabfreq.cpython-311.pyc | Bin 84693 -> 0 bytes .../__pycache__/johabprober.cpython-311.pyc | Bin 1650 -> 0 bytes .../__pycache__/jpcntx.cpython-311.pyc | Bin 39559 -> 0 bytes .../langbulgarianmodel.cpython-311.pyc | Bin 85867 -> 0 bytes .../langgreekmodel.cpython-311.pyc | Bin 79289 -> 0 bytes .../langhebrewmodel.cpython-311.pyc | Bin 80051 -> 0 bytes .../langhungarianmodel.cpython-311.pyc | Bin 85821 -> 0 bytes .../langrussianmodel.cpython-311.pyc | Bin 108768 -> 0 bytes .../__pycache__/langthaimodel.cpython-311.pyc | Bin 80229 -> 0 bytes .../langturkishmodel.cpython-311.pyc | Bin 80068 -> 0 bytes .../__pycache__/latin1prober.cpython-311.pyc | Bin 7091 -> 0 bytes .../mbcharsetprober.cpython-311.pyc | Bin 3910 -> 0 bytes .../mbcsgroupprober.cpython-311.pyc | Bin 1894 -> 0 bytes .../__pycache__/mbcssm.cpython-311.pyc | Bin 31286 -> 0 bytes .../sbcharsetprober.cpython-311.pyc | Bin 5616 -> 0 bytes .../sbcsgroupprober.cpython-311.pyc | Bin 2948 -> 0 bytes .../__pycache__/sjisprober.cpython-311.pyc | Bin 4515 -> 0 bytes .../universaldetector.cpython-311.pyc | Bin 11338 -> 0 bytes .../__pycache__/utf1632prober.cpython-311.pyc | Bin 10108 -> 0 bytes .../__pycache__/utf8prober.cpython-311.pyc | Bin 3256 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 534 -> 0 bytes .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 259 - .../pip/_vendor/chardet/charsetgroupprober.py | 109 - .../pip/_vendor/chardet/charsetprober.py | 138 - .../pip/_vendor/chardet/cli/__init__.py | 0 .../cli/__pycache__/__init__.cpython-311.pyc | Bin 233 -> 0 bytes .../__pycache__/chardetect.cpython-311.pyc | Bin 3418 -> 0 bytes .../pip/_vendor/chardet/cli/chardetect.py | 86 - .../pip/_vendor/chardet/codingstatemachine.py | 88 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 82 - .../pip/_vendor/chardet/escprober.py | 102 - .../pip/_vendor/chardet/escsm.py | 260 - .../pip/_vendor/chardet/eucjpprober.py | 95 - .../pip/_vendor/chardet/euckrfreq.py | 196 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 388 - .../pip/_vendor/chardet/euctwprober.py | 47 - .../pip/_vendor/chardet/gb2312freq.py | 284 - .../pip/_vendor/chardet/gb2312prober.py | 47 - .../pip/_vendor/chardet/hebrewprober.py | 302 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/johabfreq.py | 2382 ----- .../pip/_vendor/chardet/johabprober.py | 47 - .../pip/_vendor/chardet/jpcntx.py | 237 - .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langgreekmodel.py | 4397 --------- .../pip/_vendor/chardet/langhebrewmodel.py | 4380 --------- .../pip/_vendor/chardet/langhungarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langrussianmodel.py | 5725 ----------- .../pip/_vendor/chardet/langthaimodel.py | 4380 --------- .../pip/_vendor/chardet/langturkishmodel.py | 4380 --------- .../pip/_vendor/chardet/latin1prober.py | 145 - .../pip/_vendor/chardet/mbcharsetprober.py | 95 - .../pip/_vendor/chardet/mbcsgroupprober.py | 56 - .../pip/_vendor/chardet/mbcssm.py | 660 -- .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 238 -> 0 bytes .../__pycache__/languages.cpython-311.pyc | Bin 10445 -> 0 bytes .../pip/_vendor/chardet/metadata/languages.py | 351 - .../pip/_vendor/chardet/sbcharsetprober.py | 160 - .../pip/_vendor/chardet/sbcsgroupprober.py | 88 - .../pip/_vendor/chardet/sjisprober.py | 98 - .../pip/_vendor/chardet/universaldetector.py | 328 - .../pip/_vendor/chardet/utf1632prober.py | 223 - .../pip/_vendor/chardet/utf8prober.py | 80 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 6 - .../__pycache__/__init__.cpython-311.pyc | Bin 564 -> 0 bytes .../colorama/__pycache__/ansi.cpython-311.pyc | Bin 4603 -> 0 bytes .../__pycache__/ansitowin32.cpython-311.pyc | Bin 15770 -> 0 bytes .../__pycache__/initialise.cpython-311.pyc | Bin 2925 -> 0 bytes .../__pycache__/win32.cpython-311.pyc | Bin 6944 -> 0 bytes .../__pycache__/winterm.cpython-311.pyc | Bin 8063 -> 0 bytes .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 266 - .../pip/_vendor/colorama/initialise.py | 80 - .../pip/_vendor/colorama/win32.py | 152 - .../pip/_vendor/colorama/winterm.py | 169 - .../pip/_vendor/distlib/__init__.py | 23 - .../__pycache__/__init__.cpython-311.pyc | Bin 1474 -> 0 bytes .../__pycache__/compat.cpython-311.pyc | Bin 52340 -> 0 bytes .../__pycache__/database.cpython-311.pyc | Bin 72128 -> 0 bytes .../distlib/__pycache__/index.cpython-311.pyc | Bin 26717 -> 0 bytes .../__pycache__/locators.cpython-311.pyc | Bin 65893 -> 0 bytes .../__pycache__/manifest.cpython-311.pyc | Bin 17060 -> 0 bytes .../__pycache__/markers.cpython-311.pyc | Bin 8196 -> 0 bytes .../__pycache__/metadata.cpython-311.pyc | Bin 47144 -> 0 bytes .../__pycache__/resources.cpython-311.pyc | Bin 19023 -> 0 bytes .../__pycache__/scripts.cpython-311.pyc | Bin 21299 -> 0 bytes .../distlib/__pycache__/util.cpython-311.pyc | Bin 97478 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 34605 -> 0 bytes .../distlib/__pycache__/wheel.cpython-311.pyc | Bin 60409 -> 0 bytes .../pip/_vendor/distlib/compat.py | 1116 --- .../pip/_vendor/distlib/database.py | 1350 --- .../pip/_vendor/distlib/index.py | 508 - .../pip/_vendor/distlib/locators.py | 1300 --- .../pip/_vendor/distlib/manifest.py | 393 - .../pip/_vendor/distlib/markers.py | 152 - .../pip/_vendor/distlib/metadata.py | 1076 --- .../pip/_vendor/distlib/resources.py | 358 - .../pip/_vendor/distlib/scripts.py | 437 - .../site-packages/pip/_vendor/distlib/util.py | 1932 ---- .../pip/_vendor/distlib/version.py | 739 -- .../pip/_vendor/distlib/wheel.py | 1082 --- .../pip/_vendor/distro/__init__.py | 54 - .../pip/_vendor/distro/__main__.py | 4 - .../__pycache__/__init__.cpython-311.pyc | Bin 1227 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 361 -> 0 bytes .../distro/__pycache__/distro.cpython-311.pyc | Bin 56247 -> 0 bytes .../pip/_vendor/distro/distro.py | 1374 --- .../pip/_vendor/idna/__init__.py | 44 - .../idna/__pycache__/__init__.cpython-311.pyc | Bin 1128 -> 0 bytes .../idna/__pycache__/codec.cpython-311.pyc | Bin 5419 -> 0 bytes .../idna/__pycache__/compat.cpython-311.pyc | Bin 1045 -> 0 bytes .../idna/__pycache__/core.cpython-311.pyc | Bin 19480 -> 0 bytes .../idna/__pycache__/idnadata.cpython-311.pyc | Bin 39004 -> 0 bytes .../__pycache__/intranges.cpython-311.pyc | Bin 3013 -> 0 bytes .../__pycache__/package_data.cpython-311.pyc | Bin 248 -> 0 bytes .../__pycache__/uts46data.cpython-311.pyc | Bin 163228 -> 0 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 - .../site-packages/pip/_vendor/idna/compat.py | 13 - .../site-packages/pip/_vendor/idna/core.py | 400 - .../pip/_vendor/idna/idnadata.py | 2151 ----- .../pip/_vendor/idna/intranges.py | 54 - .../pip/_vendor/idna/package_data.py | 2 - .../pip/_vendor/idna/uts46data.py | 8600 ----------------- .../pip/_vendor/msgpack/__init__.py | 57 - .../__pycache__/__init__.cpython-311.pyc | Bin 2107 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 2408 -> 0 bytes .../msgpack/__pycache__/ext.cpython-311.pyc | Bin 9194 -> 0 bytes .../__pycache__/fallback.cpython-311.pyc | Bin 47221 -> 0 bytes .../pip/_vendor/msgpack/exceptions.py | 48 - .../site-packages/pip/_vendor/msgpack/ext.py | 193 - .../pip/_vendor/msgpack/fallback.py | 1010 -- .../pip/_vendor/packaging/__about__.py | 26 - .../pip/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-311.pyc | Bin 672 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 593 -> 0 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 13259 -> 0 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 8027 -> 0 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 3715 -> 0 bytes .../__pycache__/markers.cpython-311.pyc | Bin 16555 -> 0 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 7670 -> 0 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 34393 -> 0 bytes .../__pycache__/tags.cpython-311.pyc | Bin 21378 -> 0 bytes .../__pycache__/utils.cpython-311.pyc | Bin 6713 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 21905 -> 0 bytes .../pip/_vendor/packaging/_manylinux.py | 301 - .../pip/_vendor/packaging/_musllinux.py | 136 - .../pip/_vendor/packaging/_structures.py | 61 - .../pip/_vendor/packaging/markers.py | 304 - .../pip/_vendor/packaging/requirements.py | 146 - .../pip/_vendor/packaging/specifiers.py | 802 -- .../pip/_vendor/packaging/tags.py | 487 - .../pip/_vendor/packaging/utils.py | 136 - .../pip/_vendor/packaging/version.py | 504 - .../pip/_vendor/pep517/__init__.py | 6 - .../__pycache__/__init__.cpython-311.pyc | Bin 372 -> 0 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 425 -> 0 bytes .../pep517/__pycache__/build.cpython-311.pyc | Bin 6668 -> 0 bytes .../pep517/__pycache__/check.cpython-311.pyc | Bin 11830 -> 0 bytes .../__pycache__/colorlog.cpython-311.pyc | Bin 4875 -> 0 bytes .../__pycache__/dirtools.cpython-311.pyc | Bin 1353 -> 0 bytes .../__pycache__/envbuild.cpython-311.pyc | Bin 7512 -> 0 bytes .../pep517/__pycache__/meta.cpython-311.pyc | Bin 5779 -> 0 bytes .../__pycache__/wrappers.cpython-311.pyc | Bin 18327 -> 0 bytes .../pip/_vendor/pep517/_compat.py | 8 - .../site-packages/pip/_vendor/pep517/build.py | 126 - .../site-packages/pip/_vendor/pep517/check.py | 207 - .../pip/_vendor/pep517/colorlog.py | 113 - .../pip/_vendor/pep517/dirtools.py | 19 - .../pip/_vendor/pep517/envbuild.py | 170 - .../pip/_vendor/pep517/in_process/__init__.py | 26 - .../__pycache__/__init__.cpython-311.pyc | Bin 1819 -> 0 bytes .../__pycache__/_in_process.cpython-311.pyc | Bin 16508 -> 0 bytes .../_vendor/pep517/in_process/_in_process.py | 351 - .../site-packages/pip/_vendor/pep517/meta.py | 93 - .../pip/_vendor/pep517/wrappers.py | 362 - .../pip/_vendor/pkg_resources/__init__.py | 3296 ------- .../__pycache__/__init__.cpython-311.pyc | Bin 158261 -> 0 bytes .../__pycache__/py31compat.cpython-311.pyc | Bin 1014 -> 0 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 - .../pip/_vendor/platformdirs/__init__.py | 340 - .../pip/_vendor/platformdirs/__main__.py | 46 - .../__pycache__/__init__.cpython-311.pyc | Bin 12819 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 2157 -> 0 bytes .../__pycache__/android.cpython-311.pyc | Bin 6387 -> 0 bytes .../__pycache__/api.cpython-311.pyc | Bin 7214 -> 0 bytes .../__pycache__/macos.cpython-311.pyc | Bin 4624 -> 0 bytes .../__pycache__/unix.cpython-311.pyc | Bin 11055 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 340 -> 0 bytes .../__pycache__/windows.cpython-311.pyc | Bin 9862 -> 0 bytes .../pip/_vendor/platformdirs/android.py | 120 - .../pip/_vendor/platformdirs/api.py | 156 - .../pip/_vendor/platformdirs/macos.py | 64 - .../pip/_vendor/platformdirs/unix.py | 181 - .../pip/_vendor/platformdirs/version.py | 4 - .../pip/_vendor/platformdirs/windows.py | 182 - .../pip/_vendor/pygments/__init__.py | 82 - .../pip/_vendor/pygments/__main__.py | 17 - .../__pycache__/__init__.cpython-311.pyc | Bin 3875 -> 0 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 811 -> 0 bytes .../__pycache__/cmdline.cpython-311.pyc | Bin 30322 -> 0 bytes .../__pycache__/console.cpython-311.pyc | Bin 3074 -> 0 bytes .../__pycache__/filter.cpython-311.pyc | Bin 3535 -> 0 bytes .../__pycache__/formatter.cpython-311.pyc | Bin 3901 -> 0 bytes .../__pycache__/lexer.cpython-311.pyc | Bin 40429 -> 0 bytes .../__pycache__/modeline.cpython-311.pyc | Bin 1754 -> 0 bytes .../__pycache__/plugin.cpython-311.pyc | Bin 3767 -> 0 bytes .../__pycache__/regexopt.cpython-311.pyc | Bin 5061 -> 0 bytes .../__pycache__/scanner.cpython-311.pyc | Bin 4916 -> 0 bytes .../__pycache__/sphinxext.cpython-311.pyc | Bin 8347 -> 0 bytes .../__pycache__/style.cpython-311.pyc | Bin 7455 -> 0 bytes .../__pycache__/token.cpython-311.pyc | Bin 7495 -> 0 bytes .../__pycache__/unistring.cpython-311.pyc | Bin 33829 -> 0 bytes .../pygments/__pycache__/util.cpython-311.pyc | Bin 14622 -> 0 bytes .../pip/_vendor/pygments/cmdline.py | 668 -- .../pip/_vendor/pygments/console.py | 70 - .../pip/_vendor/pygments/filter.py | 71 - .../pip/_vendor/pygments/filters/__init__.py | 940 -- .../__pycache__/__init__.cpython-311.pyc | Bin 40135 -> 0 bytes .../pip/_vendor/pygments/formatter.py | 94 - .../_vendor/pygments/formatters/__init__.py | 143 - .../__pycache__/__init__.cpython-311.pyc | Bin 6901 -> 0 bytes .../__pycache__/_mapping.cpython-311.pyc | Bin 4183 -> 0 bytes .../__pycache__/bbcode.cpython-311.pyc | Bin 4509 -> 0 bytes .../__pycache__/groff.cpython-311.pyc | Bin 7842 -> 0 bytes .../__pycache__/html.cpython-311.pyc | Bin 42627 -> 0 bytes .../__pycache__/img.cpython-311.pyc | Bin 28599 -> 0 bytes .../__pycache__/irc.cpython-311.pyc | Bin 7702 -> 0 bytes .../__pycache__/latex.cpython-311.pyc | Bin 21835 -> 0 bytes .../__pycache__/other.cpython-311.pyc | Bin 7663 -> 0 bytes .../__pycache__/pangomarkup.cpython-311.pyc | Bin 3207 -> 0 bytes .../__pycache__/rtf.cpython-311.pyc | Bin 6874 -> 0 bytes .../__pycache__/svg.cpython-311.pyc | Bin 9694 -> 0 bytes .../__pycache__/terminal.cpython-311.pyc | Bin 6073 -> 0 bytes .../__pycache__/terminal256.cpython-311.pyc | Bin 16439 -> 0 bytes .../_vendor/pygments/formatters/_mapping.py | 23 - .../pip/_vendor/pygments/formatters/bbcode.py | 108 - .../pip/_vendor/pygments/formatters/groff.py | 170 - .../pip/_vendor/pygments/formatters/html.py | 989 -- .../pip/_vendor/pygments/formatters/img.py | 645 -- .../pip/_vendor/pygments/formatters/irc.py | 179 - .../pip/_vendor/pygments/formatters/latex.py | 521 - .../pip/_vendor/pygments/formatters/other.py | 161 - .../pygments/formatters/pangomarkup.py | 83 - .../pip/_vendor/pygments/formatters/rtf.py | 146 - .../pip/_vendor/pygments/formatters/svg.py | 188 - .../_vendor/pygments/formatters/terminal.py | 127 - .../pygments/formatters/terminal256.py | 338 - .../pip/_vendor/pygments/lexer.py | 882 -- .../pip/_vendor/pygments/lexers/__init__.py | 335 - .../__pycache__/__init__.cpython-311.pyc | Bin 15178 -> 0 bytes .../__pycache__/_mapping.cpython-311.pyc | Bin 62809 -> 0 bytes .../lexers/__pycache__/python.cpython-311.pyc | Bin 44010 -> 0 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 541 -- .../pip/_vendor/pygments/lexers/python.py | 1204 --- .../pip/_vendor/pygments/modeline.py | 43 - .../pip/_vendor/pygments/plugin.py | 88 - .../pip/_vendor/pygments/regexopt.py | 91 - .../pip/_vendor/pygments/scanner.py | 104 - .../pip/_vendor/pygments/sphinxext.py | 155 - .../pip/_vendor/pygments/style.py | 197 - .../pip/_vendor/pygments/styles/__init__.py | 97 - .../__pycache__/__init__.cpython-311.pyc | Bin 4488 -> 0 bytes .../pip/_vendor/pygments/token.py | 213 - .../pip/_vendor/pygments/unistring.py | 153 - .../pip/_vendor/pygments/util.py | 308 - .../pip/_vendor/pyparsing/__init__.py | 331 - .../__pycache__/__init__.cpython-311.pyc | Bin 8378 -> 0 bytes .../__pycache__/actions.cpython-311.pyc | Bin 8492 -> 0 bytes .../__pycache__/common.cpython-311.pyc | Bin 14814 -> 0 bytes .../__pycache__/core.cpython-311.pyc | Bin 277700 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 12956 -> 0 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 53657 -> 0 bytes .../__pycache__/results.cpython-311.pyc | Bin 36340 -> 0 bytes .../__pycache__/testing.cpython-311.pyc | Bin 19536 -> 0 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 15394 -> 0 bytes .../__pycache__/util.cpython-311.pyc | Bin 14293 -> 0 bytes .../pip/_vendor/pyparsing/actions.py | 207 - .../pip/_vendor/pyparsing/common.py | 424 - .../pip/_vendor/pyparsing/core.py | 5814 ----------- .../pip/_vendor/pyparsing/diagram/__init__.py | 642 -- .../__pycache__/__init__.cpython-311.pyc | Bin 28059 -> 0 bytes .../pip/_vendor/pyparsing/exceptions.py | 267 - .../pip/_vendor/pyparsing/helpers.py | 1088 --- .../pip/_vendor/pyparsing/results.py | 760 -- .../pip/_vendor/pyparsing/testing.py | 331 - .../pip/_vendor/pyparsing/unicode.py | 352 - .../pip/_vendor/pyparsing/util.py | 235 - .../pip/_vendor/requests/__init__.py | 182 - .../__pycache__/__init__.cpython-311.pyc | Bin 6480 -> 0 bytes .../__pycache__/__version__.cpython-311.pyc | Bin 622 -> 0 bytes .../_internal_utils.cpython-311.pyc | Bin 2114 -> 0 bytes .../__pycache__/adapters.cpython-311.pyc | Bin 24917 -> 0 bytes .../requests/__pycache__/api.cpython-311.pyc | Bin 7462 -> 0 bytes .../requests/__pycache__/auth.cpython-311.pyc | Bin 14661 -> 0 bytes .../__pycache__/certs.cpython-311.pyc | Bin 1013 -> 0 bytes .../__pycache__/compat.cpython-311.pyc | Bin 1839 -> 0 bytes .../__pycache__/cookies.cpython-311.pyc | Bin 27141 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 8556 -> 0 bytes .../requests/__pycache__/help.cpython-311.pyc | Bin 4551 -> 0 bytes .../__pycache__/hooks.cpython-311.pyc | Bin 1281 -> 0 bytes .../__pycache__/models.cpython-311.pyc | Bin 38811 -> 0 bytes .../__pycache__/packages.cpython-311.pyc | Bin 861 -> 0 bytes .../__pycache__/sessions.cpython-311.pyc | Bin 29650 -> 0 bytes .../__pycache__/status_codes.cpython-311.pyc | Bin 6268 -> 0 bytes .../__pycache__/structures.cpython-311.pyc | Bin 6253 -> 0 bytes .../__pycache__/utils.cpython-311.pyc | Bin 40167 -> 0 bytes .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 48 - .../pip/_vendor/requests/adapters.py | 584 -- .../site-packages/pip/_vendor/requests/api.py | 157 - .../pip/_vendor/requests/auth.py | 315 - .../pip/_vendor/requests/certs.py | 24 - .../pip/_vendor/requests/compat.py | 67 - .../pip/_vendor/requests/cookies.py | 561 -- .../pip/_vendor/requests/exceptions.py | 141 - .../pip/_vendor/requests/help.py | 131 - .../pip/_vendor/requests/hooks.py | 33 - .../pip/_vendor/requests/models.py | 1034 -- .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 831 -- .../pip/_vendor/requests/status_codes.py | 128 - .../pip/_vendor/requests/structures.py | 99 - .../pip/_vendor/requests/utils.py | 1086 --- .../pip/_vendor/resolvelib/__init__.py | 26 - .../__pycache__/__init__.cpython-311.pyc | Bin 784 -> 0 bytes .../__pycache__/providers.cpython-311.pyc | Bin 7103 -> 0 bytes .../__pycache__/reporters.cpython-311.pyc | Bin 2833 -> 0 bytes .../__pycache__/resolvers.cpython-311.pyc | Bin 25279 -> 0 bytes .../__pycache__/structs.cpython-311.pyc | Bin 11361 -> 0 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 239 -> 0 bytes .../collections_abc.cpython-311.pyc | Bin 514 -> 0 bytes .../resolvelib/compat/collections_abc.py | 6 - .../pip/_vendor/resolvelib/providers.py | 133 - .../pip/_vendor/resolvelib/reporters.py | 43 - .../pip/_vendor/resolvelib/resolvers.py | 482 - .../pip/_vendor/resolvelib/structs.py | 165 - .../pip/_vendor/rich/__init__.py | 176 - .../pip/_vendor/rich/__main__.py | 282 - .../rich/__pycache__/__init__.cpython-311.pyc | Bin 7388 -> 0 bytes .../rich/__pycache__/__main__.cpython-311.pyc | Bin 11776 -> 0 bytes .../__pycache__/_cell_widths.cpython-311.pyc | Bin 7866 -> 0 bytes .../__pycache__/_emoji_codes.cpython-311.pyc | Bin 208553 -> 0 bytes .../_emoji_replace.cpython-311.pyc | Bin 1965 -> 0 bytes .../_export_format.cpython-311.pyc | Bin 2370 -> 0 bytes .../__pycache__/_extension.cpython-311.pyc | Bin 666 -> 0 bytes .../rich/__pycache__/_inspect.cpython-311.pyc | Bin 14218 -> 0 bytes .../__pycache__/_log_render.cpython-311.pyc | Bin 4800 -> 0 bytes .../rich/__pycache__/_loop.cpython-311.pyc | Bin 2146 -> 0 bytes .../__pycache__/_palettes.cpython-311.pyc | Bin 5282 -> 0 bytes .../rich/__pycache__/_pick.cpython-311.pyc | Bin 827 -> 0 bytes .../rich/__pycache__/_ratio.cpython-311.pyc | Bin 7965 -> 0 bytes .../__pycache__/_spinners.cpython-311.pyc | Bin 13715 -> 0 bytes .../rich/__pycache__/_stack.cpython-311.pyc | Bin 1161 -> 0 bytes .../rich/__pycache__/_timer.cpython-311.pyc | Bin 1014 -> 0 bytes .../_win32_console.cpython-311.pyc | Bin 30202 -> 0 bytes .../rich/__pycache__/_windows.cpython-311.pyc | Bin 2861 -> 0 bytes .../_windows_renderer.cpython-311.pyc | Bin 4052 -> 0 bytes .../rich/__pycache__/_wrap.cpython-311.pyc | Bin 2817 -> 0 bytes .../rich/__pycache__/abc.cpython-311.pyc | Bin 1958 -> 0 bytes .../rich/__pycache__/align.cpython-311.pyc | Bin 13507 -> 0 bytes .../rich/__pycache__/ansi.cpython-311.pyc | Bin 10484 -> 0 bytes .../rich/__pycache__/bar.cpython-311.pyc | Bin 4580 -> 0 bytes .../rich/__pycache__/box.cpython-311.pyc | Bin 13022 -> 0 bytes .../rich/__pycache__/cells.cpython-311.pyc | Bin 6472 -> 0 bytes .../rich/__pycache__/color.cpython-311.pyc | Bin 27414 -> 0 bytes .../__pycache__/color_triplet.cpython-311.pyc | Bin 1906 -> 0 bytes .../rich/__pycache__/columns.cpython-311.pyc | Bin 10677 -> 0 bytes .../rich/__pycache__/console.cpython-311.pyc | Bin 121296 -> 0 bytes .../__pycache__/constrain.cpython-311.pyc | Bin 2498 -> 0 bytes .../__pycache__/containers.cpython-311.pyc | Bin 10839 -> 0 bytes .../rich/__pycache__/control.cpython-311.pyc | Bin 11930 -> 0 bytes .../default_styles.cpython-311.pyc | Bin 12530 -> 0 bytes .../rich/__pycache__/diagnose.cpython-311.pyc | Bin 1853 -> 0 bytes .../rich/__pycache__/emoji.cpython-311.pyc | Bin 4831 -> 0 bytes .../rich/__pycache__/errors.cpython-311.pyc | Bin 2362 -> 0 bytes .../__pycache__/file_proxy.cpython-311.pyc | Bin 3810 -> 0 bytes .../rich/__pycache__/filesize.cpython-311.pyc | Bin 3333 -> 0 bytes .../__pycache__/highlighter.cpython-311.pyc | Bin 11021 -> 0 bytes .../rich/__pycache__/json.cpython-311.pyc | Bin 6714 -> 0 bytes .../rich/__pycache__/jupyter.cpython-311.pyc | Bin 6437 -> 0 bytes .../rich/__pycache__/layout.cpython-311.pyc | Bin 23416 -> 0 bytes .../rich/__pycache__/live.cpython-311.pyc | Bin 21165 -> 0 bytes .../__pycache__/live_render.cpython-311.pyc | Bin 5178 -> 0 bytes .../rich/__pycache__/logging.cpython-311.pyc | Bin 14267 -> 0 bytes .../rich/__pycache__/markup.cpython-311.pyc | Bin 10471 -> 0 bytes .../rich/__pycache__/measure.cpython-311.pyc | Bin 7304 -> 0 bytes .../rich/__pycache__/padding.cpython-311.pyc | Bin 7520 -> 0 bytes .../rich/__pycache__/pager.cpython-311.pyc | Bin 2278 -> 0 bytes .../rich/__pycache__/palette.cpython-311.pyc | Bin 6011 -> 0 bytes .../rich/__pycache__/panel.cpython-311.pyc | Bin 11192 -> 0 bytes .../rich/__pycache__/pretty.cpython-311.pyc | Bin 43870 -> 0 bytes .../rich/__pycache__/progress.cpython-311.pyc | Bin 82533 -> 0 bytes .../__pycache__/progress_bar.cpython-311.pyc | Bin 11041 -> 0 bytes .../rich/__pycache__/prompt.cpython-311.pyc | Bin 16411 -> 0 bytes .../rich/__pycache__/protocol.cpython-311.pyc | Bin 2129 -> 0 bytes .../rich/__pycache__/region.cpython-311.pyc | Bin 692 -> 0 bytes .../rich/__pycache__/repr.cpython-311.pyc | Bin 7713 -> 0 bytes .../rich/__pycache__/rule.cpython-311.pyc | Bin 7730 -> 0 bytes .../rich/__pycache__/scope.cpython-311.pyc | Bin 4383 -> 0 bytes .../rich/__pycache__/screen.cpython-311.pyc | Bin 2807 -> 0 bytes .../rich/__pycache__/segment.cpython-311.pyc | Bin 31574 -> 0 bytes .../rich/__pycache__/spinner.cpython-311.pyc | Bin 6923 -> 0 bytes .../rich/__pycache__/status.cpython-311.pyc | Bin 6791 -> 0 bytes .../rich/__pycache__/style.cpython-311.pyc | Bin 34172 -> 0 bytes .../rich/__pycache__/styled.cpython-311.pyc | Bin 2472 -> 0 bytes .../rich/__pycache__/syntax.cpython-311.pyc | Bin 42000 -> 0 bytes .../rich/__pycache__/table.cpython-311.pyc | Bin 48527 -> 0 bytes .../terminal_theme.cpython-311.pyc | Bin 3738 -> 0 bytes .../rich/__pycache__/text.cpython-311.pyc | Bin 64124 -> 0 bytes .../rich/__pycache__/theme.cpython-311.pyc | Bin 7176 -> 0 bytes .../rich/__pycache__/themes.cpython-311.pyc | Bin 388 -> 0 bytes .../__pycache__/traceback.cpython-311.pyc | Bin 31755 -> 0 bytes .../rich/__pycache__/tree.cpython-311.pyc | Bin 12559 -> 0 bytes .../pip/_vendor/rich/_cell_widths.py | 451 - .../pip/_vendor/rich/_emoji_codes.py | 3610 ------- .../pip/_vendor/rich/_emoji_replace.py | 32 - .../pip/_vendor/rich/_export_format.py | 78 - .../pip/_vendor/rich/_extension.py | 10 - .../pip/_vendor/rich/_inspect.py | 270 - .../pip/_vendor/rich/_log_render.py | 94 - .../site-packages/pip/_vendor/rich/_loop.py | 43 - .../pip/_vendor/rich/_palettes.py | 309 - .../site-packages/pip/_vendor/rich/_pick.py | 17 - .../site-packages/pip/_vendor/rich/_ratio.py | 160 - .../pip/_vendor/rich/_spinners.py | 482 - .../site-packages/pip/_vendor/rich/_stack.py | 16 - .../site-packages/pip/_vendor/rich/_timer.py | 19 - .../pip/_vendor/rich/_win32_console.py | 662 -- .../pip/_vendor/rich/_windows.py | 72 - .../pip/_vendor/rich/_windows_renderer.py | 56 - .../site-packages/pip/_vendor/rich/_wrap.py | 56 - .../site-packages/pip/_vendor/rich/abc.py | 33 - .../site-packages/pip/_vendor/rich/align.py | 311 - .../site-packages/pip/_vendor/rich/ansi.py | 237 - .../site-packages/pip/_vendor/rich/bar.py | 94 - .../site-packages/pip/_vendor/rich/box.py | 517 - .../site-packages/pip/_vendor/rich/cells.py | 154 - .../site-packages/pip/_vendor/rich/color.py | 615 -- .../pip/_vendor/rich/color_triplet.py | 38 - .../site-packages/pip/_vendor/rich/columns.py | 187 - .../site-packages/pip/_vendor/rich/console.py | 2572 ----- .../pip/_vendor/rich/constrain.py | 37 - .../pip/_vendor/rich/containers.py | 167 - .../site-packages/pip/_vendor/rich/control.py | 225 - .../pip/_vendor/rich/default_styles.py | 188 - .../pip/_vendor/rich/diagnose.py | 37 - .../site-packages/pip/_vendor/rich/emoji.py | 96 - .../site-packages/pip/_vendor/rich/errors.py | 34 - .../pip/_vendor/rich/file_proxy.py | 54 - .../pip/_vendor/rich/filesize.py | 89 - .../pip/_vendor/rich/highlighter.py | 232 - .../site-packages/pip/_vendor/rich/json.py | 140 - .../site-packages/pip/_vendor/rich/jupyter.py | 101 - .../site-packages/pip/_vendor/rich/layout.py | 445 - .../site-packages/pip/_vendor/rich/live.py | 373 - .../pip/_vendor/rich/live_render.py | 113 - .../site-packages/pip/_vendor/rich/logging.py | 280 - .../site-packages/pip/_vendor/rich/markup.py | 246 - .../site-packages/pip/_vendor/rich/measure.py | 151 - .../site-packages/pip/_vendor/rich/padding.py | 141 - .../site-packages/pip/_vendor/rich/pager.py | 34 - .../site-packages/pip/_vendor/rich/palette.py | 100 - .../site-packages/pip/_vendor/rich/panel.py | 251 - .../site-packages/pip/_vendor/rich/pretty.py | 1010 -- .../pip/_vendor/rich/progress.py | 1703 ---- .../pip/_vendor/rich/progress_bar.py | 224 - .../site-packages/pip/_vendor/rich/prompt.py | 376 - .../pip/_vendor/rich/protocol.py | 42 - .../site-packages/pip/_vendor/rich/region.py | 10 - .../site-packages/pip/_vendor/rich/repr.py | 152 - .../site-packages/pip/_vendor/rich/rule.py | 134 - .../site-packages/pip/_vendor/rich/scope.py | 86 - .../site-packages/pip/_vendor/rich/screen.py | 54 - .../site-packages/pip/_vendor/rich/segment.py | 739 -- .../site-packages/pip/_vendor/rich/spinner.py | 136 - .../site-packages/pip/_vendor/rich/status.py | 132 - .../site-packages/pip/_vendor/rich/style.py | 771 -- .../site-packages/pip/_vendor/rich/styled.py | 42 - .../site-packages/pip/_vendor/rich/syntax.py | 934 -- .../site-packages/pip/_vendor/rich/table.py | 996 -- .../pip/_vendor/rich/terminal_theme.py | 153 - .../site-packages/pip/_vendor/rich/text.py | 1286 --- .../site-packages/pip/_vendor/rich/theme.py | 112 - .../site-packages/pip/_vendor/rich/themes.py | 5 - .../pip/_vendor/rich/traceback.py | 679 -- .../site-packages/pip/_vendor/rich/tree.py | 251 - .../site-packages/pip/_vendor/six.py | 998 -- .../pip/_vendor/tenacity/__init__.py | 519 - .../__pycache__/__init__.cpython-311.pyc | Bin 27826 -> 0 bytes .../__pycache__/_asyncio.cpython-311.pyc | Bin 4833 -> 0 bytes .../__pycache__/_utils.cpython-311.pyc | Bin 2098 -> 0 bytes .../__pycache__/after.cpython-311.pyc | Bin 1725 -> 0 bytes .../__pycache__/before.cpython-311.pyc | Bin 1559 -> 0 bytes .../__pycache__/before_sleep.cpython-311.pyc | Bin 2136 -> 0 bytes .../tenacity/__pycache__/nap.cpython-311.pyc | Bin 1598 -> 0 bytes .../__pycache__/retry.cpython-311.pyc | Bin 15072 -> 0 bytes .../tenacity/__pycache__/stop.cpython-311.pyc | Bin 5926 -> 0 bytes .../__pycache__/tornadoweb.cpython-311.pyc | Bin 2944 -> 0 bytes .../tenacity/__pycache__/wait.cpython-311.pyc | Bin 13398 -> 0 bytes .../pip/_vendor/tenacity/_asyncio.py | 92 - .../pip/_vendor/tenacity/_utils.py | 68 - .../pip/_vendor/tenacity/after.py | 46 - .../pip/_vendor/tenacity/before.py | 41 - .../pip/_vendor/tenacity/before_sleep.py | 58 - .../site-packages/pip/_vendor/tenacity/nap.py | 43 - .../pip/_vendor/tenacity/retry.py | 240 - .../pip/_vendor/tenacity/stop.py | 96 - .../pip/_vendor/tenacity/tornadoweb.py | 59 - .../pip/_vendor/tenacity/wait.py | 232 - .../pip/_vendor/tomli/__init__.py | 11 - .../__pycache__/__init__.cpython-311.pyc | Bin 443 -> 0 bytes .../tomli/__pycache__/_parser.cpython-311.pyc | Bin 30882 -> 0 bytes .../tomli/__pycache__/_re.cpython-311.pyc | Bin 4522 -> 0 bytes .../tomli/__pycache__/_types.cpython-311.pyc | Bin 435 -> 0 bytes .../pip/_vendor/tomli/_parser.py | 691 -- .../site-packages/pip/_vendor/tomli/_re.py | 107 - .../site-packages/pip/_vendor/tomli/_types.py | 10 - .../pip/_vendor/typing_extensions.py | 2209 ----- .../pip/_vendor/urllib3/__init__.py | 102 - .../__pycache__/__init__.cpython-311.pyc | Bin 3741 -> 0 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 18329 -> 0 bytes .../__pycache__/_version.cpython-311.pyc | Bin 251 -> 0 bytes .../__pycache__/connection.cpython-311.pyc | Bin 21925 -> 0 bytes .../connectionpool.cpython-311.pyc | Bin 37666 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 16155 -> 0 bytes .../__pycache__/fields.cpython-311.pyc | Bin 11448 -> 0 bytes .../__pycache__/filepost.cpython-311.pyc | Bin 4529 -> 0 bytes .../__pycache__/poolmanager.cpython-311.pyc | Bin 21852 -> 0 bytes .../__pycache__/request.cpython-311.pyc | Bin 6692 -> 0 bytes .../__pycache__/response.cpython-311.pyc | Bin 36007 -> 0 bytes .../pip/_vendor/urllib3/_collections.py | 337 - .../pip/_vendor/urllib3/_version.py | 2 - .../pip/_vendor/urllib3/connection.py | 567 -- .../pip/_vendor/urllib3/connectionpool.py | 1110 --- .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 237 -> 0 bytes .../_appengine_environ.cpython-311.pyc | Bin 1976 -> 0 bytes .../__pycache__/appengine.cpython-311.pyc | Bin 12171 -> 0 bytes .../__pycache__/ntlmpool.cpython-311.pyc | Bin 6335 -> 0 bytes .../__pycache__/pyopenssl.cpython-311.pyc | Bin 25673 -> 0 bytes .../securetransport.cpython-311.pyc | Bin 36876 -> 0 bytes .../contrib/__pycache__/socks.cpython-311.pyc | Bin 8121 -> 0 bytes .../urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 254 -> 0 bytes .../__pycache__/bindings.cpython-311.pyc | Bin 17001 -> 0 bytes .../__pycache__/low_level.cpython-311.pyc | Bin 15638 -> 0 bytes .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - .../pip/_vendor/urllib3/contrib/appengine.py | 314 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 519 - .../urllib3/contrib/securetransport.py | 921 -- .../pip/_vendor/urllib3/contrib/socks.py | 216 - .../pip/_vendor/urllib3/exceptions.py | 323 - .../pip/_vendor/urllib3/fields.py | 274 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 238 -> 0 bytes .../packages/__pycache__/six.cpython-311.pyc | Bin 46480 -> 0 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 248 -> 0 bytes .../__pycache__/makefile.cpython-311.pyc | Bin 1995 -> 0 bytes .../urllib3/packages/backports/makefile.py | 51 - .../pip/_vendor/urllib3/packages/six.py | 1076 --- .../pip/_vendor/urllib3/poolmanager.py | 537 - .../pip/_vendor/urllib3/request.py | 170 - .../pip/_vendor/urllib3/response.py | 866 -- .../pip/_vendor/urllib3/util/__init__.py | 49 - .../util/__pycache__/__init__.cpython-311.pyc | Bin 1440 -> 0 bytes .../__pycache__/connection.cpython-311.pyc | Bin 5167 -> 0 bytes .../util/__pycache__/proxy.cpython-311.pyc | Bin 1749 -> 0 bytes .../util/__pycache__/queue.cpython-311.pyc | Bin 1532 -> 0 bytes .../util/__pycache__/request.cpython-311.pyc | Bin 4652 -> 0 bytes .../util/__pycache__/response.cpython-311.pyc | Bin 3521 -> 0 bytes .../util/__pycache__/retry.cpython-311.pyc | Bin 22773 -> 0 bytes .../util/__pycache__/ssl_.cpython-311.pyc | Bin 16852 -> 0 bytes .../ssl_match_hostname.cpython-311.pyc | Bin 5831 -> 0 bytes .../__pycache__/ssltransport.cpython-311.pyc | Bin 11660 -> 0 bytes .../util/__pycache__/timeout.cpython-311.pyc | Bin 11068 -> 0 bytes .../util/__pycache__/url.cpython-311.pyc | Bin 17581 -> 0 bytes .../util/__pycache__/wait.cpython-311.pyc | Bin 5034 -> 0 bytes .../pip/_vendor/urllib3/util/connection.py | 149 - .../pip/_vendor/urllib3/util/proxy.py | 57 - .../pip/_vendor/urllib3/util/queue.py | 22 - .../pip/_vendor/urllib3/util/request.py | 137 - .../pip/_vendor/urllib3/util/response.py | 107 - .../pip/_vendor/urllib3/util/retry.py | 620 -- .../pip/_vendor/urllib3/util/ssl_.py | 495 - .../urllib3/util/ssl_match_hostname.py | 159 - .../pip/_vendor/urllib3/util/ssltransport.py | 221 - .../pip/_vendor/urllib3/util/timeout.py | 268 - .../pip/_vendor/urllib3/util/url.py | 435 - .../pip/_vendor/urllib3/util/wait.py | 152 - .../site-packages/pip/_vendor/vendor.txt | 23 - .../pip/_vendor/webencodings/__init__.py | 342 - .../__pycache__/__init__.cpython-311.pyc | Bin 12914 -> 0 bytes .../__pycache__/labels.cpython-311.pyc | Bin 7314 -> 0 bytes .../__pycache__/mklabels.cpython-311.pyc | Bin 3242 -> 0 bytes .../__pycache__/tests.cpython-311.pyc | Bin 11220 -> 0 bytes .../x_user_defined.cpython-311.pyc | Bin 3594 -> 0 bytes .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../lib/python3.11/site-packages/pip/py.typed | 4 - .../site-packages/pkg_resources/__init__.py | 3296 ------- .../__pycache__/__init__.cpython-311.pyc | Bin 159603 -> 0 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 231 -> 0 bytes .../__pycache__/appdirs.cpython-311.pyc | Bin 29479 -> 0 bytes .../_vendor/__pycache__/zipp.cpython-311.pyc | Bin 16024 -> 0 bytes .../pkg_resources/_vendor/appdirs.py | 608 -- .../_vendor/importlib_resources/__init__.py | 36 - .../__pycache__/__init__.cpython-311.pyc | Bin 865 -> 0 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 10782 -> 0 bytes .../__pycache__/_common.cpython-311.pyc | Bin 4309 -> 0 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 5594 -> 0 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 1427 -> 0 bytes .../__pycache__/_legacy.cpython-311.pyc | Bin 6525 -> 0 bytes .../__pycache__/abc.cpython-311.pyc | Bin 7526 -> 0 bytes .../__pycache__/readers.cpython-311.pyc | Bin 8400 -> 0 bytes .../__pycache__/simple.cpython-311.pyc | Bin 6422 -> 0 bytes .../_vendor/importlib_resources/_adapters.py | 170 - .../_vendor/importlib_resources/_common.py | 104 - .../_vendor/importlib_resources/_compat.py | 98 - .../_vendor/importlib_resources/_itertools.py | 35 - .../_vendor/importlib_resources/_legacy.py | 121 - .../_vendor/importlib_resources/abc.py | 137 - .../_vendor/importlib_resources/readers.py | 122 - .../_vendor/importlib_resources/simple.py | 116 - .../pkg_resources/_vendor/jaraco/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 238 -> 0 bytes .../__pycache__/context.cpython-311.pyc | Bin 9461 -> 0 bytes .../__pycache__/functools.cpython-311.pyc | Bin 20324 -> 0 bytes .../pkg_resources/_vendor/jaraco/context.py | 213 - .../pkg_resources/_vendor/jaraco/functools.py | 525 - .../_vendor/jaraco/text/__init__.py | 599 -- .../text/__pycache__/__init__.cpython-311.pyc | Bin 26641 -> 0 bytes .../_vendor/more_itertools/__init__.py | 4 - .../__pycache__/__init__.cpython-311.pyc | Bin 332 -> 0 bytes .../__pycache__/more.cpython-311.pyc | Bin 167993 -> 0 bytes .../__pycache__/recipes.cpython-311.pyc | Bin 26984 -> 0 bytes .../_vendor/more_itertools/more.py | 4316 --------- .../_vendor/more_itertools/recipes.py | 698 -- .../_vendor/packaging/__about__.py | 26 - .../_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-311.pyc | Bin 682 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 603 -> 0 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 13269 -> 0 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 8037 -> 0 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 3725 -> 0 bytes .../__pycache__/markers.cpython-311.pyc | Bin 16574 -> 0 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 7689 -> 0 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 34403 -> 0 bytes .../__pycache__/tags.cpython-311.pyc | Bin 21388 -> 0 bytes .../__pycache__/utils.cpython-311.pyc | Bin 6723 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 21915 -> 0 bytes .../_vendor/packaging/_manylinux.py | 301 - .../_vendor/packaging/_musllinux.py | 136 - .../_vendor/packaging/_structures.py | 61 - .../_vendor/packaging/markers.py | 304 - .../_vendor/packaging/requirements.py | 146 - .../_vendor/packaging/specifiers.py | 802 -- .../pkg_resources/_vendor/packaging/tags.py | 487 - .../pkg_resources/_vendor/packaging/utils.py | 136 - .../_vendor/packaging/version.py | 504 - .../_vendor/pyparsing/__init__.py | 331 - .../__pycache__/__init__.cpython-311.pyc | Bin 8376 -> 0 bytes .../__pycache__/actions.cpython-311.pyc | Bin 8502 -> 0 bytes .../__pycache__/common.cpython-311.pyc | Bin 14824 -> 0 bytes .../__pycache__/core.cpython-311.pyc | Bin 277676 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 12966 -> 0 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 53667 -> 0 bytes .../__pycache__/results.cpython-311.pyc | Bin 36350 -> 0 bytes .../__pycache__/testing.cpython-311.pyc | Bin 19546 -> 0 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 15404 -> 0 bytes .../__pycache__/util.cpython-311.pyc | Bin 14303 -> 0 bytes .../_vendor/pyparsing/actions.py | 207 - .../pkg_resources/_vendor/pyparsing/common.py | 424 - .../pkg_resources/_vendor/pyparsing/core.py | 5814 ----------- .../_vendor/pyparsing/diagram/__init__.py | 642 -- .../__pycache__/__init__.cpython-311.pyc | Bin 28039 -> 0 bytes .../_vendor/pyparsing/exceptions.py | 267 - .../_vendor/pyparsing/helpers.py | 1088 --- .../_vendor/pyparsing/results.py | 760 -- .../_vendor/pyparsing/testing.py | 331 - .../_vendor/pyparsing/unicode.py | 352 - .../pkg_resources/_vendor/pyparsing/util.py | 235 - .../pkg_resources/_vendor/zipp.py | 329 - .../pkg_resources/extern/__init__.py | 76 - .../__pycache__/__init__.cpython-311.pyc | Bin 4350 -> 0 bytes .../setuptools-65.5.0.dist-info/INSTALLER | 1 - .../setuptools-65.5.0.dist-info/LICENSE | 19 - .../setuptools-65.5.0.dist-info/METADATA | 144 - .../setuptools-65.5.0.dist-info/RECORD | 466 - .../setuptools-65.5.0.dist-info/REQUESTED | 0 .../setuptools-65.5.0.dist-info/WHEEL | 5 - .../entry_points.txt | 57 - .../setuptools-65.5.0.dist-info/top_level.txt | 3 - .../site-packages/setuptools/__init__.py | 247 - .../__pycache__/__init__.cpython-311.pyc | Bin 12940 -> 0 bytes .../_deprecation_warning.cpython-311.pyc | Bin 675 -> 0 bytes .../__pycache__/_entry_points.cpython-311.pyc | Bin 4824 -> 0 bytes .../__pycache__/_imp.cpython-311.pyc | Bin 3688 -> 0 bytes .../__pycache__/_importlib.cpython-311.pyc | Bin 1988 -> 0 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 1187 -> 0 bytes .../__pycache__/_path.cpython-311.pyc | Bin 1508 -> 0 bytes .../__pycache__/_reqs.cpython-311.pyc | Bin 1169 -> 0 bytes .../__pycache__/archive_util.cpython-311.pyc | Bin 10197 -> 0 bytes .../__pycache__/build_meta.cpython-311.pyc | Bin 28130 -> 0 bytes .../__pycache__/dep_util.cpython-311.pyc | Bin 1323 -> 0 bytes .../__pycache__/depends.cpython-311.pyc | Bin 8008 -> 0 bytes .../__pycache__/discovery.cpython-311.pyc | Bin 31152 -> 0 bytes .../__pycache__/dist.cpython-311.pyc | Bin 64090 -> 0 bytes .../__pycache__/errors.cpython-311.pyc | Bin 2984 -> 0 bytes .../__pycache__/extension.cpython-311.pyc | Bin 6840 -> 0 bytes .../__pycache__/glob.cpython-311.pyc | Bin 6597 -> 0 bytes .../__pycache__/installer.cpython-311.pyc | Bin 5647 -> 0 bytes .../__pycache__/launch.cpython-311.pyc | Bin 1563 -> 0 bytes .../__pycache__/logging.cpython-311.pyc | Bin 2081 -> 0 bytes .../__pycache__/monkey.cpython-311.pyc | Bin 7040 -> 0 bytes .../__pycache__/msvc.cpython-311.pyc | Bin 64213 -> 0 bytes .../__pycache__/namespaces.cpython-311.pyc | Bin 5695 -> 0 bytes .../__pycache__/package_index.cpython-311.pyc | Bin 60790 -> 0 bytes .../__pycache__/py34compat.cpython-311.pyc | Bin 750 -> 0 bytes .../__pycache__/sandbox.cpython-311.pyc | Bin 27366 -> 0 bytes .../__pycache__/unicode_utils.cpython-311.pyc | Bin 1852 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 470 -> 0 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 15526 -> 0 bytes .../windows_support.cpython-311.pyc | Bin 1467 -> 0 bytes .../setuptools/_deprecation_warning.py | 7 - .../setuptools/_distutils/__init__.py | 24 - .../__pycache__/__init__.cpython-311.pyc | Bin 805 -> 0 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 2955 -> 0 bytes .../__pycache__/_functools.cpython-311.pyc | Bin 896 -> 0 bytes .../__pycache__/_macos_compat.cpython-311.pyc | Bin 605 -> 0 bytes .../__pycache__/_msvccompiler.cpython-311.pyc | Bin 25140 -> 0 bytes .../__pycache__/archive_util.cpython-311.pyc | Bin 10692 -> 0 bytes .../__pycache__/bcppcompiler.cpython-311.pyc | Bin 13518 -> 0 bytes .../__pycache__/ccompiler.cpython-311.pyc | Bin 46417 -> 0 bytes .../__pycache__/cmd.cpython-311.pyc | Bin 18931 -> 0 bytes .../__pycache__/config.cpython-311.pyc | Bin 6080 -> 0 bytes .../__pycache__/core.cpython-311.pyc | Bin 10024 -> 0 bytes .../cygwinccompiler.cpython-311.pyc | Bin 13648 -> 0 bytes .../__pycache__/debug.cpython-311.pyc | Bin 357 -> 0 bytes .../__pycache__/dep_util.cpython-311.pyc | Bin 4024 -> 0 bytes .../__pycache__/dir_util.cpython-311.pyc | Bin 10399 -> 0 bytes .../__pycache__/dist.cpython-311.pyc | Bin 55446 -> 0 bytes .../__pycache__/errors.cpython-311.pyc | Bin 6830 -> 0 bytes .../__pycache__/extension.cpython-311.pyc | Bin 10211 -> 0 bytes .../__pycache__/fancy_getopt.cpython-311.pyc | Bin 17275 -> 0 bytes .../__pycache__/file_util.cpython-311.pyc | Bin 10719 -> 0 bytes .../__pycache__/filelist.cpython-311.pyc | Bin 17665 -> 0 bytes .../__pycache__/log.cpython-311.pyc | Bin 3965 -> 0 bytes .../__pycache__/msvc9compiler.cpython-311.pyc | Bin 33623 -> 0 bytes .../__pycache__/msvccompiler.cpython-311.pyc | Bin 27025 -> 0 bytes .../__pycache__/py38compat.cpython-311.pyc | Bin 657 -> 0 bytes .../__pycache__/py39compat.cpython-311.pyc | Bin 1025 -> 0 bytes .../__pycache__/spawn.cpython-311.pyc | Bin 4494 -> 0 bytes .../__pycache__/sysconfig.cpython-311.pyc | Bin 22021 -> 0 bytes .../__pycache__/text_file.cpython-311.pyc | Bin 11306 -> 0 bytes .../__pycache__/unixccompiler.cpython-311.pyc | Bin 16562 -> 0 bytes .../__pycache__/util.cpython-311.pyc | Bin 20916 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 11382 -> 0 bytes .../versionpredicate.cpython-311.pyc | Bin 7782 -> 0 bytes .../setuptools/_distutils/_collections.py | 56 - .../setuptools/_distutils/_functools.py | 20 - .../setuptools/_distutils/_macos_compat.py | 12 - .../setuptools/_distutils/_msvccompiler.py | 572 -- .../setuptools/_distutils/archive_util.py | 280 - .../setuptools/_distutils/bcppcompiler.py | 408 - .../setuptools/_distutils/ccompiler.py | 1220 --- .../setuptools/_distutils/cmd.py | 436 - .../setuptools/_distutils/command/__init__.py | 25 - .../__pycache__/__init__.cpython-311.pyc | Bin 577 -> 0 bytes .../_framework_compat.cpython-311.pyc | Bin 2818 -> 0 bytes .../command/__pycache__/bdist.cpython-311.pyc | Bin 6071 -> 0 bytes .../__pycache__/bdist_dumb.cpython-311.pyc | Bin 5796 -> 0 bytes .../__pycache__/bdist_rpm.cpython-311.pyc | Bin 23330 -> 0 bytes .../command/__pycache__/build.cpython-311.pyc | Bin 6126 -> 0 bytes .../__pycache__/build_clib.cpython-311.pyc | Bin 7829 -> 0 bytes .../__pycache__/build_ext.cpython-311.pyc | Bin 30371 -> 0 bytes .../__pycache__/build_py.cpython-311.pyc | Bin 17647 -> 0 bytes .../__pycache__/build_scripts.cpython-311.pyc | Bin 7898 -> 0 bytes .../command/__pycache__/check.cpython-311.pyc | Bin 7560 -> 0 bytes .../command/__pycache__/clean.cpython-311.pyc | Bin 3228 -> 0 bytes .../__pycache__/config.cpython-311.pyc | Bin 16291 -> 0 bytes .../__pycache__/install.cpython-311.pyc | Bin 29479 -> 0 bytes .../__pycache__/install_data.cpython-311.pyc | Bin 3813 -> 0 bytes .../install_egg_info.cpython-311.pyc | Bin 5239 -> 0 bytes .../install_headers.cpython-311.pyc | Bin 2396 -> 0 bytes .../__pycache__/install_lib.cpython-311.pyc | Bin 8728 -> 0 bytes .../install_scripts.cpython-311.pyc | Bin 3193 -> 0 bytes .../__pycache__/py37compat.cpython-311.pyc | Bin 1574 -> 0 bytes .../__pycache__/register.cpython-311.pyc | Bin 15560 -> 0 bytes .../command/__pycache__/sdist.cpython-311.pyc | Bin 23868 -> 0 bytes .../__pycache__/upload.cpython-311.pyc | Bin 10509 -> 0 bytes .../_distutils/command/_framework_compat.py | 55 - .../setuptools/_distutils/command/bdist.py | 157 - .../_distutils/command/bdist_dumb.py | 144 - .../_distutils/command/bdist_rpm.py | 615 -- .../setuptools/_distutils/command/build.py | 153 - .../_distutils/command/build_clib.py | 208 - .../_distutils/command/build_ext.py | 787 -- .../setuptools/_distutils/command/build_py.py | 407 - .../_distutils/command/build_scripts.py | 173 - .../setuptools/_distutils/command/check.py | 151 - .../setuptools/_distutils/command/clean.py | 76 - .../setuptools/_distutils/command/config.py | 377 - .../setuptools/_distutils/command/install.py | 814 -- .../_distutils/command/install_data.py | 84 - .../_distutils/command/install_egg_info.py | 91 - .../_distutils/command/install_headers.py | 45 - .../_distutils/command/install_lib.py | 238 - .../_distutils/command/install_scripts.py | 61 - .../_distutils/command/py37compat.py | 31 - .../setuptools/_distutils/command/register.py | 319 - .../setuptools/_distutils/command/sdist.py | 531 - .../setuptools/_distutils/command/upload.py | 205 - .../setuptools/_distutils/config.py | 139 - .../setuptools/_distutils/core.py | 291 - .../setuptools/_distutils/cygwinccompiler.py | 364 - .../setuptools/_distutils/debug.py | 5 - .../setuptools/_distutils/dep_util.py | 96 - .../setuptools/_distutils/dir_util.py | 243 - .../setuptools/_distutils/dist.py | 1286 --- .../setuptools/_distutils/errors.py | 127 - .../setuptools/_distutils/extension.py | 248 - .../setuptools/_distutils/fancy_getopt.py | 470 - .../setuptools/_distutils/file_util.py | 249 - .../setuptools/_distutils/filelist.py | 371 - .../setuptools/_distutils/log.py | 80 - .../setuptools/_distutils/msvc9compiler.py | 832 -- .../setuptools/_distutils/msvccompiler.py | 695 -- .../setuptools/_distutils/py38compat.py | 8 - .../setuptools/_distutils/py39compat.py | 22 - .../setuptools/_distutils/spawn.py | 109 - .../setuptools/_distutils/sysconfig.py | 558 -- .../setuptools/_distutils/text_file.py | 287 - .../setuptools/_distutils/unixccompiler.py | 401 - .../setuptools/_distutils/util.py | 513 - .../setuptools/_distutils/version.py | 358 - .../setuptools/_distutils/versionpredicate.py | 175 - .../site-packages/setuptools/_entry_points.py | 86 - .../site-packages/setuptools/_imp.py | 82 - .../site-packages/setuptools/_importlib.py | 47 - .../site-packages/setuptools/_itertools.py | 23 - .../site-packages/setuptools/_path.py | 29 - .../site-packages/setuptools/_reqs.py | 19 - .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 228 -> 0 bytes .../__pycache__/ordered_set.cpython-311.pyc | Bin 21814 -> 0 bytes .../typing_extensions.cpython-311.pyc | Bin 107645 -> 0 bytes .../_vendor/__pycache__/zipp.cpython-311.pyc | Bin 16021 -> 0 bytes .../_vendor/importlib_metadata/__init__.py | 1047 -- .../__pycache__/__init__.cpython-311.pyc | Bin 58267 -> 0 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 3880 -> 0 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 2227 -> 0 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 2749 -> 0 bytes .../__pycache__/_functools.cpython-311.pyc | Bin 3667 -> 0 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 2630 -> 0 bytes .../__pycache__/_meta.cpython-311.pyc | Bin 3034 -> 0 bytes .../__pycache__/_text.cpython-311.pyc | Bin 4425 -> 0 bytes .../_vendor/importlib_metadata/_adapters.py | 68 - .../importlib_metadata/_collections.py | 30 - .../_vendor/importlib_metadata/_compat.py | 71 - .../_vendor/importlib_metadata/_functools.py | 104 - .../_vendor/importlib_metadata/_itertools.py | 73 - .../_vendor/importlib_metadata/_meta.py | 48 - .../_vendor/importlib_metadata/_text.py | 99 - .../_vendor/importlib_resources/__init__.py | 36 - .../__pycache__/__init__.cpython-311.pyc | Bin 862 -> 0 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 10779 -> 0 bytes .../__pycache__/_common.cpython-311.pyc | Bin 4306 -> 0 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 5591 -> 0 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 1424 -> 0 bytes .../__pycache__/_legacy.cpython-311.pyc | Bin 6522 -> 0 bytes .../__pycache__/abc.cpython-311.pyc | Bin 7523 -> 0 bytes .../__pycache__/readers.cpython-311.pyc | Bin 8397 -> 0 bytes .../__pycache__/simple.cpython-311.pyc | Bin 6419 -> 0 bytes .../_vendor/importlib_resources/_adapters.py | 170 - .../_vendor/importlib_resources/_common.py | 104 - .../_vendor/importlib_resources/_compat.py | 98 - .../_vendor/importlib_resources/_itertools.py | 35 - .../_vendor/importlib_resources/_legacy.py | 121 - .../_vendor/importlib_resources/abc.py | 137 - .../_vendor/importlib_resources/readers.py | 122 - .../_vendor/importlib_resources/simple.py | 116 - .../setuptools/_vendor/jaraco/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 235 -> 0 bytes .../__pycache__/context.cpython-311.pyc | Bin 9458 -> 0 bytes .../__pycache__/functools.cpython-311.pyc | Bin 20315 -> 0 bytes .../setuptools/_vendor/jaraco/context.py | 213 - .../setuptools/_vendor/jaraco/functools.py | 525 - .../_vendor/jaraco/text/__init__.py | 599 -- .../text/__pycache__/__init__.cpython-311.pyc | Bin 26629 -> 0 bytes .../_vendor/more_itertools/__init__.py | 4 - .../__pycache__/__init__.cpython-311.pyc | Bin 328 -> 0 bytes .../__pycache__/more.cpython-311.pyc | Bin 149215 -> 0 bytes .../__pycache__/recipes.cpython-311.pyc | Bin 23797 -> 0 bytes .../setuptools/_vendor/more_itertools/more.py | 3824 -------- .../_vendor/more_itertools/recipes.py | 620 -- .../setuptools/_vendor/ordered_set.py | 488 - .../setuptools/_vendor/packaging/__about__.py | 26 - .../setuptools/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-311.pyc | Bin 679 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 600 -> 0 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 13266 -> 0 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 8034 -> 0 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 3722 -> 0 bytes .../__pycache__/markers.cpython-311.pyc | Bin 16568 -> 0 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 7683 -> 0 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 34400 -> 0 bytes .../__pycache__/tags.cpython-311.pyc | Bin 21385 -> 0 bytes .../__pycache__/utils.cpython-311.pyc | Bin 6720 -> 0 bytes .../__pycache__/version.cpython-311.pyc | Bin 21912 -> 0 bytes .../_vendor/packaging/_manylinux.py | 301 - .../_vendor/packaging/_musllinux.py | 136 - .../_vendor/packaging/_structures.py | 61 - .../setuptools/_vendor/packaging/markers.py | 304 - .../_vendor/packaging/requirements.py | 146 - .../_vendor/packaging/specifiers.py | 802 -- .../setuptools/_vendor/packaging/tags.py | 487 - .../setuptools/_vendor/packaging/utils.py | 136 - .../setuptools/_vendor/packaging/version.py | 504 - .../setuptools/_vendor/pyparsing/__init__.py | 331 - .../__pycache__/__init__.cpython-311.pyc | Bin 8373 -> 0 bytes .../__pycache__/actions.cpython-311.pyc | Bin 8499 -> 0 bytes .../__pycache__/common.cpython-311.pyc | Bin 14821 -> 0 bytes .../__pycache__/core.cpython-311.pyc | Bin 277673 -> 0 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 12963 -> 0 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 53664 -> 0 bytes .../__pycache__/results.cpython-311.pyc | Bin 36347 -> 0 bytes .../__pycache__/testing.cpython-311.pyc | Bin 19543 -> 0 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 15401 -> 0 bytes .../__pycache__/util.cpython-311.pyc | Bin 14300 -> 0 bytes .../setuptools/_vendor/pyparsing/actions.py | 207 - .../setuptools/_vendor/pyparsing/common.py | 424 - .../setuptools/_vendor/pyparsing/core.py | 5814 ----------- .../_vendor/pyparsing/diagram/__init__.py | 642 -- .../__pycache__/__init__.cpython-311.pyc | Bin 28036 -> 0 bytes .../_vendor/pyparsing/exceptions.py | 267 - .../setuptools/_vendor/pyparsing/helpers.py | 1088 --- .../setuptools/_vendor/pyparsing/results.py | 760 -- .../setuptools/_vendor/pyparsing/testing.py | 331 - .../setuptools/_vendor/pyparsing/unicode.py | 352 - .../setuptools/_vendor/pyparsing/util.py | 235 - .../setuptools/_vendor/tomli/__init__.py | 11 - .../__pycache__/__init__.cpython-311.pyc | Bin 450 -> 0 bytes .../tomli/__pycache__/_parser.cpython-311.pyc | Bin 30889 -> 0 bytes .../tomli/__pycache__/_re.cpython-311.pyc | Bin 4529 -> 0 bytes .../tomli/__pycache__/_types.cpython-311.pyc | Bin 442 -> 0 bytes .../setuptools/_vendor/tomli/_parser.py | 691 -- .../setuptools/_vendor/tomli/_re.py | 107 - .../setuptools/_vendor/tomli/_types.py | 10 - .../setuptools/_vendor/typing_extensions.py | 2296 ----- .../site-packages/setuptools/_vendor/zipp.py | 329 - .../site-packages/setuptools/archive_util.py | 213 - .../site-packages/setuptools/build_meta.py | 511 - .../setuptools/command/__init__.py | 12 - .../__pycache__/__init__.cpython-311.pyc | Bin 669 -> 0 bytes .../command/__pycache__/alias.cpython-311.pyc | Bin 3936 -> 0 bytes .../__pycache__/bdist_egg.cpython-311.pyc | Bin 25618 -> 0 bytes .../__pycache__/bdist_rpm.cpython-311.pyc | Bin 2224 -> 0 bytes .../command/__pycache__/build.cpython-311.pyc | Bin 7030 -> 0 bytes .../__pycache__/build_clib.cpython-311.pyc | Bin 4157 -> 0 bytes .../__pycache__/build_ext.cpython-311.pyc | Bin 22044 -> 0 bytes .../__pycache__/build_py.cpython-311.pyc | Bin 23210 -> 0 bytes .../__pycache__/develop.cpython-311.pyc | Bin 10952 -> 0 bytes .../__pycache__/dist_info.cpython-311.pyc | Bin 8014 -> 0 bytes .../__pycache__/easy_install.cpython-311.pyc | Bin 119369 -> 0 bytes .../editable_wheel.cpython-311.pyc | Bin 51447 -> 0 bytes .../__pycache__/egg_info.cpython-311.pyc | Bin 39867 -> 0 bytes .../__pycache__/install.cpython-311.pyc | Bin 6849 -> 0 bytes .../install_egg_info.cpython-311.pyc | Bin 4162 -> 0 bytes .../__pycache__/install_lib.cpython-311.pyc | Bin 6444 -> 0 bytes .../install_scripts.cpython-311.pyc | Bin 4313 -> 0 bytes .../__pycache__/py36compat.cpython-311.pyc | Bin 8070 -> 0 bytes .../__pycache__/register.cpython-311.pyc | Bin 1160 -> 0 bytes .../__pycache__/rotate.cpython-311.pyc | Bin 4220 -> 0 bytes .../__pycache__/saveopts.cpython-311.pyc | Bin 1400 -> 0 bytes .../command/__pycache__/sdist.cpython-311.pyc | Bin 13472 -> 0 bytes .../__pycache__/setopt.cpython-311.pyc | Bin 7712 -> 0 bytes .../command/__pycache__/test.cpython-311.pyc | Bin 14653 -> 0 bytes .../__pycache__/upload.cpython-311.pyc | Bin 1124 -> 0 bytes .../__pycache__/upload_docs.cpython-311.pyc | Bin 11975 -> 0 bytes .../site-packages/setuptools/command/alias.py | 78 - .../setuptools/command/bdist_egg.py | 457 - .../setuptools/command/bdist_rpm.py | 40 - .../site-packages/setuptools/command/build.py | 146 - .../setuptools/command/build_clib.py | 101 - .../setuptools/command/build_ext.py | 383 - .../setuptools/command/build_py.py | 368 - .../setuptools/command/develop.py | 193 - .../setuptools/command/dist_info.py | 142 - .../setuptools/command/easy_install.py | 2312 ----- .../setuptools/command/editable_wheel.py | 844 -- .../setuptools/command/egg_info.py | 763 -- .../setuptools/command/install.py | 139 - .../setuptools/command/install_egg_info.py | 63 - .../setuptools/command/install_lib.py | 122 - .../setuptools/command/install_scripts.py | 70 - .../setuptools/command/launcher manifest.xml | 15 - .../setuptools/command/py36compat.py | 134 - .../setuptools/command/register.py | 18 - .../setuptools/command/rotate.py | 64 - .../setuptools/command/saveopts.py | 22 - .../site-packages/setuptools/command/sdist.py | 210 - .../setuptools/command/setopt.py | 149 - .../site-packages/setuptools/command/test.py | 251 - .../setuptools/command/upload.py | 17 - .../setuptools/command/upload_docs.py | 213 - .../setuptools/config/__init__.py | 35 - .../__pycache__/__init__.cpython-311.pyc | Bin 2064 -> 0 bytes .../_apply_pyprojecttoml.cpython-311.pyc | Bin 22567 -> 0 bytes .../config/__pycache__/expand.cpython-311.pyc | Bin 28278 -> 0 bytes .../__pycache__/pyprojecttoml.cpython-311.pyc | Bin 27476 -> 0 bytes .../__pycache__/setupcfg.cpython-311.pyc | Bin 33060 -> 0 bytes .../setuptools/config/_apply_pyprojecttoml.py | 377 - .../config/_validate_pyproject/__init__.py | 34 - .../__pycache__/__init__.cpython-311.pyc | Bin 2352 -> 0 bytes .../error_reporting.cpython-311.pyc | Bin 20243 -> 0 bytes .../extra_validations.cpython-311.pyc | Bin 1901 -> 0 bytes .../fastjsonschema_exceptions.cpython-311.pyc | Bin 3276 -> 0 bytes ...fastjsonschema_validations.cpython-311.pyc | Bin 192674 -> 0 bytes .../__pycache__/formats.cpython-311.pyc | Bin 14391 -> 0 bytes .../_validate_pyproject/error_reporting.py | 318 - .../_validate_pyproject/extra_validations.py | 36 - .../fastjsonschema_exceptions.py | 51 - .../fastjsonschema_validations.py | 1035 -- .../config/_validate_pyproject/formats.py | 259 - .../site-packages/setuptools/config/expand.py | 462 - .../setuptools/config/pyprojecttoml.py | 493 - .../setuptools/config/setupcfg.py | 762 -- .../site-packages/setuptools/dep_util.py | 25 - .../site-packages/setuptools/depends.py | 176 - .../site-packages/setuptools/discovery.py | 600 -- .../site-packages/setuptools/dist.py | 1222 --- .../site-packages/setuptools/errors.py | 58 - .../site-packages/setuptools/extension.py | 148 - .../setuptools/extern/__init__.py | 76 - .../__pycache__/__init__.cpython-311.pyc | Bin 4428 -> 0 bytes .../site-packages/setuptools/glob.py | 167 - .../site-packages/setuptools/installer.py | 104 - .../site-packages/setuptools/launch.py | 36 - .../site-packages/setuptools/logging.py | 36 - .../site-packages/setuptools/monkey.py | 165 - .../site-packages/setuptools/msvc.py | 1703 ---- .../site-packages/setuptools/namespaces.py | 107 - .../site-packages/setuptools/package_index.py | 1126 --- .../site-packages/setuptools/py34compat.py | 13 - .../site-packages/setuptools/sandbox.py | 530 - .../setuptools/script (dev).tmpl | 6 - .../site-packages/setuptools/script.tmpl | 3 - .../site-packages/setuptools/unicode_utils.py | 42 - .../site-packages/setuptools/version.py | 6 - .../site-packages/setuptools/wheel.py | 222 - .../setuptools/windows_support.py | 29 - .../python3.11/site-packages/yaml/__init__.py | 390 - .../yaml/__pycache__/__init__.cpython-311.pyc | Bin 17259 -> 0 bytes .../yaml/__pycache__/composer.cpython-311.pyc | Bin 7100 -> 0 bytes .../__pycache__/constructor.cpython-311.pyc | Bin 38691 -> 0 bytes .../yaml/__pycache__/cyaml.cpython-311.pyc | Bin 5435 -> 0 bytes .../yaml/__pycache__/dumper.cpython-311.pyc | Bin 2902 -> 0 bytes .../yaml/__pycache__/emitter.cpython-311.pyc | Bin 53428 -> 0 bytes .../yaml/__pycache__/error.cpython-311.pyc | Bin 4294 -> 0 bytes .../yaml/__pycache__/events.cpython-311.pyc | Bin 5893 -> 0 bytes .../yaml/__pycache__/loader.cpython-311.pyc | Bin 4289 -> 0 bytes .../yaml/__pycache__/nodes.cpython-311.pyc | Bin 2565 -> 0 bytes .../yaml/__pycache__/parser.cpython-311.pyc | Bin 25798 -> 0 bytes .../yaml/__pycache__/reader.cpython-311.pyc | Bin 8968 -> 0 bytes .../__pycache__/representer.cpython-311.pyc | Bin 18398 -> 0 bytes .../yaml/__pycache__/resolver.cpython-311.pyc | Bin 9938 -> 0 bytes .../yaml/__pycache__/scanner.cpython-311.pyc | Bin 57152 -> 0 bytes .../__pycache__/serializer.cpython-311.pyc | Bin 6751 -> 0 bytes .../yaml/__pycache__/tokens.cpython-311.pyc | Bin 7288 -> 0 bytes .../yaml/_yaml.cpython-311-darwin.so | Bin 362008 -> 0 bytes .../python3.11/site-packages/yaml/composer.py | 139 - .../site-packages/yaml/constructor.py | 748 -- .../python3.11/site-packages/yaml/cyaml.py | 101 - .../python3.11/site-packages/yaml/dumper.py | 62 - .../python3.11/site-packages/yaml/emitter.py | 1137 --- .../python3.11/site-packages/yaml/error.py | 75 - .../python3.11/site-packages/yaml/events.py | 86 - .../python3.11/site-packages/yaml/loader.py | 63 - .../python3.11/site-packages/yaml/nodes.py | 49 - .../python3.11/site-packages/yaml/parser.py | 589 -- .../python3.11/site-packages/yaml/reader.py | 185 - .../site-packages/yaml/representer.py | 389 - .../python3.11/site-packages/yaml/resolver.py | 227 - .../python3.11/site-packages/yaml/scanner.py | 1435 --- .../site-packages/yaml/serializer.py | 111 - .../python3.11/site-packages/yaml/tokens.py | 104 - .venv/pyvenv.cfg | 5 - ruby/example_code/cloudwatch/README.md | 47 +- ruby/example_code/dynamodb/README.md | 11 +- ruby/example_code/ec2/README.md | 62 +- ruby/example_code/eventbridge/README.md | 14 +- ruby/example_code/iam/README.md | 17 +- ruby/example_code/kms/README.md | 17 +- ruby/example_code/lambda/README.md | 17 +- ruby/example_code/polly/README.md | 18 +- ruby/example_code/rds/README.md | 17 +- ruby/example_code/s3/README.md | 17 +- ruby/example_code/ses/README.md | 8 +- ruby/example_code/sns/README.md | 17 +- ruby/example_code/sqs/README.md | 17 +- 1583 files changed, 170 insertions(+), 291986 deletions(-) delete mode 100644 .venv/bin/Activate.ps1 delete mode 100644 .venv/bin/activate delete mode 100644 .venv/bin/activate.csh delete mode 100644 .venv/bin/activate.fish delete mode 100755 .venv/bin/pip delete mode 100755 .venv/bin/pip3 delete mode 100755 .venv/bin/pip3.11 delete mode 120000 .venv/bin/python delete mode 120000 .venv/bin/python3 delete mode 120000 .venv/bin/python3.11 delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/LICENSE.rst delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/LICENSE delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.11/site-packages/_distutils_hack/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/_distutils_hack/override.py delete mode 100644 .venv/lib/python3.11/site-packages/_yaml/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/_yaml/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/distutils-precedence.pth delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/_identifier.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/async_utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/bccache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/compiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/constants.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/debug.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/defaults.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/environment.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/ext.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/filters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/idtracking.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/lexer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/loaders.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/meta.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/nativetypes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/nodes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/optimizer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/runtime.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/sandbox.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/tests.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/__pycache__/visitor.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/_identifier.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/async_utils.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/bccache.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/compiler.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/constants.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/debug.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/defaults.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/environment.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/ext.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/filters.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/idtracking.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/lexer.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/loaders.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/meta.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/nativetypes.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/nodes.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/optimizer.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/parser.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/py.typed delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/runtime.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/sandbox.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/tests.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/jinja2/visitor.py delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/__pycache__/_native.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/_native.py delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/_speedups.c delete mode 100755 .venv/lib/python3.11/site-packages/markupsafe/_speedups.cpython-311-darwin.so delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/_speedups.pyi delete mode 100644 .venv/lib/python3.11/site-packages/markupsafe/py.typed delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/LICENSE.txt delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.11/site-packages/pip-22.3.1.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.11/site-packages/pip/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/__pip-runner__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/__pycache__/__pip-runner__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/build_env.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/configuration.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/main.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/pyproject.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/build_env.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/main.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/base_command.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/cmdoptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/command_context.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/main.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/main_parser.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/parser.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/progress_bars.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/req_command.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/spinners.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/cli/status_codes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/check.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/completion.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/debug.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/download.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/hash.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/help.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/index.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/install.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/list.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/search.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/show.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/check.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/completion.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/configuration.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/debug.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/download.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/freeze.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/hash.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/help.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/index.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/inspect.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/install.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/list.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/search.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/show.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/uninstall.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/commands/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/configuration.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/base.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/base.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/installed.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/distributions/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/collector.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/sources.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/collector.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/package_finder.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/index/sources.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/base.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/_distutils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/_sysconfig.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/locations/base.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/main.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/base.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/_json.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/base.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_dists.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_envs.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/metadata/pkg_resources.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/candidate.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/format_control.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/index.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/link.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/scheme.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/target_python.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/candidate.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/direct_url.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/format_control.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/index.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/installation_report.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/link.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/scheme.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/search_scope.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/selection_prefs.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/target_python.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/models/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/auth.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/download.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/session.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/auth.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/download.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/lazy_wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/session.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/network/xmlrpc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/check.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/build_tracker.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata_editable.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata_legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel_editable.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel_legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/check.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/freeze.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/editable_legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/operations/prepare.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/pyproject.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/constructors.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_file.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_install.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_set.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/constructors.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/req_file.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/req_install.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/req_set.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/req/req_uninstall.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/__pycache__/base.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/base.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/resolver.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/base.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/provider.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/reporter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/requirements.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/self_outdated_check.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/_log.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/logging.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/misc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/models.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/urls.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/_log.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/appdirs.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/compatibility_tags.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/datetime.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/deprecation.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/distutils_args.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/egg_link.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/encoding.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/entrypoints.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/filesystem.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/filetypes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/glibc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/hashes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/inject_securetransport.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/logging.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/misc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/models.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/packaging.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/setuptools_build.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/subprocess.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/temp_dir.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/unpacking.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/urls.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/virtualenv.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/utils/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/git.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/bazaar.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/git.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/mercurial.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/subversion.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/vcs/versioncontrol.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_internal/wheel_builder.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/six.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/adapter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/controller.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/cacert.pem delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/certifi/core.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/johabfreq.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/johabprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/utf1632prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/big5freq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/big5prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/chardistribution.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/charsetprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/cp949prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/enums.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/escprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/escsm.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/eucjpprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/euckrfreq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/euckrprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/euctwfreq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/euctwprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/gb2312freq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/gb2312prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/hebrewprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/jisfreq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/johabfreq.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/johabprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/jpcntx.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langrussianmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langthaimodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/latin1prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcssm.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/languages.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/sjisprober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/universaldetector.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/utf1632prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/utf8prober.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/chardet/version.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/ansi.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/ansitowin32.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/initialise.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/win32.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/colorama/winterm.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/database.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/index.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/locators.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/manifest.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/markers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/metadata.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/resources.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/scripts.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/util.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/version.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distlib/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/distro/distro.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/codec.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/core.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/idnadata.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/intranges.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/package_data.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/idna/uts46data.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/ext.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/msgpack/fallback.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/build.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/check.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/colorlog.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/dirtools.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/envbuild.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/meta.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pep517/wrappers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/py31compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/api.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/macos.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/unix.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/version.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/windows.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/cmdline.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/console.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/filter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/filters/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/_mapping.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/bbcode.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/groff.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/html.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/img.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/irc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/latex.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/other.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/rtf.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/svg.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal256.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexer.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/_mapping.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/python.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/modeline.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/plugin.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/regexopt.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/scanner.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/sphinxext.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/style.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/styles/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/token.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/unistring.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pygments/util.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/actions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/common.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/core.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/diagram/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/helpers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/results.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/testing.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/unicode.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/util.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/api.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/help.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/models.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/__version__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/adapters.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/api.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/auth.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/certs.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/cookies.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/help.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/hooks.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/models.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/packages.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/sessions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/status_codes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/structures.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/requests/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/providers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/reporters.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/structs.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__main__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/align.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/box.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/color.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/console.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/control.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/json.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/live.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/region.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/status.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/style.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/table.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/text.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_cell_widths.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_codes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_replace.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_export_format.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_extension.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_inspect.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_log_render.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_loop.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_palettes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_pick.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_ratio.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_spinners.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_stack.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_timer.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_win32_console.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_windows.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_windows_renderer.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/_wrap.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/abc.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/align.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/ansi.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/bar.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/box.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/cells.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/color.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/color_triplet.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/columns.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/console.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/constrain.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/containers.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/control.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/default_styles.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/diagnose.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/emoji.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/errors.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/file_proxy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/filesize.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/highlighter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/json.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/jupyter.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/layout.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/live.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/live_render.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/logging.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/markup.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/measure.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/padding.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/pager.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/palette.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/panel.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/pretty.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/progress.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/progress_bar.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/prompt.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/protocol.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/region.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/repr.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/rule.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/scope.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/screen.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/segment.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/spinner.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/status.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/style.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/styled.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/syntax.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/table.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/terminal_theme.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/text.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/theme.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/themes.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/traceback.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/rich/tree.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/six.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/_asyncio.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/_utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/after.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/before.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/before_sleep.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/nap.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/retry.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/stop.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/tornadoweb.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tenacity/wait.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/_parser.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/_re.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/tomli/_types.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/typing_extensions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/_collections.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/_version.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/connection.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/fields.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/filepost.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/six.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/request.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/queue.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/request.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/response.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/url.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/wait.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/vendor.txt delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/labels.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/mklabels.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/tests.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 .venv/lib/python3.11/site-packages/pip/py.typed delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/zipp.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/appdirs.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_adapters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_common.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_itertools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/abc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/readers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/simple.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_adapters.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_common.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_itertools.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/abc.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/readers.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/simple.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/context.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/functools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/context.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/functools.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/text/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/text/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/more.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/recipes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/more.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/recipes.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/common.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/results.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/actions.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/common.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/core.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/diagram/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/helpers.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/results.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/testing.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/unicode.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/util.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/_vendor/zipp.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/extern/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/LICENSE delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_entry_points.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_imp.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_importlib.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_itertools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_path.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/_reqs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/archive_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/build_meta.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/dep_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/depends.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/discovery.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/dist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/errors.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/extension.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/glob.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/installer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/launch.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/logging.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/monkey.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/msvc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/namespaces.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/package_index.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/py34compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/sandbox.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/unicode_utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/__pycache__/windows_support.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_deprecation_warning.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_collections.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_functools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_macos_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/config.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/debug.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/errors.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/extension.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/log.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/py39compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/_collections.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/_functools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/_macos_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/_msvccompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/archive_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/bcppcompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/ccompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/cmd.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/_framework_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/_framework_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_dumb.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_rpm.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/build.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_clib.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_scripts.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/check.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/clean.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/config.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_data.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_egg_info.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_headers.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_lib.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_scripts.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/py37compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/register.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/sdist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/command/upload.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/config.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/core.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/cygwinccompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/debug.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/dep_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/dir_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/errors.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/extension.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/fancy_getopt.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/file_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/filelist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/log.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/msvc9compiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/msvccompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/py38compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/py39compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/spawn.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/sysconfig.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/text_file.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/unixccompiler.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/version.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_distutils/versionpredicate.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_entry_points.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_imp.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_importlib.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_itertools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_path.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_reqs.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/typing_extensions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/zipp.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_adapters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_collections.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_functools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_itertools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_meta.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_text.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_collections.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_functools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_meta.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_text.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_adapters.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_common.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_itertools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_legacy.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/abc.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/readers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/simple.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_adapters.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_common.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_itertools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_legacy.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/abc.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/readers.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/simple.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/context.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/functools.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/context.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/functools.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/more.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/recipes.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/ordered_set.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/common.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/core.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/results.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/util.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/actions.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/common.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/core.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/diagram/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/helpers.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/results.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/testing.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/unicode.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_re.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_types.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_parser.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_re.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_types.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/_vendor/zipp.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/archive_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/build_meta.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/alias.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_clib.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_ext.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_py.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/develop.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/dist_info.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/easy_install.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/editable_wheel.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/egg_info.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_lib.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_scripts.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/py36compat.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/register.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/rotate.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/saveopts.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/sdist.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/setopt.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/test.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/upload.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/__pycache__/upload_docs.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/alias.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/bdist_egg.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/bdist_rpm.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/build.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/build_clib.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/build_ext.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/build_py.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/develop.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/dist_info.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/easy_install.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/editable_wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/egg_info.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/install.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/install_egg_info.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/install_lib.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/install_scripts.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/launcher manifest.xml delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/py36compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/register.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/rotate.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/saveopts.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/sdist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/setopt.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/test.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/upload.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/command/upload_docs.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__pycache__/_apply_pyprojecttoml.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__pycache__/expand.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__pycache__/pyprojecttoml.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/__pycache__/setupcfg.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/error_reporting.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/extra_validations.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_exceptions.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_validations.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/formats.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/error_reporting.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/extra_validations.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/formats.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/expand.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/config/setupcfg.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/dep_util.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/depends.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/discovery.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/dist.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/errors.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/extension.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/extern/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/extern/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/glob.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/installer.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/launch.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/logging.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/monkey.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/msvc.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/namespaces.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/package_index.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/py34compat.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/sandbox.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/script (dev).tmpl delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/script.tmpl delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/unicode_utils.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/version.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/wheel.py delete mode 100644 .venv/lib/python3.11/site-packages/setuptools/windows_support.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__init__.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/__init__.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/composer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/constructor.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/cyaml.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/dumper.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/emitter.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/error.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/events.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/loader.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/nodes.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/parser.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/reader.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/representer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/resolver.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/scanner.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/serializer.cpython-311.pyc delete mode 100644 .venv/lib/python3.11/site-packages/yaml/__pycache__/tokens.cpython-311.pyc delete mode 100755 .venv/lib/python3.11/site-packages/yaml/_yaml.cpython-311-darwin.so delete mode 100644 .venv/lib/python3.11/site-packages/yaml/composer.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/constructor.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/cyaml.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/dumper.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/emitter.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/error.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/events.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/loader.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/nodes.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/parser.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/reader.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/representer.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/resolver.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/scanner.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/serializer.py delete mode 100644 .venv/lib/python3.11/site-packages/yaml/tokens.py delete mode 100644 .venv/pyvenv.cfg diff --git a/.gitignore b/.gitignore index 11d56916ef6..758355b2a19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.venv build_dir/ target/ *.swp diff --git a/.venv/bin/Activate.ps1 b/.venv/bin/Activate.ps1 deleted file mode 100644 index b49d77ba44b..00000000000 --- a/.venv/bin/Activate.ps1 +++ /dev/null @@ -1,247 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove VIRTUAL_ENV_PROMPT altogether. - if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { - Remove-Item -Path env:VIRTUAL_ENV_PROMPT - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } - $env:VIRTUAL_ENV_PROMPT = $Prompt -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/.venv/bin/activate b/.venv/bin/activate deleted file mode 100644 index 38da955a480..00000000000 --- a/.venv/bin/activate +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source bin/activate" *from bash* -# you cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then - PATH="${_OLD_VIRTUAL_PATH:-}" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then - PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # This should detect bash and zsh, which have a hash command that must - # be called to get it to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then - hash -r 2> /dev/null - fi - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -VIRTUAL_ENV="/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv" -export VIRTUAL_ENV - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/bin:$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1="(.venv) ${PS1:-}" - export PS1 - VIRTUAL_ENV_PROMPT="(.venv) " - export VIRTUAL_ENV_PROMPT -fi - -# This should detect bash and zsh, which have a hash command that must -# be called to get it to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then - hash -r 2> /dev/null -fi diff --git a/.venv/bin/activate.csh b/.venv/bin/activate.csh deleted file mode 100644 index 5fe82ba9279..00000000000 --- a/.venv/bin/activate.csh +++ /dev/null @@ -1,26 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV "/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv" - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/bin:$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = "(.venv) $prompt" - setenv VIRTUAL_ENV_PROMPT "(.venv) " -endif - -alias pydoc python -m pydoc - -rehash diff --git a/.venv/bin/activate.fish b/.venv/bin/activate.fish deleted file mode 100644 index 85b736a191f..00000000000 --- a/.venv/bin/activate.fish +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/); you cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV "/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv" - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/bin" $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) "(.venv) " (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" - set -gx VIRTUAL_ENV_PROMPT "(.venv) " -end diff --git a/.venv/bin/pip b/.venv/bin/pip deleted file mode 100755 index 8c1c2f6177a..00000000000 --- a/.venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3 b/.venv/bin/pip3 deleted file mode 100755 index 8c1c2f6177a..00000000000 --- a/.venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3.11 b/.venv/bin/pip3.11 deleted file mode 100755 index 8c1c2f6177a..00000000000 --- a/.venv/bin/pip3.11 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/fprior/Development/GitHub/aws-doc-sdk-examples/.venv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/python b/.venv/bin/python deleted file mode 120000 index 6e7f3c7dd22..00000000000 --- a/.venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3.11 \ No newline at end of file diff --git a/.venv/bin/python3 b/.venv/bin/python3 deleted file mode 120000 index 6e7f3c7dd22..00000000000 --- a/.venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -python3.11 \ No newline at end of file diff --git a/.venv/bin/python3.11 b/.venv/bin/python3.11 deleted file mode 120000 index 2d17577738b..00000000000 --- a/.venv/bin/python3.11 +++ /dev/null @@ -1 +0,0 @@ -/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/INSTALLER deleted file mode 100644 index a1b589e38a3..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst deleted file mode 100644 index c37cae49ec7..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2007 Pallets - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/METADATA b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/METADATA deleted file mode 100644 index f54bb5ca1a5..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/METADATA +++ /dev/null @@ -1,113 +0,0 @@ -Metadata-Version: 2.1 -Name: Jinja2 -Version: 3.1.2 -Summary: A very fast and expressive template engine. -Home-page: https://palletsprojects.com/p/jinja/ -Author: Armin Ronacher -Author-email: armin.ronacher@active-4.com -Maintainer: Pallets -Maintainer-email: contact@palletsprojects.com -License: BSD-3-Clause -Project-URL: Donate, https://palletsprojects.com/donate -Project-URL: Documentation, https://jinja.palletsprojects.com/ -Project-URL: Changes, https://jinja.palletsprojects.com/changes/ -Project-URL: Source Code, https://github.com/pallets/jinja/ -Project-URL: Issue Tracker, https://github.com/pallets/jinja/issues/ -Project-URL: Twitter, https://twitter.com/PalletsTeam -Project-URL: Chat, https://discord.gg/pallets -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Web Environment -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content -Classifier: Topic :: Text Processing :: Markup :: HTML -Requires-Python: >=3.7 -Description-Content-Type: text/x-rst -License-File: LICENSE.rst -Requires-Dist: MarkupSafe (>=2.0) -Provides-Extra: i18n -Requires-Dist: Babel (>=2.7) ; extra == 'i18n' - -Jinja -===== - -Jinja is a fast, expressive, extensible templating engine. Special -placeholders in the template allow writing code similar to Python -syntax. Then the template is passed data to render the final document. - -It includes: - -- Template inheritance and inclusion. -- Define and import macros within templates. -- HTML templates can use autoescaping to prevent XSS from untrusted - user input. -- A sandboxed environment can safely render untrusted templates. -- AsyncIO support for generating templates and calling async - functions. -- I18N support with Babel. -- Templates are compiled to optimized Python code just-in-time and - cached, or can be compiled ahead-of-time. -- Exceptions point to the correct line in templates to make debugging - easier. -- Extensible filters, tests, functions, and even syntax. - -Jinja's philosophy is that while application logic belongs in Python if -possible, it shouldn't make the template designer's job difficult by -restricting functionality too much. - - -Installing ----------- - -Install and update using `pip`_: - -.. code-block:: text - - $ pip install -U Jinja2 - -.. _pip: https://pip.pypa.io/en/stable/getting-started/ - - -In A Nutshell -------------- - -.. code-block:: jinja - - {% extends "base.html" %} - {% block title %}Members{% endblock %} - {% block content %} - - {% endblock %} - - -Donate ------- - -The Pallets organization develops and supports Jinja and other popular -packages. In order to grow the community of contributors and users, and -allow the maintainers to devote more time to the projects, `please -donate today`_. - -.. _please donate today: https://palletsprojects.com/donate - - -Links ------ - -- Documentation: https://jinja.palletsprojects.com/ -- Changes: https://jinja.palletsprojects.com/changes/ -- PyPI Releases: https://pypi.org/project/Jinja2/ -- Source Code: https://github.com/pallets/jinja/ -- Issue Tracker: https://github.com/pallets/jinja/issues/ -- Website: https://palletsprojects.com/p/jinja/ -- Twitter: https://twitter.com/PalletsTeam -- Chat: https://discord.gg/pallets - - diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/RECORD b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/RECORD deleted file mode 100644 index b145ed26f01..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/RECORD +++ /dev/null @@ -1,59 +0,0 @@ -Jinja2-3.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -Jinja2-3.1.2.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 -Jinja2-3.1.2.dist-info/METADATA,sha256=PZ6v2SIidMNixR7MRUX9f7ZWsPwtXanknqiZUmRbh4U,3539 -Jinja2-3.1.2.dist-info/RECORD,, -Jinja2-3.1.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -Jinja2-3.1.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 -Jinja2-3.1.2.dist-info/entry_points.txt,sha256=zRd62fbqIyfUpsRtU7EVIFyiu1tPwfgO7EvPErnxgTE,59 -Jinja2-3.1.2.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7 -jinja2/__init__.py,sha256=8vGduD8ytwgD6GDSqpYc2m3aU-T7PKOAddvVXgGr_Fs,1927 -jinja2/__pycache__/__init__.cpython-311.pyc,, -jinja2/__pycache__/_identifier.cpython-311.pyc,, -jinja2/__pycache__/async_utils.cpython-311.pyc,, -jinja2/__pycache__/bccache.cpython-311.pyc,, -jinja2/__pycache__/compiler.cpython-311.pyc,, -jinja2/__pycache__/constants.cpython-311.pyc,, -jinja2/__pycache__/debug.cpython-311.pyc,, -jinja2/__pycache__/defaults.cpython-311.pyc,, -jinja2/__pycache__/environment.cpython-311.pyc,, -jinja2/__pycache__/exceptions.cpython-311.pyc,, -jinja2/__pycache__/ext.cpython-311.pyc,, -jinja2/__pycache__/filters.cpython-311.pyc,, -jinja2/__pycache__/idtracking.cpython-311.pyc,, -jinja2/__pycache__/lexer.cpython-311.pyc,, -jinja2/__pycache__/loaders.cpython-311.pyc,, -jinja2/__pycache__/meta.cpython-311.pyc,, -jinja2/__pycache__/nativetypes.cpython-311.pyc,, -jinja2/__pycache__/nodes.cpython-311.pyc,, -jinja2/__pycache__/optimizer.cpython-311.pyc,, -jinja2/__pycache__/parser.cpython-311.pyc,, -jinja2/__pycache__/runtime.cpython-311.pyc,, -jinja2/__pycache__/sandbox.cpython-311.pyc,, -jinja2/__pycache__/tests.cpython-311.pyc,, -jinja2/__pycache__/utils.cpython-311.pyc,, -jinja2/__pycache__/visitor.cpython-311.pyc,, -jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 -jinja2/async_utils.py,sha256=dHlbTeaxFPtAOQEYOGYh_PHcDT0rsDaUJAFDl_0XtTg,2472 -jinja2/bccache.py,sha256=mhz5xtLxCcHRAa56azOhphIAe19u1we0ojifNMClDio,14061 -jinja2/compiler.py,sha256=Gs-N8ThJ7OWK4-reKoO8Wh1ZXz95MVphBKNVf75qBr8,72172 -jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 -jinja2/debug.py,sha256=iWJ432RadxJNnaMOPrjIDInz50UEgni3_HKuFXi2vuQ,6299 -jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 -jinja2/environment.py,sha256=6uHIcc7ZblqOMdx_uYNKqRnnwAF0_nzbyeMP9FFtuh4,61349 -jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 -jinja2/ext.py,sha256=ivr3P7LKbddiXDVez20EflcO3q2aHQwz9P_PgWGHVqE,31502 -jinja2/filters.py,sha256=9js1V-h2RlyW90IhLiBGLM2U-k6SCy2F4BUUMgB3K9Q,53509 -jinja2/idtracking.py,sha256=GfNmadir4oDALVxzn3DL9YInhJDr69ebXeA2ygfuCGA,10704 -jinja2/lexer.py,sha256=DW2nX9zk-6MWp65YR2bqqj0xqCvLtD-u9NWT8AnFRxQ,29726 -jinja2/loaders.py,sha256=BfptfvTVpClUd-leMkHczdyPNYFzp_n7PKOJ98iyHOg,23207 -jinja2/meta.py,sha256=GNPEvifmSaU3CMxlbheBOZjeZ277HThOPUTf1RkppKQ,4396 -jinja2/nativetypes.py,sha256=DXgORDPRmVWgy034H0xL8eF7qYoK3DrMxs-935d0Fzk,4226 -jinja2/nodes.py,sha256=i34GPRAZexXMT6bwuf5SEyvdmS-bRCy9KMjwN5O6pjk,34550 -jinja2/optimizer.py,sha256=tHkMwXxfZkbfA1KmLcqmBMSaz7RLIvvItrJcPoXTyD8,1650 -jinja2/parser.py,sha256=nHd-DFHbiygvfaPtm9rcQXJChZG7DPsWfiEsqfwKerY,39595 -jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -jinja2/runtime.py,sha256=5CmD5BjbEJxSiDNTFBeKCaq8qU4aYD2v6q2EluyExms,33476 -jinja2/sandbox.py,sha256=Y0xZeXQnH6EX5VjaV2YixESxoepnRbW_3UeQosaBU3M,14584 -jinja2/tests.py,sha256=Am5Z6Lmfr2XaH_npIfJJ8MdXtWsbLjMULZJulTAj30E,5905 -jinja2/utils.py,sha256=u9jXESxGn8ATZNVolwmkjUVu4SA-tLgV0W7PcSfPfdQ,23965 -jinja2/visitor.py,sha256=MH14C6yq24G_KVtWzjwaI7Wg14PCJIYlWW1kpkxYak0,3568 diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/REQUESTED b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/REQUESTED deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/WHEEL deleted file mode 100644 index becc9a66ea7..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.37.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt deleted file mode 100644 index 7b9666c8ea3..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[babel.extractors] -jinja2 = jinja2.ext:babel_extract[i18n] diff --git a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/top_level.txt deleted file mode 100644 index 7f7afbf3bf5..00000000000 --- a/.venv/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -jinja2 diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/INSTALLER deleted file mode 100644 index a1b589e38a3..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/LICENSE.rst b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/LICENSE.rst deleted file mode 100644 index 9d227a0cc43..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/LICENSE.rst +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2010 Pallets - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/METADATA b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/METADATA deleted file mode 100644 index 4a349997946..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/METADATA +++ /dev/null @@ -1,98 +0,0 @@ -Metadata-Version: 2.1 -Name: MarkupSafe -Version: 2.1.2 -Summary: Safely add untrusted strings to HTML/XML markup. -Home-page: https://palletsprojects.com/p/markupsafe/ -Author: Armin Ronacher -Author-email: armin.ronacher@active-4.com -Maintainer: Pallets -Maintainer-email: contact@palletsprojects.com -License: BSD-3-Clause -Project-URL: Donate, https://palletsprojects.com/donate -Project-URL: Documentation, https://markupsafe.palletsprojects.com/ -Project-URL: Changes, https://markupsafe.palletsprojects.com/changes/ -Project-URL: Source Code, https://github.com/pallets/markupsafe/ -Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/ -Project-URL: Twitter, https://twitter.com/PalletsTeam -Project-URL: Chat, https://discord.gg/pallets -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Web Environment -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content -Classifier: Topic :: Text Processing :: Markup :: HTML -Requires-Python: >=3.7 -Description-Content-Type: text/x-rst -License-File: LICENSE.rst - -MarkupSafe -========== - -MarkupSafe implements a text object that escapes characters so it is -safe to use in HTML and XML. Characters that have special meanings are -replaced so that they display as the actual characters. This mitigates -injection attacks, meaning untrusted user input can safely be displayed -on a page. - - -Installing ----------- - -Install and update using `pip`_: - -.. code-block:: text - - pip install -U MarkupSafe - -.. _pip: https://pip.pypa.io/en/stable/getting-started/ - - -Examples --------- - -.. code-block:: pycon - - >>> from markupsafe import Markup, escape - - >>> # escape replaces special characters and wraps in Markup - >>> escape("") - Markup('<script>alert(document.cookie);</script>') - - >>> # wrap in Markup to mark text "safe" and prevent escaping - >>> Markup("Hello") - Markup('hello') - - >>> escape(Markup("Hello")) - Markup('hello') - - >>> # Markup is a str subclass - >>> # methods and operators escape their arguments - >>> template = Markup("Hello {name}") - >>> template.format(name='"World"') - Markup('Hello "World"') - - -Donate ------- - -The Pallets organization develops and supports MarkupSafe and other -popular packages. In order to grow the community of contributors and -users, and allow the maintainers to devote more time to the projects, -`please donate today`_. - -.. _please donate today: https://palletsprojects.com/donate - - -Links ------ - -- Documentation: https://markupsafe.palletsprojects.com/ -- Changes: https://markupsafe.palletsprojects.com/changes/ -- PyPI Releases: https://pypi.org/project/MarkupSafe/ -- Source Code: https://github.com/pallets/markupsafe/ -- Issue Tracker: https://github.com/pallets/markupsafe/issues/ -- Website: https://palletsprojects.com/p/markupsafe/ -- Twitter: https://twitter.com/PalletsTeam -- Chat: https://discord.gg/pallets diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/RECORD b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/RECORD deleted file mode 100644 index c36a1327e18..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/RECORD +++ /dev/null @@ -1,14 +0,0 @@ -MarkupSafe-2.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -MarkupSafe-2.1.2.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 -MarkupSafe-2.1.2.dist-info/METADATA,sha256=jPw4iOiZg6adxZ5bdvjZapeNmPMINMGG2q2v2rI4SqA,3222 -MarkupSafe-2.1.2.dist-info/RECORD,, -MarkupSafe-2.1.2.dist-info/WHEEL,sha256=jPRbQ8xiNYX-7z1za3BtJrnQJRya0KZXq-lssx5hJR8,115 -MarkupSafe-2.1.2.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 -markupsafe/__init__.py,sha256=LtjnhQ6AHmAgHl37cev2oQBXjr4xOF-QhdXgsCAL3-0,9306 -markupsafe/__pycache__/__init__.cpython-311.pyc,, -markupsafe/__pycache__/_native.cpython-311.pyc,, -markupsafe/_native.py,sha256=GR86Qvo_GcgKmKreA1WmYN9ud17OFwkww8E-fiW-57s,1713 -markupsafe/_speedups.c,sha256=X2XvQVtIdcK4Usz70BvkzoOfjTCmQlDkkjYSn-swE0g,7083 -markupsafe/_speedups.cpython-311-darwin.so,sha256=BkEzSY6CfvvhLg4bK3yU1LwOxqCC9w5Iw5wUCkX5e80,117484 -markupsafe/_speedups.pyi,sha256=vfMCsOgbAXRNLUXkyuyonG8uEWKYU4PDqNuMaDELAYw,229 -markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/WHEEL deleted file mode 100644 index a0eb66d0ed1..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.38.4) -Root-Is-Purelib: false -Tag: cp311-cp311-macosx_10_9_universal2 - diff --git a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/top_level.txt deleted file mode 100644 index 75bf729258f..00000000000 --- a/.venv/lib/python3.11/site-packages/MarkupSafe-2.1.2.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -markupsafe diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e38a3..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/LICENSE b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/LICENSE deleted file mode 100644 index 2f1b8e15e56..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2017-2021 Ingy döt Net -Copyright (c) 2006-2016 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/METADATA b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/METADATA deleted file mode 100644 index 4cacd9694e9..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/METADATA +++ /dev/null @@ -1,46 +0,0 @@ -Metadata-Version: 2.1 -Name: PyYAML -Version: 6.0 -Summary: YAML parser and emitter for Python -Home-page: https://pyyaml.org/ -Download-URL: https://pypi.org/project/PyYAML/ -Author: Kirill Simonov -Author-email: xi@resolvent.net -License: MIT -Project-URL: Bug Tracker, https://github.com/yaml/pyyaml/issues -Project-URL: CI, https://github.com/yaml/pyyaml/actions -Project-URL: Documentation, https://pyyaml.org/wiki/PyYAMLDocumentation -Project-URL: Mailing lists, http://lists.sourceforge.net/lists/listinfo/yaml-core -Project-URL: Source Code, https://github.com/yaml/pyyaml -Platform: Any -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Cython -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: Text Processing :: Markup -Requires-Python: >=3.6 -License-File: LICENSE - -YAML is a data serialization format designed for human readability -and interaction with scripting languages. PyYAML is a YAML parser -and emitter for Python. - -PyYAML features a complete YAML 1.1 parser, Unicode support, pickle -support, capable extension API, and sensible error messages. PyYAML -supports standard YAML tags and provides Python-specific tags that -allow to represent an arbitrary Python object. - -PyYAML is applicable for a broad range of tasks from complex -configuration files to object serialization and persistence. diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/RECORD b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/RECORD deleted file mode 100644 index d352e00781d..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/RECORD +++ /dev/null @@ -1,44 +0,0 @@ -PyYAML-6.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -PyYAML-6.0.dist-info/LICENSE,sha256=jTko-dxEkP1jVwfLiOsmvXZBAqcoKVQwfT5RZ6V36KQ,1101 -PyYAML-6.0.dist-info/METADATA,sha256=2SKnLeliGx_ihH8L6t35ImKgvwm6PojvuQ71XL14YL4,2056 -PyYAML-6.0.dist-info/RECORD,, -PyYAML-6.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -PyYAML-6.0.dist-info/WHEEL,sha256=fHvRBzKCrQbGWlIL1eIB4x2YIBk9sCn_QC5-FS8Vm74,110 -PyYAML-6.0.dist-info/top_level.txt,sha256=rpj0IVMTisAjh_1vG3Ccf9v5jpCQwAz6cD1IVU5ZdhQ,11 -_yaml/__init__.py,sha256=04Ae_5osxahpJHa3XBZUAf4wi6XX32gR8D6X6p64GEA,1402 -_yaml/__pycache__/__init__.cpython-311.pyc,, -yaml/__init__.py,sha256=NDS7S8XgA72-hY6LRmGzUWTPvzGzjWVrWk-OGA-77AA,12309 -yaml/__pycache__/__init__.cpython-311.pyc,, -yaml/__pycache__/composer.cpython-311.pyc,, -yaml/__pycache__/constructor.cpython-311.pyc,, -yaml/__pycache__/cyaml.cpython-311.pyc,, -yaml/__pycache__/dumper.cpython-311.pyc,, -yaml/__pycache__/emitter.cpython-311.pyc,, -yaml/__pycache__/error.cpython-311.pyc,, -yaml/__pycache__/events.cpython-311.pyc,, -yaml/__pycache__/loader.cpython-311.pyc,, -yaml/__pycache__/nodes.cpython-311.pyc,, -yaml/__pycache__/parser.cpython-311.pyc,, -yaml/__pycache__/reader.cpython-311.pyc,, -yaml/__pycache__/representer.cpython-311.pyc,, -yaml/__pycache__/resolver.cpython-311.pyc,, -yaml/__pycache__/scanner.cpython-311.pyc,, -yaml/__pycache__/serializer.cpython-311.pyc,, -yaml/__pycache__/tokens.cpython-311.pyc,, -yaml/_yaml.cpython-311-darwin.so,sha256=j_O7br3oMoqFxafvMpQmJUyDmLN35ilAlPFVmlGK5DU,362008 -yaml/composer.py,sha256=_Ko30Wr6eDWUeUpauUGT3Lcg9QPBnOPVlTnIMRGJ9FM,4883 -yaml/constructor.py,sha256=kNgkfaeLUkwQYY_Q6Ff1Tz2XVw_pG1xVE9Ak7z-viLA,28639 -yaml/cyaml.py,sha256=6ZrAG9fAYvdVe2FK_w0hmXoG7ZYsoYUwapG8CiC72H0,3851 -yaml/dumper.py,sha256=PLctZlYwZLp7XmeUdwRuv4nYOZ2UBnDIUy8-lKfLF-o,2837 -yaml/emitter.py,sha256=jghtaU7eFwg31bG0B7RZea_29Adi9CKmXq_QjgQpCkQ,43006 -yaml/error.py,sha256=Ah9z-toHJUbE9j-M8YpxgSRM5CgLCcwVzJgLLRF2Fxo,2533 -yaml/events.py,sha256=50_TksgQiE4up-lKo_V-nBy-tAIxkIPQxY5qDhKCeHw,2445 -yaml/loader.py,sha256=UVa-zIqmkFSCIYq_PgSGm4NSJttHY2Rf_zQ4_b1fHN0,2061 -yaml/nodes.py,sha256=gPKNj8pKCdh2d4gr3gIYINnPOaOxGhJAUiYhGRnPE84,1440 -yaml/parser.py,sha256=ilWp5vvgoHFGzvOZDItFoGjD6D42nhlZrZyjAwa0oJo,25495 -yaml/reader.py,sha256=0dmzirOiDG4Xo41RnuQS7K9rkY3xjHiVasfDMNTqCNw,6794 -yaml/representer.py,sha256=IuWP-cAW9sHKEnS0gCqSa894k1Bg4cgTxaDwIcbRQ-Y,14190 -yaml/resolver.py,sha256=9L-VYfm4mWHxUD1Vg4X7rjDRK_7VZd6b92wzq7Y2IKY,9004 -yaml/scanner.py,sha256=YEM3iLZSaQwXcQRg2l2R4MdT0zGP2F9eHkKGKnHyWQY,51279 -yaml/serializer.py,sha256=ChuFgmhU01hj4xgI8GaKv6vfM2Bujwa9i7d2FAHj7cA,4165 -yaml/tokens.py,sha256=lTQIzSVw8Mg9wv459-TjiOQe6wVziqaRlqX2_89rp54,2573 diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/REQUESTED b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/REQUESTED deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/WHEEL deleted file mode 100644 index 93a07b7c3e7..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.37.1) -Root-Is-Purelib: false -Tag: cp311-cp311-macosx_11_0_arm64 - diff --git a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/top_level.txt deleted file mode 100644 index e6475e911f6..00000000000 --- a/.venv/lib/python3.11/site-packages/PyYAML-6.0.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -_yaml -yaml diff --git a/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py b/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py deleted file mode 100644 index f987a5367fd..00000000000 --- a/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py +++ /dev/null @@ -1,222 +0,0 @@ -# don't import any costly modules -import sys -import os - - -is_pypy = '__pypy__' in sys.builtin_module_names - - -def warn_distutils_present(): - if 'distutils' not in sys.modules: - return - if is_pypy and sys.version_info < (3, 7): - # PyPy for 3.6 unconditionally imports distutils, so bypass the warning - # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 - return - import warnings - - warnings.warn( - "Distutils was imported before Setuptools, but importing Setuptools " - "also replaces the `distutils` module in `sys.modules`. This may lead " - "to undesirable behaviors or errors. To avoid these issues, avoid " - "using distutils directly, ensure that setuptools is installed in the " - "traditional way (e.g. not an editable install), and/or make sure " - "that setuptools is always imported before distutils." - ) - - -def clear_distutils(): - if 'distutils' not in sys.modules: - return - import warnings - - warnings.warn("Setuptools is replacing distutils.") - mods = [ - name - for name in sys.modules - if name == "distutils" or name.startswith("distutils.") - ] - for name in mods: - del sys.modules[name] - - -def enabled(): - """ - Allow selection of distutils by environment variable. - """ - which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'local') - return which == 'local' - - -def ensure_local_distutils(): - import importlib - - clear_distutils() - - # With the DistutilsMetaFinder in place, - # perform an import to cause distutils to be - # loaded from setuptools._distutils. Ref #2906. - with shim(): - importlib.import_module('distutils') - - # check that submodules load as expected - core = importlib.import_module('distutils.core') - assert '_distutils' in core.__file__, core.__file__ - assert 'setuptools._distutils.log' not in sys.modules - - -def do_override(): - """ - Ensure that the local copy of distutils is preferred over stdlib. - - See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 - for more motivation. - """ - if enabled(): - warn_distutils_present() - ensure_local_distutils() - - -class _TrivialRe: - def __init__(self, *patterns): - self._patterns = patterns - - def match(self, string): - return all(pat in string for pat in self._patterns) - - -class DistutilsMetaFinder: - def find_spec(self, fullname, path, target=None): - # optimization: only consider top level modules and those - # found in the CPython test suite. - if path is not None and not fullname.startswith('test.'): - return - - method_name = 'spec_for_{fullname}'.format(**locals()) - method = getattr(self, method_name, lambda: None) - return method() - - def spec_for_distutils(self): - if self.is_cpython(): - return - - import importlib - import importlib.abc - import importlib.util - - try: - mod = importlib.import_module('setuptools._distutils') - except Exception: - # There are a couple of cases where setuptools._distutils - # may not be present: - # - An older Setuptools without a local distutils is - # taking precedence. Ref #2957. - # - Path manipulation during sitecustomize removes - # setuptools from the path but only after the hook - # has been loaded. Ref #2980. - # In either case, fall back to stdlib behavior. - return - - class DistutilsLoader(importlib.abc.Loader): - def create_module(self, spec): - mod.__name__ = 'distutils' - return mod - - def exec_module(self, module): - pass - - return importlib.util.spec_from_loader( - 'distutils', DistutilsLoader(), origin=mod.__file__ - ) - - @staticmethod - def is_cpython(): - """ - Suppress supplying distutils for CPython (build and tests). - Ref #2965 and #3007. - """ - return os.path.isfile('pybuilddir.txt') - - def spec_for_pip(self): - """ - Ensure stdlib distutils when running under pip. - See pypa/pip#8761 for rationale. - """ - if self.pip_imported_during_build(): - return - clear_distutils() - self.spec_for_distutils = lambda: None - - @classmethod - def pip_imported_during_build(cls): - """ - Detect if pip is being imported in a build script. Ref #2355. - """ - import traceback - - return any( - cls.frame_file_is_setup(frame) for frame, line in traceback.walk_stack(None) - ) - - @staticmethod - def frame_file_is_setup(frame): - """ - Return True if the indicated frame suggests a setup.py file. - """ - # some frames may not have __file__ (#2940) - return frame.f_globals.get('__file__', '').endswith('setup.py') - - def spec_for_sensitive_tests(self): - """ - Ensure stdlib distutils when running select tests under CPython. - - python/cpython#91169 - """ - clear_distutils() - self.spec_for_distutils = lambda: None - - sensitive_tests = ( - [ - 'test.test_distutils', - 'test.test_peg_generator', - 'test.test_importlib', - ] - if sys.version_info < (3, 10) - else [ - 'test.test_distutils', - ] - ) - - -for name in DistutilsMetaFinder.sensitive_tests: - setattr( - DistutilsMetaFinder, - f'spec_for_{name}', - DistutilsMetaFinder.spec_for_sensitive_tests, - ) - - -DISTUTILS_FINDER = DistutilsMetaFinder() - - -def add_shim(): - DISTUTILS_FINDER in sys.meta_path or insert_shim() - - -class shim: - def __enter__(self): - insert_shim() - - def __exit__(self, exc, value, tb): - remove_shim() - - -def insert_shim(): - sys.meta_path.insert(0, DISTUTILS_FINDER) - - -def remove_shim(): - try: - sys.meta_path.remove(DISTUTILS_FINDER) - except ValueError: - pass diff --git a/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc b/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 652555d11d34a39854f1a4f81a572edca7d82dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11190 zcmbtaTWlLwdOkxAso_nOM9G%p+eC64%eF}0V#l!~=OWv=Dyik9iMuIHaYhntiezU- zH%8i3vc^UZ)Qt-ywSgvucF|@XB#XMmF0eqK^4f=%6u6Z-g@FJ?faHyaynvCXe*YQH z@TNF%dpP`g=3M`C&VN7rO(^7NNIyI9mQvo#*#FRroxGLI`aNW>GleNanq9Ddg$sh> zQrRV!-FS*!a4YUB?1HF>fF8vI=vBOcElLZZp-06A2$7}qk2{hFB zRsW@cJ;NY-Yx9Mmi>V>iuLRZL-?2|zsBg9FKXqeNe61v~rEawKe~Q=7?Lu}Ttb~9| z8=tWiGlm;xY**S)-=VYvMigO~^>utpy@yOG9?#9@X5;asGa529AAQ%~2f!W)27c{y zNw9NMg62}#Ff&BEgfXq7uC0T);=0TmSv?fD!qVbAn`6tKYTs&35kJK&pF1-NI3Hl` z88UrJN;f8rR9f$IeM_T%+XA4`z9)W;_Jek{Je|N%a$+i*LgR5&$B?={ zsRA*pY*Ht*oQaXs)TEJ~-7l*deG+Ri#uJ9DI}1X0Af+3LbQtGt~^O|mKjoDJ! z8?z;)b1E}~Q>vx|n|LZSnl+{AgqFb~byK8VpP&VCiaH&-{GAbdO-JL{Ximen#Rk-|bL*{>^?`_-AmL@urBvFMbVnTn-TBeC49F`msFjvhQ1 z(^H1ppGzb!C&thu?qC`pM_DWmY*I!%9?i{~n+TDb200A}lQFa~aPkpye+jU_)>=9~ z>HTyvlg^~*MLi?$VHtJJNfGLo_fOmBguihu$q*kdj#1w45J0p~F#TW|&CsV) z#(1C0bVU!CVkR-6>NJfkYb1!j^PfyZtR%A&xq*Cd68x=IX(W0wolQby3?O4S>Om)c z0APWYnHaN$mivWNLXU-3G;X>Ayy zPt+v*XheRTL9`H+x_RCd!DG7Cg%X_(TdrVih8wWdx>380n#}-gM8S}Uo3m@dWY6@m%zec+0WX$%1rR=;9ya_9SkqMctb1%x8o_h?Fzo2 zBoJ_th#aTwA!M$94;3!+BX{~#G75Bcy`CeQho0fBaoq0wDL*zuemb4bPD4_rAwMB} z@X`w( z481>8*!tM5>0yTCGmUUrb_;7n_Lpc!c$yM)*9#2wWG;Azxb(5OzO~BrNtgnr zzskb-Embudtrkbq*|EMB(`OkG&?%gWOi>?CO_(98G;ZlQvZF>*X*C|NGAqPQFK{wN znyyxyn42sO9_J)folo0?=7;gs{~G{2Ds~p^=W8)i6uU}dS3&Ihlb`upuWnk}M9kLD z!J5>*D(zg6b}k2s(*BaPzaZ@=wzFz^lRMP-uG6F1w;^}$-o1tr>s4aGuGK)#N}#9E zd$<@lQVJYd7+ec%zH#K^Ckuf+)^l^$7yZS+o)Ujw3+(=F@{7xb!10DhZ^!z6wdrZM z`%Aa@bW6*ZegQCvLMIUq6G^UBs;FtoBTX=L3{Kps&)A7)rp<#EHv=}*LBW6&y-BT;A$*dw__ ztV(Aw%i4<_Ie4s>XVHcvQ2*iMhYlTo{K$cWd@xw8usC7uO=OMKRD$G}C7Ony0c7kA zH%&O@e8#w>u;fiZ$;JsaEv2X$$(uoZ^~V7qb6S}cerNW|Y?-+{58sw{6eYPN$puNS z&EpkM*@Gs$U9%Xn&t&}}411la4BivF;8Fy58E(Y|C@OBSp$J|(ucf9^iS#+OPR-LP zlli{h$w!zI=2#p#D-jESCJaHG`r^5SVW?ULHb2-;O^=$AT~fzb;6lrm%SWm+M(x5s z!?-#rPq5aOhZn`A)&104GlSWV*3-)2kaA+0HbU zEH7Agitpr@no(zR8qAcM4VXw6$?+OH#cuQ(`s$AY-1~-ogIy_foWQd@eC_a!-PfM9 z-fAJ=Djb0uK8AJx{UG8F;zv711JM@B7cKJh@G0|cjYyoQh9u_hEwJ0+j@rR*4t_C& z_hQG15@7g5DSVU`+Y(p2iFK*NQA8oWeQ%#-4)xYgnqQ~bXcGA<=BCR}Lcf-Pi5 z25oovWz|TWNx>u4hLWP)8^5GEIkEpeGN3}&JDY#3Wvz4P-vuk7$_k2@x{s~#55g~n zdC?%2ucSFP2O)u#0*7jtW8ULpbDsJ=0ULRS@*YFgjc7ii=hS2z!ZH5#=wzCo|9suC zkZg+JyH4w)C{HaTHIT=5(#dpUVnj&{I75xih}EhoWjfq@8FruBI_=a`a>zA1vM$4xJs5i~Ia6Dr(Sh10z0wO;r{ zuxF7hF7r8<<+tA#@iz(0w>X;cNrP>Lz}DsGR(Bm+*>&s>EyZ0=m3BRaqP1Yh;+d~D z9V%?vS0Xro=l8Gw^Bcc=!^$rPZnt;e=)Cdv&6jSzRBS(9YCjI=Hr%y1b#-QGW--h; zq)yP0(aDKR#(BKwCLy$uU~L@YatB@@}!r)qGdgN~p0$>&V-YIx;5y2r9}}zKhIKPxT7;yHgvHhr>gP zEhMT0?zDd?n}Ezn+7r?`DbIOpQ)O}mN~@~3ue!L#<5o9fIw#Nwnv3)VbT_!jbd%3Y zWMS(qGnCZSgrQdCdj4f+_Nvs1J^;4Sy5VLqlTHB~=$y5kd#|}a46bc{=$hXm*V={M zS7=mp9hi{^0PF0IfI0(lWL4x}{QqKKGuS-gPE-ig+d8j_9A~IQzN^|vRA^5UI7fig zIX0Y|IkXhZC@{kgKGs=koo&O2z5axHUW-~_Bw{CoVMxB zYN@eQrY~Un5%f!1K{(3~s(4IfC?`geW~<{?MJb%Ckw0wuPR}IO99g+AGSJ9tp=^rO z#B8%@K+8_Rbt1CVcB2ylB-{w;B{VoLdf> z2!C+u{Zqxjwo+glcElI4gr?M8u%9()Tfu(Tr0oU!DT@KL?%2B8(YMmkSJ?Y>vE!Li z$1{u1Ev}NzD!@oOOcC)tF9p-BD-z9+4_xU-q{A1S%_OJe@ zeeN$M0kBT`5bx4={V9M44cast$N5X#)xlxO!;?7*x#|c$=W^-Ux(K06zRH2uL(-~VZ0N3~jVcP&_k7=m+K&^T@h8dZraljJhR`T6r$j&>2D#Pjq?zqF9o47WmUl9At!W z;uuHfJu+bt?nIPNs6BeF?P0dSAaafy&7IU}5Dhl?8BM$>=3jAmaZoi7FqKoILw+!n^Mpa+;R5sI#W!iGOFoLrgfcA0l`|D zQls!l{;7>l`+Lc#h7xVB`V)+zp8=?N)sU$X608ybf5o1-IeAN2e0DY1yAteOK3xp% zEd}?M-FAa&(`t^B21wb5yS$`2f*UKS#>}kgpH8GN$8mX)ybRMMgZZ>9%}j)F(Q**9 zQRMUe5451ar7=k2LEC|teW2EgZu>giQN^m7TN^mLI&f}f;9Oz&&x-?Zlm_15>w!** zkWPvC8?;L^sna3U$-zq~u+lOKkETSdP#=Q+9`bJpGs7+w^Ft1SpTpg$mXXhElel{w z<@crV^ioM!qKeE(1!`yvSB8cTO6Qb>J3^UAtA@UJ13i=FCA*%EYBWBU&W_+xNZUcR zlA2Mh3noEJqo79AXym@F0T}wY(4fm{sdzPQLsTISAO5sDR z;S($26MuN27(QDHpDjpdo41)r_=!%nn3zKRp0lJSH0=IS3%S8fX05!*Hc7NZn`TY-q#Ah_D48Y9^U-$hL2Qc!Y z?YHDy_PM`{@E8e!>fJ(qbG0z1j>Sn>L33xdd`)Y|BG>X5i3cA0!i}!Ri&S+Hzzjn8 z7^$QcoZwcHM#{#H2EkLcp4g20`37n#q1V|X^s{jkmr|gnE zu$b#X=S~mAtOK4An70F0?VbZ=25`rX*DF7<3R)#kjJj7qC-b(`kmwFTE!(gBg;jtm zKFD(djq;pOGYpDaTWAOe>|nugDX{g%*h=7$Lg0~dK=fhAdeF*3JrIzs{&JXkI_X~l zoT~UrO`k(ObrkP#Z1W|lL3Nc>`?sZBTWyrBiLVjYiHPPbnTXJtwW1rai;_&IR-H+=P70EqF5ou9Zr4i&^l3gXe< zZvAZg7u#?04_>Xul24Tt@E=>+{NS~MMssXzQTL$c2Sl5*ctLv?t(!R67mwpQM%Ci+ zd@C&t*9evO|3LF~3MgQGQsioADYVEx)>1@N*vUD#2g1h;XzBzmZ}^T@yj#<)&LmCG zR3bg8nl59+wp=VlPtkF8hW^Bo581f#*A-x*y+^kzy<5Xm2_A zcVspQne)rX3P8xb_7%Z%>(v^LpArUf673LIKopICQ1{UwNmohrHh@LYxNG4ir~S8y zchDA&9j9Gw0WXaU<%dt;Kk?Nc1|YI+x$^R=*u5fl-)R5iw*5u1za;h-?8iE2v~-fQ zBn?H^@mC?ksbV!3MH`zbbxQ*Ee{OR?g+~#>B(YgZ8-*|}QSGs$tF>Z_g!qb0|La6H zr|Dm3jjO+kQ8fZ4zT9esY2k8vLbs*BQfO7$wjyo&VohU^Dpqv8uKmi4+7?at{d)B_kn`{z(Pye+a}=uJPz0$6!51P2kh_&hzmKO ztyOrU%pB0;6L6X8fNqa~Tc&1khsy3&E7}x+=G++G;pKO0Ylqw{B$t9vO&;n8fSY?yFevR4p};jnEW fc?7U{Ga$@25$2WJHbIC|w+fI%0VLB5I79s}h$jto diff --git a/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc b/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc deleted file mode 100644 index a977b158cd17e743de44b512a89e46885b3f6b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmZ8cy-EW?5S~py!iC@qnBF7at-)5rLeR=aEM>W5N3-PacG=xKO{H&PYZZ~aOdRZ*k)N7koAo}mE<5~d7bM*fSJEvuC( zPswLnfq`UK5H?o3LMrDAuTm#Q$#8s0S|EhVjJ95gRa z;^dB6{vE^X&9RwmTF04|MT#f3MMqRWx_t`YO~%+K1W&=dy|;kw61pD{zC*Zx-V%EA J+UyQB{{U#2Tt)x@ diff --git a/.venv/lib/python3.11/site-packages/_distutils_hack/override.py b/.venv/lib/python3.11/site-packages/_distutils_hack/override.py deleted file mode 100644 index 2cc433a4a55..00000000000 --- a/.venv/lib/python3.11/site-packages/_distutils_hack/override.py +++ /dev/null @@ -1 +0,0 @@ -__import__('_distutils_hack').do_override() diff --git a/.venv/lib/python3.11/site-packages/_yaml/__init__.py b/.venv/lib/python3.11/site-packages/_yaml/__init__.py deleted file mode 100644 index 7baa8c4b681..00000000000 --- a/.venv/lib/python3.11/site-packages/_yaml/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# This is a stub package designed to roughly emulate the _yaml -# extension module, which previously existed as a standalone module -# and has been moved into the `yaml` package namespace. -# It does not perfectly mimic its old counterpart, but should get -# close enough for anyone who's relying on it even when they shouldn't. -import yaml - -# in some circumstances, the yaml module we imoprted may be from a different version, so we need -# to tread carefully when poking at it here (it may not have the attributes we expect) -if not getattr(yaml, '__with_libyaml__', False): - from sys import version_info - - exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError - raise exc("No module named '_yaml'") -else: - from yaml._yaml import * - import warnings - warnings.warn( - 'The _yaml extension module is now located at yaml._yaml' - ' and its location is subject to change. To use the' - ' LibYAML-based parser and emitter, import from `yaml`:' - ' `from yaml import CLoader as Loader, CDumper as Dumper`.', - DeprecationWarning - ) - del warnings - # Don't `del yaml` here because yaml is actually an existing - # namespace member of _yaml. - -__name__ = '_yaml' -# If the module is top-level (i.e. not a part of any specific package) -# then the attribute should be set to ''. -# https://docs.python.org/3.8/library/types.html -__package__ = '' diff --git a/.venv/lib/python3.11/site-packages/_yaml/__pycache__/__init__.cpython-311.pyc b/.venv/lib/python3.11/site-packages/_yaml/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index f5f94f0d1eb1964f8c1c76bb8936740760d6c954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 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 JdIK>5{SPDBG@k$f diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/bccache.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/bccache.cpython-311.pyc deleted file mode 100644 index 93793ff2bf6e8751e5d24ba43aaa47c6d51b0a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20947 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 YaGe!J;C|z9`R9*V%C~Ezv!(IB0hSMa$^ZZW diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/compiler.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/compiler.cpython-311.pyc deleted file mode 100644 index 8274e624416ad73dac4e6b8bd7a292c322f34250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110508 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 Je)JyJ{{_HKK&b!# diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/debug.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/debug.cpython-311.pyc deleted file mode 100644 index 695129ee757461774d279b77c3842896faea7041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6744 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 YN9q4K_n)skS~7p}9?g4UM5p}!0HD^5+5i9m diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/defaults.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/defaults.cpython-311.pyc deleted file mode 100644 index c1023b1ea2417819a571106c3989b2f01f0d8ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1750 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 %mMV2v^O2TkI%ri3M$S!I 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 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/ext.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/ext.cpython-311.pyc deleted file mode 100644 index 940654ebb260b61a74e3d9bd2c1abf53ed4c3d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43214 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 J`eUoT{}&>0S_1$8 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/filters.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/filters.cpython-311.pyc deleted file mode 100644 index 49be4dfb74af1f7fefcda1842ff9773543200adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75912 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 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/idtracking.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/idtracking.cpython-311.pyc deleted file mode 100644 index bd4cb6e28230c82115bfba816051ee4266179a86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19570 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 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/nativetypes.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/nativetypes.cpython-311.pyc deleted file mode 100644 index 3112064c44103c4c11774f0380b08f11e1ace7fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7991 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 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/nodes.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/nodes.cpython-311.pyc deleted file mode 100644 index 75c9c23ecfee08d10cb45028b956b3fdf11d6c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64510 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 mjqiHjh<=tKDz&l{N8AcUyjdK7yJc;3_XSb diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/optimizer.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/optimizer.cpython-311.pyc deleted file mode 100644 index 9b565716662fc7340e80711e57652ef07bece600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 zcmb7G-D@1z6~A|OcCcIXfA`MtEyi_e+O2e)Ju2&;jxbCE!v|}EgsTfXXO)q6Ma+NrP zYsATN<3WOuNASk2H0WqINPfuv2PI@~kuy;b+?sovOBP6%D;5Y=7QPB>KVTK%IgBsY zC0ELYNoM;Fs|m-gtgryiUb-=7x<0FWc9}CJV9pMh8!)vf8gO!+vx=<(WGxt9vb}~K z@PcVx=4HE~c$Wop1jzM8fPw=X7}}l}EvmApyZ!=m{fdw^I{+Ob6+pIG7PY$T0q;dS zQo7=TZjl0_5xl^foRw`KnL47!Z{OC4k%BE|6Ra$-SA+yB?ONUAFECGtI&1h+cpi#I z-TbM5HHEwd2E~fU%iM`JE3+9{yJ#k!w;q~NJ(f&9yFw1){yOf!v&0$-8CQ^BtTjFtwkTe=uvOxEiLFp z6(Q9gm!KQ*aIUKNPHUUVZvXJNMf$lu06vd;ydYBP?cX7S7#e&zV2dsw3!cT`f*1mv z1gmq2mP2STh}*y|cY``|w8@~&+qf6P2Vw2)}%6oLQ}o_fXC6_=`5sY_SL;>&!Ad!mjWC|-4gR~z$1yQ$7N zqI^asRfUian8q`bwDU zjYdKKQFzrfkX7=;AV-eB^TX|t)9sPdtJl8F4Bq+C+o$gR;2rlp@i+0%**cmL<5Bf8Iwog6Q(T7_1(a-ZjYkes0tRkb0=Vj8UeCO zc21mL*W0Oyt>}>mb`%PsZp#G~8n>GG?b8o)U>M%rbC54@(+#5a<t1)4$NSXwZY2fSuo+UHw@jtu*P|*W<8xC^x&(k?UsfzB!nMc}=ET znnREECVdEm{(NoGYByj=i&W85QTs^izjtns=lXT(-C~nOCMdZ{e7#AQ6E{hdwkY^7 zF)Ptm;5`EhG51C6%uJY64M_MfyTE-e-Le%WXJ|r-Mz>a(@2Bnz+*@Jt3f^VmP(_NG z)$jw^fcwY^Q?|083P74a12Q7cp?R%V7jVzbdpw_%<2WDXJ6bP~0}0cXRrYM9EK4Dx zko0UdiX?dwhPTHLf~Ze7TvVR`*;^$YgN&T|bK_6VJI(g+#XkL$ilVh+Nr)b{9 zobv4&x2({#EcmMcHy88=E$hvO?Zqo{0uNw)l|x7dfrN=m{z?R6nB7OY%stPtAc;@G zy22FsMGSUSFp!{A)Cv#)w)^X7Gznn!6XQrSx05?|@3l?>dsENfZ^XSH|Kzh|)O(yB zx^ujfgw+oDKS*2)P?vl*9Iz~??qIDEtl;04*s$2ra3Bg(Atgpmn4P=%>ly3Ht20-A zd2RM;3?rsy3<$yS|(vFs*I)n(2Q9_Syk*+e|SCme8NAgMxFmALt_-+ S`(JW*_#2%4_B)m$`~CyryvUyb diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/parser.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/parser.cpython-311.pyc deleted file mode 100644 index 0890baaf99fec4a78823f5b44a6c7cdca51e7488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59324 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 z 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 YoVzaV4r9uI!t0znBz0i}idFyr2Vq|Q+W-In diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/sandbox.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/sandbox.cpython-311.pyc deleted file mode 100644 index 426f2d3e9cafd8623ce8d9e01348494a2d59e4ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18848 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 AWB>pF diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/tests.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/tests.cpython-311.pyc deleted file mode 100644 index a10872b3e6a238f07dc29b69ffa5c2a6c0c7e4c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9271 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 VFLa4fHTU5G8}U93(Vs{y{uc;Jizfg8 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/utils.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/utils.cpython-311.pyc deleted file mode 100644 index 87a1abf23aca9eff7dce21ffe79bc94da9c4e127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37086 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 diff --git a/.venv/lib/python3.11/site-packages/jinja2/__pycache__/visitor.cpython-311.pyc b/.venv/lib/python3.11/site-packages/jinja2/__pycache__/visitor.cpython-311.pyc deleted file mode 100644 index 7cdef3b18dc6266d0ef42a276a9f922a9d5cc37d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5740 zcmb7IU2Gf25#Bo^@yWJq)3&HsR#Ll78rYVTI0;lYQruRpL7sRk>7>&g zeRq;9l>$^C1@vG9OkYf(3BVSPt28MPpeW#nJfwgh3?wKhgMf)c4Hzf_G;a)?0!5xW zvrAI^k&5JaH#c{?J2x{sJM%67)ZQKX6O{bQu7;0#NI*P0rj%C_unsPMLh=;yH6~?|2fW`z@8Uslw zt`(msBWgwQA4k2&Z~=4L&~x}sG6xkTb&=IHx%@v zJrrM}#?p|kO%0`2oLSR26F+@=2o$G-X(ctU%s`hp&6rb$hnCPD(~758+(06c0>cuC z)t&|`zat z^_(|WtPXgvAdHFCi3D9^p=%gv1IB(0$a?Kp7KLC(K3XPl+f+WLjJbRL(?!PI@BHFv z#_US?XYdOcrsV~$kx zUtX=xSJxVn5=Jtn_$OmPZV?BQROQG(0dcUc`Yham){kmE=4#39_vC$16&n*jM6YM{ z&u_9cxZ|AjVlWGKuuuelbF*cw-f_$nXS~2is^kI2$vT+g3OKtG#2}t2JKN z&<8#3<3QHQe?p|AH|rD*{OAL9bL0iRW0 z-#Q4RR`=GszF`tiL9_h^5SW5}&pg~W^kCo6*1prleW$Uyjxe(ES}EMKF?#d0>}nx= zCO-;Hy~Pu~>+$C#xHzTTvjcKal|Jl1MOgz(UG;8XJ3%pm|K&W~8tO z8;~H3u>T5Vz4j}ML2sZ;ko0)H7lpi3CU`HzMme(seai1Wmpf7>aLZr64VVI$yTYel z#(dU)Z-6n)q|4(S$-^kPZC?KvMgjAga1TZSbHD!!7zNC(gfDZnA_Z6NK=_BplXW0F zK@#en!)RrPDm6TLsRY2o2N1%~fQP4{wYjf%8|_nRZ&f4#34R7b0uZx7H-dpOVJU_U zWqN^H%IA>l8Ni@6t)&#KMmAP%7P%E@fY1XHe}nuahZxHMby!ZvJpuw7 z$lUC?p;&Sxz_L3_A5ciDiwJO%2?!>wD=9z>7O)FY!I=nCS9um=g&GSv7s}-z+NnZ} zW}#3@s+9_dp)FNJRQUkM7}J)yz&@3>D8PwDTh>kP1KEUu*0KiHXwEUas-X&EoY^`9 zw{>CAq^cqZV=|&MKqsh!X=yVEe7G{2QNd}fCK@IaQ}F_B8e~VA2aLtMQV$zy)y6^q z(U2MuC9u@^ZHQ> zX&&_wOTaa$8GmyEUh`-C>%z^G-&LaBlkw#-XSN&}ey^NTRb zejdUX_O0@fhw`%zwLTfOmOZ@f%=PY;yj6M5-&X!E&(eBqN3ApE@hJiq6> zrTud5#ZupqNBt)^Fa2#~tN(1V|7@9vdk0E=M<4bLKIj|Vq+5L>#lDe3-w1RpMW1;X z9e5BO$kVOpsbch0ft{s;v1~BckH2@r+3=&z{kh8@I9r{kik+vRw1K|+2XZ6t{V=Z; z_MiXc2oQeWJ<9LdK&g9wq5JTo=>FVjeqbwlycj)RVCR?o)#je9=x{MQT!;?;w-o8# zXlsQ_xH?!)_&G4QIDiC>AFTj#O=^gAY4;ppdolo^#sR28@ex*keIC;IcI|<3vb`pQWRxH)n1k{E8lGBtQp8~~ z4+kJ8z$)t`kX?|LXe~9v+YqZ836#IOuQ@We+r~kteG$kyDF?_?dp0I+PUfUSdpzd= z;b(q{-#5fBAuj&7<^gqloe1~KhF8d~s_1dp21`u5#iAKFqgg{0}IGEtv}%-STbV1^&m@kFA&B zLc>s06{Nrwv6vn+|;4jA7; ua^ib!U*r34wi`nS1wfUp bool: - return t.cast(bool, args[0].is_async) - - else: - - def is_async(args: t.Any) -> bool: - return t.cast(bool, args[0].environment.is_async) - - # Take the doc and annotations from the sync function, but the - # name from the async function. Pallets-Sphinx-Themes - # build_function_directive expects __wrapped__ to point to the - # sync function. - async_func_attrs = ("__module__", "__name__", "__qualname__") - normal_func_attrs = tuple(set(WRAPPER_ASSIGNMENTS).difference(async_func_attrs)) - - @wraps(normal_func, assigned=normal_func_attrs) - @wraps(async_func, assigned=async_func_attrs, updated=()) - def wrapper(*args, **kwargs): # type: ignore - b = is_async(args) - - if need_eval_context: - args = args[1:] - - if b: - return async_func(*args, **kwargs) - - return normal_func(*args, **kwargs) - - if need_eval_context: - wrapper = pass_eval_context(wrapper) - - wrapper.jinja_async_variant = True - return wrapper - - return decorator - - -_common_primitives = {int, float, bool, str, list, dict, tuple, type(None)} - - -async def auto_await(value: t.Union[t.Awaitable["V"], "V"]) -> "V": - # Avoid a costly call to isawaitable - if type(value) in _common_primitives: - return t.cast("V", value) - - if inspect.isawaitable(value): - return await t.cast("t.Awaitable[V]", value) - - return t.cast("V", value) - - -async def auto_aiter( - iterable: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", -) -> "t.AsyncIterator[V]": - if hasattr(iterable, "__aiter__"): - async for item in t.cast("t.AsyncIterable[V]", iterable): - yield item - else: - for item in t.cast("t.Iterable[V]", iterable): - yield item - - -async def auto_to_list( - value: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", -) -> t.List["V"]: - return [x async for x in auto_aiter(value)] diff --git a/.venv/lib/python3.11/site-packages/jinja2/bccache.py b/.venv/lib/python3.11/site-packages/jinja2/bccache.py deleted file mode 100644 index d0ddf56ef62..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/bccache.py +++ /dev/null @@ -1,406 +0,0 @@ -"""The optional bytecode cache system. This is useful if you have very -complex template situations and the compilation of all those templates -slows down your application too much. - -Situations where this is useful are often forking web applications that -are initialized on the first request. -""" -import errno -import fnmatch -import marshal -import os -import pickle -import stat -import sys -import tempfile -import typing as t -from hashlib import sha1 -from io import BytesIO -from types import CodeType - -if t.TYPE_CHECKING: - import typing_extensions as te - from .environment import Environment - - class _MemcachedClient(te.Protocol): - def get(self, key: str) -> bytes: - ... - - def set(self, key: str, value: bytes, timeout: t.Optional[int] = None) -> None: - ... - - -bc_version = 5 -# Magic bytes to identify Jinja bytecode cache files. Contains the -# Python major and minor version to avoid loading incompatible bytecode -# if a project upgrades its Python version. -bc_magic = ( - b"j2" - + pickle.dumps(bc_version, 2) - + pickle.dumps((sys.version_info[0] << 24) | sys.version_info[1], 2) -) - - -class Bucket: - """Buckets are used to store the bytecode for one template. It's created - and initialized by the bytecode cache and passed to the loading functions. - - The buckets get an internal checksum from the cache assigned and use this - to automatically reject outdated cache material. Individual bytecode - cache subclasses don't have to care about cache invalidation. - """ - - def __init__(self, environment: "Environment", key: str, checksum: str) -> None: - self.environment = environment - self.key = key - self.checksum = checksum - self.reset() - - def reset(self) -> None: - """Resets the bucket (unloads the bytecode).""" - self.code: t.Optional[CodeType] = None - - def load_bytecode(self, f: t.BinaryIO) -> None: - """Loads bytecode from a file or file like object.""" - # make sure the magic header is correct - magic = f.read(len(bc_magic)) - if magic != bc_magic: - self.reset() - return - # the source code of the file changed, we need to reload - checksum = pickle.load(f) - if self.checksum != checksum: - self.reset() - return - # if marshal_load fails then we need to reload - try: - self.code = marshal.load(f) - except (EOFError, ValueError, TypeError): - self.reset() - return - - def write_bytecode(self, f: t.IO[bytes]) -> None: - """Dump the bytecode into the file or file like object passed.""" - if self.code is None: - raise TypeError("can't write empty bucket") - f.write(bc_magic) - pickle.dump(self.checksum, f, 2) - marshal.dump(self.code, f) - - def bytecode_from_string(self, string: bytes) -> None: - """Load bytecode from bytes.""" - self.load_bytecode(BytesIO(string)) - - def bytecode_to_string(self) -> bytes: - """Return the bytecode as bytes.""" - out = BytesIO() - self.write_bytecode(out) - return out.getvalue() - - -class BytecodeCache: - """To implement your own bytecode cache you have to subclass this class - and override :meth:`load_bytecode` and :meth:`dump_bytecode`. Both of - these methods are passed a :class:`~jinja2.bccache.Bucket`. - - A very basic bytecode cache that saves the bytecode on the file system:: - - from os import path - - class MyCache(BytecodeCache): - - def __init__(self, directory): - self.directory = directory - - def load_bytecode(self, bucket): - filename = path.join(self.directory, bucket.key) - if path.exists(filename): - with open(filename, 'rb') as f: - bucket.load_bytecode(f) - - def dump_bytecode(self, bucket): - filename = path.join(self.directory, bucket.key) - with open(filename, 'wb') as f: - bucket.write_bytecode(f) - - A more advanced version of a filesystem based bytecode cache is part of - Jinja. - """ - - def load_bytecode(self, bucket: Bucket) -> None: - """Subclasses have to override this method to load bytecode into a - bucket. If they are not able to find code in the cache for the - bucket, it must not do anything. - """ - raise NotImplementedError() - - def dump_bytecode(self, bucket: Bucket) -> None: - """Subclasses have to override this method to write the bytecode - from a bucket back to the cache. If it unable to do so it must not - fail silently but raise an exception. - """ - raise NotImplementedError() - - def clear(self) -> None: - """Clears the cache. This method is not used by Jinja but should be - implemented to allow applications to clear the bytecode cache used - by a particular environment. - """ - - def get_cache_key( - self, name: str, filename: t.Optional[t.Union[str]] = None - ) -> str: - """Returns the unique hash key for this template name.""" - hash = sha1(name.encode("utf-8")) - - if filename is not None: - hash.update(f"|{filename}".encode()) - - return hash.hexdigest() - - def get_source_checksum(self, source: str) -> str: - """Returns a checksum for the source.""" - return sha1(source.encode("utf-8")).hexdigest() - - def get_bucket( - self, - environment: "Environment", - name: str, - filename: t.Optional[str], - source: str, - ) -> Bucket: - """Return a cache bucket for the given template. All arguments are - mandatory but filename may be `None`. - """ - key = self.get_cache_key(name, filename) - checksum = self.get_source_checksum(source) - bucket = Bucket(environment, key, checksum) - self.load_bytecode(bucket) - return bucket - - def set_bucket(self, bucket: Bucket) -> None: - """Put the bucket into the cache.""" - self.dump_bytecode(bucket) - - -class FileSystemBytecodeCache(BytecodeCache): - """A bytecode cache that stores bytecode on the filesystem. It accepts - two arguments: The directory where the cache items are stored and a - pattern string that is used to build the filename. - - If no directory is specified a default cache directory is selected. On - Windows the user's temp directory is used, on UNIX systems a directory - is created for the user in the system temp directory. - - The pattern can be used to have multiple separate caches operate on the - same directory. The default pattern is ``'__jinja2_%s.cache'``. ``%s`` - is replaced with the cache key. - - >>> bcc = FileSystemBytecodeCache('/tmp/jinja_cache', '%s.cache') - - This bytecode cache supports clearing of the cache using the clear method. - """ - - def __init__( - self, directory: t.Optional[str] = None, pattern: str = "__jinja2_%s.cache" - ) -> None: - if directory is None: - directory = self._get_default_cache_dir() - self.directory = directory - self.pattern = pattern - - def _get_default_cache_dir(self) -> str: - def _unsafe_dir() -> "te.NoReturn": - raise RuntimeError( - "Cannot determine safe temp directory. You " - "need to explicitly provide one." - ) - - tmpdir = tempfile.gettempdir() - - # On windows the temporary directory is used specific unless - # explicitly forced otherwise. We can just use that. - if os.name == "nt": - return tmpdir - if not hasattr(os, "getuid"): - _unsafe_dir() - - dirname = f"_jinja2-cache-{os.getuid()}" - actual_dir = os.path.join(tmpdir, dirname) - - try: - os.mkdir(actual_dir, stat.S_IRWXU) - except OSError as e: - if e.errno != errno.EEXIST: - raise - try: - os.chmod(actual_dir, stat.S_IRWXU) - actual_dir_stat = os.lstat(actual_dir) - if ( - actual_dir_stat.st_uid != os.getuid() - or not stat.S_ISDIR(actual_dir_stat.st_mode) - or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU - ): - _unsafe_dir() - except OSError as e: - if e.errno != errno.EEXIST: - raise - - actual_dir_stat = os.lstat(actual_dir) - if ( - actual_dir_stat.st_uid != os.getuid() - or not stat.S_ISDIR(actual_dir_stat.st_mode) - or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU - ): - _unsafe_dir() - - return actual_dir - - def _get_cache_filename(self, bucket: Bucket) -> str: - return os.path.join(self.directory, self.pattern % (bucket.key,)) - - def load_bytecode(self, bucket: Bucket) -> None: - filename = self._get_cache_filename(bucket) - - # Don't test for existence before opening the file, since the - # file could disappear after the test before the open. - try: - f = open(filename, "rb") - except (FileNotFoundError, IsADirectoryError, PermissionError): - # PermissionError can occur on Windows when an operation is - # in progress, such as calling clear(). - return - - with f: - bucket.load_bytecode(f) - - def dump_bytecode(self, bucket: Bucket) -> None: - # Write to a temporary file, then rename to the real name after - # writing. This avoids another process reading the file before - # it is fully written. - name = self._get_cache_filename(bucket) - f = tempfile.NamedTemporaryFile( - mode="wb", - dir=os.path.dirname(name), - prefix=os.path.basename(name), - suffix=".tmp", - delete=False, - ) - - def remove_silent() -> None: - try: - os.remove(f.name) - except OSError: - # Another process may have called clear(). On Windows, - # another program may be holding the file open. - pass - - try: - with f: - bucket.write_bytecode(f) - except BaseException: - remove_silent() - raise - - try: - os.replace(f.name, name) - except OSError: - # Another process may have called clear(). On Windows, - # another program may be holding the file open. - remove_silent() - except BaseException: - remove_silent() - raise - - def clear(self) -> None: - # imported lazily here because google app-engine doesn't support - # write access on the file system and the function does not exist - # normally. - from os import remove - - files = fnmatch.filter(os.listdir(self.directory), self.pattern % ("*",)) - for filename in files: - try: - remove(os.path.join(self.directory, filename)) - except OSError: - pass - - -class MemcachedBytecodeCache(BytecodeCache): - """This class implements a bytecode cache that uses a memcache cache for - storing the information. It does not enforce a specific memcache library - (tummy's memcache or cmemcache) but will accept any class that provides - the minimal interface required. - - Libraries compatible with this class: - - - `cachelib `_ - - `python-memcached `_ - - (Unfortunately the django cache interface is not compatible because it - does not support storing binary data, only text. You can however pass - the underlying cache client to the bytecode cache which is available - as `django.core.cache.cache._client`.) - - The minimal interface for the client passed to the constructor is this: - - .. class:: MinimalClientInterface - - .. method:: set(key, value[, timeout]) - - Stores the bytecode in the cache. `value` is a string and - `timeout` the timeout of the key. If timeout is not provided - a default timeout or no timeout should be assumed, if it's - provided it's an integer with the number of seconds the cache - item should exist. - - .. method:: get(key) - - Returns the value for the cache key. If the item does not - exist in the cache the return value must be `None`. - - The other arguments to the constructor are the prefix for all keys that - is added before the actual cache key and the timeout for the bytecode in - the cache system. We recommend a high (or no) timeout. - - This bytecode cache does not support clearing of used items in the cache. - The clear method is a no-operation function. - - .. versionadded:: 2.7 - Added support for ignoring memcache errors through the - `ignore_memcache_errors` parameter. - """ - - def __init__( - self, - client: "_MemcachedClient", - prefix: str = "jinja2/bytecode/", - timeout: t.Optional[int] = None, - ignore_memcache_errors: bool = True, - ): - self.client = client - self.prefix = prefix - self.timeout = timeout - self.ignore_memcache_errors = ignore_memcache_errors - - def load_bytecode(self, bucket: Bucket) -> None: - try: - code = self.client.get(self.prefix + bucket.key) - except Exception: - if not self.ignore_memcache_errors: - raise - else: - bucket.bytecode_from_string(code) - - def dump_bytecode(self, bucket: Bucket) -> None: - key = self.prefix + bucket.key - value = bucket.bytecode_to_string() - - try: - if self.timeout is not None: - self.client.set(key, value, self.timeout) - else: - self.client.set(key, value) - except Exception: - if not self.ignore_memcache_errors: - raise diff --git a/.venv/lib/python3.11/site-packages/jinja2/compiler.py b/.venv/lib/python3.11/site-packages/jinja2/compiler.py deleted file mode 100644 index 3458095f54e..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/compiler.py +++ /dev/null @@ -1,1957 +0,0 @@ -"""Compiles nodes from the parser into Python code.""" -import typing as t -from contextlib import contextmanager -from functools import update_wrapper -from io import StringIO -from itertools import chain -from keyword import iskeyword as is_python_keyword - -from markupsafe import escape -from markupsafe import Markup - -from . import nodes -from .exceptions import TemplateAssertionError -from .idtracking import Symbols -from .idtracking import VAR_LOAD_ALIAS -from .idtracking import VAR_LOAD_PARAMETER -from .idtracking import VAR_LOAD_RESOLVE -from .idtracking import VAR_LOAD_UNDEFINED -from .nodes import EvalContext -from .optimizer import Optimizer -from .utils import _PassArg -from .utils import concat -from .visitor import NodeVisitor - -if t.TYPE_CHECKING: - import typing_extensions as te - from .environment import Environment - -F = t.TypeVar("F", bound=t.Callable[..., t.Any]) - -operators = { - "eq": "==", - "ne": "!=", - "gt": ">", - "gteq": ">=", - "lt": "<", - "lteq": "<=", - "in": "in", - "notin": "not in", -} - - -def optimizeconst(f: F) -> F: - def new_func( - self: "CodeGenerator", node: nodes.Expr, frame: "Frame", **kwargs: t.Any - ) -> t.Any: - # Only optimize if the frame is not volatile - if self.optimizer is not None and not frame.eval_ctx.volatile: - new_node = self.optimizer.visit(node, frame.eval_ctx) - - if new_node != node: - return self.visit(new_node, frame) - - return f(self, node, frame, **kwargs) - - return update_wrapper(t.cast(F, new_func), f) - - -def _make_binop(op: str) -> t.Callable[["CodeGenerator", nodes.BinExpr, "Frame"], None]: - @optimizeconst - def visitor(self: "CodeGenerator", node: nodes.BinExpr, frame: Frame) -> None: - if ( - self.environment.sandboxed - and op in self.environment.intercepted_binops # type: ignore - ): - self.write(f"environment.call_binop(context, {op!r}, ") - self.visit(node.left, frame) - self.write(", ") - self.visit(node.right, frame) - else: - self.write("(") - self.visit(node.left, frame) - self.write(f" {op} ") - self.visit(node.right, frame) - - self.write(")") - - return visitor - - -def _make_unop( - op: str, -) -> t.Callable[["CodeGenerator", nodes.UnaryExpr, "Frame"], None]: - @optimizeconst - def visitor(self: "CodeGenerator", node: nodes.UnaryExpr, frame: Frame) -> None: - if ( - self.environment.sandboxed - and op in self.environment.intercepted_unops # type: ignore - ): - self.write(f"environment.call_unop(context, {op!r}, ") - self.visit(node.node, frame) - else: - self.write("(" + op) - self.visit(node.node, frame) - - self.write(")") - - return visitor - - -def generate( - node: nodes.Template, - environment: "Environment", - name: t.Optional[str], - filename: t.Optional[str], - stream: t.Optional[t.TextIO] = None, - defer_init: bool = False, - optimized: bool = True, -) -> t.Optional[str]: - """Generate the python source for a node tree.""" - if not isinstance(node, nodes.Template): - raise TypeError("Can't compile non template nodes") - - generator = environment.code_generator_class( - environment, name, filename, stream, defer_init, optimized - ) - generator.visit(node) - - if stream is None: - return generator.stream.getvalue() # type: ignore - - return None - - -def has_safe_repr(value: t.Any) -> bool: - """Does the node have a safe representation?""" - if value is None or value is NotImplemented or value is Ellipsis: - return True - - if type(value) in {bool, int, float, complex, range, str, Markup}: - return True - - if type(value) in {tuple, list, set, frozenset}: - return all(has_safe_repr(v) for v in value) - - if type(value) is dict: - return all(has_safe_repr(k) and has_safe_repr(v) for k, v in value.items()) - - return False - - -def find_undeclared( - nodes: t.Iterable[nodes.Node], names: t.Iterable[str] -) -> t.Set[str]: - """Check if the names passed are accessed undeclared. The return value - is a set of all the undeclared names from the sequence of names found. - """ - visitor = UndeclaredNameVisitor(names) - try: - for node in nodes: - visitor.visit(node) - except VisitorExit: - pass - return visitor.undeclared - - -class MacroRef: - def __init__(self, node: t.Union[nodes.Macro, nodes.CallBlock]) -> None: - self.node = node - self.accesses_caller = False - self.accesses_kwargs = False - self.accesses_varargs = False - - -class Frame: - """Holds compile time information for us.""" - - def __init__( - self, - eval_ctx: EvalContext, - parent: t.Optional["Frame"] = None, - level: t.Optional[int] = None, - ) -> None: - self.eval_ctx = eval_ctx - - # the parent of this frame - self.parent = parent - - if parent is None: - self.symbols = Symbols(level=level) - - # in some dynamic inheritance situations the compiler needs to add - # write tests around output statements. - self.require_output_check = False - - # inside some tags we are using a buffer rather than yield statements. - # this for example affects {% filter %} or {% macro %}. If a frame - # is buffered this variable points to the name of the list used as - # buffer. - self.buffer: t.Optional[str] = None - - # the name of the block we're in, otherwise None. - self.block: t.Optional[str] = None - - else: - self.symbols = Symbols(parent.symbols, level=level) - self.require_output_check = parent.require_output_check - self.buffer = parent.buffer - self.block = parent.block - - # a toplevel frame is the root + soft frames such as if conditions. - self.toplevel = False - - # the root frame is basically just the outermost frame, so no if - # conditions. This information is used to optimize inheritance - # situations. - self.rootlevel = False - - # variables set inside of loops and blocks should not affect outer frames, - # but they still needs to be kept track of as part of the active context. - self.loop_frame = False - self.block_frame = False - - # track whether the frame is being used in an if-statement or conditional - # expression as it determines which errors should be raised during runtime - # or compile time. - self.soft_frame = False - - def copy(self) -> "Frame": - """Create a copy of the current one.""" - rv = object.__new__(self.__class__) - rv.__dict__.update(self.__dict__) - rv.symbols = self.symbols.copy() - return rv - - def inner(self, isolated: bool = False) -> "Frame": - """Return an inner frame.""" - if isolated: - return Frame(self.eval_ctx, level=self.symbols.level + 1) - return Frame(self.eval_ctx, self) - - def soft(self) -> "Frame": - """Return a soft frame. A soft frame may not be modified as - standalone thing as it shares the resources with the frame it - was created of, but it's not a rootlevel frame any longer. - - This is only used to implement if-statements and conditional - expressions. - """ - rv = self.copy() - rv.rootlevel = False - rv.soft_frame = True - return rv - - __copy__ = copy - - -class VisitorExit(RuntimeError): - """Exception used by the `UndeclaredNameVisitor` to signal a stop.""" - - -class DependencyFinderVisitor(NodeVisitor): - """A visitor that collects filter and test calls.""" - - def __init__(self) -> None: - self.filters: t.Set[str] = set() - self.tests: t.Set[str] = set() - - def visit_Filter(self, node: nodes.Filter) -> None: - self.generic_visit(node) - self.filters.add(node.name) - - def visit_Test(self, node: nodes.Test) -> None: - self.generic_visit(node) - self.tests.add(node.name) - - def visit_Block(self, node: nodes.Block) -> None: - """Stop visiting at blocks.""" - - -class UndeclaredNameVisitor(NodeVisitor): - """A visitor that checks if a name is accessed without being - declared. This is different from the frame visitor as it will - not stop at closure frames. - """ - - def __init__(self, names: t.Iterable[str]) -> None: - self.names = set(names) - self.undeclared: t.Set[str] = set() - - def visit_Name(self, node: nodes.Name) -> None: - if node.ctx == "load" and node.name in self.names: - self.undeclared.add(node.name) - if self.undeclared == self.names: - raise VisitorExit() - else: - self.names.discard(node.name) - - def visit_Block(self, node: nodes.Block) -> None: - """Stop visiting a blocks.""" - - -class CompilerExit(Exception): - """Raised if the compiler encountered a situation where it just - doesn't make sense to further process the code. Any block that - raises such an exception is not further processed. - """ - - -class CodeGenerator(NodeVisitor): - def __init__( - self, - environment: "Environment", - name: t.Optional[str], - filename: t.Optional[str], - stream: t.Optional[t.TextIO] = None, - defer_init: bool = False, - optimized: bool = True, - ) -> None: - if stream is None: - stream = StringIO() - self.environment = environment - self.name = name - self.filename = filename - self.stream = stream - self.created_block_context = False - self.defer_init = defer_init - self.optimizer: t.Optional[Optimizer] = None - - if optimized: - self.optimizer = Optimizer(environment) - - # aliases for imports - self.import_aliases: t.Dict[str, str] = {} - - # a registry for all blocks. Because blocks are moved out - # into the global python scope they are registered here - self.blocks: t.Dict[str, nodes.Block] = {} - - # the number of extends statements so far - self.extends_so_far = 0 - - # some templates have a rootlevel extends. In this case we - # can safely assume that we're a child template and do some - # more optimizations. - self.has_known_extends = False - - # the current line number - self.code_lineno = 1 - - # registry of all filters and tests (global, not block local) - self.tests: t.Dict[str, str] = {} - self.filters: t.Dict[str, str] = {} - - # the debug information - self.debug_info: t.List[t.Tuple[int, int]] = [] - self._write_debug_info: t.Optional[int] = None - - # the number of new lines before the next write() - self._new_lines = 0 - - # the line number of the last written statement - self._last_line = 0 - - # true if nothing was written so far. - self._first_write = True - - # used by the `temporary_identifier` method to get new - # unique, temporary identifier - self._last_identifier = 0 - - # the current indentation - self._indentation = 0 - - # Tracks toplevel assignments - self._assign_stack: t.List[t.Set[str]] = [] - - # Tracks parameter definition blocks - self._param_def_block: t.List[t.Set[str]] = [] - - # Tracks the current context. - self._context_reference_stack = ["context"] - - @property - def optimized(self) -> bool: - return self.optimizer is not None - - # -- Various compilation helpers - - def fail(self, msg: str, lineno: int) -> "te.NoReturn": - """Fail with a :exc:`TemplateAssertionError`.""" - raise TemplateAssertionError(msg, lineno, self.name, self.filename) - - def temporary_identifier(self) -> str: - """Get a new unique identifier.""" - self._last_identifier += 1 - return f"t_{self._last_identifier}" - - def buffer(self, frame: Frame) -> None: - """Enable buffering for the frame from that point onwards.""" - frame.buffer = self.temporary_identifier() - self.writeline(f"{frame.buffer} = []") - - def return_buffer_contents( - self, frame: Frame, force_unescaped: bool = False - ) -> None: - """Return the buffer contents of the frame.""" - if not force_unescaped: - if frame.eval_ctx.volatile: - self.writeline("if context.eval_ctx.autoescape:") - self.indent() - self.writeline(f"return Markup(concat({frame.buffer}))") - self.outdent() - self.writeline("else:") - self.indent() - self.writeline(f"return concat({frame.buffer})") - self.outdent() - return - elif frame.eval_ctx.autoescape: - self.writeline(f"return Markup(concat({frame.buffer}))") - return - self.writeline(f"return concat({frame.buffer})") - - def indent(self) -> None: - """Indent by one.""" - self._indentation += 1 - - def outdent(self, step: int = 1) -> None: - """Outdent by step.""" - self._indentation -= step - - def start_write(self, frame: Frame, node: t.Optional[nodes.Node] = None) -> None: - """Yield or write into the frame buffer.""" - if frame.buffer is None: - self.writeline("yield ", node) - else: - self.writeline(f"{frame.buffer}.append(", node) - - def end_write(self, frame: Frame) -> None: - """End the writing process started by `start_write`.""" - if frame.buffer is not None: - self.write(")") - - def simple_write( - self, s: str, frame: Frame, node: t.Optional[nodes.Node] = None - ) -> None: - """Simple shortcut for start_write + write + end_write.""" - self.start_write(frame, node) - self.write(s) - self.end_write(frame) - - def blockvisit(self, nodes: t.Iterable[nodes.Node], frame: Frame) -> None: - """Visit a list of nodes as block in a frame. If the current frame - is no buffer a dummy ``if 0: yield None`` is written automatically. - """ - try: - self.writeline("pass") - for node in nodes: - self.visit(node, frame) - except CompilerExit: - pass - - def write(self, x: str) -> None: - """Write a string into the output stream.""" - if self._new_lines: - if not self._first_write: - self.stream.write("\n" * self._new_lines) - self.code_lineno += self._new_lines - if self._write_debug_info is not None: - self.debug_info.append((self._write_debug_info, self.code_lineno)) - self._write_debug_info = None - self._first_write = False - self.stream.write(" " * self._indentation) - self._new_lines = 0 - self.stream.write(x) - - def writeline( - self, x: str, node: t.Optional[nodes.Node] = None, extra: int = 0 - ) -> None: - """Combination of newline and write.""" - self.newline(node, extra) - self.write(x) - - def newline(self, node: t.Optional[nodes.Node] = None, extra: int = 0) -> None: - """Add one or more newlines before the next write.""" - self._new_lines = max(self._new_lines, 1 + extra) - if node is not None and node.lineno != self._last_line: - self._write_debug_info = node.lineno - self._last_line = node.lineno - - def signature( - self, - node: t.Union[nodes.Call, nodes.Filter, nodes.Test], - frame: Frame, - extra_kwargs: t.Optional[t.Mapping[str, t.Any]] = None, - ) -> None: - """Writes a function call to the stream for the current node. - A leading comma is added automatically. The extra keyword - arguments may not include python keywords otherwise a syntax - error could occur. The extra keyword arguments should be given - as python dict. - """ - # if any of the given keyword arguments is a python keyword - # we have to make sure that no invalid call is created. - kwarg_workaround = any( - is_python_keyword(t.cast(str, k)) - for k in chain((x.key for x in node.kwargs), extra_kwargs or ()) - ) - - for arg in node.args: - self.write(", ") - self.visit(arg, frame) - - if not kwarg_workaround: - for kwarg in node.kwargs: - self.write(", ") - self.visit(kwarg, frame) - if extra_kwargs is not None: - for key, value in extra_kwargs.items(): - self.write(f", {key}={value}") - if node.dyn_args: - self.write(", *") - self.visit(node.dyn_args, frame) - - if kwarg_workaround: - if node.dyn_kwargs is not None: - self.write(", **dict({") - else: - self.write(", **{") - for kwarg in node.kwargs: - self.write(f"{kwarg.key!r}: ") - self.visit(kwarg.value, frame) - self.write(", ") - if extra_kwargs is not None: - for key, value in extra_kwargs.items(): - self.write(f"{key!r}: {value}, ") - if node.dyn_kwargs is not None: - self.write("}, **") - self.visit(node.dyn_kwargs, frame) - self.write(")") - else: - self.write("}") - - elif node.dyn_kwargs is not None: - self.write(", **") - self.visit(node.dyn_kwargs, frame) - - def pull_dependencies(self, nodes: t.Iterable[nodes.Node]) -> None: - """Find all filter and test names used in the template and - assign them to variables in the compiled namespace. Checking - that the names are registered with the environment is done when - compiling the Filter and Test nodes. If the node is in an If or - CondExpr node, the check is done at runtime instead. - - .. versionchanged:: 3.0 - Filters and tests in If and CondExpr nodes are checked at - runtime instead of compile time. - """ - visitor = DependencyFinderVisitor() - - for node in nodes: - visitor.visit(node) - - for id_map, names, dependency in (self.filters, visitor.filters, "filters"), ( - self.tests, - visitor.tests, - "tests", - ): - for name in sorted(names): - if name not in id_map: - id_map[name] = self.temporary_identifier() - - # add check during runtime that dependencies used inside of executed - # blocks are defined, as this step may be skipped during compile time - self.writeline("try:") - self.indent() - self.writeline(f"{id_map[name]} = environment.{dependency}[{name!r}]") - self.outdent() - self.writeline("except KeyError:") - self.indent() - self.writeline("@internalcode") - self.writeline(f"def {id_map[name]}(*unused):") - self.indent() - self.writeline( - f'raise TemplateRuntimeError("No {dependency[:-1]}' - f' named {name!r} found.")' - ) - self.outdent() - self.outdent() - - def enter_frame(self, frame: Frame) -> None: - undefs = [] - for target, (action, param) in frame.symbols.loads.items(): - if action == VAR_LOAD_PARAMETER: - pass - elif action == VAR_LOAD_RESOLVE: - self.writeline(f"{target} = {self.get_resolve_func()}({param!r})") - elif action == VAR_LOAD_ALIAS: - self.writeline(f"{target} = {param}") - elif action == VAR_LOAD_UNDEFINED: - undefs.append(target) - else: - raise NotImplementedError("unknown load instruction") - if undefs: - self.writeline(f"{' = '.join(undefs)} = missing") - - def leave_frame(self, frame: Frame, with_python_scope: bool = False) -> None: - if not with_python_scope: - undefs = [] - for target in frame.symbols.loads: - undefs.append(target) - if undefs: - self.writeline(f"{' = '.join(undefs)} = missing") - - def choose_async(self, async_value: str = "async ", sync_value: str = "") -> str: - return async_value if self.environment.is_async else sync_value - - def func(self, name: str) -> str: - return f"{self.choose_async()}def {name}" - - def macro_body( - self, node: t.Union[nodes.Macro, nodes.CallBlock], frame: Frame - ) -> t.Tuple[Frame, MacroRef]: - """Dump the function def of a macro or call block.""" - frame = frame.inner() - frame.symbols.analyze_node(node) - macro_ref = MacroRef(node) - - explicit_caller = None - skip_special_params = set() - args = [] - - for idx, arg in enumerate(node.args): - if arg.name == "caller": - explicit_caller = idx - if arg.name in ("kwargs", "varargs"): - skip_special_params.add(arg.name) - args.append(frame.symbols.ref(arg.name)) - - undeclared = find_undeclared(node.body, ("caller", "kwargs", "varargs")) - - if "caller" in undeclared: - # In older Jinja versions there was a bug that allowed caller - # to retain the special behavior even if it was mentioned in - # the argument list. However thankfully this was only really - # working if it was the last argument. So we are explicitly - # checking this now and error out if it is anywhere else in - # the argument list. - if explicit_caller is not None: - try: - node.defaults[explicit_caller - len(node.args)] - except IndexError: - self.fail( - "When defining macros or call blocks the " - 'special "caller" argument must be omitted ' - "or be given a default.", - node.lineno, - ) - else: - args.append(frame.symbols.declare_parameter("caller")) - macro_ref.accesses_caller = True - if "kwargs" in undeclared and "kwargs" not in skip_special_params: - args.append(frame.symbols.declare_parameter("kwargs")) - macro_ref.accesses_kwargs = True - if "varargs" in undeclared and "varargs" not in skip_special_params: - args.append(frame.symbols.declare_parameter("varargs")) - macro_ref.accesses_varargs = True - - # macros are delayed, they never require output checks - frame.require_output_check = False - frame.symbols.analyze_node(node) - self.writeline(f"{self.func('macro')}({', '.join(args)}):", node) - self.indent() - - self.buffer(frame) - self.enter_frame(frame) - - self.push_parameter_definitions(frame) - for idx, arg in enumerate(node.args): - ref = frame.symbols.ref(arg.name) - self.writeline(f"if {ref} is missing:") - self.indent() - try: - default = node.defaults[idx - len(node.args)] - except IndexError: - self.writeline( - f'{ref} = undefined("parameter {arg.name!r} was not provided",' - f" name={arg.name!r})" - ) - else: - self.writeline(f"{ref} = ") - self.visit(default, frame) - self.mark_parameter_stored(ref) - self.outdent() - self.pop_parameter_definitions() - - self.blockvisit(node.body, frame) - self.return_buffer_contents(frame, force_unescaped=True) - self.leave_frame(frame, with_python_scope=True) - self.outdent() - - return frame, macro_ref - - def macro_def(self, macro_ref: MacroRef, frame: Frame) -> None: - """Dump the macro definition for the def created by macro_body.""" - arg_tuple = ", ".join(repr(x.name) for x in macro_ref.node.args) - name = getattr(macro_ref.node, "name", None) - if len(macro_ref.node.args) == 1: - arg_tuple += "," - self.write( - f"Macro(environment, macro, {name!r}, ({arg_tuple})," - f" {macro_ref.accesses_kwargs!r}, {macro_ref.accesses_varargs!r}," - f" {macro_ref.accesses_caller!r}, context.eval_ctx.autoescape)" - ) - - def position(self, node: nodes.Node) -> str: - """Return a human readable position for the node.""" - rv = f"line {node.lineno}" - if self.name is not None: - rv = f"{rv} in {self.name!r}" - return rv - - def dump_local_context(self, frame: Frame) -> str: - items_kv = ", ".join( - f"{name!r}: {target}" - for name, target in frame.symbols.dump_stores().items() - ) - return f"{{{items_kv}}}" - - def write_commons(self) -> None: - """Writes a common preamble that is used by root and block functions. - Primarily this sets up common local helpers and enforces a generator - through a dead branch. - """ - self.writeline("resolve = context.resolve_or_missing") - self.writeline("undefined = environment.undefined") - self.writeline("concat = environment.concat") - # always use the standard Undefined class for the implicit else of - # conditional expressions - self.writeline("cond_expr_undefined = Undefined") - self.writeline("if 0: yield None") - - def push_parameter_definitions(self, frame: Frame) -> None: - """Pushes all parameter targets from the given frame into a local - stack that permits tracking of yet to be assigned parameters. In - particular this enables the optimization from `visit_Name` to skip - undefined expressions for parameters in macros as macros can reference - otherwise unbound parameters. - """ - self._param_def_block.append(frame.symbols.dump_param_targets()) - - def pop_parameter_definitions(self) -> None: - """Pops the current parameter definitions set.""" - self._param_def_block.pop() - - def mark_parameter_stored(self, target: str) -> None: - """Marks a parameter in the current parameter definitions as stored. - This will skip the enforced undefined checks. - """ - if self._param_def_block: - self._param_def_block[-1].discard(target) - - def push_context_reference(self, target: str) -> None: - self._context_reference_stack.append(target) - - def pop_context_reference(self) -> None: - self._context_reference_stack.pop() - - def get_context_ref(self) -> str: - return self._context_reference_stack[-1] - - def get_resolve_func(self) -> str: - target = self._context_reference_stack[-1] - if target == "context": - return "resolve" - return f"{target}.resolve" - - def derive_context(self, frame: Frame) -> str: - return f"{self.get_context_ref()}.derived({self.dump_local_context(frame)})" - - def parameter_is_undeclared(self, target: str) -> bool: - """Checks if a given target is an undeclared parameter.""" - if not self._param_def_block: - return False - return target in self._param_def_block[-1] - - def push_assign_tracking(self) -> None: - """Pushes a new layer for assignment tracking.""" - self._assign_stack.append(set()) - - def pop_assign_tracking(self, frame: Frame) -> None: - """Pops the topmost level for assignment tracking and updates the - context variables if necessary. - """ - vars = self._assign_stack.pop() - if ( - not frame.block_frame - and not frame.loop_frame - and not frame.toplevel - or not vars - ): - return - public_names = [x for x in vars if x[:1] != "_"] - if len(vars) == 1: - name = next(iter(vars)) - ref = frame.symbols.ref(name) - if frame.loop_frame: - self.writeline(f"_loop_vars[{name!r}] = {ref}") - return - if frame.block_frame: - self.writeline(f"_block_vars[{name!r}] = {ref}") - return - self.writeline(f"context.vars[{name!r}] = {ref}") - else: - if frame.loop_frame: - self.writeline("_loop_vars.update({") - elif frame.block_frame: - self.writeline("_block_vars.update({") - else: - self.writeline("context.vars.update({") - for idx, name in enumerate(vars): - if idx: - self.write(", ") - ref = frame.symbols.ref(name) - self.write(f"{name!r}: {ref}") - self.write("})") - if not frame.block_frame and not frame.loop_frame and public_names: - if len(public_names) == 1: - self.writeline(f"context.exported_vars.add({public_names[0]!r})") - else: - names_str = ", ".join(map(repr, public_names)) - self.writeline(f"context.exported_vars.update(({names_str}))") - - # -- Statement Visitors - - def visit_Template( - self, node: nodes.Template, frame: t.Optional[Frame] = None - ) -> None: - assert frame is None, "no root frame allowed" - eval_ctx = EvalContext(self.environment, self.name) - - from .runtime import exported, async_exported - - if self.environment.is_async: - exported_names = sorted(exported + async_exported) - else: - exported_names = sorted(exported) - - self.writeline("from jinja2.runtime import " + ", ".join(exported_names)) - - # if we want a deferred initialization we cannot move the - # environment into a local name - envenv = "" if self.defer_init else ", environment=environment" - - # do we have an extends tag at all? If not, we can save some - # overhead by just not processing any inheritance code. - have_extends = node.find(nodes.Extends) is not None - - # find all blocks - for block in node.find_all(nodes.Block): - if block.name in self.blocks: - self.fail(f"block {block.name!r} defined twice", block.lineno) - self.blocks[block.name] = block - - # find all imports and import them - for import_ in node.find_all(nodes.ImportedName): - if import_.importname not in self.import_aliases: - imp = import_.importname - self.import_aliases[imp] = alias = self.temporary_identifier() - if "." in imp: - module, obj = imp.rsplit(".", 1) - self.writeline(f"from {module} import {obj} as {alias}") - else: - self.writeline(f"import {imp} as {alias}") - - # add the load name - self.writeline(f"name = {self.name!r}") - - # generate the root render function. - self.writeline( - f"{self.func('root')}(context, missing=missing{envenv}):", extra=1 - ) - self.indent() - self.write_commons() - - # process the root - frame = Frame(eval_ctx) - if "self" in find_undeclared(node.body, ("self",)): - ref = frame.symbols.declare_parameter("self") - self.writeline(f"{ref} = TemplateReference(context)") - frame.symbols.analyze_node(node) - frame.toplevel = frame.rootlevel = True - frame.require_output_check = have_extends and not self.has_known_extends - if have_extends: - self.writeline("parent_template = None") - self.enter_frame(frame) - self.pull_dependencies(node.body) - self.blockvisit(node.body, frame) - self.leave_frame(frame, with_python_scope=True) - self.outdent() - - # make sure that the parent root is called. - if have_extends: - if not self.has_known_extends: - self.indent() - self.writeline("if parent_template is not None:") - self.indent() - if not self.environment.is_async: - self.writeline("yield from parent_template.root_render_func(context)") - else: - self.writeline( - "async for event in parent_template.root_render_func(context):" - ) - self.indent() - self.writeline("yield event") - self.outdent() - self.outdent(1 + (not self.has_known_extends)) - - # at this point we now have the blocks collected and can visit them too. - for name, block in self.blocks.items(): - self.writeline( - f"{self.func('block_' + name)}(context, missing=missing{envenv}):", - block, - 1, - ) - self.indent() - self.write_commons() - # It's important that we do not make this frame a child of the - # toplevel template. This would cause a variety of - # interesting issues with identifier tracking. - block_frame = Frame(eval_ctx) - block_frame.block_frame = True - undeclared = find_undeclared(block.body, ("self", "super")) - if "self" in undeclared: - ref = block_frame.symbols.declare_parameter("self") - self.writeline(f"{ref} = TemplateReference(context)") - if "super" in undeclared: - ref = block_frame.symbols.declare_parameter("super") - self.writeline(f"{ref} = context.super({name!r}, block_{name})") - block_frame.symbols.analyze_node(block) - block_frame.block = name - self.writeline("_block_vars = {}") - self.enter_frame(block_frame) - self.pull_dependencies(block.body) - self.blockvisit(block.body, block_frame) - self.leave_frame(block_frame, with_python_scope=True) - self.outdent() - - blocks_kv_str = ", ".join(f"{x!r}: block_{x}" for x in self.blocks) - self.writeline(f"blocks = {{{blocks_kv_str}}}", extra=1) - debug_kv_str = "&".join(f"{k}={v}" for k, v in self.debug_info) - self.writeline(f"debug_info = {debug_kv_str!r}") - - def visit_Block(self, node: nodes.Block, frame: Frame) -> None: - """Call a block and register it for the template.""" - level = 0 - if frame.toplevel: - # if we know that we are a child template, there is no need to - # check if we are one - if self.has_known_extends: - return - if self.extends_so_far > 0: - self.writeline("if parent_template is None:") - self.indent() - level += 1 - - if node.scoped: - context = self.derive_context(frame) - else: - context = self.get_context_ref() - - if node.required: - self.writeline(f"if len(context.blocks[{node.name!r}]) <= 1:", node) - self.indent() - self.writeline( - f'raise TemplateRuntimeError("Required block {node.name!r} not found")', - node, - ) - self.outdent() - - if not self.environment.is_async and frame.buffer is None: - self.writeline( - f"yield from context.blocks[{node.name!r}][0]({context})", node - ) - else: - self.writeline( - f"{self.choose_async()}for event in" - f" context.blocks[{node.name!r}][0]({context}):", - node, - ) - self.indent() - self.simple_write("event", frame) - self.outdent() - - self.outdent(level) - - def visit_Extends(self, node: nodes.Extends, frame: Frame) -> None: - """Calls the extender.""" - if not frame.toplevel: - self.fail("cannot use extend from a non top-level scope", node.lineno) - - # if the number of extends statements in general is zero so - # far, we don't have to add a check if something extended - # the template before this one. - if self.extends_so_far > 0: - - # if we have a known extends we just add a template runtime - # error into the generated code. We could catch that at compile - # time too, but i welcome it not to confuse users by throwing the - # same error at different times just "because we can". - if not self.has_known_extends: - self.writeline("if parent_template is not None:") - self.indent() - self.writeline('raise TemplateRuntimeError("extended multiple times")') - - # if we have a known extends already we don't need that code here - # as we know that the template execution will end here. - if self.has_known_extends: - raise CompilerExit() - else: - self.outdent() - - self.writeline("parent_template = environment.get_template(", node) - self.visit(node.template, frame) - self.write(f", {self.name!r})") - self.writeline("for name, parent_block in parent_template.blocks.items():") - self.indent() - self.writeline("context.blocks.setdefault(name, []).append(parent_block)") - self.outdent() - - # if this extends statement was in the root level we can take - # advantage of that information and simplify the generated code - # in the top level from this point onwards - if frame.rootlevel: - self.has_known_extends = True - - # and now we have one more - self.extends_so_far += 1 - - def visit_Include(self, node: nodes.Include, frame: Frame) -> None: - """Handles includes.""" - if node.ignore_missing: - self.writeline("try:") - self.indent() - - func_name = "get_or_select_template" - if isinstance(node.template, nodes.Const): - if isinstance(node.template.value, str): - func_name = "get_template" - elif isinstance(node.template.value, (tuple, list)): - func_name = "select_template" - elif isinstance(node.template, (nodes.Tuple, nodes.List)): - func_name = "select_template" - - self.writeline(f"template = environment.{func_name}(", node) - self.visit(node.template, frame) - self.write(f", {self.name!r})") - if node.ignore_missing: - self.outdent() - self.writeline("except TemplateNotFound:") - self.indent() - self.writeline("pass") - self.outdent() - self.writeline("else:") - self.indent() - - skip_event_yield = False - if node.with_context: - self.writeline( - f"{self.choose_async()}for event in template.root_render_func(" - "template.new_context(context.get_all(), True," - f" {self.dump_local_context(frame)})):" - ) - elif self.environment.is_async: - self.writeline( - "for event in (await template._get_default_module_async())" - "._body_stream:" - ) - else: - self.writeline("yield from template._get_default_module()._body_stream") - skip_event_yield = True - - if not skip_event_yield: - self.indent() - self.simple_write("event", frame) - self.outdent() - - if node.ignore_missing: - self.outdent() - - def _import_common( - self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame - ) -> None: - self.write(f"{self.choose_async('await ')}environment.get_template(") - self.visit(node.template, frame) - self.write(f", {self.name!r}).") - - if node.with_context: - f_name = f"make_module{self.choose_async('_async')}" - self.write( - f"{f_name}(context.get_all(), True, {self.dump_local_context(frame)})" - ) - else: - self.write(f"_get_default_module{self.choose_async('_async')}(context)") - - def visit_Import(self, node: nodes.Import, frame: Frame) -> None: - """Visit regular imports.""" - self.writeline(f"{frame.symbols.ref(node.target)} = ", node) - if frame.toplevel: - self.write(f"context.vars[{node.target!r}] = ") - - self._import_common(node, frame) - - if frame.toplevel and not node.target.startswith("_"): - self.writeline(f"context.exported_vars.discard({node.target!r})") - - def visit_FromImport(self, node: nodes.FromImport, frame: Frame) -> None: - """Visit named imports.""" - self.newline(node) - self.write("included_template = ") - self._import_common(node, frame) - var_names = [] - discarded_names = [] - for name in node.names: - if isinstance(name, tuple): - name, alias = name - else: - alias = name - self.writeline( - f"{frame.symbols.ref(alias)} =" - f" getattr(included_template, {name!r}, missing)" - ) - self.writeline(f"if {frame.symbols.ref(alias)} is missing:") - self.indent() - message = ( - "the template {included_template.__name__!r}" - f" (imported on {self.position(node)})" - f" does not export the requested name {name!r}" - ) - self.writeline( - f"{frame.symbols.ref(alias)} = undefined(f{message!r}, name={name!r})" - ) - self.outdent() - if frame.toplevel: - var_names.append(alias) - if not alias.startswith("_"): - discarded_names.append(alias) - - if var_names: - if len(var_names) == 1: - name = var_names[0] - self.writeline(f"context.vars[{name!r}] = {frame.symbols.ref(name)}") - else: - names_kv = ", ".join( - f"{name!r}: {frame.symbols.ref(name)}" for name in var_names - ) - self.writeline(f"context.vars.update({{{names_kv}}})") - if discarded_names: - if len(discarded_names) == 1: - self.writeline(f"context.exported_vars.discard({discarded_names[0]!r})") - else: - names_str = ", ".join(map(repr, discarded_names)) - self.writeline( - f"context.exported_vars.difference_update(({names_str}))" - ) - - def visit_For(self, node: nodes.For, frame: Frame) -> None: - loop_frame = frame.inner() - loop_frame.loop_frame = True - test_frame = frame.inner() - else_frame = frame.inner() - - # try to figure out if we have an extended loop. An extended loop - # is necessary if the loop is in recursive mode if the special loop - # variable is accessed in the body if the body is a scoped block. - extended_loop = ( - node.recursive - or "loop" - in find_undeclared(node.iter_child_nodes(only=("body",)), ("loop",)) - or any(block.scoped for block in node.find_all(nodes.Block)) - ) - - loop_ref = None - if extended_loop: - loop_ref = loop_frame.symbols.declare_parameter("loop") - - loop_frame.symbols.analyze_node(node, for_branch="body") - if node.else_: - else_frame.symbols.analyze_node(node, for_branch="else") - - if node.test: - loop_filter_func = self.temporary_identifier() - test_frame.symbols.analyze_node(node, for_branch="test") - self.writeline(f"{self.func(loop_filter_func)}(fiter):", node.test) - self.indent() - self.enter_frame(test_frame) - self.writeline(self.choose_async("async for ", "for ")) - self.visit(node.target, loop_frame) - self.write(" in ") - self.write(self.choose_async("auto_aiter(fiter)", "fiter")) - self.write(":") - self.indent() - self.writeline("if ", node.test) - self.visit(node.test, test_frame) - self.write(":") - self.indent() - self.writeline("yield ") - self.visit(node.target, loop_frame) - self.outdent(3) - self.leave_frame(test_frame, with_python_scope=True) - - # if we don't have an recursive loop we have to find the shadowed - # variables at that point. Because loops can be nested but the loop - # variable is a special one we have to enforce aliasing for it. - if node.recursive: - self.writeline( - f"{self.func('loop')}(reciter, loop_render_func, depth=0):", node - ) - self.indent() - self.buffer(loop_frame) - - # Use the same buffer for the else frame - else_frame.buffer = loop_frame.buffer - - # make sure the loop variable is a special one and raise a template - # assertion error if a loop tries to write to loop - if extended_loop: - self.writeline(f"{loop_ref} = missing") - - for name in node.find_all(nodes.Name): - if name.ctx == "store" and name.name == "loop": - self.fail( - "Can't assign to special loop variable in for-loop target", - name.lineno, - ) - - if node.else_: - iteration_indicator = self.temporary_identifier() - self.writeline(f"{iteration_indicator} = 1") - - self.writeline(self.choose_async("async for ", "for "), node) - self.visit(node.target, loop_frame) - if extended_loop: - self.write(f", {loop_ref} in {self.choose_async('Async')}LoopContext(") - else: - self.write(" in ") - - if node.test: - self.write(f"{loop_filter_func}(") - if node.recursive: - self.write("reciter") - else: - if self.environment.is_async and not extended_loop: - self.write("auto_aiter(") - self.visit(node.iter, frame) - if self.environment.is_async and not extended_loop: - self.write(")") - if node.test: - self.write(")") - - if node.recursive: - self.write(", undefined, loop_render_func, depth):") - else: - self.write(", undefined):" if extended_loop else ":") - - self.indent() - self.enter_frame(loop_frame) - - self.writeline("_loop_vars = {}") - self.blockvisit(node.body, loop_frame) - if node.else_: - self.writeline(f"{iteration_indicator} = 0") - self.outdent() - self.leave_frame( - loop_frame, with_python_scope=node.recursive and not node.else_ - ) - - if node.else_: - self.writeline(f"if {iteration_indicator}:") - self.indent() - self.enter_frame(else_frame) - self.blockvisit(node.else_, else_frame) - self.leave_frame(else_frame) - self.outdent() - - # if the node was recursive we have to return the buffer contents - # and start the iteration code - if node.recursive: - self.return_buffer_contents(loop_frame) - self.outdent() - self.start_write(frame, node) - self.write(f"{self.choose_async('await ')}loop(") - if self.environment.is_async: - self.write("auto_aiter(") - self.visit(node.iter, frame) - if self.environment.is_async: - self.write(")") - self.write(", loop)") - self.end_write(frame) - - # at the end of the iteration, clear any assignments made in the - # loop from the top level - if self._assign_stack: - self._assign_stack[-1].difference_update(loop_frame.symbols.stores) - - def visit_If(self, node: nodes.If, frame: Frame) -> None: - if_frame = frame.soft() - self.writeline("if ", node) - self.visit(node.test, if_frame) - self.write(":") - self.indent() - self.blockvisit(node.body, if_frame) - self.outdent() - for elif_ in node.elif_: - self.writeline("elif ", elif_) - self.visit(elif_.test, if_frame) - self.write(":") - self.indent() - self.blockvisit(elif_.body, if_frame) - self.outdent() - if node.else_: - self.writeline("else:") - self.indent() - self.blockvisit(node.else_, if_frame) - self.outdent() - - def visit_Macro(self, node: nodes.Macro, frame: Frame) -> None: - macro_frame, macro_ref = self.macro_body(node, frame) - self.newline() - if frame.toplevel: - if not node.name.startswith("_"): - self.write(f"context.exported_vars.add({node.name!r})") - self.writeline(f"context.vars[{node.name!r}] = ") - self.write(f"{frame.symbols.ref(node.name)} = ") - self.macro_def(macro_ref, macro_frame) - - def visit_CallBlock(self, node: nodes.CallBlock, frame: Frame) -> None: - call_frame, macro_ref = self.macro_body(node, frame) - self.writeline("caller = ") - self.macro_def(macro_ref, call_frame) - self.start_write(frame, node) - self.visit_Call(node.call, frame, forward_caller=True) - self.end_write(frame) - - def visit_FilterBlock(self, node: nodes.FilterBlock, frame: Frame) -> None: - filter_frame = frame.inner() - filter_frame.symbols.analyze_node(node) - self.enter_frame(filter_frame) - self.buffer(filter_frame) - self.blockvisit(node.body, filter_frame) - self.start_write(frame, node) - self.visit_Filter(node.filter, filter_frame) - self.end_write(frame) - self.leave_frame(filter_frame) - - def visit_With(self, node: nodes.With, frame: Frame) -> None: - with_frame = frame.inner() - with_frame.symbols.analyze_node(node) - self.enter_frame(with_frame) - for target, expr in zip(node.targets, node.values): - self.newline() - self.visit(target, with_frame) - self.write(" = ") - self.visit(expr, frame) - self.blockvisit(node.body, with_frame) - self.leave_frame(with_frame) - - def visit_ExprStmt(self, node: nodes.ExprStmt, frame: Frame) -> None: - self.newline(node) - self.visit(node.node, frame) - - class _FinalizeInfo(t.NamedTuple): - const: t.Optional[t.Callable[..., str]] - src: t.Optional[str] - - @staticmethod - def _default_finalize(value: t.Any) -> t.Any: - """The default finalize function if the environment isn't - configured with one. Or, if the environment has one, this is - called on that function's output for constants. - """ - return str(value) - - _finalize: t.Optional[_FinalizeInfo] = None - - def _make_finalize(self) -> _FinalizeInfo: - """Build the finalize function to be used on constants and at - runtime. Cached so it's only created once for all output nodes. - - Returns a ``namedtuple`` with the following attributes: - - ``const`` - A function to finalize constant data at compile time. - - ``src`` - Source code to output around nodes to be evaluated at - runtime. - """ - if self._finalize is not None: - return self._finalize - - finalize: t.Optional[t.Callable[..., t.Any]] - finalize = default = self._default_finalize - src = None - - if self.environment.finalize: - src = "environment.finalize(" - env_finalize = self.environment.finalize - pass_arg = { - _PassArg.context: "context", - _PassArg.eval_context: "context.eval_ctx", - _PassArg.environment: "environment", - }.get( - _PassArg.from_obj(env_finalize) # type: ignore - ) - finalize = None - - if pass_arg is None: - - def finalize(value: t.Any) -> t.Any: - return default(env_finalize(value)) - - else: - src = f"{src}{pass_arg}, " - - if pass_arg == "environment": - - def finalize(value: t.Any) -> t.Any: - return default(env_finalize(self.environment, value)) - - self._finalize = self._FinalizeInfo(finalize, src) - return self._finalize - - def _output_const_repr(self, group: t.Iterable[t.Any]) -> str: - """Given a group of constant values converted from ``Output`` - child nodes, produce a string to write to the template module - source. - """ - return repr(concat(group)) - - def _output_child_to_const( - self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo - ) -> str: - """Try to optimize a child of an ``Output`` node by trying to - convert it to constant, finalized data at compile time. - - If :exc:`Impossible` is raised, the node is not constant and - will be evaluated at runtime. Any other exception will also be - evaluated at runtime for easier debugging. - """ - const = node.as_const(frame.eval_ctx) - - if frame.eval_ctx.autoescape: - const = escape(const) - - # Template data doesn't go through finalize. - if isinstance(node, nodes.TemplateData): - return str(const) - - return finalize.const(const) # type: ignore - - def _output_child_pre( - self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo - ) -> None: - """Output extra source code before visiting a child of an - ``Output`` node. - """ - if frame.eval_ctx.volatile: - self.write("(escape if context.eval_ctx.autoescape else str)(") - elif frame.eval_ctx.autoescape: - self.write("escape(") - else: - self.write("str(") - - if finalize.src is not None: - self.write(finalize.src) - - def _output_child_post( - self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo - ) -> None: - """Output extra source code after visiting a child of an - ``Output`` node. - """ - self.write(")") - - if finalize.src is not None: - self.write(")") - - def visit_Output(self, node: nodes.Output, frame: Frame) -> None: - # If an extends is active, don't render outside a block. - if frame.require_output_check: - # A top-level extends is known to exist at compile time. - if self.has_known_extends: - return - - self.writeline("if parent_template is None:") - self.indent() - - finalize = self._make_finalize() - body: t.List[t.Union[t.List[t.Any], nodes.Expr]] = [] - - # Evaluate constants at compile time if possible. Each item in - # body will be either a list of static data or a node to be - # evaluated at runtime. - for child in node.nodes: - try: - if not ( - # If the finalize function requires runtime context, - # constants can't be evaluated at compile time. - finalize.const - # Unless it's basic template data that won't be - # finalized anyway. - or isinstance(child, nodes.TemplateData) - ): - raise nodes.Impossible() - - const = self._output_child_to_const(child, frame, finalize) - except (nodes.Impossible, Exception): - # The node was not constant and needs to be evaluated at - # runtime. Or another error was raised, which is easier - # to debug at runtime. - body.append(child) - continue - - if body and isinstance(body[-1], list): - body[-1].append(const) - else: - body.append([const]) - - if frame.buffer is not None: - if len(body) == 1: - self.writeline(f"{frame.buffer}.append(") - else: - self.writeline(f"{frame.buffer}.extend((") - - self.indent() - - for item in body: - if isinstance(item, list): - # A group of constant data to join and output. - val = self._output_const_repr(item) - - if frame.buffer is None: - self.writeline("yield " + val) - else: - self.writeline(val + ",") - else: - if frame.buffer is None: - self.writeline("yield ", item) - else: - self.newline(item) - - # A node to be evaluated at runtime. - self._output_child_pre(item, frame, finalize) - self.visit(item, frame) - self._output_child_post(item, frame, finalize) - - if frame.buffer is not None: - self.write(",") - - if frame.buffer is not None: - self.outdent() - self.writeline(")" if len(body) == 1 else "))") - - if frame.require_output_check: - self.outdent() - - def visit_Assign(self, node: nodes.Assign, frame: Frame) -> None: - self.push_assign_tracking() - self.newline(node) - self.visit(node.target, frame) - self.write(" = ") - self.visit(node.node, frame) - self.pop_assign_tracking(frame) - - def visit_AssignBlock(self, node: nodes.AssignBlock, frame: Frame) -> None: - self.push_assign_tracking() - block_frame = frame.inner() - # This is a special case. Since a set block always captures we - # will disable output checks. This way one can use set blocks - # toplevel even in extended templates. - block_frame.require_output_check = False - block_frame.symbols.analyze_node(node) - self.enter_frame(block_frame) - self.buffer(block_frame) - self.blockvisit(node.body, block_frame) - self.newline(node) - self.visit(node.target, frame) - self.write(" = (Markup if context.eval_ctx.autoescape else identity)(") - if node.filter is not None: - self.visit_Filter(node.filter, block_frame) - else: - self.write(f"concat({block_frame.buffer})") - self.write(")") - self.pop_assign_tracking(frame) - self.leave_frame(block_frame) - - # -- Expression Visitors - - def visit_Name(self, node: nodes.Name, frame: Frame) -> None: - if node.ctx == "store" and ( - frame.toplevel or frame.loop_frame or frame.block_frame - ): - if self._assign_stack: - self._assign_stack[-1].add(node.name) - ref = frame.symbols.ref(node.name) - - # If we are looking up a variable we might have to deal with the - # case where it's undefined. We can skip that case if the load - # instruction indicates a parameter which are always defined. - if node.ctx == "load": - load = frame.symbols.find_load(ref) - if not ( - load is not None - and load[0] == VAR_LOAD_PARAMETER - and not self.parameter_is_undeclared(ref) - ): - self.write( - f"(undefined(name={node.name!r}) if {ref} is missing else {ref})" - ) - return - - self.write(ref) - - def visit_NSRef(self, node: nodes.NSRef, frame: Frame) -> None: - # NSRefs can only be used to store values; since they use the normal - # `foo.bar` notation they will be parsed as a normal attribute access - # when used anywhere but in a `set` context - ref = frame.symbols.ref(node.name) - self.writeline(f"if not isinstance({ref}, Namespace):") - self.indent() - self.writeline( - "raise TemplateRuntimeError" - '("cannot assign attribute on non-namespace object")' - ) - self.outdent() - self.writeline(f"{ref}[{node.attr!r}]") - - def visit_Const(self, node: nodes.Const, frame: Frame) -> None: - val = node.as_const(frame.eval_ctx) - if isinstance(val, float): - self.write(str(val)) - else: - self.write(repr(val)) - - def visit_TemplateData(self, node: nodes.TemplateData, frame: Frame) -> None: - try: - self.write(repr(node.as_const(frame.eval_ctx))) - except nodes.Impossible: - self.write( - f"(Markup if context.eval_ctx.autoescape else identity)({node.data!r})" - ) - - def visit_Tuple(self, node: nodes.Tuple, frame: Frame) -> None: - self.write("(") - idx = -1 - for idx, item in enumerate(node.items): - if idx: - self.write(", ") - self.visit(item, frame) - self.write(",)" if idx == 0 else ")") - - def visit_List(self, node: nodes.List, frame: Frame) -> None: - self.write("[") - for idx, item in enumerate(node.items): - if idx: - self.write(", ") - self.visit(item, frame) - self.write("]") - - def visit_Dict(self, node: nodes.Dict, frame: Frame) -> None: - self.write("{") - for idx, item in enumerate(node.items): - if idx: - self.write(", ") - self.visit(item.key, frame) - self.write(": ") - self.visit(item.value, frame) - self.write("}") - - visit_Add = _make_binop("+") - visit_Sub = _make_binop("-") - visit_Mul = _make_binop("*") - visit_Div = _make_binop("/") - visit_FloorDiv = _make_binop("//") - visit_Pow = _make_binop("**") - visit_Mod = _make_binop("%") - visit_And = _make_binop("and") - visit_Or = _make_binop("or") - visit_Pos = _make_unop("+") - visit_Neg = _make_unop("-") - visit_Not = _make_unop("not ") - - @optimizeconst - def visit_Concat(self, node: nodes.Concat, frame: Frame) -> None: - if frame.eval_ctx.volatile: - func_name = "(markup_join if context.eval_ctx.volatile else str_join)" - elif frame.eval_ctx.autoescape: - func_name = "markup_join" - else: - func_name = "str_join" - self.write(f"{func_name}((") - for arg in node.nodes: - self.visit(arg, frame) - self.write(", ") - self.write("))") - - @optimizeconst - def visit_Compare(self, node: nodes.Compare, frame: Frame) -> None: - self.write("(") - self.visit(node.expr, frame) - for op in node.ops: - self.visit(op, frame) - self.write(")") - - def visit_Operand(self, node: nodes.Operand, frame: Frame) -> None: - self.write(f" {operators[node.op]} ") - self.visit(node.expr, frame) - - @optimizeconst - def visit_Getattr(self, node: nodes.Getattr, frame: Frame) -> None: - if self.environment.is_async: - self.write("(await auto_await(") - - self.write("environment.getattr(") - self.visit(node.node, frame) - self.write(f", {node.attr!r})") - - if self.environment.is_async: - self.write("))") - - @optimizeconst - def visit_Getitem(self, node: nodes.Getitem, frame: Frame) -> None: - # slices bypass the environment getitem method. - if isinstance(node.arg, nodes.Slice): - self.visit(node.node, frame) - self.write("[") - self.visit(node.arg, frame) - self.write("]") - else: - if self.environment.is_async: - self.write("(await auto_await(") - - self.write("environment.getitem(") - self.visit(node.node, frame) - self.write(", ") - self.visit(node.arg, frame) - self.write(")") - - if self.environment.is_async: - self.write("))") - - def visit_Slice(self, node: nodes.Slice, frame: Frame) -> None: - if node.start is not None: - self.visit(node.start, frame) - self.write(":") - if node.stop is not None: - self.visit(node.stop, frame) - if node.step is not None: - self.write(":") - self.visit(node.step, frame) - - @contextmanager - def _filter_test_common( - self, node: t.Union[nodes.Filter, nodes.Test], frame: Frame, is_filter: bool - ) -> t.Iterator[None]: - if self.environment.is_async: - self.write("(await auto_await(") - - if is_filter: - self.write(f"{self.filters[node.name]}(") - func = self.environment.filters.get(node.name) - else: - self.write(f"{self.tests[node.name]}(") - func = self.environment.tests.get(node.name) - - # When inside an If or CondExpr frame, allow the filter to be - # undefined at compile time and only raise an error if it's - # actually called at runtime. See pull_dependencies. - if func is None and not frame.soft_frame: - type_name = "filter" if is_filter else "test" - self.fail(f"No {type_name} named {node.name!r}.", node.lineno) - - pass_arg = { - _PassArg.context: "context", - _PassArg.eval_context: "context.eval_ctx", - _PassArg.environment: "environment", - }.get( - _PassArg.from_obj(func) # type: ignore - ) - - if pass_arg is not None: - self.write(f"{pass_arg}, ") - - # Back to the visitor function to handle visiting the target of - # the filter or test. - yield - - self.signature(node, frame) - self.write(")") - - if self.environment.is_async: - self.write("))") - - @optimizeconst - def visit_Filter(self, node: nodes.Filter, frame: Frame) -> None: - with self._filter_test_common(node, frame, True): - # if the filter node is None we are inside a filter block - # and want to write to the current buffer - if node.node is not None: - self.visit(node.node, frame) - elif frame.eval_ctx.volatile: - self.write( - f"(Markup(concat({frame.buffer}))" - f" if context.eval_ctx.autoescape else concat({frame.buffer}))" - ) - elif frame.eval_ctx.autoescape: - self.write(f"Markup(concat({frame.buffer}))") - else: - self.write(f"concat({frame.buffer})") - - @optimizeconst - def visit_Test(self, node: nodes.Test, frame: Frame) -> None: - with self._filter_test_common(node, frame, False): - self.visit(node.node, frame) - - @optimizeconst - def visit_CondExpr(self, node: nodes.CondExpr, frame: Frame) -> None: - frame = frame.soft() - - def write_expr2() -> None: - if node.expr2 is not None: - self.visit(node.expr2, frame) - return - - self.write( - f'cond_expr_undefined("the inline if-expression on' - f" {self.position(node)} evaluated to false and no else" - f' section was defined.")' - ) - - self.write("(") - self.visit(node.expr1, frame) - self.write(" if ") - self.visit(node.test, frame) - self.write(" else ") - write_expr2() - self.write(")") - - @optimizeconst - def visit_Call( - self, node: nodes.Call, frame: Frame, forward_caller: bool = False - ) -> None: - if self.environment.is_async: - self.write("(await auto_await(") - if self.environment.sandboxed: - self.write("environment.call(context, ") - else: - self.write("context.call(") - self.visit(node.node, frame) - extra_kwargs = {"caller": "caller"} if forward_caller else None - loop_kwargs = {"_loop_vars": "_loop_vars"} if frame.loop_frame else {} - block_kwargs = {"_block_vars": "_block_vars"} if frame.block_frame else {} - if extra_kwargs: - extra_kwargs.update(loop_kwargs, **block_kwargs) - elif loop_kwargs or block_kwargs: - extra_kwargs = dict(loop_kwargs, **block_kwargs) - self.signature(node, frame, extra_kwargs) - self.write(")") - if self.environment.is_async: - self.write("))") - - def visit_Keyword(self, node: nodes.Keyword, frame: Frame) -> None: - self.write(node.key + "=") - self.visit(node.value, frame) - - # -- Unused nodes for extensions - - def visit_MarkSafe(self, node: nodes.MarkSafe, frame: Frame) -> None: - self.write("Markup(") - self.visit(node.expr, frame) - self.write(")") - - def visit_MarkSafeIfAutoescape( - self, node: nodes.MarkSafeIfAutoescape, frame: Frame - ) -> None: - self.write("(Markup if context.eval_ctx.autoescape else identity)(") - self.visit(node.expr, frame) - self.write(")") - - def visit_EnvironmentAttribute( - self, node: nodes.EnvironmentAttribute, frame: Frame - ) -> None: - self.write("environment." + node.name) - - def visit_ExtensionAttribute( - self, node: nodes.ExtensionAttribute, frame: Frame - ) -> None: - self.write(f"environment.extensions[{node.identifier!r}].{node.name}") - - def visit_ImportedName(self, node: nodes.ImportedName, frame: Frame) -> None: - self.write(self.import_aliases[node.importname]) - - def visit_InternalName(self, node: nodes.InternalName, frame: Frame) -> None: - self.write(node.name) - - def visit_ContextReference( - self, node: nodes.ContextReference, frame: Frame - ) -> None: - self.write("context") - - def visit_DerivedContextReference( - self, node: nodes.DerivedContextReference, frame: Frame - ) -> None: - self.write(self.derive_context(frame)) - - def visit_Continue(self, node: nodes.Continue, frame: Frame) -> None: - self.writeline("continue", node) - - def visit_Break(self, node: nodes.Break, frame: Frame) -> None: - self.writeline("break", node) - - def visit_Scope(self, node: nodes.Scope, frame: Frame) -> None: - scope_frame = frame.inner() - scope_frame.symbols.analyze_node(node) - self.enter_frame(scope_frame) - self.blockvisit(node.body, scope_frame) - self.leave_frame(scope_frame) - - def visit_OverlayScope(self, node: nodes.OverlayScope, frame: Frame) -> None: - ctx = self.temporary_identifier() - self.writeline(f"{ctx} = {self.derive_context(frame)}") - self.writeline(f"{ctx}.vars = ") - self.visit(node.context, frame) - self.push_context_reference(ctx) - - scope_frame = frame.inner(isolated=True) - scope_frame.symbols.analyze_node(node) - self.enter_frame(scope_frame) - self.blockvisit(node.body, scope_frame) - self.leave_frame(scope_frame) - self.pop_context_reference() - - def visit_EvalContextModifier( - self, node: nodes.EvalContextModifier, frame: Frame - ) -> None: - for keyword in node.options: - self.writeline(f"context.eval_ctx.{keyword.key} = ") - self.visit(keyword.value, frame) - try: - val = keyword.value.as_const(frame.eval_ctx) - except nodes.Impossible: - frame.eval_ctx.volatile = True - else: - setattr(frame.eval_ctx, keyword.key, val) - - def visit_ScopedEvalContextModifier( - self, node: nodes.ScopedEvalContextModifier, frame: Frame - ) -> None: - old_ctx_name = self.temporary_identifier() - saved_ctx = frame.eval_ctx.save() - self.writeline(f"{old_ctx_name} = context.eval_ctx.save()") - self.visit_EvalContextModifier(node, frame) - for child in node.body: - self.visit(child, frame) - frame.eval_ctx.revert(saved_ctx) - self.writeline(f"context.eval_ctx.revert({old_ctx_name})") diff --git a/.venv/lib/python3.11/site-packages/jinja2/constants.py b/.venv/lib/python3.11/site-packages/jinja2/constants.py deleted file mode 100644 index 41a1c23b0a7..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/constants.py +++ /dev/null @@ -1,20 +0,0 @@ -#: list of lorem ipsum words used by the lipsum() helper function -LOREM_IPSUM_WORDS = """\ -a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at -auctor augue bibendum blandit class commodo condimentum congue consectetuer -consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus -diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend -elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames -faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac -hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum -justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem -luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie -mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non -nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque -penatibus per pharetra phasellus placerat platea porta porttitor posuere -potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus -ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit -sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor -tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices -ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus -viverra volutpat vulputate""" diff --git a/.venv/lib/python3.11/site-packages/jinja2/debug.py b/.venv/lib/python3.11/site-packages/jinja2/debug.py deleted file mode 100644 index 7ed7e9297e0..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/debug.py +++ /dev/null @@ -1,191 +0,0 @@ -import sys -import typing as t -from types import CodeType -from types import TracebackType - -from .exceptions import TemplateSyntaxError -from .utils import internal_code -from .utils import missing - -if t.TYPE_CHECKING: - from .runtime import Context - - -def rewrite_traceback_stack(source: t.Optional[str] = None) -> BaseException: - """Rewrite the current exception to replace any tracebacks from - within compiled template code with tracebacks that look like they - came from the template source. - - This must be called within an ``except`` block. - - :param source: For ``TemplateSyntaxError``, the original source if - known. - :return: The original exception with the rewritten traceback. - """ - _, exc_value, tb = sys.exc_info() - exc_value = t.cast(BaseException, exc_value) - tb = t.cast(TracebackType, tb) - - if isinstance(exc_value, TemplateSyntaxError) and not exc_value.translated: - exc_value.translated = True - exc_value.source = source - # Remove the old traceback, otherwise the frames from the - # compiler still show up. - exc_value.with_traceback(None) - # Outside of runtime, so the frame isn't executing template - # code, but it still needs to point at the template. - tb = fake_traceback( - exc_value, None, exc_value.filename or "", exc_value.lineno - ) - else: - # Skip the frame for the render function. - tb = tb.tb_next - - stack = [] - - # Build the stack of traceback object, replacing any in template - # code with the source file and line information. - while tb is not None: - # Skip frames decorated with @internalcode. These are internal - # calls that aren't useful in template debugging output. - if tb.tb_frame.f_code in internal_code: - tb = tb.tb_next - continue - - template = tb.tb_frame.f_globals.get("__jinja_template__") - - if template is not None: - lineno = template.get_corresponding_lineno(tb.tb_lineno) - fake_tb = fake_traceback(exc_value, tb, template.filename, lineno) - stack.append(fake_tb) - else: - stack.append(tb) - - tb = tb.tb_next - - tb_next = None - - # Assign tb_next in reverse to avoid circular references. - for tb in reversed(stack): - tb.tb_next = tb_next - tb_next = tb - - return exc_value.with_traceback(tb_next) - - -def fake_traceback( # type: ignore - exc_value: BaseException, tb: t.Optional[TracebackType], filename: str, lineno: int -) -> TracebackType: - """Produce a new traceback object that looks like it came from the - template source instead of the compiled code. The filename, line - number, and location name will point to the template, and the local - variables will be the current template context. - - :param exc_value: The original exception to be re-raised to create - the new traceback. - :param tb: The original traceback to get the local variables and - code info from. - :param filename: The template filename. - :param lineno: The line number in the template source. - """ - if tb is not None: - # Replace the real locals with the context that would be - # available at that point in the template. - locals = get_template_locals(tb.tb_frame.f_locals) - locals.pop("__jinja_exception__", None) - else: - locals = {} - - globals = { - "__name__": filename, - "__file__": filename, - "__jinja_exception__": exc_value, - } - # Raise an exception at the correct line number. - code: CodeType = compile( - "\n" * (lineno - 1) + "raise __jinja_exception__", filename, "exec" - ) - - # Build a new code object that points to the template file and - # replaces the location with a block name. - location = "template" - - if tb is not None: - function = tb.tb_frame.f_code.co_name - - if function == "root": - location = "top-level template code" - elif function.startswith("block_"): - location = f"block {function[6:]!r}" - - if sys.version_info >= (3, 8): - code = code.replace(co_name=location) - else: - code = CodeType( - code.co_argcount, - code.co_kwonlyargcount, - code.co_nlocals, - code.co_stacksize, - code.co_flags, - code.co_code, - code.co_consts, - code.co_names, - code.co_varnames, - code.co_filename, - location, - code.co_firstlineno, - code.co_lnotab, - code.co_freevars, - code.co_cellvars, - ) - - # Execute the new code, which is guaranteed to raise, and return - # the new traceback without this frame. - try: - exec(code, globals, locals) - except BaseException: - return sys.exc_info()[2].tb_next # type: ignore - - -def get_template_locals(real_locals: t.Mapping[str, t.Any]) -> t.Dict[str, t.Any]: - """Based on the runtime locals, get the context that would be - available at that point in the template. - """ - # Start with the current template context. - ctx: "t.Optional[Context]" = real_locals.get("context") - - if ctx is not None: - data: t.Dict[str, t.Any] = ctx.get_all().copy() - else: - data = {} - - # Might be in a derived context that only sets local variables - # rather than pushing a context. Local variables follow the scheme - # l_depth_name. Find the highest-depth local that has a value for - # each name. - local_overrides: t.Dict[str, t.Tuple[int, t.Any]] = {} - - for name, value in real_locals.items(): - if not name.startswith("l_") or value is missing: - # Not a template variable, or no longer relevant. - continue - - try: - _, depth_str, name = name.split("_", 2) - depth = int(depth_str) - except ValueError: - continue - - cur_depth = local_overrides.get(name, (-1,))[0] - - if cur_depth < depth: - local_overrides[name] = (depth, value) - - # Modify the context with any derived context. - for name, (_, value) in local_overrides.items(): - if value is missing: - data.pop(name, None) - else: - data[name] = value - - return data diff --git a/.venv/lib/python3.11/site-packages/jinja2/defaults.py b/.venv/lib/python3.11/site-packages/jinja2/defaults.py deleted file mode 100644 index 638cad3d2d8..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/defaults.py +++ /dev/null @@ -1,48 +0,0 @@ -import typing as t - -from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 -from .tests import TESTS as DEFAULT_TESTS # noqa: F401 -from .utils import Cycler -from .utils import generate_lorem_ipsum -from .utils import Joiner -from .utils import Namespace - -if t.TYPE_CHECKING: - import typing_extensions as te - -# defaults for the parser / lexer -BLOCK_START_STRING = "{%" -BLOCK_END_STRING = "%}" -VARIABLE_START_STRING = "{{" -VARIABLE_END_STRING = "}}" -COMMENT_START_STRING = "{#" -COMMENT_END_STRING = "#}" -LINE_STATEMENT_PREFIX: t.Optional[str] = None -LINE_COMMENT_PREFIX: t.Optional[str] = None -TRIM_BLOCKS = False -LSTRIP_BLOCKS = False -NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" -KEEP_TRAILING_NEWLINE = False - -# default filters, tests and namespace - -DEFAULT_NAMESPACE = { - "range": range, - "dict": dict, - "lipsum": generate_lorem_ipsum, - "cycler": Cycler, - "joiner": Joiner, - "namespace": Namespace, -} - -# default policies -DEFAULT_POLICIES: t.Dict[str, t.Any] = { - "compiler.ascii_str": True, - "urlize.rel": "noopener", - "urlize.target": None, - "urlize.extra_schemes": None, - "truncate.leeway": 5, - "json.dumps_function": None, - "json.dumps_kwargs": {"sort_keys": True}, - "ext.i18n.trimmed": False, -} diff --git a/.venv/lib/python3.11/site-packages/jinja2/environment.py b/.venv/lib/python3.11/site-packages/jinja2/environment.py deleted file mode 100644 index ea04e8b4433..00000000000 --- a/.venv/lib/python3.11/site-packages/jinja2/environment.py +++ /dev/null @@ -1,1667 +0,0 @@ -"""Classes for managing templates and their runtime and compile time -options. -""" -import os -import typing -import typing as t -import weakref -from collections import ChainMap -from functools import lru_cache -from functools import partial -from functools import reduce -from types import CodeType - -from markupsafe import Markup - -from . import nodes -from .compiler import CodeGenerator -from .compiler import generate -from .defaults import BLOCK_END_STRING -from .defaults import BLOCK_START_STRING -from .defaults import COMMENT_END_STRING -from .defaults import COMMENT_START_STRING -from .defaults import DEFAULT_FILTERS -from .defaults import DEFAULT_NAMESPACE -from .defaults import DEFAULT_POLICIES -from .defaults import DEFAULT_TESTS -from .defaults import KEEP_TRAILING_NEWLINE -from .defaults import LINE_COMMENT_PREFIX -from .defaults import LINE_STATEMENT_PREFIX -from .defaults import LSTRIP_BLOCKS -from .defaults import NEWLINE_SEQUENCE -from .defaults import TRIM_BLOCKS -from .defaults import VARIABLE_END_STRING -from .defaults import VARIABLE_START_STRING -from .exceptions import TemplateNotFound -from .exceptions import TemplateRuntimeError -from .exceptions import TemplatesNotFound -from .exceptions import TemplateSyntaxError -from .exceptions import UndefinedError -from .lexer import get_lexer -from .lexer import Lexer -from .lexer import TokenStream -from .nodes import EvalContext -from .parser import Parser -from .runtime import Context -from .runtime import new_context -from .runtime import Undefined -from .utils import _PassArg -from .utils import concat -from .utils import consume -from .utils import import_string -from .utils import internalcode -from .utils import LRUCache -from .utils import missing - -if t.TYPE_CHECKING: - import typing_extensions as te - from .bccache import BytecodeCache - from .ext import Extension - from .loaders import BaseLoader - -_env_bound = t.TypeVar("_env_bound", bound="Environment") - - -# for direct template usage we have up to ten living environments -@lru_cache(maxsize=10) -def get_spontaneous_environment(cls: t.Type[_env_bound], *args: t.Any) -> _env_bound: - """Return a new spontaneous environment. A spontaneous environment - is used for templates created directly rather than through an - existing environment. - - :param cls: Environment class to create. - :param args: Positional arguments passed to environment. - """ - env = cls(*args) - env.shared = True - return env - - -def create_cache( - size: int, -) -> t.Optional[t.MutableMapping[t.Tuple[weakref.ref, str], "Template"]]: - """Return the cache class for the given size.""" - if size == 0: - return None - - if size < 0: - return {} - - return LRUCache(size) # type: ignore - - -def copy_cache( - cache: t.Optional[t.MutableMapping], -) -> t.Optional[t.MutableMapping[t.Tuple[weakref.ref, str], "Template"]]: - """Create an empty copy of the given cache.""" - if cache is None: - return None - - if type(cache) is dict: - return {} - - return LRUCache(cache.capacity) # type: ignore - - -def load_extensions( - environment: "Environment", - extensions: t.Sequence[t.Union[str, t.Type["Extension"]]], -) -> t.Dict[str, "Extension"]: - """Load the extensions from the list and bind it to the environment. - Returns a dict of instantiated extensions. - """ - result = {} - - for extension in extensions: - if isinstance(extension, str): - extension = t.cast(t.Type["Extension"], import_string(extension)) - - result[extension.identifier] = extension(environment) - - return result - - -def _environment_config_check(environment: "Environment") -> "Environment": - """Perform a sanity check on the environment.""" - assert issubclass( - environment.undefined, Undefined - ), "'undefined' must be a subclass of 'jinja2.Undefined'." - assert ( - environment.block_start_string - != environment.variable_start_string - != environment.comment_start_string - ), "block, variable and comment start strings must be different." - assert environment.newline_sequence in { - "\r", - "\r\n", - "\n", - }, "'newline_sequence' must be one of '\\n', '\\r\\n', or '\\r'." - return environment - - -class Environment: - r"""The core component of Jinja is the `Environment`. It contains - important shared variables like configuration, filters, tests, - globals and others. Instances of this class may be modified if - they are not shared and if no template was loaded so far. - Modifications on environments after the first template was loaded - will lead to surprising effects and undefined behavior. - - Here are the possible initialization parameters: - - `block_start_string` - The string marking the beginning of a block. Defaults to ``'{%'``. - - `block_end_string` - The string marking the end of a block. Defaults to ``'%}'``. - - `variable_start_string` - The string marking the beginning of a print statement. - Defaults to ``'{{'``. - - `variable_end_string` - The string marking the end of a print statement. Defaults to - ``'}}'``. - - `comment_start_string` - The string marking the beginning of a comment. Defaults to ``'{#'``. - - `comment_end_string` - The string marking the end of a comment. Defaults to ``'#}'``. - - `line_statement_prefix` - If given and a string, this will be used as prefix for line based - statements. See also :ref:`line-statements`. - - `line_comment_prefix` - If given and a string, this will be used as prefix for line based - comments. See also :ref:`line-statements`. - - .. versionadded:: 2.2 - - `trim_blocks` - If this is set to ``True`` the first newline after a block is - removed (block, not variable tag!). Defaults to `False`. - - `lstrip_blocks` - If this is set to ``True`` leading spaces and tabs are stripped - from the start of a line to a block. Defaults to `False`. - - `newline_sequence` - The sequence that starts a newline. Must be one of ``'\r'``, - ``'\n'`` or ``'\r\n'``. The default is ``'\n'`` which is a - useful default for Linux and OS X systems as well as web - applications. - - `keep_trailing_newline` - Preserve the trailing newline when rendering templates. - The default is ``False``, which causes a single newline, - if present, to be stripped from the end of the template. - - .. versionadded:: 2.7 - - `extensions` - List of Jinja extensions to use. This can either be import paths - as strings or extension classes. For more information have a - look at :ref:`the extensions documentation `. - - `optimized` - should the optimizer be enabled? Default is ``True``. - - `undefined` - :class:`Undefined` or a subclass of it that is used to represent - undefined values in the template. - - `finalize` - A callable that can be used to process the result of a variable - expression before it is output. For example one can convert - ``None`` implicitly into an empty string here. - - `autoescape` - If set to ``True`` the XML/HTML autoescaping feature is enabled by - default. For more details about autoescaping see - :class:`~markupsafe.Markup`. As of Jinja 2.4 this can also - be a callable that is passed the template name and has to - return ``True`` or ``False`` depending on autoescape should be - enabled by default. - - .. versionchanged:: 2.4 - `autoescape` can now be a function - - `loader` - The template loader for this environment. - - `cache_size` - The size of the cache. Per default this is ``400`` which means - that if more than 400 templates are loaded the loader will clean - out the least recently used template. If the cache size is set to - ``0`` templates are recompiled all the time, if the cache size is - ``-1`` the cache will not be cleaned. - - .. versionchanged:: 2.8 - The cache size was increased to 400 from a low 50. - - `auto_reload` - Some loaders load templates from locations where the template - sources may change (ie: file system or database). If - ``auto_reload`` is set to ``True`` (default) every time a template is - requested the loader checks if the source changed and if yes, it - will reload the template. For higher performance it's possible to - disable that. - - `bytecode_cache` - If set to a bytecode cache object, this object will provide a - cache for the internal Jinja bytecode so that templates don't - have to be parsed if they were not changed. - - See :ref:`bytecode-cache` for more information. - - `enable_async` - If set to true this enables async template execution which - allows using async functions and generators. - """ - - #: if this environment is sandboxed. Modifying this variable won't make - #: the environment sandboxed though. For a real sandboxed environment - #: have a look at jinja2.sandbox. This flag alone controls the code - #: generation by the compiler. - sandboxed = False - - #: True if the environment is just an overlay - overlayed = False - - #: the environment this environment is linked to if it is an overlay - linked_to: t.Optional["Environment"] = None - - #: shared environments have this set to `True`. A shared environment - #: must not be modified - shared = False - - #: the class that is used for code generation. See - #: :class:`~jinja2.compiler.CodeGenerator` for more information. - code_generator_class: t.Type["CodeGenerator"] = CodeGenerator - - concat = "".join - - #: the context class that is used for templates. See - #: :class:`~jinja2.runtime.Context` for more information. - context_class: t.Type[Context] = Context - - template_class: t.Type["Template"] - - def __init__( - self, - block_start_string: str = BLOCK_START_STRING, - block_end_string: str = BLOCK_END_STRING, - variable_start_string: str = VARIABLE_START_STRING, - variable_end_string: str = VARIABLE_END_STRING, - comment_start_string: str = COMMENT_START_STRING, - comment_end_string: str = COMMENT_END_STRING, - line_statement_prefix: t.Optional[str] = LINE_STATEMENT_PREFIX, - line_comment_prefix: t.Optional[str] = LINE_COMMENT_PREFIX, - trim_blocks: bool = TRIM_BLOCKS, - lstrip_blocks: bool = LSTRIP_BLOCKS, - newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = NEWLINE_SEQUENCE, - keep_trailing_newline: bool = KEEP_TRAILING_NEWLINE, - extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = (), - optimized: bool = True, - undefined: t.Type[Undefined] = Undefined, - finalize: t.Optional[t.Callable[..., t.Any]] = None, - autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = False, - loader: t.Optional["BaseLoader"] = None, - cache_size: int = 400, - auto_reload: bool = True, - bytecode_cache: t.Optional["BytecodeCache"] = None, - enable_async: bool = False, - ): - # !!Important notice!! - # The constructor accepts quite a few arguments that should be - # passed by keyword rather than position. However it's important to - # not change the order of arguments because it's used at least - # internally in those cases: - # - spontaneous environments (i18n extension and Template) - # - unittests - # If parameter changes are required only add parameters at the end - # and don't change the arguments (or the defaults!) of the arguments - # existing already. - - # lexer / parser information - self.block_start_string = block_start_string - self.block_end_string = block_end_string - self.variable_start_string = variable_start_string - self.variable_end_string = variable_end_string - self.comment_start_string = comment_start_string - self.comment_end_string = comment_end_string - self.line_statement_prefix = line_statement_prefix - self.line_comment_prefix = line_comment_prefix - self.trim_blocks = trim_blocks - self.lstrip_blocks = lstrip_blocks - self.newline_sequence = newline_sequence - self.keep_trailing_newline = keep_trailing_newline - - # runtime information - self.undefined: t.Type[Undefined] = undefined - self.optimized = optimized - self.finalize = finalize - self.autoescape = autoescape - - # defaults - self.filters = DEFAULT_FILTERS.copy() - self.tests = DEFAULT_TESTS.copy() - self.globals = DEFAULT_NAMESPACE.copy() - - # set the loader provided - self.loader = loader - self.cache = create_cache(cache_size) - self.bytecode_cache = bytecode_cache - self.auto_reload = auto_reload - - # configurable policies - self.policies = DEFAULT_POLICIES.copy() - - # load extensions - self.extensions = load_extensions(self, extensions) - - self.is_async = enable_async - _environment_config_check(self) - - def add_extension(self, extension: t.Union[str, t.Type["Extension"]]) -> None: - """Adds an extension after the environment was created. - - .. versionadded:: 2.5 - """ - self.extensions.update(load_extensions(self, [extension])) - - def extend(self, **attributes: t.Any) -> None: - """Add the items to the instance of the environment if they do not exist - yet. This is used by :ref:`extensions ` to register - callbacks and configuration values without breaking inheritance. - """ - for key, value in attributes.items(): - if not hasattr(self, key): - setattr(self, key, value) - - def overlay( - self, - block_start_string: str = missing, - block_end_string: str = missing, - variable_start_string: str = missing, - variable_end_string: str = missing, - comment_start_string: str = missing, - comment_end_string: str = missing, - line_statement_prefix: t.Optional[str] = missing, - line_comment_prefix: t.Optional[str] = missing, - trim_blocks: bool = missing, - lstrip_blocks: bool = missing, - newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = missing, - keep_trailing_newline: bool = missing, - extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = missing, - optimized: bool = missing, - undefined: t.Type[Undefined] = missing, - finalize: t.Optional[t.Callable[..., t.Any]] = missing, - autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = missing, - loader: t.Optional["BaseLoader"] = missing, - cache_size: int = missing, - auto_reload: bool = missing, - bytecode_cache: t.Optional["BytecodeCache"] = missing, - enable_async: bool = False, - ) -> "Environment": - """Create a new overlay environment that shares all the data with the - current environment except for cache and the overridden attributes. - Extensions cannot be removed for an overlayed environment. An overlayed - environment automatically gets all the extensions of the environment it - is linked to plus optional extra extensions. - - Creating overlays should happen after the initial environment was set - up completely. Not all attributes are truly linked, some are just - copied over so modifications on the original environment may not shine - through. - - .. versionchanged:: 3.1.2 - Added the ``newline_sequence``,, ``keep_trailing_newline``, - and ``enable_async`` parameters to match ``__init__``. - """ - args = dict(locals()) - del args["self"], args["cache_size"], args["extensions"], args["enable_async"] - - rv = object.__new__(self.__class__) - rv.__dict__.update(self.__dict__) - rv.overlayed = True - rv.linked_to = self - - for key, value in args.items(): - if value is not missing: - setattr(rv, key, value) - - if cache_size is not missing: - rv.cache = create_cache(cache_size) - else: - rv.cache = copy_cache(self.cache) - - rv.extensions = {} - for key, value in self.extensions.items(): - rv.extensions[key] = value.bind(rv) - if extensions is not missing: - rv.extensions.update(load_extensions(rv, extensions)) - - if enable_async is not missing: - rv.is_async = enable_async - - return _environment_config_check(rv) - - @property - def lexer(self) -> Lexer: - """The lexer for this environment.""" - return get_lexer(self) - - def iter_extensions(self) -> t.Iterator["Extension"]: - """Iterates over the extensions by priority.""" - return iter(sorted(self.extensions.values(), key=lambda x: x.priority)) - - def getitem( - self, obj: t.Any, argument: t.Union[str, t.Any] - ) -> t.Union[t.Any, Undefined]: - """Get an item or attribute of an object but prefer the item.""" - try: - return obj[argument] - except (AttributeError, TypeError, LookupError): - if isinstance(argument, str): - try: - attr = str(argument) - except Exception: - pass - else: - try: - return getattr(obj, attr) - except AttributeError: - pass - return self.undefined(obj=obj, name=argument) - - def getattr(self, obj: t.Any, attribute: str) -> t.Any: - """Get an item or attribute of an object but prefer the attribute. - Unlike :meth:`getitem` the attribute *must* be a string. - """ - try: - return getattr(obj, attribute) - except AttributeError: - pass - try: - return obj[attribute] - except (TypeError, LookupError, AttributeError): - return self.undefined(obj=obj, name=attribute) - - def _filter_test_common( - self, - name: t.Union[str, Undefined], - value: t.Any, - args: t.Optional[t.Sequence[t.Any]], - kwargs: t.Optional[t.Mapping[str, t.Any]], - context: t.Optional[Context], - eval_ctx: t.Optional[EvalContext], - is_filter: bool, - ) -> t.Any: - if is_filter: - env_map = self.filters - type_name = "filter" - else: - env_map = self.tests - type_name = "test" - - func = env_map.get(name) # type: ignore - - if func is None: - msg = f"No {type_name} named {name!r}." - - if isinstance(name, Undefined): - try: - name._fail_with_undefined_error() - except Exception as e: - msg = f"{msg} ({e}; did you forget to quote the callable name?)" - - raise TemplateRuntimeError(msg) - - args = [value, *(args if args is not None else ())] - kwargs = kwargs if kwargs is not None else {} - pass_arg = _PassArg.from_obj(func) - - if pass_arg is _PassArg.context: - if context is None: - raise TemplateRuntimeError( - f"Attempted to invoke a context {type_name} without context." - ) - - args.insert(0, context) - elif pass_arg is _PassArg.eval_context: - if eval_ctx is None: - if context is not None: - eval_ctx = context.eval_ctx - else: - eval_ctx = EvalContext(self) - - args.insert(0, eval_ctx) - elif pass_arg is _PassArg.environment: - args.insert(0, self) - - return func(*args, **kwargs) - - def call_filter( - self, - name: str, - value: t.Any, - args: t.Optional[t.Sequence[t.Any]] = None, - kwargs: t.Optional[t.Mapping[str, t.Any]] = None, - context: t.Optional[Context] = None, - eval_ctx: t.Optional[EvalContext] = None, - ) -> t.Any: - """Invoke a filter on a value the same way the compiler does. - - This might return a coroutine if the filter is running from an - environment in async mode and the filter supports async - execution. It's your responsibility to await this if needed. - - .. versionadded:: 2.7 - """ - return self._filter_test_common( - name, value, args, kwargs, context, eval_ctx, True - ) - - def call_test( - self, - name: str, - value: t.Any, - args: t.Optional[t.Sequence[t.Any]] = None, - kwargs: t.Optional[t.Mapping[str, t.Any]] = None, - context: t.Optional[Context] = None, - eval_ctx: t.Optional[EvalContext] = None, - ) -> t.Any: - """Invoke a test on a value the same way the compiler does. - - This might return a coroutine if the test is running from an - environment in async mode and the test supports async execution. - It's your responsibility to await this if needed. - - .. versionchanged:: 3.0 - Tests support ``@pass_context``, etc. decorators. Added - the ``context`` and ``eval_ctx`` parameters. - - .. versionadded:: 2.7 - """ - return self._filter_test_common( - name, value, args, kwargs, context, eval_ctx, False - ) - - @internalcode - def parse( - self, - source: str, - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - ) -> nodes.Template: - """Parse the sourcecode and return the abstract syntax tree. This - tree of nodes is used by the compiler to convert the template into - executable source- or bytecode. This is useful for debugging or to - extract information from templates. - - If you are :ref:`developing Jinja extensions ` - this gives you a good overview of the node tree generated. - """ - try: - return self._parse(source, name, filename) - except TemplateSyntaxError: - self.handle_exception(source=source) - - def _parse( - self, source: str, name: t.Optional[str], filename: t.Optional[str] - ) -> nodes.Template: - """Internal parsing function used by `parse` and `compile`.""" - return Parser(self, source, name, filename).parse() - - def lex( - self, - source: str, - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - ) -> t.Iterator[t.Tuple[int, str, str]]: - """Lex the given sourcecode and return a generator that yields - tokens as tuples in the form ``(lineno, token_type, value)``. - This can be useful for :ref:`extension development ` - and debugging templates. - - This does not perform preprocessing. If you want the preprocessing - of the extensions to be applied you have to filter source through - the :meth:`preprocess` method. - """ - source = str(source) - try: - return self.lexer.tokeniter(source, name, filename) - except TemplateSyntaxError: - self.handle_exception(source=source) - - def preprocess( - self, - source: str, - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - ) -> str: - """Preprocesses the source with all extensions. This is automatically - called for all parsing and compiling methods but *not* for :meth:`lex` - because there you usually only want the actual source tokenized. - """ - return reduce( - lambda s, e: e.preprocess(s, name, filename), - self.iter_extensions(), - str(source), - ) - - def _tokenize( - self, - source: str, - name: t.Optional[str], - filename: t.Optional[str] = None, - state: t.Optional[str] = None, - ) -> TokenStream: - """Called by the parser to do the preprocessing and filtering - for all the extensions. Returns a :class:`~jinja2.lexer.TokenStream`. - """ - source = self.preprocess(source, name, filename) - stream = self.lexer.tokenize(source, name, filename, state) - - for ext in self.iter_extensions(): - stream = ext.filter_stream(stream) # type: ignore - - if not isinstance(stream, TokenStream): - stream = TokenStream(stream, name, filename) # type: ignore - - return stream - - def _generate( - self, - source: nodes.Template, - name: t.Optional[str], - filename: t.Optional[str], - defer_init: bool = False, - ) -> str: - """Internal hook that can be overridden to hook a different generate - method in. - - .. versionadded:: 2.5 - """ - return generate( # type: ignore - source, - self, - name, - filename, - defer_init=defer_init, - optimized=self.optimized, - ) - - def _compile(self, source: str, filename: str) -> CodeType: - """Internal hook that can be overridden to hook a different compile - method in. - - .. versionadded:: 2.5 - """ - return compile(source, filename, "exec") # type: ignore - - @typing.overload - def compile( # type: ignore - self, - source: t.Union[str, nodes.Template], - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - raw: "te.Literal[False]" = False, - defer_init: bool = False, - ) -> CodeType: - ... - - @typing.overload - def compile( - self, - source: t.Union[str, nodes.Template], - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - raw: "te.Literal[True]" = ..., - defer_init: bool = False, - ) -> str: - ... - - @internalcode - def compile( - self, - source: t.Union[str, nodes.Template], - name: t.Optional[str] = None, - filename: t.Optional[str] = None, - raw: bool = False, - defer_init: bool = False, - ) -> t.Union[str, CodeType]: - """Compile a node or template source code. The `name` parameter is - the load name of the template after it was joined using - :meth:`join_path` if necessary, not the filename on the file system. - the `filename` parameter is the estimated filename of the template on - the file system. If the template came from a database or memory this - can be omitted. - - The return value of this method is a python code object. If the `raw` - parameter is `True` the return value will be a string with python - code equivalent to the bytecode returned otherwise. This method is - mainly used internally. - - `defer_init` is use internally to aid the module code generator. This - causes the generated code to be able to import without the global - environment variable to be set. - - .. versionadded:: 2.4 - `defer_init` parameter added. - """ - source_hint = None - try: - if isinstance(source, str): - source_hint = source - source = self._parse(source, name, filename) - source = self._generate(source, name, filename, defer_init=defer_init) - if raw: - return source - if filename is None: - filename = "