From 6d9530f7d71c474d454ee37cecd8c631a53a4b6e Mon Sep 17 00:00:00 2001 From: Bachar Said Date: Sun, 16 Jan 2022 18:14:15 +0100 Subject: [PATCH] Said : Adding the client side .. --- .../__pycache__/main.cpython-38.pyc | Bin 0 -> 1827 bytes .../__pycache__/main.cpython-39.pyc | Bin 0 -> 1256 bytes IPreoject-CLientSide/main.py | 117 + IPreoject-CLientSide/static/css/desing.css | 766 ++ IPreoject-CLientSide/static/css/new-g.css | 143 + IPreoject-CLientSide/static/images/Card4.jpg | Bin 0 -> 6291 bytes IPreoject-CLientSide/static/images/card1.png | Bin 0 -> 38242 bytes IPreoject-CLientSide/static/images/card11.png | Bin 0 -> 81708 bytes IPreoject-CLientSide/static/images/card2.png | Bin 0 -> 45205 bytes IPreoject-CLientSide/static/images/card22.png | Bin 0 -> 139429 bytes IPreoject-CLientSide/static/images/card3.png | Bin 0 -> 40180 bytes IPreoject-CLientSide/static/images/card4.png | Bin 0 -> 43271 bytes .../static/images/geometry2.png | Bin 0 -> 2138 bytes IPreoject-CLientSide/static/images/icon.png | Bin 0 -> 116077 bytes IPreoject-CLientSide/static/images/iconG.png | Bin 0 -> 117039 bytes IPreoject-CLientSide/static/images/image.jpg | Bin 0 -> 67049 bytes IPreoject-CLientSide/static/images/test.jpg | Bin 0 -> 12270 bytes IPreoject-CLientSide/static/js/main.js | 124 + IPreoject-CLientSide/static/js/new-g.js | 230 + IPreoject-CLientSide/static/js/particles.js | 1534 +++ IPreoject-CLientSide/static/js/rules.js | 26 + IPreoject-CLientSide/static/js/test.js | 4 + IPreoject-CLientSide/templates/layout.html | 64 + IPreoject-CLientSide/templates/main.html | 48 + IPreoject-CLientSide/templates/menu.html | 27 + IPreoject-CLientSide/templates/new-game.html | 68 + IPreoject-CLientSide/templates/rules.html | 109 + IPreoject-CLientSide/templates/test.html | 104 + IPreoject-CLientSide/utils/cardToObjects.py | 44 + IPreoject-CLientSide/utils/ports.py | 15 + IPreoject-CLientSide/utils/test.py | 20 + IPreoject-CLientSide/venv/bin/Activate.ps1 | 241 + IPreoject-CLientSide/venv/bin/activate | 76 + IPreoject-CLientSide/venv/bin/activate.csh | 37 + IPreoject-CLientSide/venv/bin/activate.fish | 75 + IPreoject-CLientSide/venv/bin/flask | 10 + IPreoject-CLientSide/venv/bin/pip | 10 + IPreoject-CLientSide/venv/bin/pip3 | 10 + IPreoject-CLientSide/venv/bin/pip3.8 | 10 + IPreoject-CLientSide/venv/bin/python | 1 + IPreoject-CLientSide/venv/bin/python3 | 1 + .../Flask-2.0.2.dist-info/INSTALLER | 1 + .../Flask-2.0.2.dist-info/LICENSE.rst | 28 + .../Flask-2.0.2.dist-info/METADATA | 125 + .../Flask-2.0.2.dist-info/RECORD | 52 + .../Flask-2.0.2.dist-info/REQUESTED | 0 .../site-packages/Flask-2.0.2.dist-info/WHEEL | 5 + .../Flask-2.0.2.dist-info/entry_points.txt | 3 + .../Flask-2.0.2.dist-info/top_level.txt | 1 + .../Jinja2-3.0.3.dist-info/INSTALLER | 1 + .../Jinja2-3.0.3.dist-info/LICENSE.rst | 28 + .../Jinja2-3.0.3.dist-info/METADATA | 113 + .../Jinja2-3.0.3.dist-info/RECORD | 58 + .../Jinja2-3.0.3.dist-info/WHEEL | 5 + .../Jinja2-3.0.3.dist-info/entry_points.txt | 3 + .../Jinja2-3.0.3.dist-info/top_level.txt | 1 + .../MarkupSafe-2.0.1.dist-info/INSTALLER | 1 + .../MarkupSafe-2.0.1.dist-info/LICENSE.rst | 28 + .../MarkupSafe-2.0.1.dist-info/METADATA | 101 + .../MarkupSafe-2.0.1.dist-info/RECORD | 14 + .../MarkupSafe-2.0.1.dist-info/WHEEL | 8 + .../MarkupSafe-2.0.1.dist-info/top_level.txt | 1 + .../Werkzeug-2.0.2.dist-info/INSTALLER | 1 + .../Werkzeug-2.0.2.dist-info/LICENSE.rst | 28 + .../Werkzeug-2.0.2.dist-info/METADATA | 129 + .../Werkzeug-2.0.2.dist-info/RECORD | 111 + .../Werkzeug-2.0.2.dist-info/WHEEL | 5 + .../Werkzeug-2.0.2.dist-info/top_level.txt | 1 + .../site-packages/_distutils_hack/__init__.py | 128 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 5144 bytes .../__pycache__/override.cpython-38.pyc | Bin 0 -> 256 bytes .../site-packages/_distutils_hack/override.py | 1 + .../click-8.0.3.dist-info/INSTALLER | 1 + .../click-8.0.3.dist-info/LICENSE.rst | 28 + .../click-8.0.3.dist-info/METADATA | 111 + .../click-8.0.3.dist-info/RECORD | 41 + .../site-packages/click-8.0.3.dist-info/WHEEL | 5 + .../click-8.0.3.dist-info/top_level.txt | 1 + .../python3.8/site-packages/click/__init__.py | 75 + .../click/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2713 bytes .../click/__pycache__/_compat.cpython-38.pyc | Bin 0 -> 16126 bytes .../__pycache__/_termui_impl.cpython-38.pyc | Bin 0 -> 15815 bytes .../__pycache__/_textwrap.cpython-38.pyc | Bin 0 -> 1539 bytes .../__pycache__/_unicodefun.cpython-38.pyc | Bin 0 -> 2356 bytes .../__pycache__/_winconsole.cpython-38.pyc | Bin 0 -> 7820 bytes .../click/__pycache__/core.cpython-38.pyc | Bin 0 -> 88250 bytes .../__pycache__/decorators.cpython-38.pyc | Bin 0 -> 14270 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 10170 bytes .../__pycache__/formatting.cpython-38.pyc | Bin 0 -> 9420 bytes .../click/__pycache__/globals.cpython-38.pyc | Bin 0 -> 2454 bytes .../click/__pycache__/parser.cpython-38.pyc | Bin 0 -> 13653 bytes .../shell_completion.cpython-38.pyc | Bin 0 -> 16742 bytes .../click/__pycache__/termui.cpython-38.pyc | Bin 0 -> 26590 bytes .../click/__pycache__/testing.cpython-38.pyc | Bin 0 -> 14876 bytes .../click/__pycache__/types.cpython-38.pyc | Bin 0 -> 33108 bytes .../click/__pycache__/utils.cpython-38.pyc | Bin 0 -> 17806 bytes .../python3.8/site-packages/click/_compat.py | 627 ++ .../site-packages/click/_termui_impl.py | 718 ++ .../site-packages/click/_textwrap.py | 49 + .../site-packages/click/_unicodefun.py | 100 + .../site-packages/click/_winconsole.py | 279 + .../lib/python3.8/site-packages/click/core.py | 2953 ++++++ .../site-packages/click/decorators.py | 436 + .../site-packages/click/exceptions.py | 287 + .../site-packages/click/formatting.py | 301 + .../python3.8/site-packages/click/globals.py | 69 + .../python3.8/site-packages/click/parser.py | 529 ++ .../python3.8/site-packages/click/py.typed | 0 .../site-packages/click/shell_completion.py | 581 ++ .../python3.8/site-packages/click/termui.py | 809 ++ .../python3.8/site-packages/click/testing.py | 479 + .../python3.8/site-packages/click/types.py | 1052 +++ .../python3.8/site-packages/click/utils.py | 579 ++ .../site-packages/distutils-precedence.pth | 1 + .../python3.8/site-packages/flask/__init__.py | 46 + .../python3.8/site-packages/flask/__main__.py | 3 + .../flask/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1904 bytes .../flask/__pycache__/__main__.cpython-38.pyc | Bin 0 -> 235 bytes .../flask/__pycache__/app.cpython-38.pyc | Bin 0 -> 63156 bytes .../__pycache__/blueprints.cpython-38.pyc | Bin 0 -> 21962 bytes .../flask/__pycache__/cli.cpython-38.pyc | Bin 0 -> 27148 bytes .../flask/__pycache__/config.cpython-38.pyc | Bin 0 -> 11689 bytes .../flask/__pycache__/ctx.cpython-38.pyc | Bin 0 -> 15469 bytes .../__pycache__/debughelpers.cpython-38.pyc | Bin 0 -> 6489 bytes .../flask/__pycache__/globals.cpython-38.pyc | Bin 0 -> 1856 bytes .../flask/__pycache__/helpers.cpython-38.pyc | Bin 0 -> 27222 bytes .../flask/__pycache__/logging.cpython-38.pyc | Bin 0 -> 2475 bytes .../flask/__pycache__/scaffold.cpython-38.pyc | Bin 0 -> 24903 bytes .../flask/__pycache__/sessions.cpython-38.pyc | Bin 0 -> 13140 bytes .../flask/__pycache__/signals.cpython-38.pyc | Bin 0 -> 2393 bytes .../__pycache__/templating.cpython-38.pyc | Bin 0 -> 5580 bytes .../flask/__pycache__/testing.cpython-38.pyc | Bin 0 -> 8989 bytes .../flask/__pycache__/typing.cpython-38.pyc | Bin 0 -> 1796 bytes .../flask/__pycache__/views.cpython-38.pyc | Bin 0 -> 5021 bytes .../flask/__pycache__/wrappers.cpython-38.pyc | Bin 0 -> 5044 bytes .../lib/python3.8/site-packages/flask/app.py | 2091 +++++ .../site-packages/flask/blueprints.py | 609 ++ .../lib/python3.8/site-packages/flask/cli.py | 998 ++ .../python3.8/site-packages/flask/config.py | 295 + .../lib/python3.8/site-packages/flask/ctx.py | 480 + .../site-packages/flask/debughelpers.py | 172 + .../python3.8/site-packages/flask/globals.py | 59 + .../python3.8/site-packages/flask/helpers.py | 836 ++ .../site-packages/flask/json/__init__.py | 357 + .../json/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 11598 bytes .../flask/json/__pycache__/tag.cpython-38.pyc | Bin 0 -> 11500 bytes .../python3.8/site-packages/flask/json/tag.py | 312 + .../python3.8/site-packages/flask/logging.py | 74 + .../python3.8/site-packages/flask/py.typed | 0 .../python3.8/site-packages/flask/scaffold.py | 875 ++ .../python3.8/site-packages/flask/sessions.py | 404 + .../python3.8/site-packages/flask/signals.py | 56 + .../site-packages/flask/templating.py | 165 + .../python3.8/site-packages/flask/testing.py | 280 + .../python3.8/site-packages/flask/typing.py | 56 + .../python3.8/site-packages/flask/views.py | 158 + .../python3.8/site-packages/flask/wrappers.py | 167 + .../itsdangerous-2.0.1.dist-info/INSTALLER | 1 + .../itsdangerous-2.0.1.dist-info/LICENSE.rst | 28 + .../itsdangerous-2.0.1.dist-info/METADATA | 96 + .../itsdangerous-2.0.1.dist-info/RECORD | 25 + .../itsdangerous-2.0.1.dist-info/WHEEL | 5 + .../top_level.txt | 1 + .../site-packages/itsdangerous/__init__.py | 22 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1030 bytes .../__pycache__/_json.cpython-38.pyc | Bin 0 -> 1560 bytes .../__pycache__/encoding.cpython-38.pyc | Bin 0 -> 1884 bytes .../__pycache__/exc.cpython-38.pyc | Bin 0 -> 3457 bytes .../__pycache__/jws.cpython-38.pyc | Bin 0 -> 7588 bytes .../__pycache__/serializer.cpython-38.pyc | Bin 0 -> 9743 bytes .../__pycache__/signer.cpython-38.pyc | Bin 0 -> 8466 bytes .../__pycache__/timed.cpython-38.pyc | Bin 0 -> 6383 bytes .../__pycache__/url_safe.cpython-38.pyc | Bin 0 -> 2715 bytes .../site-packages/itsdangerous/_json.py | 34 + .../site-packages/itsdangerous/encoding.py | 54 + .../site-packages/itsdangerous/exc.py | 107 + .../site-packages/itsdangerous/jws.py | 259 + .../site-packages/itsdangerous/py.typed | 0 .../site-packages/itsdangerous/serializer.py | 295 + .../site-packages/itsdangerous/signer.py | 257 + .../site-packages/itsdangerous/timed.py | 227 + .../site-packages/itsdangerous/url_safe.py | 80 + .../site-packages/jinja2/__init__.py | 45 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1929 bytes .../__pycache__/_identifier.cpython-38.pyc | Bin 0 -> 1916 bytes .../__pycache__/async_utils.cpython-38.pyc | Bin 0 -> 2456 bytes .../jinja2/__pycache__/bccache.cpython-38.pyc | Bin 0 -> 13278 bytes .../__pycache__/compiler.cpython-38.pyc | Bin 0 -> 54289 bytes .../__pycache__/constants.cpython-38.pyc | Bin 0 -> 1560 bytes .../jinja2/__pycache__/debug.cpython-38.pyc | Bin 0 -> 5437 bytes .../__pycache__/defaults.cpython-38.pyc | Bin 0 -> 1362 bytes .../__pycache__/environment.cpython-38.pyc | Bin 0 -> 52912 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 5603 bytes .../jinja2/__pycache__/ext.cpython-38.pyc | Bin 0 -> 26393 bytes .../jinja2/__pycache__/filters.cpython-38.pyc | Bin 0 -> 50195 bytes .../__pycache__/idtracking.cpython-38.pyc | Bin 0 -> 11109 bytes .../jinja2/__pycache__/lexer.cpython-38.pyc | Bin 0 -> 20390 bytes .../jinja2/__pycache__/loaders.cpython-38.pyc | Bin 0 -> 20404 bytes .../jinja2/__pycache__/meta.cpython-38.pyc | Bin 0 -> 3820 bytes .../__pycache__/nativetypes.cpython-38.pyc | Bin 0 -> 4888 bytes .../jinja2/__pycache__/nodes.cpython-38.pyc | Bin 0 -> 40923 bytes .../__pycache__/optimizer.cpython-38.pyc | Bin 0 -> 1949 bytes .../jinja2/__pycache__/parser.cpython-38.pyc | Bin 0 -> 27555 bytes .../jinja2/__pycache__/runtime.cpython-38.pyc | Bin 0 -> 33200 bytes .../jinja2/__pycache__/sandbox.cpython-38.pyc | Bin 0 -> 11961 bytes .../jinja2/__pycache__/tests.cpython-38.pyc | Bin 0 -> 6596 bytes .../jinja2/__pycache__/utils.cpython-38.pyc | Bin 0 -> 27436 bytes .../jinja2/__pycache__/visitor.cpython-38.pyc | Bin 0 -> 3878 bytes .../site-packages/jinja2/_identifier.py | 6 + .../site-packages/jinja2/async_utils.py | 75 + .../python3.8/site-packages/jinja2/bccache.py | 364 + .../site-packages/jinja2/compiler.py | 1957 ++++ .../site-packages/jinja2/constants.py | 20 + .../python3.8/site-packages/jinja2/debug.py | 259 + .../site-packages/jinja2/defaults.py | 48 + .../site-packages/jinja2/environment.py | 1661 ++++ .../site-packages/jinja2/exceptions.py | 166 + .../lib/python3.8/site-packages/jinja2/ext.py | 879 ++ .../python3.8/site-packages/jinja2/filters.py | 1824 ++++ .../site-packages/jinja2/idtracking.py | 318 + .../python3.8/site-packages/jinja2/lexer.py | 869 ++ .../python3.8/site-packages/jinja2/loaders.py | 652 ++ .../python3.8/site-packages/jinja2/meta.py | 111 + .../site-packages/jinja2/nativetypes.py | 124 + .../python3.8/site-packages/jinja2/nodes.py | 1204 +++ .../site-packages/jinja2/optimizer.py | 47 + .../python3.8/site-packages/jinja2/parser.py | 1040 ++ .../python3.8/site-packages/jinja2/py.typed | 0 .../python3.8/site-packages/jinja2/runtime.py | 1104 +++ .../python3.8/site-packages/jinja2/sandbox.py | 428 + .../python3.8/site-packages/jinja2/tests.py | 255 + .../python3.8/site-packages/jinja2/utils.py | 854 ++ .../python3.8/site-packages/jinja2/visitor.py | 92 + .../site-packages/markupsafe/__init__.py | 288 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 10737 bytes .../__pycache__/_native.cpython-38.pyc | Bin 0 -> 2362 bytes .../site-packages/markupsafe/_native.py | 75 + .../site-packages/markupsafe/_speedups.c | 339 + .../_speedups.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 53192 bytes .../site-packages/markupsafe/_speedups.pyi | 9 + .../site-packages/markupsafe/py.typed | 0 .../pip-21.1.1.dist-info/INSTALLER | 1 + .../pip-21.1.1.dist-info/LICENSE.txt | 20 + .../pip-21.1.1.dist-info/METADATA | 91 + .../site-packages/pip-21.1.1.dist-info/RECORD | 797 ++ .../pip-21.1.1.dist-info/REQUESTED | 0 .../site-packages/pip-21.1.1.dist-info/WHEEL | 5 + .../pip-21.1.1.dist-info/entry_points.txt | 5 + .../pip-21.1.1.dist-info/top_level.txt | 1 + .../python3.8/site-packages/pip/__init__.py | 14 + .../python3.8/site-packages/pip/__main__.py | 31 + .../pip/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 609 bytes .../pip/__pycache__/__main__.cpython-38.pyc | Bin 0 -> 610 bytes .../site-packages/pip/_internal/__init__.py | 15 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 658 bytes .../__pycache__/build_env.cpython-38.pyc | Bin 0 -> 8832 bytes .../__pycache__/cache.cpython-38.pyc | Bin 0 -> 7888 bytes .../__pycache__/configuration.cpython-38.pyc | Bin 0 -> 10748 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 15690 bytes .../_internal/__pycache__/main.cpython-38.pyc | Bin 0 -> 594 bytes .../__pycache__/pyproject.cpython-38.pyc | Bin 0 -> 3487 bytes .../self_outdated_check.cpython-38.pyc | Bin 0 -> 4332 bytes .../__pycache__/wheel_builder.cpython-38.pyc | Bin 0 -> 8327 bytes .../site-packages/pip/_internal/build_env.py | 283 + .../site-packages/pip/_internal/cache.py | 287 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 291 bytes .../__pycache__/autocompletion.cpython-38.pyc | Bin 0 -> 5029 bytes .../__pycache__/base_command.cpython-38.pyc | Bin 0 -> 5729 bytes .../cli/__pycache__/cmdoptions.cpython-38.pyc | Bin 0 -> 21062 bytes .../command_context.cpython-38.pyc | Bin 0 -> 1235 bytes .../cli/__pycache__/main.cpython-38.pyc | Bin 0 -> 1336 bytes .../__pycache__/main_parser.cpython-38.pyc | Bin 0 -> 2121 bytes .../cli/__pycache__/parser.cpython-38.pyc | Bin 0 -> 9371 bytes .../__pycache__/progress_bars.cpython-38.pyc | Bin 0 -> 7455 bytes .../__pycache__/req_command.cpython-38.pyc | Bin 0 -> 11250 bytes .../cli/__pycache__/spinners.cpython-38.pyc | Bin 0 -> 4623 bytes .../__pycache__/status_codes.cpython-38.pyc | Bin 0 -> 370 bytes .../pip/_internal/cli/autocompletion.py | 162 + .../pip/_internal/cli/base_command.py | 221 + .../pip/_internal/cli/cmdoptions.py | 1024 ++ .../pip/_internal/cli/command_context.py | 30 + .../site-packages/pip/_internal/cli/main.py | 71 + .../pip/_internal/cli/main_parser.py | 89 + .../site-packages/pip/_internal/cli/parser.py | 305 + .../pip/_internal/cli/progress_bars.py | 261 + .../pip/_internal/cli/req_command.py | 461 + .../pip/_internal/cli/spinners.py | 172 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 110 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2914 bytes .../commands/__pycache__/cache.cpython-38.pyc | Bin 0 -> 5767 bytes .../commands/__pycache__/check.cpython-38.pyc | Bin 0 -> 1543 bytes .../__pycache__/completion.cpython-38.pyc | Bin 0 -> 3097 bytes .../__pycache__/configuration.cpython-38.pyc | Bin 0 -> 8024 bytes .../commands/__pycache__/debug.cpython-38.pyc | Bin 0 -> 6384 bytes .../__pycache__/download.cpython-38.pyc | Bin 0 -> 3962 bytes .../__pycache__/freeze.cpython-38.pyc | Bin 0 -> 2941 bytes .../commands/__pycache__/hash.cpython-38.pyc | Bin 0 -> 2033 bytes .../commands/__pycache__/help.cpython-38.pyc | Bin 0 -> 1269 bytes .../__pycache__/install.cpython-38.pyc | Bin 0 -> 16786 bytes .../commands/__pycache__/list.cpython-38.pyc | Bin 0 -> 8826 bytes .../__pycache__/search.cpython-38.pyc | Bin 0 -> 4920 bytes .../commands/__pycache__/show.cpython-38.pyc | Bin 0 -> 6373 bytes .../__pycache__/uninstall.cpython-38.pyc | Bin 0 -> 2876 bytes .../commands/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 4831 bytes .../pip/_internal/commands/cache.py | 228 + .../pip/_internal/commands/check.py | 48 + .../pip/_internal/commands/completion.py | 93 + .../pip/_internal/commands/configuration.py | 280 + .../pip/_internal/commands/debug.py | 215 + .../pip/_internal/commands/download.py | 141 + .../pip/_internal/commands/freeze.py | 104 + .../pip/_internal/commands/hash.py | 58 + .../pip/_internal/commands/help.py | 42 + .../pip/_internal/commands/install.py | 740 ++ .../pip/_internal/commands/list.py | 319 + .../pip/_internal/commands/search.py | 162 + .../pip/_internal/commands/show.py | 181 + .../pip/_internal/commands/uninstall.py | 92 + .../pip/_internal/commands/wheel.py | 178 + .../pip/_internal/configuration.py | 403 + .../pip/_internal/distributions/__init__.py | 20 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 787 bytes .../__pycache__/base.cpython-38.pyc | Bin 0 -> 1843 bytes .../__pycache__/installed.cpython-38.pyc | Bin 0 -> 1188 bytes .../__pycache__/sdist.cpython-38.pyc | Bin 0 -> 3439 bytes .../__pycache__/wheel.cpython-38.pyc | Bin 0 -> 1540 bytes .../pip/_internal/distributions/base.py | 39 + .../pip/_internal/distributions/installed.py | 22 + .../pip/_internal/distributions/sdist.py | 95 + .../pip/_internal/distributions/wheel.py | 34 + .../site-packages/pip/_internal/exceptions.py | 397 + .../pip/_internal/index/__init__.py | 2 + .../index/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 245 bytes .../__pycache__/collector.cpython-38.pyc | Bin 0 -> 15121 bytes .../__pycache__/package_finder.cpython-38.pyc | Bin 0 -> 26684 bytes .../index/__pycache__/sources.cpython-38.pyc | Bin 0 -> 7210 bytes .../pip/_internal/index/collector.py | 556 ++ .../pip/_internal/index/package_finder.py | 1012 ++ .../pip/_internal/index/sources.py | 224 + .../pip/_internal/locations/__init__.py | 184 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 3725 bytes .../__pycache__/_distutils.cpython-38.pyc | Bin 0 -> 3922 bytes .../__pycache__/_sysconfig.cpython-38.pyc | Bin 0 -> 4546 bytes .../locations/__pycache__/base.cpython-38.pyc | Bin 0 -> 1233 bytes .../pip/_internal/locations/_distutils.py | 150 + .../pip/_internal/locations/_sysconfig.py | 180 + .../pip/_internal/locations/base.py | 48 + .../site-packages/pip/_internal/main.py | 13 + .../pip/_internal/metadata/__init__.py | 43 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1744 bytes .../metadata/__pycache__/base.cpython-38.pyc | Bin 0 -> 5348 bytes .../__pycache__/pkg_resources.cpython-38.pyc | Bin 0 -> 4254 bytes .../pip/_internal/metadata/base.py | 142 + .../pip/_internal/metadata/pkg_resources.py | 126 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 279 bytes .../__pycache__/candidate.cpython-38.pyc | Bin 0 -> 1400 bytes .../__pycache__/direct_url.cpython-38.pyc | Bin 0 -> 6328 bytes .../__pycache__/format_control.cpython-38.pyc | Bin 0 -> 2553 bytes .../models/__pycache__/index.cpython-38.pyc | Bin 0 -> 1214 bytes .../models/__pycache__/link.cpython-38.pyc | Bin 0 -> 7249 bytes .../models/__pycache__/scheme.cpython-38.pyc | Bin 0 -> 983 bytes .../__pycache__/search_scope.cpython-38.pyc | Bin 0 -> 3364 bytes .../selection_prefs.cpython-38.pyc | Bin 0 -> 1624 bytes .../__pycache__/target_python.cpython-38.pyc | Bin 0 -> 3313 bytes .../models/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 4224 bytes .../pip/_internal/models/candidate.py | 34 + .../pip/_internal/models/direct_url.py | 233 + .../pip/_internal/models/format_control.py | 86 + .../pip/_internal/models/index.py | 34 + .../pip/_internal/models/link.py | 248 + .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 131 + .../pip/_internal/models/selection_prefs.py | 47 + .../pip/_internal/models/target_python.py | 114 + .../pip/_internal/models/wheel.py | 95 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 267 bytes .../network/__pycache__/auth.cpython-38.pyc | Bin 0 -> 7089 bytes .../network/__pycache__/cache.cpython-38.pyc | Bin 0 -> 2668 bytes .../__pycache__/download.cpython-38.pyc | Bin 0 -> 5088 bytes .../__pycache__/lazy_wheel.cpython-38.pyc | Bin 0 -> 7885 bytes .../__pycache__/session.cpython-38.pyc | Bin 0 -> 9528 bytes .../network/__pycache__/utils.cpython-38.pyc | Bin 0 -> 1337 bytes .../network/__pycache__/xmlrpc.cpython-38.pyc | Bin 0 -> 1929 bytes .../pip/_internal/network/auth.py | 312 + .../pip/_internal/network/cache.py | 76 + .../pip/_internal/network/download.py | 196 + .../pip/_internal/network/lazy_wheel.py | 224 + .../pip/_internal/network/session.py | 449 + .../pip/_internal/network/utils.py | 95 + .../pip/_internal/network/xmlrpc.py | 49 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 215 bytes .../__pycache__/check.cpython-38.pyc | Bin 0 -> 3722 bytes .../__pycache__/freeze.cpython-38.pyc | Bin 0 -> 5653 bytes .../__pycache__/prepare.cpython-38.pyc | Bin 0 -> 14260 bytes .../_internal/operations/build/__init__.py | 0 .../build/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 221 bytes .../build/__pycache__/metadata.cpython-38.pyc | Bin 0 -> 1128 bytes .../metadata_legacy.cpython-38.pyc | Bin 0 -> 1928 bytes .../build/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 1143 bytes .../__pycache__/wheel_legacy.cpython-38.pyc | Bin 0 -> 2529 bytes .../_internal/operations/build/metadata.py | 35 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 38 + .../operations/build/wheel_legacy.py | 110 + .../pip/_internal/operations/check.py | 153 + .../pip/_internal/operations/freeze.py | 264 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 279 bytes .../editable_legacy.cpython-38.pyc | Bin 0 -> 1282 bytes .../install/__pycache__/legacy.cpython-38.pyc | Bin 0 -> 3098 bytes .../install/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 20636 bytes .../operations/install/editable_legacy.py | 47 + .../_internal/operations/install/legacy.py | 125 + .../pip/_internal/operations/install/wheel.py | 819 ++ .../pip/_internal/operations/prepare.py | 655 ++ .../site-packages/pip/_internal/pyproject.py | 183 + .../pip/_internal/req/__init__.py | 98 + .../req/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2345 bytes .../__pycache__/constructors.cpython-38.pyc | Bin 0 -> 11014 bytes .../req/__pycache__/req_file.cpython-38.pyc | Bin 0 -> 12462 bytes .../__pycache__/req_install.cpython-38.pyc | Bin 0 -> 20496 bytes .../req/__pycache__/req_set.cpython-38.pyc | Bin 0 -> 5749 bytes .../__pycache__/req_tracker.cpython-38.pyc | Bin 0 -> 3930 bytes .../__pycache__/req_uninstall.cpython-38.pyc | Bin 0 -> 17405 bytes .../pip/_internal/req/constructors.py | 486 + .../pip/_internal/req/req_file.py | 551 ++ .../pip/_internal/req/req_install.py | 873 ++ .../pip/_internal/req/req_set.py | 199 + .../pip/_internal/req/req_tracker.py | 140 + .../pip/_internal/req/req_uninstall.py | 640 ++ .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 215 bytes .../__pycache__/base.cpython-38.pyc | Bin 0 -> 958 bytes .../pip/_internal/resolution/base.py | 16 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 221 bytes .../__pycache__/resolver.cpython-38.pyc | Bin 0 -> 11516 bytes .../_internal/resolution/legacy/resolver.py | 462 + .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 225 bytes .../__pycache__/base.cpython-38.pyc | Bin 0 -> 6335 bytes .../__pycache__/candidates.cpython-38.pyc | Bin 0 -> 17949 bytes .../__pycache__/factory.cpython-38.pyc | Bin 0 -> 16033 bytes .../found_candidates.cpython-38.pyc | Bin 0 -> 4679 bytes .../__pycache__/provider.cpython-38.pyc | Bin 0 -> 6627 bytes .../__pycache__/reporter.cpython-38.pyc | Bin 0 -> 3157 bytes .../__pycache__/requirements.cpython-38.pyc | Bin 0 -> 7089 bytes .../__pycache__/resolver.cpython-38.pyc | Bin 0 -> 8103 bytes .../_internal/resolution/resolvelib/base.py | 165 + .../resolution/resolvelib/candidates.py | 604 ++ .../resolution/resolvelib/factory.py | 650 ++ .../resolution/resolvelib/found_candidates.py | 145 + .../resolution/resolvelib/provider.py | 175 + .../resolution/resolvelib/reporter.py | 78 + .../resolution/resolvelib/requirements.py | 198 + .../resolution/resolvelib/resolver.py | 305 + .../pip/_internal/self_outdated_check.py | 187 + .../pip/_internal/utils/__init__.py | 0 .../utils/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 210 bytes .../utils/__pycache__/appdirs.cpython-38.pyc | Bin 0 -> 1275 bytes .../utils/__pycache__/compat.cpython-38.pyc | Bin 0 -> 1471 bytes .../compatibility_tags.cpython-38.pyc | Bin 0 -> 3859 bytes .../utils/__pycache__/datetime.cpython-38.pyc | Bin 0 -> 480 bytes .../__pycache__/deprecation.cpython-38.pyc | Bin 0 -> 2780 bytes .../direct_url_helpers.cpython-38.pyc | Bin 0 -> 2557 bytes .../__pycache__/distutils_args.cpython-38.pyc | Bin 0 -> 1118 bytes .../utils/__pycache__/encoding.cpython-38.pyc | Bin 0 -> 1256 bytes .../__pycache__/entrypoints.cpython-38.pyc | Bin 0 -> 1278 bytes .../__pycache__/filesystem.cpython-38.pyc | Bin 0 -> 4937 bytes .../__pycache__/filetypes.cpython-38.pyc | Bin 0 -> 822 bytes .../utils/__pycache__/glibc.cpython-38.pyc | Bin 0 -> 1638 bytes .../utils/__pycache__/hashes.cpython-38.pyc | Bin 0 -> 5011 bytes .../inject_securetransport.cpython-38.pyc | Bin 0 -> 987 bytes .../utils/__pycache__/logging.cpython-38.pyc | Bin 0 -> 8924 bytes .../utils/__pycache__/misc.cpython-38.pyc | Bin 0 -> 21356 bytes .../utils/__pycache__/models.cpython-38.pyc | Bin 0 -> 1914 bytes .../__pycache__/packaging.cpython-38.pyc | Bin 0 -> 2538 bytes .../utils/__pycache__/parallel.cpython-38.pyc | Bin 0 -> 3003 bytes .../__pycache__/pkg_resources.cpython-38.pyc | Bin 0 -> 1734 bytes .../setuptools_build.cpython-38.pyc | Bin 0 -> 3006 bytes .../__pycache__/subprocess.cpython-38.pyc | Bin 0 -> 5677 bytes .../utils/__pycache__/temp_dir.cpython-38.pyc | Bin 0 -> 6849 bytes .../__pycache__/unpacking.cpython-38.pyc | Bin 0 -> 6395 bytes .../utils/__pycache__/urls.cpython-38.pyc | Bin 0 -> 1382 bytes .../__pycache__/virtualenv.cpython-38.pyc | Bin 0 -> 3223 bytes .../utils/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 5996 bytes .../pip/_internal/utils/appdirs.py | 38 + .../pip/_internal/utils/compat.py | 65 + .../pip/_internal/utils/compatibility_tags.py | 174 + .../pip/_internal/utils/datetime.py | 12 + .../pip/_internal/utils/deprecation.py | 102 + .../pip/_internal/utils/direct_url_helpers.py | 117 + .../pip/_internal/utils/distutils_args.py | 43 + .../pip/_internal/utils/encoding.py | 37 + .../pip/_internal/utils/entrypoints.py | 28 + .../pip/_internal/utils/filesystem.py | 193 + .../pip/_internal/utils/filetypes.py | 28 + .../pip/_internal/utils/glibc.py | 92 + .../pip/_internal/utils/hashes.py | 165 + .../_internal/utils/inject_securetransport.py | 36 + .../pip/_internal/utils/logging.py | 387 + .../site-packages/pip/_internal/utils/misc.py | 825 ++ .../pip/_internal/utils/models.py | 47 + .../pip/_internal/utils/packaging.py | 89 + .../pip/_internal/utils/parallel.py | 101 + .../pip/_internal/utils/pkg_resources.py | 40 + .../pip/_internal/utils/setuptools_build.py | 173 + .../pip/_internal/utils/subprocess.py | 281 + .../pip/_internal/utils/temp_dir.py | 260 + .../pip/_internal/utils/unpacking.py | 267 + .../site-packages/pip/_internal/utils/urls.py | 49 + .../pip/_internal/utils/virtualenv.py | 111 + .../pip/_internal/utils/wheel.py | 189 + .../pip/_internal/vcs/__init__.py | 14 + .../vcs/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 503 bytes .../vcs/__pycache__/bazaar.cpython-38.pyc | Bin 0 -> 3031 bytes .../vcs/__pycache__/git.cpython-38.pyc | Bin 0 -> 10038 bytes .../vcs/__pycache__/mercurial.cpython-38.pyc | Bin 0 -> 4632 bytes .../vcs/__pycache__/subversion.cpython-38.pyc | Bin 0 -> 8013 bytes .../__pycache__/versioncontrol.cpython-38.pyc | Bin 0 -> 19139 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 96 + .../site-packages/pip/_internal/vcs/git.py | 450 + .../pip/_internal/vcs/mercurial.py | 158 + .../pip/_internal/vcs/subversion.py | 329 + .../pip/_internal/vcs/versioncontrol.py | 715 ++ .../pip/_internal/wheel_builder.py | 360 + .../site-packages/pip/_vendor/__init__.py | 113 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2967 bytes .../__pycache__/appdirs.cpython-38.pyc | Bin 0 -> 21460 bytes .../_vendor/__pycache__/distro.cpython-38.pyc | Bin 0 -> 36915 bytes .../__pycache__/pyparsing.cpython-38.pyc | Bin 0 -> 240903 bytes .../_vendor/__pycache__/six.cpython-38.pyc | Bin 0 -> 26942 bytes .../site-packages/pip/_vendor/appdirs.py | 633 ++ .../pip/_vendor/cachecontrol/__init__.py | 11 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 568 bytes .../__pycache__/_cmd.cpython-38.pyc | Bin 0 -> 1594 bytes .../__pycache__/adapter.cpython-38.pyc | Bin 0 -> 3102 bytes .../__pycache__/cache.cpython-38.pyc | Bin 0 -> 1801 bytes .../__pycache__/compat.cpython-38.pyc | Bin 0 -> 775 bytes .../__pycache__/controller.cpython-38.pyc | Bin 0 -> 7806 bytes .../__pycache__/filewrapper.cpython-38.pyc | Bin 0 -> 2194 bytes .../__pycache__/heuristics.cpython-38.pyc | Bin 0 -> 4752 bytes .../__pycache__/serialize.cpython-38.pyc | Bin 0 -> 4255 bytes .../__pycache__/wrapper.cpython-38.pyc | Bin 0 -> 692 bytes .../pip/_vendor/cachecontrol/_cmd.py | 57 + .../pip/_vendor/cachecontrol/adapter.py | 133 + .../pip/_vendor/cachecontrol/cache.py | 39 + .../_vendor/cachecontrol/caches/__init__.py | 2 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 312 bytes .../__pycache__/file_cache.cpython-38.pyc | Bin 0 -> 3286 bytes .../__pycache__/redis_cache.cpython-38.pyc | Bin 0 -> 1584 bytes .../_vendor/cachecontrol/caches/file_cache.py | 146 + .../cachecontrol/caches/redis_cache.py | 33 + .../pip/_vendor/cachecontrol/compat.py | 29 + .../pip/_vendor/cachecontrol/controller.py | 376 + .../pip/_vendor/cachecontrol/filewrapper.py | 80 + .../pip/_vendor/cachecontrol/heuristics.py | 135 + .../pip/_vendor/cachecontrol/serialize.py | 188 + .../pip/_vendor/cachecontrol/wrapper.py | 29 + .../pip/_vendor/certifi/__init__.py | 3 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 294 bytes .../__pycache__/__main__.cpython-38.pyc | Bin 0 -> 470 bytes .../certifi/__pycache__/core.cpython-38.pyc | Bin 0 -> 1554 bytes .../pip/_vendor/certifi/cacert.pem | 4325 +++++++++ .../site-packages/pip/_vendor/certifi/core.py | 76 + .../pip/_vendor/chardet/__init__.py | 83 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1912 bytes .../__pycache__/big5freq.cpython-38.pyc | Bin 0 -> 27197 bytes .../__pycache__/big5prober.cpython-38.pyc | Bin 0 -> 1152 bytes .../chardistribution.cpython-38.pyc | Bin 0 -> 6238 bytes .../charsetgroupprober.cpython-38.pyc | Bin 0 -> 2279 bytes .../__pycache__/charsetprober.cpython-38.pyc | Bin 0 -> 3501 bytes .../codingstatemachine.cpython-38.pyc | Bin 0 -> 2928 bytes .../chardet/__pycache__/compat.cpython-38.pyc | Bin 0 -> 416 bytes .../__pycache__/cp949prober.cpython-38.pyc | Bin 0 -> 1159 bytes .../chardet/__pycache__/enums.cpython-38.pyc | Bin 0 -> 2666 bytes .../__pycache__/escprober.cpython-38.pyc | Bin 0 -> 2651 bytes .../chardet/__pycache__/escsm.cpython-38.pyc | Bin 0 -> 7492 bytes .../__pycache__/eucjpprober.cpython-38.pyc | Bin 0 -> 2469 bytes .../__pycache__/euckrfreq.cpython-38.pyc | Bin 0 -> 12081 bytes .../__pycache__/euckrprober.cpython-38.pyc | Bin 0 -> 1160 bytes .../__pycache__/euctwfreq.cpython-38.pyc | Bin 0 -> 27201 bytes .../__pycache__/euctwprober.cpython-38.pyc | Bin 0 -> 1160 bytes .../__pycache__/gb2312freq.cpython-38.pyc | Bin 0 -> 19125 bytes .../__pycache__/gb2312prober.cpython-38.pyc | Bin 0 -> 1168 bytes .../__pycache__/hebrewprober.cpython-38.pyc | Bin 0 -> 3041 bytes .../__pycache__/jisfreq.cpython-38.pyc | Bin 0 -> 22153 bytes .../chardet/__pycache__/jpcntx.cpython-38.pyc | Bin 0 -> 37626 bytes .../langbulgarianmodel.cpython-38.pyc | Bin 0 -> 21828 bytes .../__pycache__/langgreekmodel.cpython-38.pyc | Bin 0 -> 20504 bytes .../langhebrewmodel.cpython-38.pyc | Bin 0 -> 20572 bytes .../langhungarianmodel.cpython-38.pyc | Bin 0 -> 21772 bytes .../langrussianmodel.cpython-38.pyc | Bin 0 -> 26376 bytes .../__pycache__/langthaimodel.cpython-38.pyc | Bin 0 -> 20748 bytes .../langturkishmodel.cpython-38.pyc | Bin 0 -> 20588 bytes .../__pycache__/latin1prober.cpython-38.pyc | Bin 0 -> 3421 bytes .../mbcharsetprober.cpython-38.pyc | Bin 0 -> 2284 bytes .../mbcsgroupprober.cpython-38.pyc | Bin 0 -> 1149 bytes .../chardet/__pycache__/mbcssm.cpython-38.pyc | Bin 0 -> 16772 bytes .../sbcharsetprober.cpython-38.pyc | Bin 0 -> 3157 bytes .../sbcsgroupprober.cpython-38.pyc | Bin 0 -> 1722 bytes .../__pycache__/sjisprober.cpython-38.pyc | Bin 0 -> 2505 bytes .../universaldetector.cpython-38.pyc | Bin 0 -> 5849 bytes .../__pycache__/utf8prober.cpython-38.pyc | Bin 0 -> 2010 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 457 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 233 + .../pip/_vendor/chardet/charsetgroupprober.py | 107 + .../pip/_vendor/chardet/charsetprober.py | 145 + .../pip/_vendor/chardet/cli/__init__.py | 1 + .../cli/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 213 bytes .../cli/__pycache__/chardetect.cpython-38.pyc | Bin 0 -> 2709 bytes .../pip/_vendor/chardet/cli/chardetect.py | 84 + .../pip/_vendor/chardet/codingstatemachine.py | 88 + .../pip/_vendor/chardet/compat.py | 36 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 76 + .../pip/_vendor/chardet/escprober.py | 101 + .../pip/_vendor/chardet/escsm.py | 246 + .../pip/_vendor/chardet/eucjpprober.py | 92 + .../pip/_vendor/chardet/euckrfreq.py | 195 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 387 + .../pip/_vendor/chardet/euctwprober.py | 46 + .../pip/_vendor/chardet/gb2312freq.py | 283 + .../pip/_vendor/chardet/gb2312prober.py | 46 + .../pip/_vendor/chardet/hebrewprober.py | 292 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/jpcntx.py | 233 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4398 +++++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5718 +++++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/latin1prober.py | 145 + .../pip/_vendor/chardet/mbcharsetprober.py | 91 + .../pip/_vendor/chardet/mbcsgroupprober.py | 54 + .../pip/_vendor/chardet/mbcssm.py | 572 ++ .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 218 bytes .../__pycache__/languages.cpython-38.pyc | Bin 0 -> 7972 bytes .../pip/_vendor/chardet/metadata/languages.py | 310 + .../pip/_vendor/chardet/sbcharsetprober.py | 145 + .../pip/_vendor/chardet/sbcsgroupprober.py | 83 + .../pip/_vendor/chardet/sjisprober.py | 92 + .../pip/_vendor/chardet/universaldetector.py | 286 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 6 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 462 bytes .../colorama/__pycache__/ansi.cpython-38.pyc | Bin 0 -> 3247 bytes .../__pycache__/ansitowin32.cpython-38.pyc | Bin 0 -> 7791 bytes .../__pycache__/initialise.cpython-38.pyc | Bin 0 -> 1723 bytes .../colorama/__pycache__/win32.cpython-38.pyc | Bin 0 -> 3999 bytes .../__pycache__/winterm.cpython-38.pyc | Bin 0 -> 4683 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 258 + .../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-38.pyc | Bin 0 -> 1077 bytes .../distlib/__pycache__/compat.cpython-38.pyc | Bin 0 -> 32243 bytes .../__pycache__/database.cpython-38.pyc | Bin 0 -> 42133 bytes .../distlib/__pycache__/index.cpython-38.pyc | Bin 0 -> 17429 bytes .../__pycache__/locators.cpython-38.pyc | Bin 0 -> 38431 bytes .../__pycache__/manifest.cpython-38.pyc | Bin 0 -> 10251 bytes .../__pycache__/markers.cpython-38.pyc | Bin 0 -> 4515 bytes .../__pycache__/metadata.cpython-38.pyc | Bin 0 -> 26423 bytes .../__pycache__/resources.cpython-38.pyc | Bin 0 -> 11027 bytes .../__pycache__/scripts.cpython-38.pyc | Bin 0 -> 10933 bytes .../distlib/__pycache__/util.cpython-38.pyc | Bin 0 -> 48180 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 20385 bytes .../distlib/__pycache__/wheel.cpython-38.pyc | Bin 0 -> 25803 bytes .../pip/_vendor/distlib/_backport/__init__.py | 6 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 501 bytes .../_backport/__pycache__/misc.cpython-38.pyc | Bin 0 -> 1112 bytes .../__pycache__/shutil.cpython-38.pyc | Bin 0 -> 21568 bytes .../__pycache__/sysconfig.cpython-38.pyc | Bin 0 -> 15932 bytes .../__pycache__/tarfile.cpython-38.pyc | Bin 0 -> 62761 bytes .../pip/_vendor/distlib/_backport/misc.py | 41 + .../pip/_vendor/distlib/_backport/shutil.py | 764 ++ .../_vendor/distlib/_backport/sysconfig.cfg | 84 + .../_vendor/distlib/_backport/sysconfig.py | 786 ++ .../pip/_vendor/distlib/_backport/tarfile.py | 2607 +++++ .../pip/_vendor/distlib/compat.py | 1120 +++ .../pip/_vendor/distlib/database.py | 1339 +++ .../pip/_vendor/distlib/index.py | 516 + .../pip/_vendor/distlib/locators.py | 1302 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 131 + .../pip/_vendor/distlib/metadata.py | 1056 +++ .../pip/_vendor/distlib/resources.py | 355 + .../pip/_vendor/distlib/scripts.py | 419 + .../site-packages/pip/_vendor/distlib/t32.exe | Bin 0 -> 96768 bytes .../site-packages/pip/_vendor/distlib/t64.exe | Bin 0 -> 105984 bytes .../site-packages/pip/_vendor/distlib/util.py | 1761 ++++ .../pip/_vendor/distlib/version.py | 736 ++ .../site-packages/pip/_vendor/distlib/w32.exe | Bin 0 -> 90112 bytes .../site-packages/pip/_vendor/distlib/w64.exe | Bin 0 -> 99840 bytes .../pip/_vendor/distlib/wheel.py | 1018 ++ .../site-packages/pip/_vendor/distro.py | 1230 +++ .../pip/_vendor/html5lib/__init__.py | 35 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1333 bytes .../__pycache__/_ihatexml.cpython-38.pyc | Bin 0 -> 13819 bytes .../__pycache__/_inputstream.cpython-38.pyc | Bin 0 -> 21892 bytes .../__pycache__/_tokenizer.cpython-38.pyc | Bin 0 -> 39921 bytes .../__pycache__/_utils.cpython-38.pyc | Bin 0 -> 4836 bytes .../__pycache__/constants.cpython-38.pyc | Bin 0 -> 66350 bytes .../__pycache__/html5parser.cpython-38.pyc | Bin 0 -> 91294 bytes .../__pycache__/serializer.cpython-38.pyc | Bin 0 -> 10844 bytes .../pip/_vendor/html5lib/_ihatexml.py | 289 + .../pip/_vendor/html5lib/_inputstream.py | 918 ++ .../pip/_vendor/html5lib/_tokenizer.py | 1735 ++++ .../pip/_vendor/html5lib/_trie/__init__.py | 5 + .../_trie/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 371 bytes .../_trie/__pycache__/_base.cpython-38.pyc | Bin 0 -> 1623 bytes .../_trie/__pycache__/py.cpython-38.pyc | Bin 0 -> 2280 bytes .../pip/_vendor/html5lib/_trie/_base.py | 40 + .../pip/_vendor/html5lib/_trie/py.py | 67 + .../pip/_vendor/html5lib/_utils.py | 159 + .../pip/_vendor/html5lib/constants.py | 2946 ++++++ .../pip/_vendor/html5lib/filters/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 218 bytes .../alphabeticalattributes.cpython-38.pyc | Bin 0 -> 1340 bytes .../filters/__pycache__/base.cpython-38.pyc | Bin 0 -> 888 bytes .../inject_meta_charset.cpython-38.pyc | Bin 0 -> 1894 bytes .../filters/__pycache__/lint.cpython-38.pyc | Bin 0 -> 2652 bytes .../__pycache__/optionaltags.cpython-38.pyc | Bin 0 -> 2781 bytes .../__pycache__/sanitizer.cpython-38.pyc | Bin 0 -> 16927 bytes .../__pycache__/whitespace.cpython-38.pyc | Bin 0 -> 1386 bytes .../filters/alphabeticalattributes.py | 29 + .../pip/_vendor/html5lib/filters/base.py | 12 + .../html5lib/filters/inject_meta_charset.py | 73 + .../pip/_vendor/html5lib/filters/lint.py | 93 + .../_vendor/html5lib/filters/optionaltags.py | 207 + .../pip/_vendor/html5lib/filters/sanitizer.py | 916 ++ .../_vendor/html5lib/filters/whitespace.py | 38 + .../pip/_vendor/html5lib/html5parser.py | 2795 ++++++ .../pip/_vendor/html5lib/serializer.py | 409 + .../_vendor/html5lib/treeadapters/__init__.py | 30 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 957 bytes .../__pycache__/genshi.cpython-38.pyc | Bin 0 -> 1563 bytes .../__pycache__/sax.cpython-38.pyc | Bin 0 -> 1498 bytes .../_vendor/html5lib/treeadapters/genshi.py | 54 + .../pip/_vendor/html5lib/treeadapters/sax.py | 50 + .../_vendor/html5lib/treebuilders/__init__.py | 88 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 3343 bytes .../__pycache__/base.cpython-38.pyc | Bin 0 -> 11356 bytes .../__pycache__/dom.cpython-38.pyc | Bin 0 -> 9475 bytes .../__pycache__/etree.cpython-38.pyc | Bin 0 -> 11858 bytes .../__pycache__/etree_lxml.cpython-38.pyc | Bin 0 -> 13052 bytes .../pip/_vendor/html5lib/treebuilders/base.py | 417 + .../pip/_vendor/html5lib/treebuilders/dom.py | 239 + .../_vendor/html5lib/treebuilders/etree.py | 343 + .../html5lib/treebuilders/etree_lxml.py | 392 + .../_vendor/html5lib/treewalkers/__init__.py | 154 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 4029 bytes .../__pycache__/base.cpython-38.pyc | Bin 0 -> 7023 bytes .../__pycache__/dom.cpython-38.pyc | Bin 0 -> 1752 bytes .../__pycache__/etree.cpython-38.pyc | Bin 0 -> 3537 bytes .../__pycache__/etree_lxml.cpython-38.pyc | Bin 0 -> 6690 bytes .../__pycache__/genshi.cpython-38.pyc | Bin 0 -> 1910 bytes .../pip/_vendor/html5lib/treewalkers/base.py | 252 + .../pip/_vendor/html5lib/treewalkers/dom.py | 43 + .../pip/_vendor/html5lib/treewalkers/etree.py | 131 + .../html5lib/treewalkers/etree_lxml.py | 215 + .../_vendor/html5lib/treewalkers/genshi.py | 69 + .../pip/_vendor/idna/__init__.py | 2 + .../idna/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 276 bytes .../idna/__pycache__/codec.cpython-38.pyc | Bin 0 -> 2809 bytes .../idna/__pycache__/compat.cpython-38.pyc | Bin 0 -> 647 bytes .../idna/__pycache__/core.cpython-38.pyc | Bin 0 -> 9124 bytes .../idna/__pycache__/idnadata.cpython-38.pyc | Bin 0 -> 22157 bytes .../idna/__pycache__/intranges.cpython-38.pyc | Bin 0 -> 1828 bytes .../__pycache__/package_data.cpython-38.pyc | Bin 0 -> 230 bytes .../idna/__pycache__/uts46data.cpython-38.pyc | Bin 0 -> 177476 bytes .../site-packages/pip/_vendor/idna/codec.py | 110 + .../site-packages/pip/_vendor/idna/compat.py | 12 + .../site-packages/pip/_vendor/idna/core.py | 396 + .../pip/_vendor/idna/idnadata.py | 2050 ++++ .../pip/_vendor/idna/intranges.py | 53 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8356 +++++++++++++++++ .../pip/_vendor/msgpack/__init__.py | 54 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1423 bytes .../__pycache__/_version.cpython-38.pyc | Bin 0 -> 237 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 1871 bytes .../msgpack/__pycache__/ext.cpython-38.pyc | Bin 0 -> 6303 bytes .../__pycache__/fallback.cpython-38.pyc | Bin 0 -> 26788 bytes .../pip/_vendor/msgpack/_version.py | 1 + .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1087 +++ .../pip/_vendor/packaging/__about__.py | 27 + .../pip/_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-38.pyc | Bin 0 -> 734 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 590 bytes .../__pycache__/_compat.cpython-38.pyc | Bin 0 -> 1162 bytes .../__pycache__/_structures.cpython-38.pyc | Bin 0 -> 2916 bytes .../__pycache__/_typing.cpython-38.pyc | Bin 0 -> 1519 bytes .../__pycache__/markers.cpython-38.pyc | Bin 0 -> 9318 bytes .../__pycache__/requirements.cpython-38.pyc | Bin 0 -> 4167 bytes .../__pycache__/specifiers.cpython-38.pyc | Bin 0 -> 20971 bytes .../packaging/__pycache__/tags.cpython-38.pyc | Bin 0 -> 18573 bytes .../__pycache__/utils.cpython-38.pyc | Bin 0 -> 3640 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 12712 bytes .../pip/_vendor/packaging/_compat.py | 38 + .../pip/_vendor/packaging/_structures.py | 86 + .../pip/_vendor/packaging/_typing.py | 48 + .../pip/_vendor/packaging/markers.py | 336 + .../pip/_vendor/packaging/requirements.py | 160 + .../pip/_vendor/packaging/specifiers.py | 864 ++ .../pip/_vendor/packaging/tags.py | 866 ++ .../pip/_vendor/packaging/utils.py | 138 + .../pip/_vendor/packaging/version.py | 556 ++ .../pip/_vendor/pep517/__init__.py | 6 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 332 bytes .../pep517/__pycache__/build.cpython-38.pyc | Bin 0 -> 3523 bytes .../pep517/__pycache__/check.cpython-38.pyc | Bin 0 -> 4939 bytes .../__pycache__/colorlog.cpython-38.pyc | Bin 0 -> 2970 bytes .../pep517/__pycache__/compat.cpython-38.pyc | Bin 0 -> 1068 bytes .../__pycache__/dirtools.cpython-38.pyc | Bin 0 -> 1349 bytes .../__pycache__/envbuild.cpython-38.pyc | Bin 0 -> 4464 bytes .../pep517/__pycache__/meta.cpython-38.pyc | Bin 0 -> 2876 bytes .../__pycache__/wrappers.cpython-38.pyc | Bin 0 -> 10438 bytes .../site-packages/pip/_vendor/pep517/build.py | 127 + .../site-packages/pip/_vendor/pep517/check.py | 206 + .../pip/_vendor/pep517/colorlog.py | 115 + .../pip/_vendor/pep517/compat.py | 34 + .../pip/_vendor/pep517/dirtools.py | 44 + .../pip/_vendor/pep517/envbuild.py | 167 + .../pip/_vendor/pep517/in_process/__init__.py | 17 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 936 bytes .../__pycache__/_in_process.cpython-38.pyc | Bin 0 -> 8174 bytes .../_vendor/pep517/in_process/_in_process.py | 280 + .../site-packages/pip/_vendor/pep517/meta.py | 92 + .../pip/_vendor/pep517/wrappers.py | 318 + .../pip/_vendor/pkg_resources/__init__.py | 3296 +++++++ .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 100369 bytes .../__pycache__/py31compat.cpython-38.pyc | Bin 0 -> 667 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 + .../pip/_vendor/progress/__init__.py | 177 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 5636 bytes .../progress/__pycache__/bar.cpython-38.pyc | Bin 0 -> 2660 bytes .../__pycache__/counter.cpython-38.pyc | Bin 0 -> 1491 bytes .../__pycache__/spinner.cpython-38.pyc | Bin 0 -> 1419 bytes .../site-packages/pip/_vendor/progress/bar.py | 91 + .../pip/_vendor/progress/counter.py | 41 + .../pip/_vendor/progress/spinner.py | 43 + .../site-packages/pip/_vendor/pyparsing.py | 7107 ++++++++++++++ .../pip/_vendor/requests/__init__.py | 142 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 3703 bytes .../__pycache__/__version__.cpython-38.pyc | Bin 0 -> 574 bytes .../_internal_utils.cpython-38.pyc | Bin 0 -> 1339 bytes .../__pycache__/adapters.cpython-38.pyc | Bin 0 -> 17002 bytes .../requests/__pycache__/api.cpython-38.pyc | Bin 0 -> 6754 bytes .../requests/__pycache__/auth.cpython-38.pyc | Bin 0 -> 8358 bytes .../requests/__pycache__/certs.cpython-38.pyc | Bin 0 -> 652 bytes .../__pycache__/compat.cpython-38.pyc | Bin 0 -> 1631 bytes .../__pycache__/cookies.cpython-38.pyc | Bin 0 -> 18853 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 5260 bytes .../requests/__pycache__/help.cpython-38.pyc | Bin 0 -> 2748 bytes .../requests/__pycache__/hooks.cpython-38.pyc | Bin 0 -> 1011 bytes .../__pycache__/models.cpython-38.pyc | Bin 0 -> 24038 bytes .../__pycache__/packages.cpython-38.pyc | Bin 0 -> 521 bytes .../__pycache__/sessions.cpython-38.pyc | Bin 0 -> 19941 bytes .../__pycache__/status_codes.cpython-38.pyc | Bin 0 -> 4266 bytes .../__pycache__/structures.cpython-38.pyc | Bin 0 -> 4479 bytes .../requests/__pycache__/utils.cpython-38.pyc | Bin 0 -> 22622 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 42 + .../pip/_vendor/requests/adapters.py | 533 ++ .../site-packages/pip/_vendor/requests/api.py | 161 + .../pip/_vendor/requests/auth.py | 305 + .../pip/_vendor/requests/certs.py | 18 + .../pip/_vendor/requests/compat.py | 76 + .../pip/_vendor/requests/cookies.py | 549 ++ .../pip/_vendor/requests/exceptions.py | 123 + .../pip/_vendor/requests/help.py | 119 + .../pip/_vendor/requests/hooks.py | 34 + .../pip/_vendor/requests/models.py | 956 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 781 ++ .../pip/_vendor/requests/status_codes.py | 123 + .../pip/_vendor/requests/structures.py | 105 + .../pip/_vendor/requests/utils.py | 992 ++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 658 bytes .../__pycache__/providers.cpython-38.pyc | Bin 0 -> 6544 bytes .../__pycache__/reporters.cpython-38.pyc | Bin 0 -> 2320 bytes .../__pycache__/resolvers.cpython-38.pyc | Bin 0 -> 15257 bytes .../__pycache__/structs.cpython-38.pyc | Bin 0 -> 6966 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 219 bytes .../collections_abc.cpython-38.pyc | Bin 0 -> 395 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 124 + .../pip/_vendor/resolvelib/reporters.py | 37 + .../pip/_vendor/resolvelib/resolvers.py | 474 + .../pip/_vendor/resolvelib/structs.py | 153 + .../site-packages/pip/_vendor/six.py | 982 ++ .../pip/_vendor/tenacity/__init__.py | 523 ++ .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 14719 bytes .../__pycache__/_asyncio.cpython-38.pyc | Bin 0 -> 2212 bytes .../__pycache__/_utils.cpython-38.pyc | Bin 0 -> 3988 bytes .../tenacity/__pycache__/after.cpython-38.pyc | Bin 0 -> 997 bytes .../__pycache__/before.cpython-38.pyc | Bin 0 -> 893 bytes .../__pycache__/before_sleep.cpython-38.pyc | Bin 0 -> 1241 bytes .../__pycache__/compat.cpython-38.pyc | Bin 0 -> 977 bytes .../tenacity/__pycache__/nap.cpython-38.pyc | Bin 0 -> 1046 bytes .../tenacity/__pycache__/retry.cpython-38.pyc | Bin 0 -> 7431 bytes .../tenacity/__pycache__/stop.cpython-38.pyc | Bin 0 -> 3815 bytes .../__pycache__/tornadoweb.cpython-38.pyc | Bin 0 -> 1354 bytes .../tenacity/__pycache__/wait.cpython-38.pyc | Bin 0 -> 7370 bytes .../pip/_vendor/tenacity/_asyncio.py | 81 + .../pip/_vendor/tenacity/_utils.py | 159 + .../pip/_vendor/tenacity/after.py | 40 + .../pip/_vendor/tenacity/before.py | 35 + .../pip/_vendor/tenacity/before_sleep.py | 51 + .../pip/_vendor/tenacity/compat.py | 23 + .../site-packages/pip/_vendor/tenacity/nap.py | 40 + .../pip/_vendor/tenacity/retry.py | 192 + .../pip/_vendor/tenacity/stop.py | 95 + .../pip/_vendor/tenacity/tornadoweb.py | 49 + .../pip/_vendor/tenacity/wait.py | 183 + .../pip/_vendor/toml/__init__.py | 25 + .../toml/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 751 bytes .../toml/__pycache__/decoder.cpython-38.pyc | Bin 0 -> 23314 bytes .../toml/__pycache__/encoder.cpython-38.pyc | Bin 0 -> 9452 bytes .../toml/__pycache__/ordered.cpython-38.pyc | Bin 0 -> 989 bytes .../toml/__pycache__/tz.cpython-38.pyc | Bin 0 -> 1292 bytes .../site-packages/pip/_vendor/toml/decoder.py | 1057 +++ .../site-packages/pip/_vendor/toml/encoder.py | 304 + .../site-packages/pip/_vendor/toml/ordered.py | 15 + .../site-packages/pip/_vendor/toml/tz.py | 24 + .../pip/_vendor/urllib3/__init__.py | 85 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2208 bytes .../__pycache__/_collections.cpython-38.pyc | Bin 0 -> 10721 bytes .../__pycache__/_version.cpython-38.pyc | Bin 0 -> 232 bytes .../__pycache__/connection.cpython-38.pyc | Bin 0 -> 13398 bytes .../__pycache__/connectionpool.cpython-38.pyc | Bin 0 -> 24473 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 11665 bytes .../urllib3/__pycache__/fields.cpython-38.pyc | Bin 0 -> 8202 bytes .../__pycache__/filepost.cpython-38.pyc | Bin 0 -> 2789 bytes .../__pycache__/poolmanager.cpython-38.pyc | Bin 0 -> 15147 bytes .../__pycache__/request.cpython-38.pyc | Bin 0 -> 5645 bytes .../__pycache__/response.cpython-38.pyc | Bin 0 -> 20745 bytes .../pip/_vendor/urllib3/_collections.py | 337 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 539 ++ .../pip/_vendor/urllib3/connectionpool.py | 1067 +++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 218 bytes .../_appengine_environ.cpython-38.pyc | Bin 0 -> 1442 bytes .../__pycache__/appengine.cpython-38.pyc | Bin 0 -> 8290 bytes .../__pycache__/ntlmpool.cpython-38.pyc | Bin 0 -> 3298 bytes .../__pycache__/pyopenssl.cpython-38.pyc | Bin 0 -> 15553 bytes .../securetransport.cpython-38.pyc | Bin 0 -> 21594 bytes .../contrib/__pycache__/socks.cpython-38.pyc | Bin 0 -> 5656 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 234 bytes .../__pycache__/bindings.cpython-38.pyc | Bin 0 -> 10767 bytes .../__pycache__/low_level.cpython-38.pyc | Bin 0 -> 9122 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 396 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 121 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 509 + .../urllib3/contrib/securetransport.py | 920 ++ .../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 | 5 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 332 bytes .../packages/__pycache__/six.cpython-38.pyc | Bin 0 -> 26544 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 228 bytes .../__pycache__/makefile.cpython-38.pyc | Bin 0 -> 1332 bytes .../urllib3/packages/backports/makefile.py | 51 + .../pip/_vendor/urllib3/packages/six.py | 1021 ++ .../packages/ssl_match_hostname/__init__.py | 22 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 573 bytes .../_implementation.cpython-38.pyc | Bin 0 -> 3329 bytes .../ssl_match_hostname/_implementation.py | 160 + .../pip/_vendor/urllib3/poolmanager.py | 536 ++ .../pip/_vendor/urllib3/request.py | 170 + .../pip/_vendor/urllib3/response.py | 821 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1128 bytes .../__pycache__/connection.cpython-38.pyc | Bin 0 -> 3488 bytes .../util/__pycache__/proxy.cpython-38.pyc | Bin 0 -> 1372 bytes .../util/__pycache__/queue.cpython-38.pyc | Bin 0 -> 1083 bytes .../util/__pycache__/request.cpython-38.pyc | Bin 0 -> 3477 bytes .../util/__pycache__/response.cpython-38.pyc | Bin 0 -> 2376 bytes .../util/__pycache__/retry.cpython-38.pyc | Bin 0 -> 16001 bytes .../util/__pycache__/ssl_.cpython-38.pyc | Bin 0 -> 11107 bytes .../__pycache__/ssltransport.cpython-38.pyc | Bin 0 -> 7498 bytes .../util/__pycache__/timeout.cpython-38.pyc | Bin 0 -> 8970 bytes .../util/__pycache__/url.cpython-38.pyc | Bin 0 -> 10748 bytes .../util/__pycache__/wait.cpython-38.pyc | Bin 0 -> 3130 bytes .../pip/_vendor/urllib3/util/connection.py | 150 + .../pip/_vendor/urllib3/util/proxy.py | 56 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 143 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 602 ++ .../pip/_vendor/urllib3/util/ssl_.py | 474 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 268 + .../pip/_vendor/urllib3/util/url.py | 430 + .../pip/_vendor/urllib3/util/wait.py | 153 + .../site-packages/pip/_vendor/vendor.txt | 22 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 9758 bytes .../__pycache__/labels.cpython-38.pyc | Bin 0 -> 3856 bytes .../__pycache__/mklabels.cpython-38.pyc | Bin 0 -> 1951 bytes .../__pycache__/tests.cpython-38.pyc | Bin 0 -> 5117 bytes .../__pycache__/x_user_defined.cpython-38.pyc | Bin 0 -> 2685 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.8/site-packages/pip/py.typed | 4 + .../site-packages/pkg_resources/__init__.py | 3288 +++++++ .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 100444 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 211 bytes .../__pycache__/appdirs.cpython-38.pyc | Bin 0 -> 20564 bytes .../__pycache__/pyparsing.cpython-38.pyc | Bin 0 -> 201688 bytes .../pkg_resources/_vendor/appdirs.py | 608 ++ .../_vendor/packaging/__about__.py | 27 + .../_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-38.pyc | Bin 0 -> 753 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 599 bytes .../__pycache__/_compat.cpython-38.pyc | Bin 0 -> 1171 bytes .../__pycache__/_structures.cpython-38.pyc | Bin 0 -> 2925 bytes .../__pycache__/_typing.cpython-38.pyc | Bin 0 -> 1516 bytes .../__pycache__/markers.cpython-38.pyc | Bin 0 -> 9360 bytes .../__pycache__/requirements.cpython-38.pyc | Bin 0 -> 4113 bytes .../__pycache__/specifiers.cpython-38.pyc | Bin 0 -> 20634 bytes .../packaging/__pycache__/tags.cpython-38.pyc | Bin 0 -> 17286 bytes .../__pycache__/utils.cpython-38.pyc | Bin 0 -> 1688 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 13363 bytes .../_vendor/packaging/_compat.py | 38 + .../_vendor/packaging/_structures.py | 86 + .../_vendor/packaging/_typing.py | 48 + .../_vendor/packaging/markers.py | 328 + .../_vendor/packaging/requirements.py | 145 + .../_vendor/packaging/specifiers.py | 863 ++ .../pkg_resources/_vendor/packaging/tags.py | 751 ++ .../pkg_resources/_vendor/packaging/utils.py | 65 + .../_vendor/packaging/version.py | 535 ++ .../pkg_resources/_vendor/pyparsing.py | 5742 +++++++++++ .../pkg_resources/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2898 bytes .../__pycache__/setup.cpython-38.pyc | Bin 0 -> 339 bytes .../data/my-test-package-source/setup.py | 6 + .../setuptools-56.0.0.dist-info/INSTALLER | 1 + .../setuptools-56.0.0.dist-info/LICENSE | 19 + .../setuptools-56.0.0.dist-info/METADATA | 114 + .../setuptools-56.0.0.dist-info/RECORD | 295 + .../setuptools-56.0.0.dist-info/REQUESTED | 0 .../setuptools-56.0.0.dist-info/WHEEL | 5 + .../dependency_links.txt | 2 + .../entry_points.txt | 60 + .../setuptools-56.0.0.dist-info/top_level.txt | 3 + .../site-packages/setuptools/__init__.py | 241 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 8674 bytes .../_deprecation_warning.cpython-38.pyc | Bin 0 -> 570 bytes .../__pycache__/_imp.cpython-38.pyc | Bin 0 -> 2109 bytes .../__pycache__/archive_util.cpython-38.pyc | Bin 0 -> 5770 bytes .../__pycache__/build_meta.cpython-38.pyc | Bin 0 -> 9002 bytes .../__pycache__/config.cpython-38.pyc | Bin 0 -> 19816 bytes .../__pycache__/dep_util.cpython-38.pyc | Bin 0 -> 877 bytes .../__pycache__/depends.cpython-38.pyc | Bin 0 -> 5248 bytes .../__pycache__/dist.cpython-38.pyc | Bin 0 -> 33346 bytes .../__pycache__/errors.cpython-38.pyc | Bin 0 -> 870 bytes .../__pycache__/extension.cpython-38.pyc | Bin 0 -> 1960 bytes .../__pycache__/glob.cpython-38.pyc | Bin 0 -> 3724 bytes .../__pycache__/installer.cpython-38.pyc | Bin 0 -> 2805 bytes .../__pycache__/launch.cpython-38.pyc | Bin 0 -> 901 bytes .../__pycache__/lib2to3_ex.cpython-38.pyc | Bin 0 -> 2717 bytes .../__pycache__/monkey.cpython-38.pyc | Bin 0 -> 4639 bytes .../__pycache__/msvc.cpython-38.pyc | Bin 0 -> 43212 bytes .../__pycache__/namespaces.cpython-38.pyc | Bin 0 -> 3600 bytes .../__pycache__/package_index.cpython-38.pyc | Bin 0 -> 33008 bytes .../__pycache__/py34compat.cpython-38.pyc | Bin 0 -> 504 bytes .../__pycache__/sandbox.cpython-38.pyc | Bin 0 -> 15465 bytes .../__pycache__/ssl_support.cpython-38.pyc | Bin 0 -> 6892 bytes .../__pycache__/unicode_utils.cpython-38.pyc | Bin 0 -> 1140 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 346 bytes .../__pycache__/wheel.cpython-38.pyc | Bin 0 -> 7252 bytes .../windows_support.cpython-38.pyc | Bin 0 -> 1043 bytes .../setuptools/_deprecation_warning.py | 7 + .../setuptools/_distutils/__init__.py | 15 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 478 bytes .../__pycache__/_msvccompiler.cpython-38.pyc | Bin 0 -> 13871 bytes .../__pycache__/archive_util.cpython-38.pyc | Bin 0 -> 6619 bytes .../__pycache__/bcppcompiler.cpython-38.pyc | Bin 0 -> 6544 bytes .../__pycache__/ccompiler.cpython-38.pyc | Bin 0 -> 33368 bytes .../_distutils/__pycache__/cmd.cpython-38.pyc | Bin 0 -> 14028 bytes .../__pycache__/config.cpython-38.pyc | Bin 0 -> 3589 bytes .../__pycache__/core.cpython-38.pyc | Bin 0 -> 6694 bytes .../cygwinccompiler.cpython-38.pyc | Bin 0 -> 8569 bytes .../__pycache__/debug.cpython-38.pyc | Bin 0 -> 274 bytes .../__pycache__/dep_util.cpython-38.pyc | Bin 0 -> 2794 bytes .../__pycache__/dir_util.cpython-38.pyc | Bin 0 -> 5903 bytes .../__pycache__/dist.cpython-38.pyc | Bin 0 -> 34607 bytes .../__pycache__/errors.cpython-38.pyc | Bin 0 -> 5330 bytes .../__pycache__/extension.cpython-38.pyc | Bin 0 -> 7003 bytes .../__pycache__/fancy_getopt.cpython-38.pyc | Bin 0 -> 10736 bytes .../__pycache__/file_util.cpython-38.pyc | Bin 0 -> 6013 bytes .../__pycache__/filelist.cpython-38.pyc | Bin 0 -> 9947 bytes .../_distutils/__pycache__/log.cpython-38.pyc | Bin 0 -> 2395 bytes .../__pycache__/msvc9compiler.cpython-38.pyc | Bin 0 -> 17557 bytes .../__pycache__/msvccompiler.cpython-38.pyc | Bin 0 -> 14768 bytes .../__pycache__/py35compat.cpython-38.pyc | Bin 0 -> 650 bytes .../__pycache__/py38compat.cpython-38.pyc | Bin 0 -> 447 bytes .../__pycache__/spawn.cpython-38.pyc | Bin 0 -> 3454 bytes .../__pycache__/sysconfig.cpython-38.pyc | Bin 0 -> 12459 bytes .../__pycache__/text_file.cpython-38.pyc | Bin 0 -> 8519 bytes .../__pycache__/unixccompiler.cpython-38.pyc | Bin 0 -> 6698 bytes .../__pycache__/util.cpython-38.pyc | Bin 0 -> 15707 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 7441 bytes .../versionpredicate.cpython-38.pyc | Bin 0 -> 5215 bytes .../setuptools/_distutils/_msvccompiler.py | 561 ++ .../setuptools/_distutils/archive_util.py | 256 + .../setuptools/_distutils/bcppcompiler.py | 393 + .../setuptools/_distutils/ccompiler.py | 1116 +++ .../setuptools/_distutils/cmd.py | 403 + .../setuptools/_distutils/command/__init__.py | 31 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 623 bytes .../command/__pycache__/bdist.cpython-38.pyc | Bin 0 -> 3746 bytes .../__pycache__/bdist_dumb.cpython-38.pyc | Bin 0 -> 3672 bytes .../__pycache__/bdist_msi.cpython-38.pyc | Bin 0 -> 20053 bytes .../__pycache__/bdist_rpm.cpython-38.pyc | Bin 0 -> 12457 bytes .../__pycache__/bdist_wininst.cpython-38.pyc | Bin 0 -> 8547 bytes .../command/__pycache__/build.cpython-38.pyc | Bin 0 -> 3961 bytes .../__pycache__/build_clib.cpython-38.pyc | Bin 0 -> 4894 bytes .../__pycache__/build_ext.cpython-38.pyc | Bin 0 -> 16283 bytes .../__pycache__/build_py.cpython-38.pyc | Bin 0 -> 10560 bytes .../__pycache__/build_scripts.cpython-38.pyc | Bin 0 -> 4404 bytes .../command/__pycache__/check.cpython-38.pyc | Bin 0 -> 4999 bytes .../command/__pycache__/clean.cpython-38.pyc | Bin 0 -> 2180 bytes .../command/__pycache__/config.cpython-38.pyc | Bin 0 -> 10307 bytes .../__pycache__/install.cpython-38.pyc | Bin 0 -> 13968 bytes .../__pycache__/install_data.cpython-38.pyc | Bin 0 -> 2369 bytes .../install_egg_info.cpython-38.pyc | Bin 0 -> 3076 bytes .../install_headers.cpython-38.pyc | Bin 0 -> 1788 bytes .../__pycache__/install_lib.cpython-38.pyc | Bin 0 -> 5193 bytes .../install_scripts.cpython-38.pyc | Bin 0 -> 2221 bytes .../__pycache__/py37compat.cpython-38.pyc | Bin 0 -> 1050 bytes .../__pycache__/register.cpython-38.pyc | Bin 0 -> 8535 bytes .../command/__pycache__/sdist.cpython-38.pyc | Bin 0 -> 14596 bytes .../command/__pycache__/upload.cpython-38.pyc | Bin 0 -> 5249 bytes .../setuptools/_distutils/command/bdist.py | 143 + .../_distutils/command/bdist_dumb.py | 123 + .../_distutils/command/bdist_msi.py | 749 ++ .../_distutils/command/bdist_rpm.py | 579 ++ .../_distutils/command/bdist_wininst.py | 377 + .../setuptools/_distutils/command/build.py | 157 + .../_distutils/command/build_clib.py | 209 + .../_distutils/command/build_ext.py | 755 ++ .../setuptools/_distutils/command/build_py.py | 416 + .../_distutils/command/build_scripts.py | 160 + .../setuptools/_distutils/command/check.py | 148 + .../setuptools/_distutils/command/clean.py | 76 + .../setuptools/_distutils/command/config.py | 344 + .../setuptools/_distutils/command/install.py | 677 ++ .../_distutils/command/install_data.py | 79 + .../_distutils/command/install_egg_info.py | 77 + .../_distutils/command/install_headers.py | 47 + .../_distutils/command/install_lib.py | 217 + .../_distutils/command/install_scripts.py | 60 + .../_distutils/command/py37compat.py | 30 + .../setuptools/_distutils/command/register.py | 304 + .../setuptools/_distutils/command/sdist.py | 494 + .../setuptools/_distutils/command/upload.py | 214 + .../setuptools/_distutils/config.py | 130 + .../setuptools/_distutils/core.py | 234 + .../setuptools/_distutils/cygwinccompiler.py | 403 + .../setuptools/_distutils/debug.py | 5 + .../setuptools/_distutils/dep_util.py | 92 + .../setuptools/_distutils/dir_util.py | 210 + .../setuptools/_distutils/dist.py | 1257 +++ .../setuptools/_distutils/errors.py | 97 + .../setuptools/_distutils/extension.py | 240 + .../setuptools/_distutils/fancy_getopt.py | 457 + .../setuptools/_distutils/file_util.py | 238 + .../setuptools/_distutils/filelist.py | 327 + .../setuptools/_distutils/log.py | 77 + .../setuptools/_distutils/msvc9compiler.py | 788 ++ .../setuptools/_distutils/msvccompiler.py | 643 ++ .../setuptools/_distutils/py35compat.py | 19 + .../setuptools/_distutils/py38compat.py | 7 + .../setuptools/_distutils/spawn.py | 125 + .../setuptools/_distutils/sysconfig.py | 573 ++ .../setuptools/_distutils/text_file.py | 286 + .../setuptools/_distutils/unixccompiler.py | 328 + .../setuptools/_distutils/util.py | 561 ++ .../setuptools/_distutils/version.py | 347 + .../setuptools/_distutils/versionpredicate.py | 166 + .../site-packages/setuptools/_imp.py | 82 + .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 208 bytes .../__pycache__/ordered_set.cpython-38.pyc | Bin 0 -> 16466 bytes .../__pycache__/pyparsing.cpython-38.pyc | Bin 0 -> 201685 bytes .../setuptools/_vendor/ordered_set.py | 488 + .../setuptools/_vendor/packaging/__about__.py | 27 + .../setuptools/_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-38.pyc | Bin 0 -> 750 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 596 bytes .../__pycache__/_compat.cpython-38.pyc | Bin 0 -> 1168 bytes .../__pycache__/_structures.cpython-38.pyc | Bin 0 -> 2922 bytes .../__pycache__/_typing.cpython-38.pyc | Bin 0 -> 1513 bytes .../__pycache__/markers.cpython-38.pyc | Bin 0 -> 9354 bytes .../__pycache__/requirements.cpython-38.pyc | Bin 0 -> 4107 bytes .../__pycache__/specifiers.cpython-38.pyc | Bin 0 -> 20631 bytes .../packaging/__pycache__/tags.cpython-38.pyc | Bin 0 -> 17283 bytes .../__pycache__/utils.cpython-38.pyc | Bin 0 -> 1685 bytes .../__pycache__/version.cpython-38.pyc | Bin 0 -> 13360 bytes .../setuptools/_vendor/packaging/_compat.py | 38 + .../_vendor/packaging/_structures.py | 86 + .../setuptools/_vendor/packaging/_typing.py | 48 + .../setuptools/_vendor/packaging/markers.py | 328 + .../_vendor/packaging/requirements.py | 145 + .../_vendor/packaging/specifiers.py | 863 ++ .../setuptools/_vendor/packaging/tags.py | 751 ++ .../setuptools/_vendor/packaging/utils.py | 65 + .../setuptools/_vendor/packaging/version.py | 535 ++ .../setuptools/_vendor/pyparsing.py | 5742 +++++++++++ .../site-packages/setuptools/archive_util.py | 205 + .../site-packages/setuptools/build_meta.py | 281 + .../site-packages/setuptools/cli-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/cli-64.exe | Bin 0 -> 74752 bytes .../site-packages/setuptools/cli.exe | Bin 0 -> 65536 bytes .../setuptools/command/__init__.py | 17 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 747 bytes .../command/__pycache__/alias.cpython-38.pyc | Bin 0 -> 2391 bytes .../__pycache__/bdist_egg.cpython-38.pyc | Bin 0 -> 13057 bytes .../__pycache__/bdist_rpm.cpython-38.pyc | Bin 0 -> 1377 bytes .../__pycache__/build_clib.cpython-38.pyc | Bin 0 -> 2488 bytes .../__pycache__/build_ext.cpython-38.pyc | Bin 0 -> 9825 bytes .../__pycache__/build_py.cpython-38.pyc | Bin 0 -> 8698 bytes .../__pycache__/develop.cpython-38.pyc | Bin 0 -> 6440 bytes .../__pycache__/dist_info.cpython-38.pyc | Bin 0 -> 1415 bytes .../__pycache__/easy_install.cpython-38.pyc | Bin 0 -> 63275 bytes .../__pycache__/egg_info.cpython-38.pyc | Bin 0 -> 21715 bytes .../__pycache__/install.cpython-38.pyc | Bin 0 -> 4070 bytes .../install_egg_info.cpython-38.pyc | Bin 0 -> 2457 bytes .../__pycache__/install_lib.cpython-38.pyc | Bin 0 -> 4184 bytes .../install_scripts.cpython-38.pyc | Bin 0 -> 2448 bytes .../__pycache__/py36compat.cpython-38.pyc | Bin 0 -> 4609 bytes .../__pycache__/register.cpython-38.pyc | Bin 0 -> 865 bytes .../command/__pycache__/rotate.cpython-38.pyc | Bin 0 -> 2534 bytes .../__pycache__/saveopts.cpython-38.pyc | Bin 0 -> 943 bytes .../command/__pycache__/sdist.cpython-38.pyc | Bin 0 -> 7603 bytes .../command/__pycache__/setopt.cpython-38.pyc | Bin 0 -> 4551 bytes .../command/__pycache__/test.cpython-38.pyc | Bin 0 -> 8356 bytes .../command/__pycache__/upload.cpython-38.pyc | Bin 0 -> 838 bytes .../__pycache__/upload_docs.cpython-38.pyc | Bin 0 -> 6145 bytes .../site-packages/setuptools/command/alias.py | 78 + .../setuptools/command/bdist_egg.py | 456 + .../setuptools/command/bdist_rpm.py | 31 + .../setuptools/command/build_clib.py | 101 + .../setuptools/command/build_ext.py | 322 + .../setuptools/command/build_py.py | 270 + .../setuptools/command/develop.py | 216 + .../setuptools/command/dist_info.py | 36 + .../setuptools/command/easy_install.py | 2290 +++++ .../setuptools/command/egg_info.py | 727 ++ .../setuptools/command/install.py | 125 + .../setuptools/command/install_egg_info.py | 62 + .../setuptools/command/install_lib.py | 122 + .../setuptools/command/install_scripts.py | 69 + .../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 | 235 + .../setuptools/command/setopt.py | 148 + .../site-packages/setuptools/command/test.py | 274 + .../setuptools/command/upload.py | 17 + .../setuptools/command/upload_docs.py | 202 + .../site-packages/setuptools/config.py | 710 ++ .../site-packages/setuptools/dep_util.py | 25 + .../site-packages/setuptools/depends.py | 175 + .../site-packages/setuptools/dist.py | 1057 +++ .../site-packages/setuptools/errors.py | 16 + .../site-packages/setuptools/extension.py | 55 + .../setuptools/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2921 bytes .../site-packages/setuptools/glob.py | 167 + .../site-packages/setuptools/gui-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/gui-64.exe | Bin 0 -> 75264 bytes .../site-packages/setuptools/gui.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/installer.py | 97 + .../site-packages/setuptools/launch.py | 36 + .../site-packages/setuptools/lib2to3_ex.py | 68 + .../site-packages/setuptools/monkey.py | 177 + .../site-packages/setuptools/msvc.py | 1826 ++++ .../site-packages/setuptools/namespaces.py | 107 + .../site-packages/setuptools/package_index.py | 1145 +++ .../site-packages/setuptools/py34compat.py | 13 + .../site-packages/setuptools/sandbox.py | 496 + .../setuptools/script (dev).tmpl | 6 + .../site-packages/setuptools/script.tmpl | 3 + .../site-packages/setuptools/ssl_support.py | 266 + .../site-packages/setuptools/unicode_utils.py | 42 + .../site-packages/setuptools/version.py | 6 + .../site-packages/setuptools/wheel.py | 213 + .../setuptools/windows_support.py | 29 + .../site-packages/werkzeug/__init__.py | 6 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 372 bytes .../__pycache__/_internal.cpython-38.pyc | Bin 0 -> 18556 bytes .../__pycache__/_reloader.cpython-38.pyc | Bin 0 -> 12029 bytes .../__pycache__/datastructures.cpython-38.pyc | Bin 0 -> 106535 bytes .../__pycache__/exceptions.cpython-38.pyc | Bin 0 -> 30229 bytes .../__pycache__/filesystem.cpython-38.pyc | Bin 0 -> 2105 bytes .../__pycache__/formparser.cpython-38.pyc | Bin 0 -> 14033 bytes .../werkzeug/__pycache__/http.cpython-38.pyc | Bin 0 -> 38226 bytes .../werkzeug/__pycache__/local.cpython-38.pyc | Bin 0 -> 22604 bytes .../__pycache__/routing.cpython-38.pyc | Bin 0 -> 73396 bytes .../__pycache__/security.cpython-38.pyc | Bin 0 -> 8215 bytes .../__pycache__/serving.cpython-38.pyc | Bin 0 -> 30790 bytes .../werkzeug/__pycache__/test.cpython-38.pyc | Bin 0 -> 39070 bytes .../__pycache__/testapp.cpython-38.pyc | Bin 0 -> 9642 bytes .../werkzeug/__pycache__/urls.cpython-38.pyc | Bin 0 -> 36730 bytes .../__pycache__/user_agent.cpython-38.pyc | Bin 0 -> 1853 bytes .../__pycache__/useragents.cpython-38.pyc | Bin 0 -> 6891 bytes .../werkzeug/__pycache__/utils.cpython-38.pyc | Bin 0 -> 33094 bytes .../werkzeug/__pycache__/wsgi.cpython-38.pyc | Bin 0 -> 30331 bytes .../site-packages/werkzeug/_internal.py | 626 ++ .../site-packages/werkzeug/_reloader.py | 430 + .../site-packages/werkzeug/datastructures.py | 3059 ++++++ .../site-packages/werkzeug/datastructures.pyi | 912 ++ .../site-packages/werkzeug/debug/__init__.py | 502 + .../debug/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 13029 bytes .../debug/__pycache__/console.cpython-38.pyc | Bin 0 -> 7941 bytes .../debug/__pycache__/repr.cpython-38.pyc | Bin 0 -> 8874 bytes .../debug/__pycache__/tbtools.cpython-38.pyc | Bin 0 -> 18088 bytes .../site-packages/werkzeug/debug/console.py | 211 + .../site-packages/werkzeug/debug/repr.py | 284 + .../werkzeug/debug/shared/FONT_LICENSE | 96 + .../werkzeug/debug/shared/ICON_LICENSE.md | 6 + .../werkzeug/debug/shared/console.png | Bin 0 -> 507 bytes .../werkzeug/debug/shared/debugger.js | 359 + .../werkzeug/debug/shared/less.png | Bin 0 -> 191 bytes .../werkzeug/debug/shared/more.png | Bin 0 -> 200 bytes .../werkzeug/debug/shared/source.png | Bin 0 -> 818 bytes .../werkzeug/debug/shared/style.css | 163 + .../werkzeug/debug/shared/ubuntu.ttf | Bin 0 -> 70220 bytes .../site-packages/werkzeug/debug/tbtools.py | 600 ++ .../site-packages/werkzeug/exceptions.py | 943 ++ .../site-packages/werkzeug/filesystem.py | 55 + .../site-packages/werkzeug/formparser.py | 495 + .../python3.8/site-packages/werkzeug/http.py | 1388 +++ .../python3.8/site-packages/werkzeug/local.py | 677 ++ .../werkzeug/middleware/__init__.py | 22 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 717 bytes .../__pycache__/dispatcher.cpython-38.pyc | Bin 0 -> 2778 bytes .../__pycache__/http_proxy.cpython-38.pyc | Bin 0 -> 6837 bytes .../__pycache__/lint.cpython-38.pyc | Bin 0 -> 12739 bytes .../__pycache__/profiler.cpython-38.pyc | Bin 0 -> 4975 bytes .../__pycache__/proxy_fix.cpython-38.pyc | Bin 0 -> 6204 bytes .../__pycache__/shared_data.cpython-38.pyc | Bin 0 -> 9883 bytes .../werkzeug/middleware/dispatcher.py | 78 + .../werkzeug/middleware/http_proxy.py | 230 + .../site-packages/werkzeug/middleware/lint.py | 420 + .../werkzeug/middleware/profiler.py | 139 + .../werkzeug/middleware/proxy_fix.py | 187 + .../werkzeug/middleware/shared_data.py | 320 + .../python3.8/site-packages/werkzeug/py.typed | 0 .../site-packages/werkzeug/routing.py | 2341 +++++ .../site-packages/werkzeug/sansio/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 205 bytes .../__pycache__/multipart.cpython-38.pyc | Bin 0 -> 6560 bytes .../sansio/__pycache__/request.cpython-38.pyc | Bin 0 -> 17215 bytes .../__pycache__/response.cpython-38.pyc | Bin 0 -> 22664 bytes .../sansio/__pycache__/utils.cpython-38.pyc | Bin 0 -> 3913 bytes .../werkzeug/sansio/multipart.py | 260 + .../site-packages/werkzeug/sansio/request.py | 548 ++ .../site-packages/werkzeug/sansio/response.py | 704 ++ .../site-packages/werkzeug/sansio/utils.py | 142 + .../site-packages/werkzeug/security.py | 247 + .../site-packages/werkzeug/serving.py | 1081 +++ .../python3.8/site-packages/werkzeug/test.py | 1326 +++ .../site-packages/werkzeug/testapp.py | 240 + .../python3.8/site-packages/werkzeug/urls.py | 1211 +++ .../site-packages/werkzeug/user_agent.py | 47 + .../site-packages/werkzeug/useragents.py | 215 + .../python3.8/site-packages/werkzeug/utils.py | 1099 +++ .../werkzeug/wrappers/__init__.py | 16 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 928 bytes .../__pycache__/accept.cpython-38.pyc | Bin 0 -> 830 bytes .../wrappers/__pycache__/auth.cpython-38.pyc | Bin 0 -> 1304 bytes .../__pycache__/base_request.cpython-38.pyc | Bin 0 -> 1783 bytes .../__pycache__/base_response.cpython-38.pyc | Bin 0 -> 1794 bytes .../common_descriptors.cpython-38.pyc | Bin 0 -> 1381 bytes .../wrappers/__pycache__/cors.cpython-38.pyc | Bin 0 -> 1289 bytes .../wrappers/__pycache__/etag.cpython-38.pyc | Bin 0 -> 1289 bytes .../wrappers/__pycache__/json.cpython-38.pyc | Bin 0 -> 822 bytes .../__pycache__/request.cpython-38.pyc | Bin 0 -> 21291 bytes .../__pycache__/response.cpython-38.pyc | Bin 0 -> 29735 bytes .../__pycache__/user_agent.cpython-38.pyc | Bin 0 -> 843 bytes .../site-packages/werkzeug/wrappers/accept.py | 14 + .../site-packages/werkzeug/wrappers/auth.py | 26 + .../werkzeug/wrappers/base_request.py | 36 + .../werkzeug/wrappers/base_response.py | 36 + .../werkzeug/wrappers/common_descriptors.py | 26 + .../site-packages/werkzeug/wrappers/cors.py | 26 + .../site-packages/werkzeug/wrappers/etag.py | 26 + .../site-packages/werkzeug/wrappers/json.py | 13 + .../werkzeug/wrappers/request.py | 660 ++ .../werkzeug/wrappers/response.py | 890 ++ .../werkzeug/wrappers/user_agent.py | 14 + .../python3.8/site-packages/werkzeug/wsgi.py | 982 ++ IPreoject-CLientSide/venv/lib64 | 1 + IPreoject-CLientSide/venv/pyvenv.cfg | 3 + 1432 files changed, 269361 insertions(+) create mode 100644 IPreoject-CLientSide/__pycache__/main.cpython-38.pyc create mode 100644 IPreoject-CLientSide/__pycache__/main.cpython-39.pyc create mode 100644 IPreoject-CLientSide/main.py create mode 100644 IPreoject-CLientSide/static/css/desing.css create mode 100644 IPreoject-CLientSide/static/css/new-g.css create mode 100644 IPreoject-CLientSide/static/images/Card4.jpg create mode 100644 IPreoject-CLientSide/static/images/card1.png create mode 100644 IPreoject-CLientSide/static/images/card11.png create mode 100644 IPreoject-CLientSide/static/images/card2.png create mode 100644 IPreoject-CLientSide/static/images/card22.png create mode 100644 IPreoject-CLientSide/static/images/card3.png create mode 100644 IPreoject-CLientSide/static/images/card4.png create mode 100644 IPreoject-CLientSide/static/images/geometry2.png create mode 100644 IPreoject-CLientSide/static/images/icon.png create mode 100644 IPreoject-CLientSide/static/images/iconG.png create mode 100644 IPreoject-CLientSide/static/images/image.jpg create mode 100644 IPreoject-CLientSide/static/images/test.jpg create mode 100644 IPreoject-CLientSide/static/js/main.js create mode 100644 IPreoject-CLientSide/static/js/new-g.js create mode 100644 IPreoject-CLientSide/static/js/particles.js create mode 100644 IPreoject-CLientSide/static/js/rules.js create mode 100644 IPreoject-CLientSide/static/js/test.js create mode 100644 IPreoject-CLientSide/templates/layout.html create mode 100644 IPreoject-CLientSide/templates/main.html create mode 100644 IPreoject-CLientSide/templates/menu.html create mode 100644 IPreoject-CLientSide/templates/new-game.html create mode 100644 IPreoject-CLientSide/templates/rules.html create mode 100644 IPreoject-CLientSide/templates/test.html create mode 100644 IPreoject-CLientSide/utils/cardToObjects.py create mode 100644 IPreoject-CLientSide/utils/ports.py create mode 100644 IPreoject-CLientSide/utils/test.py create mode 100644 IPreoject-CLientSide/venv/bin/Activate.ps1 create mode 100644 IPreoject-CLientSide/venv/bin/activate create mode 100644 IPreoject-CLientSide/venv/bin/activate.csh create mode 100644 IPreoject-CLientSide/venv/bin/activate.fish create mode 100755 IPreoject-CLientSide/venv/bin/flask create mode 100755 IPreoject-CLientSide/venv/bin/pip create mode 100755 IPreoject-CLientSide/venv/bin/pip3 create mode 100755 IPreoject-CLientSide/venv/bin/pip3.8 create mode 120000 IPreoject-CLientSide/venv/bin/python create mode 120000 IPreoject-CLientSide/venv/bin/python3 create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/REQUESTED create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/entry_points.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/entry_points.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__pycache__/override.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/override.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_termui_impl.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_textwrap.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_unicodefun.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_winconsole.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/core.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/decorators.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/formatting.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/globals.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/parser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/shell_completion.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/termui.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/testing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/types.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_termui_impl.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_textwrap.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_unicodefun.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_winconsole.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/core.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/decorators.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/formatting.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/globals.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/parser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/shell_completion.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/termui.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/testing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/types.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/distutils-precedence.pth create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__main__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__main__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/app.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/blueprints.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/cli.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/config.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/ctx.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/debughelpers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/globals.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/helpers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/logging.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/scaffold.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/sessions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/signals.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/templating.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/testing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/typing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/views.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/wrappers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/app.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/blueprints.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/cli.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/config.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/ctx.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/debughelpers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/globals.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/helpers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/json/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/json/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/json/__pycache__/tag.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/json/tag.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/logging.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/scaffold.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/sessions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/signals.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/templating.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/testing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/typing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/views.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/wrappers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/LICENSE.rst create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous-2.0.1.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/_json.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/encoding.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/exc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/jws.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/serializer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/signer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/timed.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/__pycache__/url_safe.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/_json.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/encoding.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/exc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/jws.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/serializer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/signer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/timed.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/itsdangerous/url_safe.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/_identifier.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/async_utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/bccache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/compiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/constants.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/debug.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/defaults.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/environment.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/ext.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/filters.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/idtracking.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/lexer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/loaders.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/meta.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/nativetypes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/nodes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/optimizer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/parser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/runtime.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/sandbox.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/tests.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/__pycache__/visitor.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/_identifier.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/async_utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/bccache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/compiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/constants.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/debug.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/defaults.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/environment.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/ext.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/filters.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/idtracking.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/lexer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/loaders.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/meta.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/nativetypes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/nodes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/optimizer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/parser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/runtime.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/sandbox.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/tests.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/jinja2/visitor.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/__pycache__/_native.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/_native.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/_speedups.c create mode 100755 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/_speedups.cpython-38-x86_64-linux-gnu.so create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/_speedups.pyi create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/markupsafe/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/LICENSE.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/REQUESTED create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/entry_points.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip-21.1.1.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/__main__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/__pycache__/__main__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/build_env.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/configuration.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/main.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/pyproject.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/build_env.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/main.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/parser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/base_command.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/command_context.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/main.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/parser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/spinners.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/cli/status_codes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/check.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/completion.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/debug.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/download.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/hash.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/help.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/install.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/list.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/search.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/show.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/check.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/completion.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/configuration.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/debug.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/download.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/freeze.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/hash.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/help.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/list.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/search.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/show.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/uninstall.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/commands/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/configuration.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/installed.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/sdist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/distributions/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/__pycache__/collector.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/__pycache__/sources.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/collector.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/package_finder.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/index/sources.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/_distutils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/locations/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/main.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/candidate.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/format_control.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/index.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/link.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/scheme.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/target_python.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/candidate.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/direct_url.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/format_control.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/index.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/link.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/scheme.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/search_scope.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/target_python.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/models/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/auth.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/download.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/session.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/auth.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/download.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/session.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/__pycache__/check.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/check.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/freeze.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/legacy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/operations/prepare.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/pyproject.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/constructors.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/req_file.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/req_install.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/req_set.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/constructors.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/req_file.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/req_install.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/req_set.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/req_tracker.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/self_outdated_check.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/logging.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/misc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/models.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/urls.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/appdirs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/datetime.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/deprecation.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/distutils_args.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/encoding.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/filesystem.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/filetypes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/glibc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/hashes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/inject_securetransport.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/logging.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/misc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/models.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/packaging.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/parallel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/pkg_resources.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/subprocess.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/unpacking.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/urls.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/utils/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/git.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/git.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/subversion.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_internal/wheel_builder.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__pycache__/appdirs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__pycache__/distro.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/__pycache__/six.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/appdirs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/certifi/core.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/enums.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/chardet/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/win32.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/misc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/shutil.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/sysconfig.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/_backport/tarfile.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/database.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/index.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/locators.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/markers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/resources.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/t32.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/t64.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/w32.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/w64.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/distro.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_ihatexml.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_inputstream.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_tokenizer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/_base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/py.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/_utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/constants.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/lint.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/optionaltags.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/sanitizer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/filters/whitespace.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/html5parser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/serializer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treeadapters/sax.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/dom.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/etree.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/base.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/dom.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/etree.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/core.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/codec.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/core.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/intranges.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/package_data.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/_version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/_compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/_typing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/_compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/_typing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/markers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/tags.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/packaging/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/build.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/check.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/colorlog.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/dirtools.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/envbuild.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/meta.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pep517/wrappers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pkg_resources/py31compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/bar.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/counter.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/progress/spinner.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/pyparsing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/api.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/help.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/models.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/__version__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/adapters.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/api.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/auth.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/certs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/cookies.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/help.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/hooks.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/models.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/packages.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/sessions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/structures.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/requests/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/six.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/after.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/before.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__pycache__/decoder.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__pycache__/encoder.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__pycache__/ordered.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/__pycache__/tz.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/decoder.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/encoder.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/ordered.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/toml/tz.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/request.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/response.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/vendor.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pip/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/appdirs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__about__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/_compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/_structures.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/_typing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/markers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/specifiers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/tags.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/extern/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/INSTALLER create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/LICENSE create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/METADATA create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/RECORD create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/REQUESTED create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/WHEEL create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/dependency_links.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/entry_points.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools-56.0.0.dist-info/top_level.txt create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/_imp.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/archive_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/build_meta.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/config.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/dep_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/depends.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/dist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/errors.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/extension.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/glob.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/installer.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/launch.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/monkey.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/msvc.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/namespaces.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/package_index.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/py34compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/sandbox.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/ssl_support.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/unicode_utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/wheel.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/__pycache__/windows_support.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_deprecation_warning.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/config.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/core.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/debug.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/dist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/errors.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/extension.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/log.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/util.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/_msvccompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/archive_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/bcppcompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/cmd.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/bdist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/bdist_dumb.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/bdist_msi.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/bdist_rpm.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/bdist_wininst.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/build.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/build_clib.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/build_py.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/build_scripts.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/check.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/clean.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/config.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install_data.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install_egg_info.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install_headers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install_lib.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/install_scripts.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/py37compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/register.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/sdist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/command/upload.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/config.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/core.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/cygwinccompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/debug.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/dep_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/dir_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/dist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/errors.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/extension.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/fancy_getopt.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/file_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/filelist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/log.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/msvc9compiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/msvccompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/py35compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/py38compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/spawn.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/sysconfig.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/text_file.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_distutils/versionpredicate.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_imp.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/ordered_set.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__about__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/_compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/_structures.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/_typing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/markers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/requirements.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/specifiers.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/tags.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/packaging/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/_vendor/pyparsing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/archive_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/build_meta.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/cli-32.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/cli-64.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/cli.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/alias.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/build_clib.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/build_ext.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/build_py.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/develop.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/dist_info.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/easy_install.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/egg_info.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/install.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/install_lib.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/install_scripts.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/py36compat.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/register.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/rotate.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/saveopts.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/sdist.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/setopt.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/test.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/upload.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/__pycache__/upload_docs.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/alias.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/bdist_egg.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/bdist_rpm.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/build_clib.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/build_ext.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/build_py.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/develop.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/dist_info.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/easy_install.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/egg_info.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/install.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/install_egg_info.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/install_lib.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/install_scripts.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/launcher manifest.xml create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/py36compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/register.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/rotate.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/saveopts.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/sdist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/setopt.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/test.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/upload.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/command/upload_docs.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/config.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/dep_util.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/depends.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/dist.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/errors.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/extension.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/extern/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/extern/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/glob.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/gui-32.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/gui-64.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/gui.exe create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/installer.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/launch.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/lib2to3_ex.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/monkey.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/msvc.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/namespaces.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/package_index.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/py34compat.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/sandbox.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/script (dev).tmpl create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/script.tmpl create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/ssl_support.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/unicode_utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/version.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/wheel.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/setuptools/windows_support.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/_internal.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/_reloader.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/datastructures.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/exceptions.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/filesystem.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/formparser.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/http.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/local.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/routing.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/security.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/serving.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/test.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/testapp.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/urls.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/user_agent.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/useragents.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/__pycache__/wsgi.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/_internal.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/_reloader.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/datastructures.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/datastructures.pyi create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/__pycache__/console.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/__pycache__/repr.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/__pycache__/tbtools.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/console.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/repr.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/FONT_LICENSE create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/ICON_LICENSE.md create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/console.png create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/debugger.js create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/less.png create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/more.png create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/source.png create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/style.css create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/shared/ubuntu.ttf create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/debug/tbtools.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/exceptions.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/filesystem.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/formparser.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/http.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/local.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/dispatcher.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/http_proxy.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/lint.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/profiler.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/proxy_fix.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/dispatcher.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/http_proxy.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/lint.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/profiler.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/proxy_fix.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/middleware/shared_data.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/py.typed create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/routing.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__pycache__/multipart.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__pycache__/request.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__pycache__/response.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/__pycache__/utils.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/multipart.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/request.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/response.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/sansio/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/security.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/serving.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/test.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/testapp.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/urls.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/user_agent.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/useragents.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/utils.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__init__.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/__init__.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/accept.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/auth.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/base_request.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/base_response.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/common_descriptors.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/cors.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/etag.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/json.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/request.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/response.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/__pycache__/user_agent.cpython-38.pyc create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/accept.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/auth.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/base_request.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/base_response.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/common_descriptors.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/cors.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/etag.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/json.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/request.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/response.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wrappers/user_agent.py create mode 100644 IPreoject-CLientSide/venv/lib/python3.8/site-packages/werkzeug/wsgi.py create mode 120000 IPreoject-CLientSide/venv/lib64 create mode 100644 IPreoject-CLientSide/venv/pyvenv.cfg diff --git a/IPreoject-CLientSide/__pycache__/main.cpython-38.pyc b/IPreoject-CLientSide/__pycache__/main.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9dfe77e7d608e228f3b763534f504698afe53fc GIT binary patch literal 1827 zcmah}TW=Fb6yDjJ*K0e@J#C;QfP`eEcnMW0pceI_Qbj6mL_n%mLaW7RVz1eYJ3Cu~ z)jrX;DpG$!=v)5MN`2~6|3aR6&NvC1g2k+MF6W#%-?`4yR?F3J{PoA*VFP#n(4jg^ zJbZ!;Own5~r|5Hv-mcu3hXuuHE6!qtvjoeE zGp{%+70xQGDb50XG`;>X z%W}Ro2oqkKyFczdDUI*Hd(vTLE#Y#QL4LslEE@i8(_bY7y7Rn7>5)vvp1Q0 zl>HK=gUyGTco_;n&v;s#dgizHr_>;! zD%NrHcWkPkmQ5L1| zhkYlIVgawr4rQHGDVUoTm=%IqA4)mC?|IwzZg;ou-0gn)dH2q}`=8yyG1-{S^TwHw z6UPh3k;JCD5E!z~#$TnniyNtp7%~L8;|PK%odK5tHG64|MU=|YoF3vVguFB%lwoND?`QZt z7gO7tq1;(v zU&Vdt1OYt`K|mp}fIlw=owd^1r)N$Oobp0Y0||>J6$Mj93HP1T7cLiFLlkKxc5fTU`69^x o8}b3AKEH+2W#-VQfgc5Z$%o#CDpbUqGP}s<`D)a;Q`!ges&$5eGu0mP-`LGMP>4)E{BjrfmeL za_yNb9Q#i=@CWdf6Mvy6X4bU0EftPD-ksT*H}CDlZ!}znPxkqT&uWbQq)qv$;N~g5 z>N^@>z(W@C9*>Nk5t%)clg|h%y^7$%I_ABqsD7z|`ISQjtWOL*wy2J4P=y-UBLkch z16-)Gokj= zWYT}REt9brr2Rn{h&Wxn*z0POqudIxxx*?U5;QZUgLXR88SEvA600LW5_x6&_0Dc? zzIeXd=6Nj=>0ScrQtKR(=t_0#v$z2Mk=i#tFfdO@mP&Wpe3iTp;?c@hA`g5CNJ+%m zA4mL#7Cr85LJH@jI<|e1O#;!Wx%*q*K(V z?vZkU?XXkcE!Dq*PP)11--bAuz;lyu-$MiY8q!{0pg9nxT#7 zG`;&J)HyhCe@W)+qmb;B6cP;$VdKuR( GoBsy;>i*mS literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/main.py b/IPreoject-CLientSide/main.py new file mode 100644 index 0000000..b0c7036 --- /dev/null +++ b/IPreoject-CLientSide/main.py @@ -0,0 +1,117 @@ +from flask import Flask, render_template, jsonify, Response, request +import time +import requests +import json + +app = Flask(__name__) + +@app.route('/') +def index(): + return render_template('main.html') + +@app.route("/choose-game", methods=['POST', 'GET']) +def choose_game(): + forward_message = "Moving Forward" + # Get game's modes .... + # r = requests.get('//API-TO-GAME-SERVER') + # json_response = json.dumps(r.json()) + # rspone = Response(json_response, content_type='application/json; charset=utf-8') + # response.headers.add('content-length', len(json_response)) + # response.status_code = 200 + # TO-DO : somthings with res ... + + + return render_template('menu.html', forward_message=forward_message) + +@app.route("/add-images", methods=['POST']) +def add_images(): + return None + # TO-DO + +@app.route("/rules", methods=['POST', 'GET']) +def rules(): + return render_template('rules.html') + + + + +@app.route("/new-game", methods=['POST', 'GET']) +def new_game(): + return render_template('new-game.html') + +@app.route("/join-game", methods=['POST', 'GET']) +def join_game(): + return None + # TO-DO + +API_URL1 = "http://192.168.37.69:50000" + +#GET PORTS :------------------------------------------------------ + +API_URL2 = "http://192.168.37.69:50000/port" + +# @app.route("/test", methods=['GET']) +# def test(): +# res = requests.get(API_URL2) +# port = res.json() +# return 'Our port is :' + str(port.get('numport')) # our port +# # return port + + +@app.route("/apitest", methods=['POST', 'GET']) +def apitest(): +# reqParms = request +# return render_template('test.html', param=reqParms) + x = request.get_json(silent=True) + print(json.loads(request.data.decode("utf-8"))) + # log the user out + return render_template('test.html', X = x) + +# port = 0 + +# def getPort(): +# res = requests.get(API_URL2) +# port = res.json() +# return port.get('numport') # our port + +# port = getPort() + +# PORT = requests.get(API_URL2) + + + + + +# @app.route("/some-url", methods=['GET']) +# def get_data(): +# res = requests.get("http://my-api.com") +# return res.content + + +#TEST Here ... + +@app.route("/getPixels", methods=['GET']) +def getPixels(): + return render_template('test.html') + +# TODO : Req to Discovery service > CardManager +# Get All cards > store +# Send cards to the view +# Manipulate each card +# Implement the logic <> IA ): + + + +#TO-DO : + # WAIT CARDS + # SEND UR RESPONSE + # SCORE ++ OR -- + # IF SCORE + # Get the timer + # Show it + # + + + +if __name__ == "__main__": + app.run(debug = True) diff --git a/IPreoject-CLientSide/static/css/desing.css b/IPreoject-CLientSide/static/css/desing.css new file mode 100644 index 0000000..95fbaec --- /dev/null +++ b/IPreoject-CLientSide/static/css/desing.css @@ -0,0 +1,766 @@ +body, +html { + height: 100%; +} +body { + margin: 0; + padding: 0; + font-size: 18px; + font-family: "VT323", monospace; + line-height: 1.42; + background-repeat: no-repeat; + background-attachment: fixed; +} +canvas { + display: block; + vertical-align: bottom; +} +a { + color: inherit; + text-decoration: none; +} +a:hover { + color: inherit; + text-decoration: none; +} +.wrapper { + width: 100%; + min-height: 100vh; + position: relative; + background-color: #1c2a3a; + display: flex; + flex-direction: column; + justify-content: center; +} +#particles-js { + width: 100%; + height: 100%; + /*background-image: url("");*/ + background-size: cover; + background-repeat: no-repeat; + position: absolute; +} +.logo { + position: absolute; + top: 10px; + right: 20px; + color: #f0eee4; + font-size: 48px; +} +#high-score { + position: absolute; + top: 18px; + left: 30px; + color: #5e99f3; + font-size: 40px; +} +#credits { + position: absolute; + bottom: 10px; + left: 30px; + color: #5e99f3; + font-size: 15px; +} +#credits > div { + float: left; +} +.content { + width: 60%; + margin: 0 auto; + display: flex; + justify-content: center; + z-index: 1; + flex-direction: column; + margin-top: 60px; + align-items: center; + margin-bottom: 20px; +} +.content__container { + padding: 40px; + border-radius: 10px; + max-width: 70%; + background-color: #eeece3; + text-align: center; + justify-content: center; +} +.index__container { + width: 70%; +} +#index__slogan { + text-align: center; +} +.content__btn { + padding: 15px 25px; + margin-top: 20px; + background-color: #5f7ed4; + text-transform: uppercase; + box-shadow: 0px 6px 0px 0px #5f7ed4, 0px 5px 12px 0px rgba(0, 0, 0, 0.6), + inset 0px 0px 10px -5px #1c2a3a; + transition: all 100ms linear; + cursor: pointer; + border-radius: 5px; + border: none; + height: 60px; + color: #fff; +} +.content__btn:hover { + top: 3px; + left: -3px; + box-shadow: 0px 2px 0px 0px #7690d6, 0px 5px 5px 0px rgba(0, 0, 0, 0.6), + inset 0px 0px 10px -5px #1c2a3a; +} +.content__rules { + position: absolute; + top: 80px; + left: 22px; +} +#rules__btn { + border: none; + background-color: transparent; + outline: none; +} + +.extra-info { + display: none; + color: #fff; + line-height: 30px; + font-size: 18px; + position: absolute; + top: 50%; + left: 60px; + transform: translate(0, -50%); +} + +.info:hover .extra-info { + display: block; +} +.info:hover .icon-info-sign { + border: 2px solid transparent; +} + +.info { + font-size: 20px; + padding-left: 5px; + width: 20px; + border-radius: 15px; +} +.icon-info-sign { + color: #5e99f3; + opacity: 0.9; + border-radius: 50%; + border: 2px solid #4181d4; + padding: 10px; + width: 45px; + height: 45px; +} +.info:hover { + background-color: #4dadee; + padding: 0 0 0 5px; + width: 200px; + text-align: left !important; +} + + +.icon-info-sign:hover{ + color: #fff; + } + +.result { + width: 80%; + background-color: rgba(255, 255, 255, 0.2); +} +#rules__text { + background-color: rgba(255, 255, 255, 0.2); + color: white; +} +.explanations { + font-family: "Roboto", sans-serif; + text-align: left; +} +.explanations__opaque { + color: white; + font-family: "VT323", monospace; + font-size: 24px; +} +.explanations__img { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); +} + +/* preloader */ +.preload { + animation: rotate 3s linear infinite alternate; + position: fixed; + display: none; + left: 50%; + transform: translate(-50%, -50%); +} +.brain { + width: 200px; +} +.dots { + display: inline-block; + animation: opacity 1.5s linear infinite; + opacity: 0; +} +.preload-finish { + opacity: 0; + pointer-events: none; +} +@keyframes rotate { + to { + transform: translate(-50%, 50%); + } +} + +@keyframes opacity { + 50% { + opacity: 1; + } +} +.preload__text { + color: #fff; + font-size: 28px; +} +/* game styles */ +.controls { + display: flex; + justify-content: center; + align-items: center; +} +@media screen and (max-width: 1200px) { + .controls { + font-size: 16px; + } +} +.controls-btn { + padding: 15px 25px; + margin-top: 20px; + background-color: #abbec3; + text-transform: uppercase; + box-shadow: 0px 6px 0px 0px #abbec3, 0px 5px 12px 0px rgba(0, 0, 0, 0.6), + inset 0px 0px 10px -5px #1c2a3a; + transition: all 100ms linear; + cursor: pointer; + border-radius: 50%; + border: none; + height: 80px; + width: 110px; +} +.controls-btn:hover { + top: 3px; + left: -3px; + box-shadow: 0px 2px 0px 0px #9d6966, 0px 5px 5px 0px rgba(0, 0, 0, 0.6), + inset 0px 0px 10px -5px #1c2a3a; +} +.make-move-form { + display: flex; + align-items: center; +} +/* coins */ +.board-list { + list-style-type: none; + padding: 0; +} + +.board-list li { + display: inline-block; +} + +input[type="checkbox"][id^="coin"] { + display: none; +} + +.board-list__item label { + display: block; + position: relative; + margin: 3px; + cursor: pointer; +} +.form-wrapper { + width: 100%; + display: flex; + justify-content: center; +} +@media screen and (min-width: 1200px) { + .board-list__item label { + margin: 10px; + } +} + +.board-list__item label:before { + background-color: white; + color: white; + content: " "; + display: block; + border-radius: 50%; + border: 1px solid grey; + position: absolute; + top: -5px; + left: -5px; + width: 25px; + height: 25px; + text-align: center; + line-height: 28px; + transition-duration: 0.4s; + transform: scale(0); + z-index: 1; +} + +.board-list__img { + width: 60px; + transition-duration: 0.2s; + transform-origin: 50% 50%; +} + +.board-list__placeholder { + width: 80px; +} + +:checked + label:before { + content: "✓"; + background-color: grey; + transform: scale(1); +} + +:checked + label .board-list__img { + transform: scale(0.9); + z-index: -1; + opacity: 0.6; +} +.row__placeholder { + width: 60px; + height: 60px; + border-radius: 50%; + border: 1px dashed #fff; + background-color: #fff; + opacity: 0.2; +} +.hidden { + visibility: hidden; +} + +/* alert */ +.screen-alert { + background-color: transparent; + border-radius: 2px; + border: 1rem solid; + border-bottom-color: #3f8df3; + border-left-color: #3f8df3; + border-right-color: #3f8df3; + border-top-color: #3f8df3; + pointer-events: none; +} +.screen-alert #message { + background-color: #3f8df3; + text-shadow: 0rem 0.2rem 1rem #0c7b46; + font-family: "VT323", monospace; + font-size: 20px; + padding: 10px; + color: rgb(255, 255, 255); +} +.screen-alert #message { + background-color: #3f8df3; + text-shadow: 0rem 0.2rem 1rem #0c7b46; +} +.screen-alert__win { + color: hotpink; + font-size: 50px; + font-weight: bold; +} +.screen-alert__lose { + color: red; + font-size: 50px; + font-weight: bold; +} +/* animate coins */ +.bounce-in-top { + -webkit-animation: bounce-in-top 1.1s both; + animation: bounce-in-top 1.1s both; +} +.bounce-in-top:nth-child(2) { + animation-delay: 0.25s; +} +.bounce-in-top:nth-child(3) { + animation-delay: 0.5s; +} +.bounce-in-top:nth-child(4) { + animation-delay: 0.75s; +} +.bounce-in-top:nth-child(5) { + animation-delay: 1.25s; +} +.bounce-in-top:nth-child(6) { + animation-delay: 1.5s; +} +.bounce-in-top:nth-child(7) { + animation-delay: 1.75s; +} +.bounce-in-top:nth-child(8) { + animation-delay: 2s; +} + +/* range styles */ +.value { + text-align: center; + font-weight: bold; + font-size: 30px; + color: #1c2a3a; + text-shadow: white 2px 2px 2px; +} +.level { + text-align: center; + font-weight: bold; + font-size: 30px; + text-shadow: white 2px 2px 2px; + margin-top: 20px; +} +input[type="range"] { + display: block; + -webkit-appearance: none; + background-color: #bdc3c7; + width: 300px; + height: 5px; + border-radius: 5px; + margin: 0 auto; + outline: none; + padding: 4px 0; +} +.level2 { + color: darkgreen; +} +.level3 { + color: orangered; +} +.level4 { + color: red; +} +.level5 { + color: darkred; +} +.fade-out { + -webkit-animation: fade-out 1s ease-out both; + animation: fade-out 1s ease-out both; +} +/** + * ---------------------------------------- + * animation bounce-in-top + * ---------------------------------------- + */ +@-webkit-keyframes bounce-in-top { + 0% { + -webkit-transform: translateY(-500px); + transform: translateY(-500px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 38% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + opacity: 1; + } + 55% { + -webkit-transform: translateY(-65px); + transform: translateY(-65px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 72% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 81% { + -webkit-transform: translateY(-28px); + transform: translateY(-28px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 90% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 95% { + -webkit-transform: translateY(-8px); + transform: translateY(-8px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } +} +@keyframes bounce-in-top { + 0% { + -webkit-transform: translateY(-500px); + transform: translateY(-500px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 38% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + opacity: 1; + } + 55% { + -webkit-transform: translateY(-65px); + transform: translateY(-65px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 72% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 81% { + -webkit-transform: translateY(-28px); + transform: translateY(-28px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 90% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 95% { + -webkit-transform: translateY(-8px); + transform: translateY(-8px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } +} + +.ai-ops { + width: 80%; +} + +.form-control { + width: 30%; +} + +.outcome-alert { + width: 30%; +} + +#board { + min-height: 250px; +} + +#thinking { + height: 200px; +} + +#submit-btn { + display: inline-block; +} + +#set-amount { + display: inline-block; +} + + +/* For the available modes ...*/ +/*----------------Added just for test --------------*/ +/*Pas important, juste pour positioner la liste déroulante en milieu de page */ +.bloc { + display: flex; + flex-direction: column; + align-items : center; + justify-content: center; + height: 100vh; +} + +.imgGame { + width: 350px; + height: 45px; + margin-bottom: 0; + +} + +/*Réinitilaisation de la liste déroulante*/ +select { + appearance: none; + outline: 0; + border: 0 !important; + background: #F9F9F9; + background-image: none; + box-shadow: none; + font-size: 1.2em; +} + +/*Ajout des couleurs de fond pour chaque option */ +select option[value="1"] { + background: #2E6DB4; + color: white; +} + +select option[value="2"] { + background: #107C11; + color: white; +} + +select option[value="3"] { + background: #E70009; + color: white; +} + +select option[value="4"] { + background: black; + color: white; +} + +/* Mise en forme de la div .select*/ +.select { + position: relative; + width: 350px; + height: 45px; + overflow: hidden; + border-radius: 5px; + border: 1px solid #CED4DA; +} + +/* Mise en forme de la balise select*/ +select { + width: 100%; + height: 100%; + margin: 0; + padding-left: 15px; + color: #555555; + cursor: pointer; +} + + +/* Mise en place de la flèche */ +.select::after { + content: '\276F'; + position: absolute; + top: 20%; + right: 0; + padding: 0 15px; + background: white; + pointer-events: none; + transform: rotate(90deg); + font-size: 1.5em; + background: #F9F9F9; +} + + +.select:hover::after { + color: #FA6141; +} + +/* ====================================== TEST =============================================*/ + +/* .text-box { */ + /* margin-left: 0vw; */ + /* margin-top: 60px; +} */ + +.btn1, .btn2 { + display: inline-block; +} + +/* .text-box2{ + margin-top: 0px; + margin-left: -9px; + border: red 1px solid; +} */ + + +.btn:link, +.btn:visited { + text-transform: uppercase; + text-decoration: none; + padding: 15px 40px; + display: inline-block; + border-radius: 100px; + transition: all .2s; + position: absolute; +} + +.btn:hover { + transform: translateY(-3px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); +} + +.btn:active { + transform: translateY(-1px); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} + +.btn-white { + background-color: #fff; + color: #777; +} + +.btn::after { + content: ""; + display: inline-block; + height: 100%; + width: 100%; + border-radius: 100px; + position: absolute; + top: 0; + left: 0; + z-index: -1; + transition: all .4s; +} + +.btn2 { + float: left; +} + +.btn1 { + float: right +} + +.btn-white::after { + background-color: #fff; +} + +.btn:hover::after { + transform: scaleX(1.4) scaleY(1.6); + opacity: 0; +} + +.btn-animated { + animation: moveInBottom 5s ease-out; + animation-fill-mode: backwards; +} + +@keyframes moveInBottom { + 0% { + opacity: 0; + transform: translateY(30px); + } + + 100% { + opacity: 1; + transform: translateY(0px); + } +} + + +/* ====================================== NEW GAME =============================================*/ + diff --git a/IPreoject-CLientSide/static/css/new-g.css b/IPreoject-CLientSide/static/css/new-g.css new file mode 100644 index 0000000..1babd09 --- /dev/null +++ b/IPreoject-CLientSide/static/css/new-g.css @@ -0,0 +1,143 @@ + + html { + box-sizing: border-box; + } + + *, + *::before, + *::after { + box-sizing: inherit; + } + + html, + body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + /* overflow: hidden; */ + } + + + + .container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + + h1 { + font-family: 'Open Sans', sans-serif; + font-weight: 300; + } + + /* + * Styles for the deck of cards + */ + + .deck1 { + width: 660px; + min-height: 320px; + background: linear-gradient(160deg, rgba(46, 61, 73, 0.5) 0%, rgba(224, 229, 233, 0.5) 100%); + padding: 32px; + border-radius: 10px; + box-shadow: 12px 15px 20px 0 rgba(46, 61, 73, 0.5); + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + margin: 0 0 2px; + } + + .deck2 { + width: 660px; + min-height: 320px; + background: linear-gradient(160deg, rgba(46, 61, 73, 0.5) 0%, rgba(224, 229, 233, 0.5) 100%); + padding: 32px; + border-radius: 10px; + box-shadow: 12px 15px 20px 0 rgba(46, 61, 73, 0.5); + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + margin: 10px 0 10px; + } + + + + + /* + * Styles for the Score Panel + */ + + .score-panel { + text-align: left; + width: 345px; + margin-bottom: 10px; + } + + .score-panel .stars { + margin: 0; + padding: 0; + display: inline-block; + margin: 0 5px 0 0; + } + + .score-panel .stars li { + list-style: none; + display: inline-block; + } + + .gold-star{color: gold} + + .score-panel .restart { + float: right; + cursor: pointer; + } + + /* Popup */ + .popup { + background: #02ccba; + z-index: 1; + display: none; + margin: 0 auto; + width: 100%; + height: 100%; + position: fixed; + left: 0; + top: 0; + } + + .content { + padding: 10px; + margin: 0 auto; + background-color: rgba(255, 255, 255, 0.562); + height: 100%; + width: 100%; + text-align: center; + + } + + .close { + color: #000; + float: right; + font-size: 35px; + font-weight: bold; + } + + .close:hover, + .close:focus { + color: #fff; + text-decoration: none; + cursor: pointer; + } + + .gcard{ + height: 300px; + width: 550px; + /* border-radius: 8px; */ + cursor: pointer; + box-shadow: 12px 15px 20px 0 rgba(46, 61, 73, 0.5); + } + \ No newline at end of file diff --git a/IPreoject-CLientSide/static/images/Card4.jpg b/IPreoject-CLientSide/static/images/Card4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da1ebe088a1b0864341d8cb1fb65b066650b6224 GIT binary patch literal 6291 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®X|>zg=s%11}gZ#^`e0w4PvH4gBd7Id7A$GwDlU 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%0DmM^z^iS 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Όu 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 il!*TSoBz*#1gwm@bIf!3Y*|l zd}lFrXJtE6XEy^!6Trs6*@WK7$kD{a*2&z?c_`@;d_O55CHh^(J>xXf&09rvWiZ=m z^;U{9QHT^e4nQEbpuyDsp{Q-5sIB9r(Rva_+i~B*F^5x;v;DV);oG+`7$gX>fFFMX zG06~OK&C7{w%iAAJMuvkPQ_nYQ=xC(cF|Iroi14S+!Qo0 z)NV&xvwh_?p7+)j1dHip+fWXRwYbjipP!!x1_pwPf{KcY_V;na`^lu13^~H{zJ;`X z3(F%#`0oIfG%Z^r_fH}BR~D+GH@!Y@)O%+cCF^h&k(gp7<>W_$Jf>ezho2m)3HK|w)KwuGR;G~)#*q~GxAz4ao@ z&05fX^M{KZd+!u(omiz3K?Fjn1$Anw$hD*6wM29lmxG}!oO;u0yWIuot+3FXx+>Y`_C7f@3EFYXS+O2A8c&zQYe#J+Lr_AEu<8&K{Aeb#y zh;DL;Rn*n(aM&3D-)6n~>?9&WE;kDWYb=|=w6)gkbTF2RWq0D+36{Tvg|)S}S$|k$ zI>*Ao9OAE-q$B~`)1~Eu45w)^y#CdCbEP($RXn}F8_oHTeW6%wq^2mtg#4bjdq1_A zO-2&j)9+vM^g#UGEiNYue|73U7WK|hB{V&s3CuET?6*wfDdobNbojsf_`IdDTP;+5 zv~8Qih~;i^b2}YOwBIeP?$|6|{POh}j4>HavH`VOY;^coCh`ah`hou7>3ZxXUUAT5 zS%cc1c2vv5+|H|0#+Q48~I4aGYI!!!v_CHwNJ-ZXRlz|nYinH;v){XV?Z)YRG{kK^eyYK`9xPApH3gHT9ZS8bYf+_$J3*75Pc_U7{6 zW9Q4&*xA{mh&bOtV&O%y>9}^`@-XgMAD#W-op0y7KnlOtJ?o@Exmx*-jf!5O9tcDE zYSk`U;92r2%1}AaqPr03qWuBnuH|fb-H&$ya^H!(Cg0N#30iY~A-?&zEq2$MdpJyX zgSK9(-uiQp#jEIIxN>_Gj<>Nv;^w< z*ZsgIdDdgP|0WxZ6z=IaUc0~11l->m7RO9)o}3Ok9 z=hy7tA~`oat=h()+UvmjK$Ycw+H}1^sgU}*QoD%xqOA6NhVjCm?{V|DmB5p+z3D#x z1Bln{e9b+5c2X)WE$#jNq4R8`(@yk!=t1x`X6GOH4P=gzn;;eV-XA~SAEvt^0vJ19 zum3shY}?2SLNuSZSowi!O|BEDNqiqS+*fCaju;2#0?e{~ib(zD(1`rpAJ!8$?ADg5 z&U7b65-$>osU`d!or3iI&Kkh;Uz`^7^zt~!Z2C#3H&J^UufVUW&P5B_zr`Z>MXLRj zOnZO2?9>f|*Y;ZV6Fi_@t{$k`Z=)mKt~vF=JMncHb1w2Ax8Ia4isZ{_4KxA)^^ zrrVm!iA_`gYR2P@SMtMGB;16Agtgnn^k?F-Vq~qxSLex%i`;LP%e5x)ej5b)oq8UO zy51Wr>{f_KW|i(QXW+L`xYcNMJ|e2>OadcCi%a(4YSO*2x+x$xpDk$lzI%+mhJV~HVJY;jCUIT1#y|APFw*n?c&E>_=Yhp@ zlK&#(`8mi9q{D5{6R4iinM6gTS-_Ykxs(@oSiI<)4k`B}LYlL9+;D)eadWXo2AFg!GoCmSx|P&WsYoP=0^ zoA)hc!aYn44BEy+af^hzn#!^}HeXkKYJsQHQoUwo*rTi0C_5MHg zsuU=E%O<^5YFE7tbFx_RRpQrNfAgok?s}Lx3ChG7_e=6@4FtE8xo+r06~)BTw{0Y4 zxnMZmi{!JsD{8MdyG591?#U(iYa8*3m>Ks{gve&rFqIZq2 z58VW#)oSQ>nQkAEf1@+lYhjoHdNy&Y6f}q&8r2%2sIi9x3AvDRt!P>j-;)R-glbf; z1*HV}hj*d{pU&JiIv=;g-8SBuz@jse&m4Zr6ASNHzZ}1}Sv68Y>HJO_9_8Nf*2kop zBbkV0tG!1F=o@ZzBj&~q#v|YESw!d@liK0HNURyV{4Ocne0zPD&T0RJ#E^30>fyWe zj~Nss8mVl2o5gD8Y9TfJ9yfz;u^O<|Y~(Fz10_U$(XPXR2oE6BHH-#zns;XwU4BLu zna2jWUJmx#gBUwsJ)e(e5w9iK7Z$+=dN_5kw>~qY6qD_@(kHcHy@cLcUQvd(dv||F zV0{U%tdOpKh6w?%|58CcYmk{#4PCWa!n^NLtR5zV^lzN>gDS>W;J=$()b-nmV4YO2 zF%)aF35E3G{pNCaJdeiz*mYvp#_e@~x};Os7tm>)1Z@5?_DrG%I5tFT1NEXhvD6otv78Zc*MlHY1 z7mI7~`OZ@LPjFFTZMnv(sn?dD@!ms%xvwi)8?6Z0gr}7rb-P7u-`zp zEn}`|-Kye{iZWW(AMiTEjMNW{Z6S|`^50e~{Z5L)C$%$0hm|>SKUjZjiA%3}yHk`$ z-0C{G8pAL{wFh>EBudIkg3lWto|~HCBm9ZBaaH+QW2j9le?@-za8$LPwDZ(xlF~qH zA~MKaL<^sJRjAi&7vd!+eCCo=^sy^jec0u9*bcmz;C{%S6j+5?q;c4kpmh&1K1?dT zi;+%ti$9~HeHtdK#uf%d<_}u{McW#qCLIsAjjRP!{+cD7OBUHRN>7zTdXOQ0CPC z1b(9&S%fE4s(JT*;iT-E4iQ5?JmoZHihr%=8bpSVmEZtK&H$Fx>Kx3L$4Rp%|@F}ZLW)7S&JM%0uK}5>_kNOQ|9TTZSbT-M)?pr2-5#< ze5PDgQI`pAcQaXP#eoMJ!1R|PQ;Ss>+omKPt*%~GhJ`|raa3t0ga+y`k2tSY{N#;b z>qm7qtYfoEc0Z~YU1U-Z{7~|?b#+L<0d01Z-THG==Q@F%i12K=#05C5s+&l2xZKSB zr|t7Sl!$DD^0-S``ookBwM&@-h&yja=ItWy^3xQxMsbOBrzCJxn^7UNury+Al~wLApQCgBS_P+64dCQ6k@2@OED$t6HV-Absx3GOw)B=MYDBh zd7+d6d2QTiY43kjLw7v~Oxo5;M*qCdbR9Jbm1p_!C0|?kxNS;QVea8xZsR^fz~}jE zvbN)7p4b&f0c*QFsJWRN91lxNN`_Psp#8jr`}FwB`1#q~s}c|*`(c=z;rsh>Qmw6@ zX8J$%<7LVB(*Yh==+^blV>7R?W6I&|&8VQUF(c)p4l=VeH|Y2khiN-#UdJtk%GB$KoEP*E-yzYOFz( zEp|RSI+yt-9nY577WO%MS;Yfo*JfaI0GU!j#->p+olYq^f7v(_EI$(Z%nJ`6$pb$w zuLWW^5Ia}}-H9CIbSW+zj0X7b`>@(~XJgw9qs^R{Jf=||mB5i>uBMObjXsjq zxglgubjNGZd=&l@6v%8v&~Dp6A$}O+)SwW{6j@Sa;6T`Ag`V+XMDrnzO>TW3t#Wj7 z0?#@bM0W9?QJps*2t00zTygZtJYL(PheU~oNk~C|!c-TVp}~xexvz7;fuTV>GB3IN z=KY@CBxxd#47eeO`OcL^H(B=KDY)+z{tNphQTtCw#^H0$8*1MdJl}G)YN@U-xA*Xg ze&5O~ZgevL3?jF0kP&=9fWQP6s1hK;EJ^+Ial5x7dY)N$=ku&#u^QzL3V2OQ%L?45gNpn{F_i%o_{~bD7zW7x`sbQp;S{OAL4$b;w95*)ZNGH`7YzyiEPtf z;Lxhk`JF@(^LqWPA<8xv*$-QHT-vevGDPZp2T)Rb_DbTQef-5!sc}wx`gam?aDs~g ze4i?O{DSAP|F2j%ffgwFmQqr@|CM#?&^x)Z6?8!w{;G?K>2^ZjG`Fze-FSY(wE|ov zK4j^%+BTmhovpg{jrt1(64X)#cMN^F>f6guNJQGgw;<_QlUsZuC_{9k1DOnNq<Cxh|aeaqR(vng@s=t^W)SD+_l2P9(adLbw7!04@7)^8>^cfOLsFs(_55S+x2__crpktU>Re{ zuP)Oa-mF7Mhatd$@K<1$y2eXFgdL`tkVfQ>xaBt}C=LuzIo95K15D|dn2ihuXMkRX zd%PHO!Htyou`_>WAMC7$WYyA`sAt}nJ_gMgG2h9PwIk;!5>AdNqNA(W2bV>i9p`^) zmAdOU$*93GT2|K(l(0If6M@v$1b!Y+08C6D848S_WC2nFgBiwFKJ0XW*I$FnUYwo} zLibB8qft^)<;Ytb>2Mg01KvudQsryCJT%pOVXSpxu!XnoeQ^P?=2nq-Uv|sL=q|NC zEUN2C#&QjL^@rh%Zg}T&E=HkJUr5ln!*>6Xs^{$?cFb;5R%eqAA2>V;&{ik+OAPj& z`$l#cD)w*eC;d$O-ses)46w!}k7bw?$mNpRx~^P_I|*efuul~e9eppG;@L1cQ7e%} z&wP-TT+{pTR8}^cT~QE>T>lC=J$r3yZOylHd(=L7Q6*{bftOkc8xS!^`jK-LLsy9l z_R`H#v5`+K{jPRnrWHmvDmS9RjKV`8s5KH`MqQhB{|9yM|+Hofm!4ju8xi-D4A zC+`d^5-8iFR0&8seVPZXrWqdZPX`|xA9v1w8ncofz?|7TIAhK9xnJh@m}Wqyu&nG0 zn1{z^ZJNhka;WaG`3$Lp-iRz-T_nY`-=m2L`c!(pta)^)OzYdKwq}9_b>y9wg@}E- zzXPq%VUGLz5PV8loNrhFMlNrwRH}b}YLI*~Sv+REK77GUs9+iuidgi>%Zv;oGa<@F z+pJdJ>@RdtkmCdg>E$0gW_Z-rA*~jYYAKr}oq@u;^?lRgo{65~2^*kLOvfBBbnr+EOR|QLZ ze{aQz%uGvuZnpr?a{N@O3&ahDTroBTLX@3-41`qq{yN9os99rO{-Hj_hJpkLyAz-< zs-&2=3VK8q*utjBeQP&QU1K=QANgH}$y|MDyff3q9;a!1R>@#yo|Y*+TLMu3-Y~h1 z`Xp|VebwaY+zL9WP+J`&@tdiv6BV8u=4IqOIM8bZGvfDSdo9EKds#-d+l&{|c=Cp^ z+Jv#N<^zXkgnRX7@D-QNI4)z6d)l#HqfdyOjbXc>?hL*lv$E;U#+aIQwLd**L|Rw2 z>DbBCEo3GP*WcS8ZR(cjw&l~$&e}J+706Eb{vr9;VpgVjgFtaYf3k1cb}dTR8_~UT zv2N$~j$}`T^{C|WKOVerbzJ6Eb-X+ZZe!Xe)0lVGZafu*)g`eIv}>uJvEdap8be%Y-gc!d$ZO-GreYHrSP2o8+Od)DdmyKNOj2 zY-)9ndfur`kbgBdlAMIzdU{vojKKO;WVYVz%LFsfk07BlvE!83{@iZ1zvZ3t?AtMHNl3a@E_)9{lJ(Jbq0z%X&X9ukw4gkVzSI3r-n*Ih@Y-dm7!-YO;+!Qq7C{ zq;Sr7v92c7_d`DiqI({0ExC{xY1Q279k0k#it#d*DPRM$p`vk15@+>io4$1_#gA1WO{8b)6>J?&z=++ zzgtDd{P2=>8ZTF}EDs4>yyd)2K4H2uVdI+TVZQvBUD~uYyZ0n zt4i=R^`_kGO0h#y$_rqM5qT%Fi&aXI6y!;uC9LxB<#PMZvM!)n6hvjW7`SR z@$}%AA#cWch9Fg8`8LG&dMN_izO}Dq7kQ*=81U)Sid2$(sBu~BYvD+*MXW}eVGg2m zf-+e-5oA#F<7Adu>LDcmofxaD5es<$VR`<4v2srF+e2`JwAKJw08HuaYJ*`7PBNE0 z+5>VlHWbRw;#u&)fzV+QD`1QLuv*B$Nv6^wRj8#s`z;7Lky}n7v#6LzbM@epoFfF=2f8%HNk4}UN>v9=3xM00lb@nU*>UFsNWv^U2X60B=JS`P_%u258R zuJ$qO?p!HUPxcOh;Xv@UOnm>zcwQr8E6ZckEP+i^w@hc-fFZWH!bR+&!SfO<>N$*{ zi)x>_07OY+dVSK4i6G`GdrQ>>8g`IODrd2-%L-md-FXMdZ;Znck-tcTHhGl;GC zMlLZ3X(2E}w#=fcjP4rN1c?Hvq1L~_8OZv)PQoCW=hq+;38|sVcq>ciS49= zkx@WlHSvNv-)3L$fc>>hDB(L0zpKCb5_@!Af>&+LSY={y_(G{`OJ zM$qj3IUC{^|CGN+j{jK>jch+u$~3vn{3OEz1?X|e;P_@0bO;-ez1_plSH(BbikFyC z&UilW{y6Who)06b*tFx>_Q+S`!f^j(W4M_|@!as~JaMZG9P&)L!W{GALqmRsLM}) z(B%^iV@Z=mCu9sGq*sl$s>{C9x#&YzkC(OGv4x1F(tyd41@Y!s`$_T>?@5c5J#v-g zB4$eQ?+1&YT|0k#Jwo#YrL*zYPx9THSMV86C%Z{W4R`o-cD$T> zDGEBFk@J?Ia{cmgS~RN;Lmc$CCSyi2{!a5VC*Rzklwny&<==4mJQbWVat<~-6d(i? z5m*53O=|F#b{pghzdsX=yz_m3^GKiYQ7*dY@!Q4koThnVEC5yERpf>#j`AFQWl8z1 z87+KlCCd#?_gPut7{lcJY7a+WlF~ms*YDa}iak;uaqUpv*-=&;d|+SPIS#afjeebC zT5K0WeDeGv!9MQ~kWycx?}54U-NWH2JlHP)*XMuUeb!hgfIM>f@yjc=4o3FGV&uGb zcDHGHtX=bOhz7UZ7iZt0Kb>`fvb33x zX&R7`Dx{O}$-aAoqQ}bx5}+FnH8}VU5MI!*9A?3qmOjOPdZ)GE&os~&}lOC(z=zG&Ie-4uQ z9@cKA`OVs<6k|rn;M+XT{a($9zkUoy553S49P4Xrykn;p-mgq3<}w(#85 zhEXK)rmhp9mJ{{;EdO)A;_H|~lPGe%+eU4_L^NC&9KPvMq=siIKfXs1YaCgjg3#te{^IqfI1SRzKwDg$6c=IaL!`F-KZ zEPq~$%0h2Mahz?MrT`sdEsHyJE>N=PjpwLsMPy{fak@pL`0Q`%1;^Jk5V&-Bo>73M z82_O9^Ub8M1mn|U_)K)`+al?}b_O4BXrrQOm!Evv% z)vru96`KkP&pR`dQVCF!pVLn$72p+J^8Zy|Cjra+>T!XrA* zwHb@MRyJMmcsd|D%>%GNk}ASRxntI+->t z5#Q4L#hADIOzqXAu7^@B=Be#9bo79*Kv>2}0agVb`kZ^abPEAsg4Z2UL{Z8OrhRO8 zwZ@fvyoLoJHWO(eJR8fU^vvSLz&YwhN+BWV{bF;*A6xy+c1;X`jZNBg^M*O?kb@8K z*Qhg{$Y8E}K}cSITfk%NxKKdCb-tl!C&*@!hB~b>wfa#C_3{y5*Ld(in`)RdP@jlV zdLMJIK}+}RWL3?9EMSiv5>RQW{`7^FA`X}8xv@H99;I`G{#KG&w%~$b%$HZK-8EuA zDZsih$g*>f!7O)l#T1AmP!|v;cCmr#x|w8rI&ZaW^~CN(K9! z3}7OSgUN#Hbs?a8eb3X*6V8Gi=J_ZPdRq)Qy^P|4Bc=Z2X;;9*$_B>=wO?t8j^O_(lF&k!1xd7nv+|gvt2M0R#%{$qtGKX%P1>YX zL883QkYLI0h1kvevHNA6PpWCReXp2)Qt(5Vlm74x`>-v5EWkCF7iAO7rNl3OSEh1Zy2PWOskPjC!s-!>x^_#v zag0nB54c6!To+w*XZ-`)?ajc4&~K>Uct`h2a8@#9e=AvwL}Y zdA->?TfbhQ@0tksOEUD_qwsSc>DrO!r_9$zgf%@7xU6lus`;FbTRJ<7SHwhMqwKKE z$x8m^cB*}v?9Dtj%1hE{HFJmo6YFF>9_{Jcx97|FiDWqUPi^1+nV-5x69nMVCIw!s z9iks-qmX!L`mVJE_G=rJiaJ(y;Ps_f{k68cGDm30{cl!bFHHkZPw@wP$o_Hs{tA$N zmq$~iKlpZ$dMreM8_4gRAuPPBKOmEZtD#Ys%4(+t&i~) z;NlNJG+TWA`~8$$V{N(w`oa zM9!r-EpS3bV*-LmRX+)nVWcD;o{e03O|Tw?w_T6auC(x!&#yEjyNQ8XUC(&bG(7Ga z7G2Ncd}8gBHh`S`%}|4~dqln0^x~ZH{`OVMC%hTH&P-cDJIrvp8FHN0e4I9{-$=iS zpkSunIC9jcwWz8ECkrNHnf1HCPGkxEEE8Gxt*3)x+02E8lRHIc?A?4WPp%><58*9a9NeY7G}nWvWm=To`(3&X9LLFA(AwB5>)_bL_*it4 zV$F6V@4347hG5J6%3tWhsG-rf>+&imN5>Y|VF78;?t`=N!Ujf24(;FatWz*NBVWE3 z5^-J@^hDCG7x<)!Q4F zhnv3=KS9k6^&#ln4*H_-0|4-8P?zmy@B*Zf=Ix`vzv~+IJBuo(P(XnIa=WU zG5h_tSW*wartRZyMy6aqcm9Cz*_A|Zv4#l=hXdYNBXO!U%F&D9g&bl@tj7qyu<$)$ z1bH#1+tSV}Ua1v3CmcdZYdu6hk^jRXfpaP+Z|WQU%YmK z0>+3(UfsK^vQdV1x|yGukjCZhQgel<8I`DK`O-$yVAyb_)zzS7y99O21q9M#?#9^D zgd@f;b5kbtDM?ueLq>?hYCySl;a3#JsXO*6nX^vh$htcv>CB`t7<-YBIA zaQasErD;mBA{{!^D)GMKbMQT{6G!L1K&; z8a?YlB7X@Q9U0L~(>m`s$YRhw!WKG5Y~%mI3h}jwu#{7xM0ZSeT&4)=^|qi;2vyIA zH2lrCZ9gCKZvA&EB!6b^v9>n5B(*O&ROzQYjEFhK)bGVOXH8Qtd1$Zk&6fllnwTvB!&n~x;L=ke$;H!-~xsjw(^ISu6M`+}2 z9SPC2;d?OilZ>Gkcll7K{wi38p_yXFDuV^P-o_KJ$<^vGTyhm0X*bA(ZEB zbF1j*Kq34jV_NMK+CVUjUtE^{oKOYF ziH^*R<&A|HL(5?vxWP`R)m7}a4Bpp_h|^aA7zY<{g?r_RXVkG-c-X`0;S1)X(0Hr! z8Y7V-7HByIr>D_Hw-^vcr(Jx=5Pgm>1o zf{0vYSY*O%9&>G)i#V{pcD$%IK{k33J;CH}c)#6+=wb%6ZGZ#jP%J7@^O@2C6>=2m zr!R_qG@iUV#IE}NXKaMv*pz0Kr83be!)la>Ae6sM z{Y%z18{N2)e4SR|!(ZkGDMFDl1_OTq1Alq@oreyMmV=?j$0cH@za7tMXZ`&c?G%t6 zA1!7VD2thh?GUZMKZ%_8F%xtVV`4W+7vAf?ohWg$Q3p)Glh24rh~!Wr;>UNe_)p?{ zP0X~ur`r;K`)Fz?6mc)&kTSA!ERUc&UOI3S`p$w2VRStf{IIN}6LENIqwPE`miG~U=yMVrX)Q2M33WJe5ry;4T4`m z+vKmCIz(+weWJbiaD42Fg@!LasV1|ZMr!QM2%Kv<2P1H+w60ppDzzryRT?x zHoiS%wqx*PeckCzeDI?EnZt_Nrz`fm+A3yy_2QL0-j zyhfX2+W9h$bF#Qn-tqHHgNmxF<{5F(sI-{`wBe{R}-9b5NdSMfrFYW`7pT5mO zDE&p0{F6kxy)<0;_9Q#~;i@Px5I~MMxvCdON-B7J2+s+1l2I@!@+RXz=;d z!lc>!V7XHZHWnU6TkDzvyS@~;W;omufN(>K)imFwZU6e*LCp$&4-$I}Y zj4a*>I37|dizEY_(6z`41vb`U$&rK)11skSKR$~R41kWx8kn+xK?OA9H49aZLfanh zXdCENV|8!Wt8`;~^#@S}QP8z-2Vs)e>+N4Xo}Ti>XFr)(xqz-__VnyN3alm9>mncz{ z)l(+&d@p2oI2KLhP^^@TYKUdYcbTIMS2>Eher+37`8VW7kEx(<;BVoI8E(ms2>H42 z4t54yH3MZE$8px@RMgH*Z~Cu^Zv6gl?q=hI6{Xyv8Bq>RVbE^w#Uhl&@ApQL>n2|N zzh9C-cN>?CW^Nko2G#ks`hkCVZv)?gM?UCWenDb>qG8QMR%N0At zlG;3w&CpZRSg~+K1%`VuE$`WzD?Udm?sY;Io3F6V=?j2bn!H~WUOG?&y-(>bffZyags!*@W4=;4D6botnDTuI+9=PwXLxkL8y0 zdH}v@!68$;q z-Qh05nc((BU`8p>#VeNFpD)F?+)Pc)n`^44?9}|#$&jbm$i0}t#aXz(m}##6ZuF9)zpovaF!f1lff z>)9KA4>r!b?OUxV%Efo0Hn(3ef}55Rjti07Rfa00>Jm^mREfQP?ebELNO5!*aJ5Jd8~q6f&Kp zixU0%n7j6qHkjc`7*Xsnj!){6IpKFDo1FZ~9@4H20t4+ZLg{#AtR1Cwv{8(W{Sei!`M7NK>S*BmgnqXkgihT$~z%mb7{&)3KH;JlP#ueDs^#1B(DSezkt(<43B?Khve~{w!&<0i=i<#duY4%Y&lC|!$1YmxI=qwy}s5u7cCvv zgjF|6wYAxNIb%Gf#6ab`@&&ghLjv%miDKZYoHFJiNN>|X_n7tdVBK?hH1TEPLJ5oI>Ozhj4nkz7z?*Fi_dCC8YheZc+g$xqAUBf0$ZDzXr| za79ZmdJ5B!5VMMnMcu1j8n`@`Ua(aku{l87sY{sHL=cBTE@89!EHl(A>|My~c9Fqm zp_Cwt2(iK8S>C*a8U+2)u&df*h^2vBh)g)?$kPv1)YyO$>gg?$oSNK2G1Eo%=(aB9 z(?FV zSk>7Oah1U~b(^?>m@=wB?^+KNdro(8r6R*KIuE4v>BCx19ti)fwrt&%5DL0j9k?df z?p6@Y{$%#X(h~l4HM*XSi|XB4^MS;00s5o(#ncaE{34NO6sAJ~d}k7haX1dhXtypU z$}@BGJ9Ho@2)Qt|IU)(NS=sI))NWeQUV_rhxI{bvTccoy?`b;hLyOVJDk)728PKqF z9wfaVk3BwNUDE9sL+x8DMFRZY!Yb!8ak2zxhCzppY^|qq@?qawjQ@n1t%Qh@)}O*& zq(Ojz5L<-(r#eK}K^{}l33{X`+S5M?7WM1v>u+hGM*2SBvn*&ZiWp0*rn;Ib%@sym z*Q;DLH^`QOSji69LDpZPs2u*2P#$o0+JOj-DiV=+=bAS~gUd z3OW0F2r}}DWq&zgfnoV>7c>CoHV5mPlO3PO`1sJlC|4SK1n6JIyIoH~tBuYjaiFBK z=nw7Q=FY-Cc4p*RC?`P}k+pV5s}L_~b@ zoDlvE1Lw2>r{wvh%eohsI)*b-&?0GSH5rlAvqKgtz~!sNhg2NSaclejGYjqMzUe~%j=pZaKHx}OKMOreI5}MAUs#cS@k0VKRbpO2Z+k#Iu?`w z{CBPMDfGSK>w16pVgmZB9rUir^XIj`?LOmoljAQ}iy^CMfxV~8bua-{fB&L7$})Mh zuAhf9qVj2q6LE7#sAgm+Bd5H>W0zm5c>Vjnr5zGTXdXS!iw_IvcTF9AnM}$*Dzr$1 z;koGfey&Pr=ae@_Qmh9HRI;N+*WGBbnh?&3tIq4%#r^UlOr1Tgt!I1o zDel`&xMI!1w*q=_)N~B}_kOYH9*xrY5D>yH=(k({cUe=H^>o>Bef+zsDqL05-BNP} z+-i@r>+gRJYV%+f`%JBc~)?xBu!!Gkx74&QKj?;tKb zc0wyI8Y`x$avr-HF@o+dX~i&qX&j95p`RpRg(+x->1UaU%HXonT zs{Dk{CZK8`iW00PWC1Luv6Xs+wy3yllR^#brf)Zdf#|>>yq~fR=nI0lL&YfRCwG~= zGWO#U%CP0ivDASjFZbY#C>HO{A*+dYodiQiFF6Id)n-<8hkk!WtIpTjuhh*{EK+kl#QXP18GOMV4q+l@EAZXK#?{ zU>Ai6w40V_*~jjhyD2mk*%x0YMEXYFne9zxK<>LZKC2S}KZ@hqO~^BrSS%)-?>U#> ziNRzUY*pip%N%$I5ttg<{~BC=1}^N@#(hXMo9V>kORioUSP}Jmjq-;_|5Nz37c)rM zKCn6K>IKeeQ+H;oLrzfHL^g4_#Ab(=L)9s??){3@-S)VpRKLuVi)E{qZf@w976VJWG5y;jJSnxh28rBPOx zF)~5|Q((4!)D;-rp-!}3M&&%tH4vPFdw5WZ&W9_I;ergy>&tYlt#4Yas8b9J7-gcZ z%iDV7)HvbKI6vf&*;Qad>1LF2ieokU3gt`AQ%pRD7}oxcw&<4}r6D&W5f8PFftMYY z!erkxYQ`!8t=%bn+=8{hid8}8!G$q)nxYI7_9%U19PD-~(ymClOk`6BiX4&pyGE*# zT@mp%oQzk?vjuD#*^z9uwPq@qOXGs@EuzHXMWc6XWb$OBCuMk6)Qu`#Qdm|wKp1)4 z(%V-nawL5`y}KDs6E838erS$DLLTYk^x$Si9H{sNZf;Mvw2Tw%+6G86*C>&DxM0m+ zpR1f|kO3jC)qMf)GYBurfQs*=dK{rd<4SJ(TP&X;Nfr>iPC-~ERwdpjGj3yeoXm6B z{7>~ehzSN7x$`Y$ZKXZ2mzVZ7{&C0CX2R!e*{F*8rsi= zMmIw(!v1I*D>-7O`?6lpZ=B1(FMC!Wo-yk3s3?+oG9~%v0a#o$b&7>Y8O0SGCFqf3 zR22dqoFoktDC`_b8m^y^iLpR(Tv0nJWu&D>BO6l6%JCFZ{PEu?og8n^DePRbdZq)= zMI^R@)-F)h+-yB$w zw6R%v#kbOb=C})o>3f-=ch1=NgQK|Cuk2qZ(>u@s3Wz2ZnziM5*a^12sn_&BZiqk* z3k{lSku13|_7~&5MH#`B+x@m+O3+Oq4I0w_djYCW?upk1d26IA33=F!z{C^Tw;x%* zIHdL(voi4hX~I0kWAX{3CCJK4Nxy%+yw-X`!NbA%O8G1n)Q<@|bJ2G^i*L6;v4DjwW?3^C_QaU zu>DifrbGU^PX@$P78T+DTCP~jQ(52(Xm{C%1G2_v9r;_=lVTH6@y=H#= z(X$>n#J+LRvXOFHNPze+#YYUIA?D)Q>jSl{2m386UWX51kpl3rI0cl*3sC+G1^a9j z98%3Q{?em7A^)T4nxZTDo^A&dTNB%w*qPY2GqEPNZQC{{b~14?v5kpsPW;{9x7PpR zzVyRgeY&fw_St9GuJxxM5o!2xwxVS82{B$h(GRy?`{hbu$V3SD)wi4-Zddw61ri4} z+2=KcSgTt9GPkG0@H^tzxlGeExd^Z1i=8au;lM=OU0nbFucQH1 z+Njc1cxX+K3AB}zaE`SOzBM=8S`6n$Yibn-J2r3@#iOC1(EGnygo_BrY>k}e&_@9V zg5)6dv5aH@mcK&#%$q^CVPa}yGBs^P=UW`u^H5jzXE!Izyb1*@5H=OE@1n_#O68(0 z%v<#vcrUSKVI=!m*jHlAGDL zQncxu+aeXqs7tpDF8^NIl?02US zd+GjDyiLEDS$bg?oFE~bWtHe4d4X82G*J81zq!V={mQ0nH{^)$xt670wQip}M=?$K zweTDtyyVIY(i29SUlTc>Ivf<7Z4#6TZiUY zNZmvyWR(Ry9Odyyxk7&W{SgTqUq3;G?E{#o%a{VsT7sb3*kZsyO<@GTl4~A0pgtS8 z)4yQaUh%zc;ufr3x^`|ldOp5BQ_VM0l^t7TF5%w8j*dfFFIv(V;#s=nArn2@4 z&K-8_7`Vb)#D3p-7q9L-E2uFs4+aY4IA8+T^7Tn)>m&YeCO|oZB@~cCVqkFxdO4sd z5@vz|0_%_aG|5xe&nlnTA#sQG%;MJmfcy7Gp)Ff?&Z8g(!E#m}z2><=mXx?XCkS?l;@C;y3LwrQaslZ=3NSLxBIMG=is zi82W!ibr|H#8S&>h#0ugsD|oJ|Cvs)5$|D2?gI%;J5JASRT0`x%6)kmDOm`h9kkl) zR4Kw#18zg7b@xbdYkxMD_EIzeh7lD&5v#b5=0nms%ZYRoa!SFB8f0660T?8BWfLu9 zg<&pe;yltwV~w9KH>>_72X=Ynrja{rv^g-hR6^Vy6I7G<*jJCG+^nHDK+V^CeicDK zKJC|`ObFnc97W{Fvqk2q?~?p^#qDIExkKeLOea72170-ia`-kNFFJ$u(rf0 zQ>y_FBBfp>$lGtgwRrIKUc=C!5Mfk!5 zn)%}v5E4X6G6_Zjk~Ky)K<#wc$f>Ec-%E(EKxZ?|vgI4q7G$;Eyu95Gy`@?N*Z9!p z$H=HMB$otoX1S#a;(2DWr|N8%>^Ss*b%W%EOH~Q62Azg&BK`_5a?gvums$|#p=@s0 zXR9DTpO6Uom7OX^$!Ck2+`4rF?fOCX7$%=f!e11;FUs>%awAMlBjNfO*$0D=lrM)qXpi)SpF9vznKhdid!syR*r0jm$M- zSiM^Zq}C3!i(cC}l}TX0LitCZOA2qKV9#RpF6y^l9aUZ7^n>}M4-}FSdJr-asi#YR z8&w)LO$4@E=t0#L#$T-hEm8JjpaUdTy)72R2v%>z0XpKB9TqS{1RaEX_h65q)|c1j z30Z!)YKUYAKYYmmd%gv>AOl2n0b)~k@Fu)oFn^Tt=jPdqVB8 z3+|@982PCz$hFPyBQV=7LiGPmIAX*cPsFqyE9gN!2X9nAe9S4=^-DmkdB3%auw%nk zei?OTH<`Iwx2BETx^_*AIvwejaBRXZydoz^{6mmaQmP5}#qsNx{tHJat&{Mbn9o@; z#`QeCQzt*CSt4lE$DHp$U=i-UJGSyiP-cR^@}aA{+~n#r}hTYq^Q6TSv^1S}A$ zWX;W=^**#+_S&a;OdDE+>{wYaN`Mvp#8O%h479=Ewf6oU%fp+1l*r?`M?57KEQbZV z_8R{EV{AS;+m4VA;rc<3WDH>Z*V_8Tb#FMZXT zgCaQP2w#l6@5{$C`IL`8gu-3+Ye6&hn+)Vrq}DmOSb%g=dOEIDvKN328EIGndQXY? zi%F}xf10j&Sy%f-aeMLDN%peTNc=}DUcw#64~|=Pki8z)DLm@T*8Be;viWoVgM$fH zY$uoI_!*wK=&ix;x+(gr0>dOIX1+m6At z+~7dIil@e{h^hXR*YT<&S4NQLL_7}|?uCFtaPI6+Z7o^M&fXA-X)xtuv}39HyOfD- zuV=Ffd03aap$`MA95l)xNvIF*A8p7=%4MDgs zUc1p`&dpukxJdFL`*#+JkK#@Wbiee_=`A?WbWaHerOZ$8TLB?ey#m zXHOWs@MAJOFf!6)r&(q{sh<|^AOY&gF}9O$c=?%GXhPpEHL8N;`%^1!;&Dqn5dxs> zTGuZc=%9UFg^BWEO}G|XRBcwDa&+s2YMG;_GjM&?#l@8mGmOpbRzH25O4OJKApe7O z=@oY0*D{sj`>k-&hUgGVjSB*bNkT(eSjChGJ7It(xO)7ca)ZiYNOV|ZSbvn%BE}34 zo9TPJaa=ww#Xm9qwSy=2rDadny&n12inT(f+w>5N#QvY=S6zEqw9C*R*(u%g#d10p zGA9O@@eHH`5xZ^RyS-KZ8nb^f+caj+w${(O3zt2HzC@D3jG?KDsd ze|&IRX0}MJm0DIT`wBc?gAj$+R`C({^y_zYh+#162|OqKl{UJ&N^ybMJ3ul`n(H3P z5o4HomZ8Or)l1sZL}$e}jPud^ES9&wbLZ0$|LD#=1Dm#xKPUzEvBb;go%N?*^!aVy zJcju~>15CORQo)Zvl(Q8cj7cI%*#o+)HaAsQ@yHw&>p`iMGdu2jF=V*U5@|vfyJW>vc$*4M+p#~2*!%v(*s)8T zY;Qj&Rh9)Db}o(AdGSS=>Og$r1nT|#MHM}`zbb=zv2;zD9{pq_MqAxvX_rk9ee@UY zZPeHhP2OkqYy9aOY_MR+6si4g%5`w+$baujMu>$cV2~FV-ifJ09ttJ!BdB(vJKp3B zsAMNW9cMR}B&w(a<0QP#PB}zkiWp)C(qb);IE)fymN$<&oT%8dr1Eh8 zAULk|NX|$@$L^J7jAALQuS2@b4tyg}T9kiw&{TiLE3zF>`Ovj?EoGtoQl<9!o+rK7 zf-Zt_L4c5`ZBwf~b%J%VX}n9oTUs)F_*K_v6PEpo1k&jVUX4M6aKx$i20;#WmBXUNu4qv07uFa(^w9q-}Zv9VDl2#0N@_p(S8tMPEC1S${mVMS6@Fs>3e$} zJ3jIwElVG}%2*3oh#5gl4E844Q(?Dcju5#yg1ow0%v~X5evr9FEd#=R`6tyQI41e$ z%4$Aw;Z8SmtRY4q00=eB#e)KJ4|9Q!jFFA1g7}%i70dtVd8XvjrsQ1bgxXhwYJ9vaq=%Gw4YeUa^oaye#^rv{yP+GNS}y>Dp616 zkfvIcth3WAzPb|opwWR&rtprUNK$jh9M$X$0g ztmp+C1K1|@kQT3{937%kZXp9bKSjs`rD{2SAP|`Lvo&<(()5z?CY%$G3*n{M%oOLd zr^HC?bK(mmMwnFWGhmV=<-5+QBNsc!lr7F{je@&_i7lyhtW zhpHmTI({72xRPfnxG?g(`r!s~%-ISnXywIfREp0q@rMD=n}g)p#;D;tRi@Zmmjy$llH;d{ zMB+yt^^uXu7j^N4)I1aA8O6ii^nSFxY0zBT?tL(f261>^yfQ>DQOK#JMW%I~vjca0 zBTo494P8R8ffp~C_`m|Gw}U+CP3(b7ftBGy9~^*9ZHK9qTr<%MbykVLh(Bo_!<@6J zBJ-Sq-1?iN!PoidJoWP0?<>cZPnGkSFu0pL-{z$pV29)B zF%4j2kFZnY^MP{R!gKgQ2LC;5bU81H_Iei<7Uqbi1xJ`yLeqgY*Jm*bVxpv#e@Y^O zU#u>^^UdyB@sE7xG`C?WQDI}C6CpHEhr2W{*q8?UW^tVE#~Nw|{vpVOom|Ky7NnN2 zL4|m)a`5{MX$85>LYUsjf=9WfUepv%WV@RgHdMy_-4^&G_pRDF4cuS4*wRVxm!sxN zPzwLnAWPT4j;HV9yTdSoSRMPn-IZ<^Zd%>IjHnPEIp!Gi0+cjjkuTU75{~omL|xBA z%?ck)*O4VYLM>pxNMV%QLhZu(?WVE?Lv?q(1vBg}SbY2s`dD`zd?5tP7x$-v7&p_i z%6@p+!7o6 zsv*YBaOvC*k74WT@j@&!f;3PqH4223F5$l~>xP#1(@sq5Ps^=X)nX`IbN7mko_U}A zX6J_#(1C%Q^5LHHwa(?CPM;uVM(twXg|ECq_??;S5)eRWR1Cy01&8}LCcP+2`#-j> zJ~(3GA(4d%T(NhrZ~Ad*1sQ%O5&GlkUr+WeoFWi%_auArtn|{xuWrytL5op>6m!Tf zL6`c{hvIHk?%KuCr2EI}CgOBhhbrRzps6K=F zA6fI^6&Th*p&K76Lk9vRF&muT~46DM(lGIqunV-SmI6y5{n!h zr+A)!1QdePwBg4Z5DP*Fu@Q9S{}@Y}z|B`bdtfOMCQaJqVtiW<43E!0t_flzi;gTW zT}DzuTN&9?p5`RqDHQPZ6bNn7mS;g_C~-C_l8g=0NX;mU=@s$u85m=z9l}+VL}k~( z8*S^RP=;^1gd#dA*j06yHLnO(5qR7B!F#9Yi4z$9tGg3rYsCqsv{^j>A{st($^TMY zFe^=MD+q;J!N5K@%2YiF$_p4l|K_#f6s=J}#MboY)|1uQ%E$E$)2~+1sK}!r^Mya7 z;O9+n+-rY7zDxX0Ee%w`wF|$KMscc2W#fXSrq{MGR9XhH){+&+ClgD$l z=(iNxh-U54F8o@j4TnV??!*LkPwS_`g*iGU9*M|9Nfe=Ojd)!#|JFJ0-YaA(17mCs&LXvyetT{nT}E(!xWuRWE_{(f zvl_ib(hhQphk5PKHLJL&NUD7n{7zaG51rJmtQ-h|m5#!$7EPL;2@{DTWyv9${x?z% z+@MN=j}4<-tVs?Aq)3X;1O>W72)Wv;4|qz;YxjdN>iZEx)a^~(FvVzNofU}TJC$bg>`i({PW^) zBmt#56w+;D(s*#oeO<4h05Rjp5F_ zH8wXDH(Ies=ZRcKLl%oErmvZ~%5`*D<-H<3GM~S8aHW`Lhb$YXUM7xL+#1FAl{HsA zpTmC{BoI#E){$l zM{C?Y;b*D$;CY`#bd0%l?y&MCwz+k2!REex72#NSLq{%6oAW~Wy zr;6+9eS+%b*Q8)-^O&=xim18z$}+ZX)FBB|Bl}=k1xycXYz9(QVj5D9z$E zOn>-fsWC-qRAv$6I&^CO+M{B%e89os11)b|zva?f2aLTAlf1t6@PNdh#QxX4UXwSc zt+?>c^h2w(n}ygue*i(tWHM}UKEC&x?g*a)!a&2-@-^OR-l6Lu=;eh`R_jZ0-6Kxmy{1*gzSe9 zX&{uDaKuoK(M+Ii&UPF;aRMe?RL7?va13jFZhV||r&?S2{BLu|nX1Yy}+!l#%t@$MDCzf+I^^U3^sH0idi1Zka8&#JasYZIoYCiQH^_;!*uLc_Eu^4nIPALK*ja1Ff zV2{fuA(BM#JGEoj0U&gO*~fm5fQTFJ(-?%-EMFAw+Z26vqN(=%=5U(;12-O^S19DA zl?+Cdc4fhv0Eqv7`l#_s`(sI1sO5pXk|fQ%4C`1CA;D@;xrB>CVbAhDAvc{)MJ-de z8cl2LJmCyvlSjw`tknIKbL(-sHPFJk*x%J9P2j?h&COGW;lZ}rn?WDlst4E3_Kh?Q zDgEN(Y5FnJS3I69lMHM#Lj%OU|7iKk0KvM9P8-I|k`2{yQyS%_@K#Y8EbXXdH4uOu3k%|XaHL=F6-!BdKB5C0eUbyev|%qFmY=8C^0?x-`n2GFEjmOClO$B>`htuz z-Itm3d9lWM&djG@t4nA)j|u{`Mp7aoBCpF{;nZM9qh#u(t?XSlmsMtW0>nkPl;Hl$ zxG(ce_%6LKMf?^dCg}p(bR0ysPTnSEwi)t~5h#$oYDZB?YzgY+M;;bD=#5IKK=HmM zzZua9(lB$~2{bHJ%UqrD)keRA_W~}W61g;GTE=8I^%lRSc2r4s6|OgsuRtUf?zz;w zu5g6I?+y;sv3IOt(hPN9piwvbp4O%`@MwEPWPPeVth%z4QeCB&8m&a#GSi3+{~WfQiyxswf*vHH zLfG7VwH6#F!Ya7zsm*cI&MB~8mN+TKYZnn`mMukZ#0YDRvyIKK*nkCMhFZA#mMfld z0j4w_(&bMZl%*qIqScJs34UokJpv(7H)Dwe>Kyqa=f~0mK3n7e!a9%sE6(&XK{EQ+K(3RtlhYas%vE-*bEReOb2w+zAUY&9WiWqFX^AC zXY3=4^87SjfYwz+V zch688u7*Ob%Olpj;&|7mau^<1TPQHHv~!a_r~1A#N0(3%<&-i2QaI$Ro#4kzA$UxM zST^>fZJGHn&Py?)uGvp){RUJX0)``hoOuvBPAN=hWHYLx9PT3VnedIT(`~eoADUYJ znFWx|tETZ8|E@3EWs1_9Rmoy?H#sCN$(k)c{nk#U2+o^w?qxHa!p{!=>xs&mt zY@VZ$Qvg_0WS$~>q6UN9fGNZ+MhIHoNxg&P4f?|IAHa&DT}BwxUh!DP@djA}OSo$n z|JwJ9cLc7{tF2|Qhw!gg)akCBHNG+ALZyph0YNDKgN@&Q1AhOcJ3yakppny$>nxq@M$AYCEkc66DA~a7Dl+AhlUbaim`|c%1Hk3Lkd2#(m zTIYJ8n?u6b<=aH19ckMLcBads$080KK5Wf^9A(l$boYz(V%-iIAV@K{A_Wh^ehAvj z?drIgBEOQ?r$eoI##Ac`^=hag#Soq|L-#o5M5K~uFO)k1DqqO3oFe$Wj6B;yMe**n zXwPVy1!a9Xno6MCOg%c4N_J@;P-vAK%S-zuH!<6&c4H+Ruuf=J~#PH zkUcWyVUzuL6uO&F4t!kD%>)nSch?dGaGKoL-F}1gvT-_z^3Gs)Qr@*8|ch=4;>xeb4A8uCI#Im*_Da%Y697acr^BEQX?Em za5ESG{p*ih3VX-_lnU$tW>skeu7F4wNC~AtK?e*Hdkhg2dh=eyB=D34-%t%(P(%^Aa zDN(U4eG7XEuQJq$F(wV`z6EVf3|8l}{qvSn14J3M=R)~0qHAGPt9lh39o@+&O*0BY z6W5MKXcInv~=o`7d6d3Xtp{4mr2T%rGu+W(8E& zXn;Q-5I^mJbYMjBXDJLQqkp6GGn8kJwH-*|(d(sMeW1w@JxY+%_HwKaVmM6)b2$Yp*`X z1%#lL1W47x7fxX;{)nQzObW zm_*?xV?FHIqkQbdTz1tI8H_6)RfZ~=I=1Pdau|sM9$o*2V!qSjYv2|!Ni6DXgrQ?l zurrjv-{-&jSXYsik>}OtnpfgK;$^d#2X?~0&d)0xRq(ao0SymE0H73&$AAg=OY5Kj z4N)KYcy`Prt1W)r#OoQM=R4fS0AMJXGkcnAf%_}1Tx=0~;&Cii<}dWS^Cs%go5M!X z1wLemkrJdVcIr7WBw!evL8kukG(CeP5~BiCC9)&GR@nTRtwXSLVIySx`+9dn06L5K zEO@#+xA)vEt1f2i$tPawoNaFHGw5Zq{``2~8+od^ptLsx2g&`okk#uLzT#dO{05ReFrO0 zXW_(Ai#tbzut6wi7;JxWCc$_70a$dpmBW3 zy@8dHIfi7K$)K9%XQIQlyNk5#w~4x>c>SZT+AXv_3&TnbfH<{1wDV|v&%@8<-{ysH9ZwoT%=*Pn zvNySGmbaA(Jb&z^8TP1S+r|u&WVjTIW@ABKMv4tK;CMFLqen|BlRr1~sL$2~`)83!KR#b3-#vtvGSv zRkd`#$IboVETg?S`9cc-HXQlPz87X?Zbez6w2_2-Z($VGy=SqSi#TIQi;mu1>V5-K zS+(seNi&2idPmEqRm|Xv$jUkj+%!ZCi4s42@ort@%5s+G<>zOP;dE1IYei6E_j*>I zKL%Rg8hKSN5X@xuCg{wExrz1h^JHnYdVJsII5(5ewVDMJeu@0;(d>HazNUkWH7OZq zm1{sK5+%K~PA`}j(XloWi)mfLhk*(}2uyd(-MG6P<-bCr@3QWnC{ydm&V7dJo$33Q z*Bx`;K@R7lZJRK!y9rX9qg14ppl@=iLj(R1BoyBcQJRPV$xM*NP?z7{W@^}B58qWp z1^uMf7=G!F-ppJABq;A0{^XKz-rv4Kp7eW`eBL_J5ZJDMf_$ej!ZG}_tUaD{$nxrc zS6J&l1Sf2nxK7tyYDiPBEZUp_rxEm2w)git0zcyxR+P)(1l=A!ih?iH!QtiG$7?RS zU0A#O`UvO0&4S8mBUEkGd>j_Z6u~~Hn8X?Ch&OAB0ml@zk9VqU#1?~i@CfWmnVuTP zch{9--svod9?8VFlBy;u?goX zdWEdB@qPI!Hhs;yZ<)icFVQT+D>&I;y=fT5BKK?3y8YLE&_XP(f7B#NZ{wrx6r(_V$u*uSzxn41B6!h@ECuei0t{-kEZ*=Q}lQzm7p`EC-2^~P62cz zGm7pW=?kd&k-u}`QRlY!0LjOIh#vl6e@VMzN;@g_(Cmm;-g)3P_eWN zu0LA71Xm+62got7Y&e+8ZvpL`y{{14Pw71#Ze};XpOPF?A1zGWTl6=iTf~$li4b36 zAHO6c1Gu^v_dl<&sf#N?afkpE(`owTGcOrFN^6`v(iSLtf;N|llbC_lBN*G3Ur{0VOzQfX#&p^#eRp-sC%^ z&&<{RWjKi4Ig;&01kO_~UxHd5htPt2J6`-VoWCge{7`Etl18zP(DYnCkooQH_|#9A zDn5CTsq9=avp%7X70JzxWucYXs4*DrzGzxu&um6xDa=f7XH`nPvjuW9BI)(1l)fE z>=u4xB=-IoiW)AV*(q6hw=@dsoW_<%X(vHyd!b;F9zC1msOB;+{Jw*jB@G0cI?}Ji z!m8Wey{?e7SYDOvdb>fDUnXSoFNW%o^uViqE&H|`q(`m<3i)vXfD$6?G5HL#oSV%d zFteD-W_lghBl5%pX9AIn8ML4{OI7aljpwlvAj6PQxmA6TAV3(}CgroUGJF1|9eY4V z_f|1i>7ee#oTLMe@`}XKqPa6aOI2Ra+rSHvRAQQyDcOjNUOHNadwGUMt`}V9_S7# zVZAsQmtTj$^&URNHF7kPaQFwN+4xF!+6I)(6o?EloVnII6vEB&$9^Kl_sw+ko~(Jj zzdVE{V}nhhI@fLHxI8S9XEf>mb)NA$epQV48%6n$Y%OwL2&*N&%KkOoo1Ccl-@L@~ z<>zCBZEpF_1T#t^zZNdAn=xXHx^pj&w*iW(bc#kIpU)3F5QU$^N7~7umgUa0 zqp{k1ee!F39No;xQ!uAyV8~!=-;>@Vu(%pcqTPQhka@`jwz~|q zGn(K_oI2nF#b>v`E38JFRb=s8IrCxgKc59oxWAeljzs^t0uM&8@Dtv>2=Xm+`#K8Z z<22XSu7~1?q6zs(0_^K)#L|4*&qVA*j@6^`!wUp;{1#4|UyKhjGD1%jt}5MBc^_71 ze>$Evs>NElC5;=+Q3+UD|K0MbtjP@l((FOkHfn8d?$&&MF+&WI6qp7Sjc zpwu(Vx}>HKE#0@GH;v^AnNe|Mj~Q}}8>(UxA7vF`maQh|iq(18)X|Vl&l+6yeY+W1 zWq!eGDlop$_kP;6`@N`#jsd8q1m8|Ku)K=OT*!=I3%vh|E!|nUTnTP>inQB8SkgMo{3oB2EEBYF@Ug47 z1(+a1UxPEj-=4~e#hp%wUNzWulX= zBR*@7(}a~waM)Yl>k`j1=^00C>K=yEf?70LB-icdw157Rw$%&k_Ii9f>5w;-b)nxv zix90*?|HrKblY%{a68;@N`_TnF>3WWk;6bEou~d~2Zt8i+F|{gkLo9FfHHR^jrq$x z4-o*aIvz_QfNg|2!2V2=ERq=JnhzXdM2%N!2c>|A1>n+iNipnRl*K<^HuWvyM6vXOq2ht#HupA*_B^K;x+w?%j$Z*G?~>&vt{e`1)x4~pTm2nocKqw z_RxuIiAyVQEi2fS6Qc&?Cm0bcL7adezwClWhMmCf#uUL!lL0XOLGrPOrNehgu*`J{ zwJ<~ayZI@`nJ`giPI za#51GH?s$0P3*=t*3#k23I;df>Y^%PXJeDUc<4`)8s7<|AxuCs)jV^cn=c@B7|&$z z8&>hUPqkJ$1*zgF3cd&oJ{KW~p2FUC&!^6{)+5Ij6C_7V1^h|FS&W7#4^Ux+$_KfU z;Lw=ow&8NE5%Bq)ye}GC-y2+q5EZ;Dr6ceP{~F8EbnGAP{cS((-g#&jrBN;&-NO)0 zs~mF7SuuVLd(CE7<5G6iwmx~mms|XRN?UJ#U2!ewuIJpgty`qbM*M9$U&?Ge?0mZ| zPcvu9YDP@m^0aKbn1Agx0T3tMhq~Wcmkr_pvNT4aV#oO!n!4mLtGXtQRZ(|lWv#5e zr8GLJeOzNB7jO z_J}b9w4o>oczVN2P8FNMQzB7;I-YiII&;@+d1Pq(TBZC7ZMMa7$w@XC)ksks;b4_4EpHWUMN!nH9iux25qrQDfXa*+F^%y66Dd8fHU`^($np!V)*<)o|VZf z)z;Zo(@*{w5;8O=A>aF6?#ni*X8v2;h200I)F_{NOVn11xspFHoc652;Yf zE*u<5Xui*E?8s1xFKBR*H(nx>U0QuGs@xQM1|mfCJ=PImX;Q?hI_TQ510K zW^lE!zMaD^u>D(-OsOD@JObxxUz5uaPKG>(^`h=OmwxJE+5-2Y#yJMir|&;U{U6Fv znT0RdLz68;+e529sg}vB0Rx0%U#m?nP-T|VwAE+cxtf^>=9QR*A4l@Yb6WF=HWB&h!aB2;8+C?5xfX1yl9Oz_km+dE+;xk{}N zho)R9Mw#ue!O;X#EXhJSk6bN!*_k4~$eik+9%wdi%0Gp?-`-YN+|&=t*@EJ5uqNQc zBs`%e1nf$11x46_`Qgkz#+9?Dcc6g++Nx>kP|UXPG8E*!eD_;MAh8y4{m^q5kq?`z zH?)>fg0s5U57$-Gr`xwUfj1@wajG4pK6}{l_#H}LerP$D9YQoLveL7ZVV$|5{&)V) zj;C0A&+*LpLwf|6E{GdjyJjo|0~_L^Rbp(c6~;%4LB(F?US`M<5iiSn80K)4?>=mE z8OdBguV_3E{-9O406i87CBKoALm?R1^@J_}r1npJ1S|Ri@hHbJ#x8ajwrjU}2hZqx zYPhGc!H_IOC#baLaNn$0QxFp=Whz9{Fe&ii)ABQ&O$Q=MhmE{0O)@lTz=3*jC(eJt zEXdTM5&MuM^&qqz=*GWulEdZjHh}#7{Ov}M$tVt=|MVRhO(9j?3L4yhayG!F_0^dM zhQa%pOfv1_xp?{ufCg^ET;sBMMX+;^#a`AqZoJ%LygDPFwdcMK=1v^cb!~u6$dy~@ zo@ni1k1uLl86u%!iU(*S1+x8<+&VazMEcz~rKZzXn%~gaKp@Tv?2}|9NTHaTIce$0 zLY~TE1P~8FfD+-?(#V{{Qw|~a?x6f$y~W&XIuHjA-&~yK$SL055*)0kmr8qF5Co=8 zPXz!&CnX~s1E9Jm0SjgWAGfZu?6bk`p<-Tb*9k>2Pa`RCqVYxE{ z{PRqF0tnAd<&yaRri?Eilmt8bL!OqjHW8sFbIdlA3iUSjD$aCqNn~-Z->wW8V3T4s zdzNEb><{D%skks8ClL}@SbLb@&Zr`yJu8kA-;xaL@b3;3z&;!&pK7H(C3I~PQFO-c z2%~)`mxG&JiqSW_Z2AHSzLX1!M##Stvy11aHcU+~!hwwwlt;9Dq5frCoq zO)?Wt*vP`7JIYvmHdp5@NI)`wZU8i;gRLOSMy!K)i`7gw8t5ULT?(v#5MgEIOo)h? zVdjg^{dH0b#Y+QefXyQA_FygV)GQtf2Ef$pcXqHKhpGm!_LBC(|Fi*z#=oj)126*q zxrP1F0olrJ)d(>_IMhWnsJnSDEphQX=ft$Od!(9mAr{2lAt3(J2J$VoPWHeA!>hQd zg39w2rBM_q zr`46YfnAj0Tqk;~)_Q$IcU0tTk`CcOSR#c?; zdAlRcDYYXoV5|?!U$MvGFqj*5!C<}3!PwK&^N4>7T<=c!uhVp5mDvzo7cO+lca2I( zMEA)Dthqyk(@xE+1`$cl5k&$btcbMYAPhPzvSBd2I&nCdlGu4w$Y3utw?#VfW(&J^ z7>9Te@a@F0i^oL!!z1M?z5atmhbU9Z9|}Tfo4Wr-aF%Z%AP+JYA{Ls*WY;>u-eFK% zr>+n-A0}KomrOKEW>^cN7>{LSs41Is09x1j!7wN=!g(9jn&I>d0HfSBG<3s9nof+g z{141vU+j+O<&j^wtv9HOdjK*Rd(k?jre7|O4YE6V1RrL7%brUVWo!*Otkl;Owp&=wNpEH|?iS#QSR;@w0<+>-qVar~C46?eC8BtB7Jv z#JsM5y{!u1y*oxDLq{XWf09s&vx+)@?|+_XCaDGjf?MTh=mMOfVg1@2v|G+H?|a%` zRowXcV#jyF?~z7r=zA~#=m`O0cfXH&%*QW)pGfr3_LAqk zgQeh7;)eI=uh!d@;@RwwK)5zTEf*m;#?>RNG@g+EGR-XLxYt4tG9#lCwP>ssp#$d9iqjqS1qk?@aJ zUjgb4rO2?ow#Y`z^;W;-MPyg*Q0uJ?kG$G;voZ6Y>+RCjT`WK^k>G`nr zn0%1BdQ0noAhUH5LwS6VXz4V;>cLRrHYRI@nBX6@Xv>IWeWuf0Jc%D1Kis)lFq@KC zVW|ROMYW5w53S0$7ZxgZ?r-w{A_6F{vGJw-6kN0<@odeYo*ouivOY2F$^;`-rxlvj zx0AX!2FW``eYk@XG#fY|e9;qt>9FR4YO12a&&P!oyFq|y@Mrvx5SXo z*I%%KH_vh!H7a$Qj$9*5FuB{}vhi1&fDbepl>cb~2%s5^P=Vf=h$ysw?t;{XlEnTp zBHvs*9JUI(!(@Nc^3MM5xwsSL#iz}lyYsmZx!)yl`IIR`$H+O`lPDip6SNis46xyE+lLR$Hw#AT6@Lole8nAFyin&ZZ zZ%s(sU^~mzn69yg@Rv%Xx#!rcA^l_Pp=TH`)of(=?6dm3?E88adb*i9Q9pc-N@MQ# z3tg(7L%p?Yq5#y_(qq)09n86<(_+2Db=fgR;oeGudZX|A`F>~jn>hd(PM7Odz}2Z@ z-F5h)sORI?<(TD(m1!AYIo~)d8xwh6uQDH6R@#Qo0%aP=ncU?O&nSa2KnPN=EMdn# z*jT%RbW0Y63rl;9>7ku8a#F^h`u3YObfJu|hBcVs!Z6sEB5{NazN+gtEuXU90Zeo= zBL424(gtx>D|?fU|7+{2!!kl%M{oG+K{-k!jK{S`bi7BC9JZvT^uX=w@Ur zT7xWxR$-$NjJ0hXKQAl|1uy&78{+EOjlQ-!H5%6`KNuZvrTSKW!{C4hWVWBS@|48w z{K$9$vT0(t-JOGKxE~-&08gMuw&QUwfS#=U?cj4CeUI=bodhP?)u%`xG(YK{ir?1I zc&JeJiRj@XA6m8yU;LFb6fY1R-W#qqSE_hi^X!k6QNYCvz@cqvx`_wkwK&vPy(2%)!IDL`cE9PN;wvBA^F-m-GCi=AG zIBy+;fDu)vnsikve(?<(q%^$)+A|8G+b1|hA6d>!DqN4ISv_?U+9n+;+zargN>p3{ zx5z%==2u86V78Rs_x;)X%n1~^KSH@$W$CmzQ!{G~8uFE3Jo%|w#TX=)&oC8M0!vuVa; zWU!G|QXU8pZdwiRe~vrra%r%{Z!;a+jQ|2-IMVA{(Iuse0`9S*ONE~zU*Q07Gl@M7 z2;LZCwd>s8?XPwH1qwgTzcLVH?Z4dm7FuXkGky(cp9cvXMV{5$mn|iL4Z1b ztP&A3TOfMSl*b!m$qR%;#R}=*ZH}Ly>tzp#@$}KfRtu>Wwc_UH!!j;6(e|FUwzh?Z zM+tV8jAKgRL(2yy4&hcr;w_&P9riD+#*b_UzIDP3vPn5a1%;*spFIAZf7}ZuWX7j` zjsBD2tFFkw;2vCVZ9MbY2R9fU2zyWJ4RPG!THEg!pre2tc=6m`0W9}ILTzs;!!|Ek z#-@{R6}UkelR_Y(feZCobq4p=+) zEK@d?xBhHiYD1Y_v6$<1ALMhgBRVLZ-P-M`5A{Fcq(2G$d0!QodE8Z}hiq5!XN;l% zMk!iiIt(<>+sd=*0i6zdO(r^h)wk((J1<4lR-Ap)Z|l5hOa_kS3y2Ki%f&mE@@+9l zaj!nHI6WG?%SAabC&(K;%UNiX+F~S40QA<$Xp@U=|BrV^)n>GMuDplUSHV2Qkq6v(%z~n@5Y9Ya(R@Akc@G&!48Zydk}H&lIaJB@cn~7FAN=I7DI+ z8wt91<^1TJN)VR##<2}3$1j|QeCZ7~w@Z5&s}Nm`k!6#Li)%x`)q6I_cfu5bPqitG z3dW+|-xXdd1K-{cajQWE1)4UgdSgX^hh^7}8fNQmS~bjeu%khM@@k&F8;cfuy{sMW z2?%E-XgYWc>$PFBf1o?OO5AA;3P5jR?Ia}CQ z$;imM!(V_~uSXl!R4u*Wf(oyTZp<7uUb{72M)ut6~S9d(!%KpPlm9c)a!!ucZYeGT= zMS!KtQye)S+Hil9l=nRGYqJ!2wB>Xmf|#qd?C!$@Dwah$71K39Nj*YU(+2m+JI@K2 zaCr$d4{_44CVG5{MdL5bn){}}s=ojlAeeV%P&~DomtRK;GNB)T9whkmLqN6(lZnmm zG$Y;8}kbwN}tQ}k@4_zSoj+5doge| zu*-JCFfB%td*r~X`$3}nq51A$Z^dg3;P-M;q5m%b!w)sA4J@i0`h-)A=)s^q7uP0(YgkB_7qz%M zfDtpL687{aEbQj#)0+b(%`aa9t4HV6@Okno*Aui$`hKeD+rMEnY?Zn;*`cWDZ~;8^ zcwtK^7u~wU8XC`2{TtL$7i7)0E-6HFL`UT;QmGX=~CE^c|Y$o(WwfJz-pIkhvi!l6QIWJdg|-bVWV z)wS2#_h3g(N`3d!-FdaX>(Z?^k;K=Fc`5A|r`8 zl`B;>r84)HV1b~Z7%AVe*myVuVz_zf%{!?A`lRnWxaEQ#)MI<$D~>3K;(~;h-H#H~ zB<8H^GnPcIroySjJg29p+u>u7%YW+htBt^ zOsJ4n??Y)*n2Uu6PRX$1?!=&>A5@dZY=r0!tIgTk@(VD{k--?we0?&d0igWC5j z`1BVzQcX=DxAm?9lKD_z=VyHu2>N?+PI-IMZx{swf#SY-9~Lnm9@@=8>ZHAuge~uW z!Y)MHJ{B$4TBM&1Ubt0Ih+VcW5wD)31|1V~51Co-9Tqe~c`j~`S|-rhxg_4K0!(Ky zGHe0x0U3REbu)Z9o{0S^uiK0Yi$j2`A9O)CA~Y_;_FRtQPJ_cfi`9#%U;JHlYn5Zz%* z#O_FXgZ;vyTfsi-Ic5+HGT(HVAS0Rz{IfVUKEUL439;bSJ6&(BMIz;?Q4#O6O~`OS zjD!Ol41KNCW859b0CDY#V=~}uC*25rli6%o^PvHKB5DgfJ>Ke5TXxVvws_!ZN+)9eAr@=YaC56vygYAIXY z|1m)F{ZWHWXx_)&*metbNA-?m`PB@a?D}L`EI=WPhM$Btv))|6#UE$EP94b2p@4E9}dc6OFi*L$z> zr5Q}m)ycsjbLxO#*KIZByeSkH0S|vM%I?28VD+`)tZ$>q3fctJdPoE$WxaOF+Utv! zfSoj~9v;-(e_>^1P4`CCDkc;p|N3<=679q$dN7Q8g5Dt#KGVnQY*_-p}fQ-&iw>BduHE2E-$=;I^DMLhO z1iRlY2SgVK7tyhDSvO#=?|rw4MeLbUi~RA58TM<;cmSio8}K4 z+F2!@NEht^c-;dj?V+<>l?^1*dn*!cME44a4{mgjbY6 zv5=3C58oeS_wyc-3*>iH<@B5YKRw4e*W$RB9VmBEo z;_#6#i>rcG5gx@o+jeKP&sFi+&N+l&u?1&(c1Fxz1w&ewBMG<^^4J~oJ@d+|6PLU7 z6Icf^Z>EOqYVtK`MO$y$gW|_;$bC6@Tu<|5J?U(Qa8u< zQrx0$yY|VuTbJIz6h`&ustuTHfD_s#mI>LeZYi7~OQqd2wj+fTxi2xE1~CAfx-0eQ z(k~-(h&fw5j#Cgx4<{&KOy3~=kRBPTdv}ikPFG_cm!k*1A6n5&fS08PO_LkW$k787 zZKFii-6=$ukuabV?vSW)bC#<{Otc+M<+qyd)JEY$8ku7oT|Z)Fp>a@2cSEU!Pa$YN zb0`pU*nSUJl8a`;fwXSg=j)fP)-e0pWnEGVJ6oS#Ak?xrxHyI#3Z4E{)*tlZOWeyS zDw2Wrk+&pSKJOI_0=BCPUQmnD$FVp+H?#Kbv8yl$yvYYhbEc!X+ZHdNc@=IGvQsoZ z$T%Z0!+5^l&9e!4no`}W&GGE+Hn(P}CkX`x$DS>k8pu7hwCiKOn7Nr5EAu>giAmVi zoR)UI&xCE=YV+9((A!krOve}*j$7aE#oOEPr%}YXSRCM62%sh;jt)h5Q;&@w{j-15 z8jUUh|J-bQk#>Y~zu*)aq2L$3YFPUzes`}_pw^&`vMK8IFb*u%C?Y>RTIQOo8S60k z9JmY2eYkh4aX{U9L$|z@GIViz+Wq)i5!48|S?i*RendNMeDG}PM(s3Tw0ZU#O|AmT z=rUZ_YS+{2A!FZ@ACF7^fOt7315ESOOE(X*Sk%{IpnvfWK;VW2VjbEUM2`(Htxdn6 zNrNDw5r8S+bkFeTq0Ssa4aBDC$v^wSTE@N%f;rPNMvs8(R{}0u@Q2x zDMtL9JR>S+f4*ujpw4jw>SVKIl{;at*K98W+IRN_>DD73LDw@Sa|V7Rr7@EJu(d~D zn>7?VbCgn01fusx;K2^$VXSo0>v;bBD9hMavp!p>hXT}Y(1H3luqEbodOVVVs(?=p zJ(7!gBJ1Xc_3L~`4rlDX(pC-*7K2HaT~JT?=o{96l2#em2oq@)+WP*4nU1jlVh;+D zKrVgxk{fts=rzuNan78*=|d#TN)&m?P^#Z%3CtrP57_RPZfB2liWiH#Q9xQk7{Gl_seX{E#9 zVmliV)c40VV}3VzZ9uI-rQ?c@*Xl&Y-99|BwF=Se(y}t1eF12NQK}e=7(+L|)ny&D^mh0N&%>a9h@y0& zwphw-{cm8u^Rg0 zD~MDy&jdAspbj`@-FT6&!6v19GdiPVcr&J>^MgXj@;GGz*U9+aFUBNO)M9XE&Oj`u zu)$CEvfevg`On>HTSf8`^*yZW{AfhS*uz3j?l${F$IOfn099{QK6j)vq>A=eU~V{4 zJnN6ytjF`3trj3&(p`yl3hv@XW=Y)5`nPl4pZ4c$Z0vb>TwF<=^+TP&wE&K$r~)tl z8(@YSV1R(OFMA_Gx+7xbe%{}^sYP?xF3F$J;7iI0%C{Oz?dfOj(F7oi&RWJK5skl_ zVE{Tr)?P9vcr_K8@8mjX=w*A+EKhwP5v8B9O6&w`G&|p<`w+1Lc$+ZjEhH2Mxvpw& zm#!4a6jrClfbQ+>q5YNR`{S@w{beZ$k7Oi;_$E$xGkOCf(iF7r9&XyPN1NW!IwQnm`>QOFHgX{>{&y?Hk==6Ad^ystK0`nrIe>TL6a7q)pQ`31?@mPB| zM}q2Tpa%kDB5MeLC=6l0h6W;i zjv14@1HU$pe{W{SfC*w|=-zS3rT02II*L~?=cJ+%Om8#WTjf(6pl6O*Y_LP_*XP73 zD((r&`cK-%5ABe?7++}$-~+9nUsJW@8nv@Yq`PaJ$);J?+Dx?p+in6{+gx4Ylat&w zc6KK#HMs@T(PnQ+Lpg?_5|H2|5Yg!>_SLDxH%THxjY*0ernS`N*83`&SJNPqpJSy# z`GMb*_$RDS(ACAME2^@kkBb0uDsOQv(7H44ARF7m1@d*`FObP}|AxY+%(1;1-C<}r zJ{^1fjlX2fm|2aUIG5K&8o?Wj*O{n?DqW7?ci4E(j9RVR`v*d2zhbNX7)jX>@vgKM zx`sd{WoJvO7LI@a-BD3d!OAtms9=j9c$wZ68Ku;3t|8;C+q*+V_m{jqN&wp~tSv@mW#P=k|vU9Ook(&KQ!>HI!U|7yaY%c!8B$jh^te z#WOf5$El0-26r$NnH+q{WgbOTyHJfyx|l9SdZt~$H%Ck|a*UM7Nrb!~6+FEQu%YC!MgFk_B2Bvn503GtzW zo)brO4>$`igBxJYKvK(v>}r6l+)9=v@}*?8-yZRse6`&%$48H=$v%xwp!E*(xX4J? zlK0kB!g=`x9e&19_G%X?21Z6q;#GTFd`bj5##OE!s*cnk`-SGH?hSYNg}V7wxgh`# z`BCxV7Ui~v^J|3yFPmaVi;bdpu9fWm@Ai zG}_!eyMqabyCNhd?aDVo#>WIiz_bPI*8^f!lLyv)U?dJ5u7 z_LHbNaeEVCH&@<6Ep~a;c4v)?_KwGutE)ebp*P0s?z2O*-y2!kH;8}-T@K>(6@Yhe za#BVV4=t#u=vnlvfu7!ij2#y{XN%_p+vC)pgPz{|!6uo`QxtjxK%Tz+EfQFAK&@?U zvzSq%roy7pB&CCxL3TRawzkNXHY+^wr zxR46C7d{;8t!RHeJ1VTGpfOeB^tq&TpetJ!bO*njp(??6BbfWteE#* z4w11jvg^FSQJ+~hGMOJ}7ZRvPyuP<9`1503zJ>!H=DsEilUDJ`H)uFsT>}M=e}9Wt zU4?N6aYpdaPJF+)IYw4mAnUm@p|mPmD&RO@WZTV5-+uGA?oG7o8o|FUF3|&nUyz%- zociO0b`nuqRqH<9-?>N1gP#xdF7lo$^F~a0x&@-{!$P|iJUj$If49y#Ie)aaM%WX- z`h9Y$fx4~RBE>Ranw}Sa*v$XaYuP!y2s8%m42B9=TUv@5F#oLG_S%4(5zCH!2pN?; zEoqeZ3G1P=DJZ0?>)SV#t_}s(C!fo3OzYoL_Wc-b%pfH3o9_-VmB&>`c`kQy=XH2^ zNOu%+FE#QgtD&+P!%X>8go#<65M$=p-r?UUBRhcM9R?FubOMne~c(0Dm?e=lF< z;$XpdhdkJ7(5;=a7@iRBtdD6RF_M#O%t3dJUyMmW%+4lB;n8F{-~MtwPXdkIltJO2p(?kw*4hpfr!s_XHs@undjPV)OAb251GcY=Wi>KFO z2KHti>H-DzZE0)QKkPHBk;8TulVA^rGbI-6sN{Ih?+RK(qkOo!hgTxJ7*DkUqukcy z?Yr$6i8%GHnq{}WVM4MO1|3=2MytLjpFe-*eM>MkZ*a{MI5TKL8uWYJqYD!lUR`-C zSzZx(@gJr0U&zO<`m$`r+Lgnp#?f0sGcLkEUvB zJPw84;zmAtHs@22C@2bi3%BsGVNDny5Y%nAf0kPM&EBl4@i0x4QN$o9vkb2e;H9P6 z&lyp!u5pWtemx}Xv<@Pu&vvL)rX{#1jtWk;q z-NjsD=N4Mffcdv;!LH`@cjmb<`fJj}mh@HAs*WpTOBR}vT-JCUF&^&L#w*#s&jxm+ zDzH7Rd{kh$#ccMm?w8{6J6+~)-D~T#wPfu2wY0QoS-G%*aox52wf})9KEqaWc4DH_ zMcLW;?c)1?v@WN3AfTq>yHz|(<}BuobbqT0AG45@sirQoAfPOizy+_+?d+6PI8{L7 zQ!^5Y1Rc&Bl)({xetsVAM_iojBtM~aL^vbmobb#!lwq77J~m7>l|HQ|EH8I@X66Y< zV?z6D>;*-bggC#sirELV;yhxHl((G@u{*!doS&63uzUv^ASfuvBOjxelAg_pVL?bp zC`KlZOH242E|X(&g`OEmd;2Y-VD4H`lUkAu6y)%dqDnX;T+SGDZLtI2&PyOqBllk) z8W`|&A8pwje2^e1F5N#oECrTe(@)wLf+{Rwy;E+H-=set$_l2hOar*oS=0$UK`(i{ zKi}K8SF8=`9FNM>%;6abn3<%1ak{pMA_p$m571CiF;rrb z4&gELt}KcJrqzHQ<2r1oWA_a7v!^~xq2%)w2!wy4C?l;kes^GvUsZt9p>Kq`{V2Bt zTCFwwmld-yb-K)4X8Fi(4T9!H-&sOjcIR5{3cKe&m0ro%p{#RF?Ew z{Wp*8K*tiBkYHtHH-);cKWQ=S^HYW%F!&Qh_0XdUVt9CX=;`S#_I;cF{#BElT>pf* zft4u1&FWRsEw?Bs6+>e*$?HV><=Q$1?Gc*At^*l*mo9Ifqo=CO^<@v99v(~yOOdrz zDV%TKya_3=laGk&zs{g#X8sV%K=?Xt!J9tL+SK&EaUHtuL4g`>9NckdStI3i``A6K%c$M?fLe*&l^y4%n|Q9ViGe(ff!%UgY06SMG4QbBtKiy3fSsHo`T)v0BsSo*k+ zbk5#rEdUiJYXBMLr4`qBjVLc;RoXNpAIla&BYTkv>aB0~P_5?;u zY)Kw)$E)X{6MfhqfFQnJX-jUiof$luCPY&f+CZ}GyWLk;`DX-J|Zs84`SFt>_E2`dcI}I&R!x3Q7sHpC9!8_%Iq@% z1lv_E98)1GXH5KAqOBj-&99h-m3#Lq6S3Y`r)>p-Su{X$w8Kcy~@E4F6ZbPG$di>() zILg6&-qEotBSqzai^~_6;wg`<^YQ*&fmEQuyI9SXt&`Uze%DHEPsj-SsH2k-l0P)x zKXdjZo;sN6@BjT^Ta%PToR>)odQ0}4gjpW+NlPoKb7%n&r_waWN_e>ki7kmD2ZjooKa!sJ|DLLQQr%(SEQug+nSekr<8<`owG4D8L;!+Z1l$dnx-8!km{faQ5;bd9JtQW~nWi6bXlSu5l$H7vePsCg^XKD9Q--=J>DpRa z)S~{i)zyRQg(x1-_yMvZ@wG=?ox(uos{%r=jJh`kso&6F>_RGw|Ww_%;OebppfoTMf!aFk+SAA+*WM< zZ@=)yG;3|xz0kEp#^R!WO)&Z#CRQ$Io?laJyyF+ei;U9;qzw;r%*nnGa5$utVGdlS!{E>ev8t-dyvTdNuLbLBK=2mEsp6YsN=rG+ z7`g#v_M3B?f|j*z7R4|+sw&LEwKbSnuHwf5I1TKd%gT#=k2WMHTw|L!sFQuREX~X` zJyp4)dbHHl^&vl=k6F)Z{sXZ*cA}}FD_YgTqK>{u{OxT z#(TKvy1^ByaV)m8c6Z=BM-l?k_V@4K5*=RZWym|Cxq|w+|J*470SO_XP{X;2Qlbr& zrk^%dph_lXRExVO#LS4iDot-NjiI)E)Pe#{*>~y?5`ut0A|fJ~HDO~Bjkyuc21iWl z$|>u;)?X}F8z<^)@UyQPg+K=F{ysByUyhL)c7&oSnIT z+-)mrCu*na>7D3&{&-^>Tfc;dhsVk3kVsKi$A1GN(o8tcSjMN>4|0F9SBdu46#V=5 zP{<8}M$*^&1`b_Z%zT}6dVpN7O&a?$Te@ICJ?C_u19+P*TfH6+n5Q&Ql3QPR&1HBW4IO#L%R4gSE}Chido2S7EAu?lYINS{ zsx8t)V(l9@-&?^t_H#v#P!FU+qYJ&ghZDIG*0=`}l)~QgUGb553uia?H@Nq^+-G)9 zm%A!GVZYp;DLSU|+l1tY^#BRFabkGp{!Xadm!C9`Wjje zvqvf7x;;NZ`Xrcuy2@v|aMgJCAid_Vm!iS(M)^rI7Iln}Uy@E>VEfYbx!=|42c_^l zIuDrIe5=U)_V@n`_oarD--}DRoCVCC=DZWd)x2J#8FyDOJQ_)HRLqtk_)$S&1^k?% zYZfZv_Q$v*(2xE~Usv}xr~JnV4*h+Sp<&za zby_PcoA)Ic0FYXT>kd35^R+ z#U857k3#4HRk}@<_;IDdsUxjfbTN{VyvPqi9Fc?H+e@801zwgAr>7Up<=m5Jq@&v~ z(b5X|&=ys4lqC^oJ#;{(uyTjn-`_u96>yg>R1twk)9!g9`d{QChbAP}7}EAIS7xbS zGnOF|99%MyG?ftBd_{sd?1`$x`+`p`{z+RqlgF)>yTd<#nSeFZ`DU{ReF7^hQG9A@ z#<2d_DyC>f8>60t!2?!dWo*8E!1o}(We94%wafZqz6{uL?Y^c<7) z`sPk8akc!BPvZ(@`LC~!IZN^ZzJvS5!h*T4Dp*?D)^=0ORq-Vg8ynls{SAE1BH*?# z+Kue$4wgRtdD;)Sp@uzYcX#-Wn?-(paWPv0lix5L&ij^M2K?)v3kTEg@B&|c#YaHF zW@coDhJ^e|Oq?K|S&D7;5~_wgqQDJ~#Kc4d*cg0nh=GI^tFf%;dKP|wW>af5X)| z>fx@&YRsrP1-03u^c>U7+preunW-C^Rc6Df8iXYiq`UIpE}_rGtmlB>eWrv#pixs$!dkY{dhSz~=0e z&d@sx3kzi?O+~$h(b3uIdG~*X>YkpS)+KkmfL5ul=8cL{Lbba!H2)z7)z)H?HFy#d61#{(p3exZw-kB@h*yf$C@UgJ7`yuz$C#DLx zjoS*n4b{PS?cZmWwPKwLo&Ey0IT=|9rF2%|JEnwRM2Q#3TfS6#y^zujO6ku@?`Zo6 z1_oYYW4w8j4^#^<)r0{+^xza_;-~?WN?nfUFLV%>4gnvi%9>JFm7TuSRxa3cB}esb z`G{wQJW-dei>d#URNkId#M(1xJN{exv-P7?o*C#OM9Vt2wCsqw#PANw^bKqG*<0^?he-0SO|K9w6PT&wl WhsXTh{gn?O;82uRl_`I367oMD=YL)R literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/card22.png b/IPreoject-CLientSide/static/images/card22.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f54ad71dbe4f31bc6d73dcc235e58d120555fa GIT binary patch literal 139429 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 FP^t$ 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 V%lusPwM+m2002ovPDHLkV1i8dMgaf- literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/card3.png b/IPreoject-CLientSide/static/images/card3.png new file mode 100644 index 0000000000000000000000000000000000000000..95116e96747519306046371754660de22a08a316 GIT binary patch literal 40180 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/card4.png b/IPreoject-CLientSide/static/images/card4.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ebb78c3d728b2e4bc4d41592d59845dd4748f3 GIT binary patch literal 43271 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/geometry2.png b/IPreoject-CLientSide/static/images/geometry2.png new file mode 100644 index 0000000000000000000000000000000000000000..d43966e05f943614a9b25746a660cf156f1a2f66 GIT binary patch literal 2138 zcmY+E2{aUp7RSf-QIXwv)_DwHqp?($FOFyUY-5HPBqKu}LQ|IF8-#2L&(cgLGKj`L zSw=M(RCv-%r1Xp>O!ZBwS(0tW5c7PU_d4Hq&$;K`bI(2J-t+sPdkcMiJe2n9><0h< zN^nnC6aXMq{)a2b>{V!Ip6>32W4_1$H}Tdsk1tqVTmQ2BbyF^4`e*8ED4$ZAN$EZBM#;PVyS?Ip%J=Jx|vS zbuzuY_4Chl*En~I-haD>%$ar*E_#IivJEmSoRm2V_b%#~3#>937anmvim-Pil$#jx zo7J313fGa7{iGU3k~*wta#Z?fJm|bulm9UY>OmN|wMt2if&KM)Ty#n#weBbkzr%zR zl+@t&>yJb9j~R;-p56}mk||W>lfkjH_AZjOlex%!xFN-dqA%5y7jbiGHBKCC*PX_Ol&NUu4z!_q9(BR{b~xa(J8x5b^O{cGHO95h zU$%R_<$Rs!AhnTWI`t;6KiPdmrzyJLYZm*m;{}B#=?9L|zqYyC@b>rJn>~@sud#Zi z6H}CL6eTi4Fw%w_hOrCv-0`yAga4Q5d#vWNnC=pXn<$ia=7Iv6xVh_jOJ7J)@qiv6*AvJsdz zp~^Xva;Gk@K1W!kW{|X4#(VL_&07{rFi@Q>qAa!S0i0O~`^PyvzUD9v9^x5X*I6Ko zB1bfv`E~9XkKu{op{mbJ8A0jY?hq|r0W6NlxgeQ2;22qiI&636bT3+dj9S{1*xY#O zi9H#fNDDdRR~H&}lIwkBCz`y>7iJ=fLsjaOt-*<9OAN$40#yEnqG zXDbLA$MV!X(8F2eT^8G(Tqt6x=3E#T>hD2%5~`^yx69j*R#5Q2?oyK2ggKz=I$CyIv zCd)p_eOrjULs-RwX68SsmPeep3dB$^&Pplss5vmezNeew4NuOT3kTSCRZoHsq z`=B~l&Z(tJ@}0P)v}l5L0fyHap|9B2txYy*XCp`9tidO`#TcOZ-?9~{-46{Xe9~JQ zXVS4y)?m|dEOaU2ME;2R=`mZ4fNkqPp#lIH<``yX$XzF-cYMPEmSMpJWNTJD%@(j! zP2q_Mp%K!1QjY>e(xmu)Oz_c{XU^IndXlp>8YAsoh$nec;x7zko3>#2%05S-{Qp!Ht+T=}L0^{vV| z4*OW-)PW;#nj@2IOrm~WmKkVnv8ztb7Vne>*4)8BN48+}SgokvI%J0{Z;v%$7Fd)3&-Kajzxsk9j{x>*0^`DY1M>VG|uhGOy zJ_&fHe+6aO-b4Q$QmCZCaH6+bwr}85K6cJy_~|jI`)9%pxo|0$07Y9xEb6eW;=@CX zGWC62N^$R;?=|v_mDNt>-<3?!m5mEmvyGy3<%cMd#?JRurT(J$6?6wyBY{rsgMkw8 zlF098R2lV`9z0c)nexKBF@UGImEYr}#)p=Fn_|mN`XFSNT|BeUR6MEX8f=$k5vVJl zJ%*iuKemZmI-&@K?#A;5G^6TZNNlkO|1_Bb#o=t+;8Xfp4XO6 z(rrRFBaLTPoisg}_&I|MPPNJ1v%q06#3#k0#^gg>*uEaJ`AkM5{KzbDi1KhQK409f nK1k$0#-e(%!?#|!{UE+8Ke%WWII*|&A0@b(k86iZc+P(TkKzc| literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/icon.png b/IPreoject-CLientSide/static/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce24d15c376159f75bc9d0448eac4a797e7267cc GIT binary patch literal 116077 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 Xz5UW!b_b;f1^khdQk48AZWR1Ko4-@s literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/iconG.png b/IPreoject-CLientSide/static/images/iconG.png new file mode 100644 index 0000000000000000000000000000000000000000..2f18ecb8b224be807107f7dd02f73c9acd71ebb7 GIT binary patch literal 117039 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 z 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/images/test.jpg b/IPreoject-CLientSide/static/images/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf53fd6ad702e992405b8a632e14c6a9bb7ba74c GIT binary patch literal 12270 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/static/js/main.js b/IPreoject-CLientSide/static/js/main.js new file mode 100644 index 0000000..4938319 --- /dev/null +++ b/IPreoject-CLientSide/static/js/main.js @@ -0,0 +1,124 @@ +//config paticle js library +particlesJS("particles-js", { + particles: { + number: { + value: 100, + density: { + enable: true, + value_area: 800, + }, + }, + color: { + value: "#ffffff", + }, + shape: { + type: "circle", + stroke: { + width: 0, + color: "#000000", + }, + polygon: { + nb_sides: 5, + }, + image: { + src: "img/github.svg", + width: 100, + height: 100, + }, + }, + opacity: { + value: 0.5, + random: false, + anim: { + enable: false, + speed: 1, + opacity_min: 0.1, + sync: false, + }, + }, + size: { + value: 3, + random: true, + anim: { + enable: false, + speed: 40, + size_min: 0.1, + sync: false, + }, + }, + line_linked: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.4, + width: 1, + }, + move: { + enable: true, + speed: 6, + direction: "none", + random: false, + straight: false, + out_mode: "out", + bounce: false, + attract: { + enable: false, + rotateX: 600, + rotateY: 1200, + }, + }, + }, + interactivity: { + detect_on: "canvas", + events: { + onhover: { + enable: true, + mode: "grab", + }, + onclick: { + enable: true, + mode: "push", + }, + resize: true, + }, + modes: { + grab: { + distance: 140, + line_linked: { + opacity: 1, + }, + }, + bubble: { + distance: 400, + size: 40, + duration: 2, + opacity: 8, + speed: 3, + }, + repulse: { + distance: 200, + duration: 0.4, + }, + push: { + particles_nb: 4, + }, + remove: { + particles_nb: 2, + }, + }, + }, + retina_detect: true, +}); + + + +function showRules() { + let x = document.getElementById("rules__text"); + if (x.style.display === "none") { + x.style.display = "block"; + } else { + x.style.display = "none"; + } +} + +// numberOfRounds.addEventListener("input", rangeValue); diff --git a/IPreoject-CLientSide/static/js/new-g.js b/IPreoject-CLientSide/static/js/new-g.js new file mode 100644 index 0000000..f8418ff --- /dev/null +++ b/IPreoject-CLientSide/static/js/new-g.js @@ -0,0 +1,230 @@ + +var h5 = document.getElementsByTagName('h5')[0]; +// var start = document.getElementById('strt'); +// var stop = document.getElementById('stp'); +// var reset = document.getElementById('rst'); + +var score = 0; +var elScore = document.getElementById('score'); + + +var sec = localStorage.getItem('globalTime'); +var min = 0; +var hrs = 0; +var t; + +function tick(){ + + if( sec > 0){ + sec--; + if(sec == 0){ + sec = 0; + min = 0; + hrs = 0; + ress = confirm("This part is finished! YOU SCORE IS:" + score + "Do you want to spot it again?"); + if(ress){ + window.location.href = "http://127.0.0.1:5000/rules"; + } + else{ + window.location.href = "http://127.0.0.1:5000/"; + } + + } + + } +} + + +function add() { + tick(); + h5.textContent = (hrs > 9 ? hrs : "0" + hrs) + + ":" + (min > 9 ? min : "0" + min) + + ":" + (sec > 9 ? sec : "0" + sec); + timer(); +} + +function timer() { + t = setTimeout(add, 1000); +} + +timer(); +// start.onclick = timer; +// stop.onclick = function() { +// clearTimeout(t); +// } +// reset.onclick = function() { +// h5.textContent = "00:00:00"; +// seconds = 0; minutes = 0; hours = 0; +// } + +var httpRequest; + + // document.getElementById('clickme').onclick = + + +// var card1 = document.getElementById('clickme'); +// var card2 = document.getElementById('card2'); +// var card3 = document.getElementById('card3'); +// var card4 = document.getElementById('card4'); + + + +var card1 = document.getElementById('clickme'); +var card2 = document.getElementById('card2'); +var card3 = document.getElementById('card3'); +var card4 = document.getElementById('card4'); + + +function clickEvent(e) { + // e = Mouse click event. + var rect = e.target.getBoundingClientRect(); + var x = e.clientX - rect.left; //x position within the element. + var y = e.clientY - rect.top; //y position within the element. + + // localStorage.setItem('xPosition', x); + // localStorage.setItem('yPosition', y); + + + + //console.log("OK"); + httpRequest = new XMLHttpRequest(); + + if(!httpRequest) { + alert('Giving Up! Cannot send an XMLHTTO request.'); + } + + httpRequest.open('POST', 'http://127.0.0.1:5000/apitest'); + //console.log("OK"); + var data = JSON.stringify({X: x}); + //console.log("OK"); + httpRequest.send(data); + //console.log("OK"); + //console.log(data) + + console.log("Left? : " + x + " ; Top? : " + y + "."); + + + if( x >= 161 && x <= 219 && y >= 50 && y <= 67 ){ + + score++; + elScore.textContent = score; + ress = confirm("GOOD You win :) DO YOU WANT TO PLAY AGAIN ?"); + + if(ress){ + + + card1.style.display = "none"; + card2.style.display = "block"; + card3.style.display = "none"; + card4.style.display = "block"; + sec = localStorage.getItem('globalTime'); + } + else{ + window.location.href = "http://127.0.0.1:5000/"; + } + } + + // var xhr = new XMLHttpRequest(); + // xhr.open("POST", yourUrl, true); + // xhr.setRequestHeader('Content-Type', 'application/json'); + // xhr.send(JSON.stringify({ + // x: x, + // y: y + // })) +} + +function restartGame() { + window.location.href = "http://127.0.0.1:5000/rules"; +} + + + +function clickEvent2(e) { + + var rect = e.target.getBoundingClientRect(); + var x = e.clientX - rect.left; + var y = e.clientY - rect.top; + + httpRequest = new XMLHttpRequest(); + + if(!httpRequest) { + alert('Giving Up! Cannot send an XMLHTTO request.'); + } + httpRequest.open('POST', 'http://127.0.0.1:5000/apitest'); + var data = JSON.stringify({X: x}); + httpRequest.send(data); + console.log("Left? : " + x + " ; Top? : " + y + "."); + if( x >= 126 && x <= 218 && y >= 26 && y <= 276 ){ + score++; + elScore.textContent = score; + ress = confirm("GOOD You win :) DO YOU WANT TO PLAY AGAIN ?"); + + if(ress){ + sec = localStorage.getItem('globalTime'); + } + else{ + window.location.href = "http://127.0.0.1:5000/"; + } + } + + // var xhr = new XMLHttpRequest(); + // xhr.open("POST", yourUrl, true); + // xhr.setRequestHeader('Content-Type', 'application/json'); + // xhr.send(JSON.stringify({ + // x: x, + // y: y + // })) +} + + + + + + + + + + + + + + + + + + + + + + + + + + + +// // Diaporamaa : -------------------------------------- + +// var diaporama = 1; +// affichage(diaporama); + +// function boutons(n) { +// affichage(diaporama += n); +// } + +// function actifIndic(n) { +// affichage(diaporama = n); +// } + +// function affichage(n) { +// var i; +// var diapoImg = document.getElementsByClassName("diapo"); + +// if (n > diapoImg.length) {diaporama = 1} +// if (n < 1) {diaporama = diapoImg.length} +// for (i = 0; i < diapoImg.length; i++) { + +// diapoImg[i].style.opacity = "0"; +// } +// diapoImg[diaporama-1].style.opacity = "1"; + +// } \ No newline at end of file diff --git a/IPreoject-CLientSide/static/js/particles.js b/IPreoject-CLientSide/static/js/particles.js new file mode 100644 index 0000000..8ecba82 --- /dev/null +++ b/IPreoject-CLientSide/static/js/particles.js @@ -0,0 +1,1534 @@ + + +var pJS = function(tag_id, params){ + + var canvas_el = document.querySelector('#'+tag_id+' > .particles-js-canvas-el'); + + /* particles.js variables with default values */ + this.pJS = { + canvas: { + el: canvas_el, + w: canvas_el.offsetWidth, + h: canvas_el.offsetHeight + }, + particles: { + number: { + value: 400, + density: { + enable: true, + value_area: 800 + } + }, + color: { + value: '#fff' + }, + shape: { + type: 'circle', + stroke: { + width: 0, + color: '#ff0000' + }, + polygon: { + nb_sides: 5 + }, + image: { + src: '', + width: 100, + height: 100 + } + }, + opacity: { + value: 1, + random: false, + anim: { + enable: false, + speed: 2, + opacity_min: 0, + sync: false + } + }, + size: { + value: 20, + random: false, + anim: { + enable: false, + speed: 20, + size_min: 0, + sync: false + } + }, + line_linked: { + enable: true, + distance: 100, + color: '#fff', + opacity: 1, + width: 1 + }, + move: { + enable: true, + speed: 2, + direction: 'none', + random: false, + straight: false, + out_mode: 'out', + bounce: false, + attract: { + enable: false, + rotateX: 3000, + rotateY: 3000 + } + }, + array: [] + }, + interactivity: { + detect_on: 'canvas', + events: { + onhover: { + enable: true, + mode: 'grab' + }, + onclick: { + enable: true, + mode: 'push' + }, + resize: true + }, + modes: { + grab:{ + distance: 100, + line_linked:{ + opacity: 1 + } + }, + bubble:{ + distance: 200, + size: 80, + duration: 0.4 + }, + repulse:{ + distance: 200, + duration: 0.4 + }, + push:{ + particles_nb: 4 + }, + remove:{ + particles_nb: 2 + } + }, + mouse:{} + }, + retina_detect: false, + fn: { + interact: {}, + modes: {}, + vendors:{} + }, + tmp: {} + }; + + var pJS = this.pJS; + + /* params settings */ + if(params){ + Object.deepExtend(pJS, params); + } + + pJS.tmp.obj = { + size_value: pJS.particles.size.value, + size_anim_speed: pJS.particles.size.anim.speed, + move_speed: pJS.particles.move.speed, + line_linked_distance: pJS.particles.line_linked.distance, + line_linked_width: pJS.particles.line_linked.width, + mode_grab_distance: pJS.interactivity.modes.grab.distance, + mode_bubble_distance: pJS.interactivity.modes.bubble.distance, + mode_bubble_size: pJS.interactivity.modes.bubble.size, + mode_repulse_distance: pJS.interactivity.modes.repulse.distance + }; + + + pJS.fn.retinaInit = function(){ + + if(pJS.retina_detect && window.devicePixelRatio > 1){ + pJS.canvas.pxratio = window.devicePixelRatio; + pJS.tmp.retina = true; + } + else{ + pJS.canvas.pxratio = 1; + pJS.tmp.retina = false; + } + + pJS.canvas.w = pJS.canvas.el.offsetWidth * pJS.canvas.pxratio; + pJS.canvas.h = pJS.canvas.el.offsetHeight * pJS.canvas.pxratio; + + pJS.particles.size.value = pJS.tmp.obj.size_value * pJS.canvas.pxratio; + pJS.particles.size.anim.speed = pJS.tmp.obj.size_anim_speed * pJS.canvas.pxratio; + pJS.particles.move.speed = pJS.tmp.obj.move_speed * pJS.canvas.pxratio; + pJS.particles.line_linked.distance = pJS.tmp.obj.line_linked_distance * pJS.canvas.pxratio; + pJS.interactivity.modes.grab.distance = pJS.tmp.obj.mode_grab_distance * pJS.canvas.pxratio; + pJS.interactivity.modes.bubble.distance = pJS.tmp.obj.mode_bubble_distance * pJS.canvas.pxratio; + pJS.particles.line_linked.width = pJS.tmp.obj.line_linked_width * pJS.canvas.pxratio; + pJS.interactivity.modes.bubble.size = pJS.tmp.obj.mode_bubble_size * pJS.canvas.pxratio; + pJS.interactivity.modes.repulse.distance = pJS.tmp.obj.mode_repulse_distance * pJS.canvas.pxratio; + + }; + + + + /* ---------- pJS functions - canvas ------------ */ + + pJS.fn.canvasInit = function(){ + pJS.canvas.ctx = pJS.canvas.el.getContext('2d'); + }; + + pJS.fn.canvasSize = function(){ + + pJS.canvas.el.width = pJS.canvas.w; + pJS.canvas.el.height = pJS.canvas.h; + + if(pJS && pJS.interactivity.events.resize){ + + window.addEventListener('resize', function(){ + + pJS.canvas.w = pJS.canvas.el.offsetWidth; + pJS.canvas.h = pJS.canvas.el.offsetHeight; + + /* resize canvas */ + if(pJS.tmp.retina){ + pJS.canvas.w *= pJS.canvas.pxratio; + pJS.canvas.h *= pJS.canvas.pxratio; + } + + pJS.canvas.el.width = pJS.canvas.w; + pJS.canvas.el.height = pJS.canvas.h; + + /* repaint canvas on anim disabled */ + if(!pJS.particles.move.enable){ + pJS.fn.particlesEmpty(); + pJS.fn.particlesCreate(); + pJS.fn.particlesDraw(); + pJS.fn.vendors.densityAutoParticles(); + } + + /* density particles enabled */ + pJS.fn.vendors.densityAutoParticles(); + + }); + + } + + }; + + + pJS.fn.canvasPaint = function(){ + pJS.canvas.ctx.fillRect(0, 0, pJS.canvas.w, pJS.canvas.h); + }; + + pJS.fn.canvasClear = function(){ + pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h); + }; + + + /* --------- pJS functions - particles ----------- */ + + pJS.fn.particle = function(color, opacity, position){ + + /* size */ + this.radius = (pJS.particles.size.random ? Math.random() : 1) * pJS.particles.size.value; + if(pJS.particles.size.anim.enable){ + this.size_status = false; + this.vs = pJS.particles.size.anim.speed / 100; + if(!pJS.particles.size.anim.sync){ + this.vs = this.vs * Math.random(); + } + } + + /* position */ + this.x = position ? position.x : Math.random() * pJS.canvas.w; + this.y = position ? position.y : Math.random() * pJS.canvas.h; + + /* check position - into the canvas */ + if(this.x > pJS.canvas.w - this.radius*2) this.x = this.x - this.radius; + else if(this.x < this.radius*2) this.x = this.x + this.radius; + if(this.y > pJS.canvas.h - this.radius*2) this.y = this.y - this.radius; + else if(this.y < this.radius*2) this.y = this.y + this.radius; + + /* check position - avoid overlap */ + if(pJS.particles.move.bounce){ + pJS.fn.vendors.checkOverlap(this, position); + } + + /* color */ + this.color = {}; + if(typeof(color.value) == 'object'){ + + if(color.value instanceof Array){ + var color_selected = color.value[Math.floor(Math.random() * pJS.particles.color.value.length)]; + this.color.rgb = hexToRgb(color_selected); + }else{ + if(color.value.r != undefined && color.value.g != undefined && color.value.b != undefined){ + this.color.rgb = { + r: color.value.r, + g: color.value.g, + b: color.value.b + } + } + if(color.value.h != undefined && color.value.s != undefined && color.value.l != undefined){ + this.color.hsl = { + h: color.value.h, + s: color.value.s, + l: color.value.l + } + } + } + + } + else if(color.value == 'random'){ + this.color.rgb = { + r: (Math.floor(Math.random() * (255 - 0 + 1)) + 0), + g: (Math.floor(Math.random() * (255 - 0 + 1)) + 0), + b: (Math.floor(Math.random() * (255 - 0 + 1)) + 0) + } + } + else if(typeof(color.value) == 'string'){ + this.color = color; + this.color.rgb = hexToRgb(this.color.value); + } + + /* opacity */ + this.opacity = (pJS.particles.opacity.random ? Math.random() : 1) * pJS.particles.opacity.value; + if(pJS.particles.opacity.anim.enable){ + this.opacity_status = false; + this.vo = pJS.particles.opacity.anim.speed / 100; + if(!pJS.particles.opacity.anim.sync){ + this.vo = this.vo * Math.random(); + } + } + + /* animation - velocity for speed */ + var velbase = {} + switch(pJS.particles.move.direction){ + case 'top': + velbase = { x:0, y:-1 }; + break; + case 'top-right': + velbase = { x:0.5, y:-0.5 }; + break; + case 'right': + velbase = { x:1, y:-0 }; + break; + case 'bottom-right': + velbase = { x:0.5, y:0.5 }; + break; + case 'bottom': + velbase = { x:0, y:1 }; + break; + case 'bottom-left': + velbase = { x:-0.5, y:1 }; + break; + case 'left': + velbase = { x:-1, y:0 }; + break; + case 'top-left': + velbase = { x:-0.5, y:-0.5 }; + break; + default: + velbase = { x:0, y:0 }; + break; + } + + if(pJS.particles.move.straight){ + this.vx = velbase.x; + this.vy = velbase.y; + if(pJS.particles.move.random){ + this.vx = this.vx * (Math.random()); + this.vy = this.vy * (Math.random()); + } + }else{ + this.vx = velbase.x + Math.random()-0.5; + this.vy = velbase.y + Math.random()-0.5; + } + + // var theta = 2.0 * Math.PI * Math.random(); + // this.vx = Math.cos(theta); + // this.vy = Math.sin(theta); + + this.vx_i = this.vx; + this.vy_i = this.vy; + + + + /* if shape is image */ + + var shape_type = pJS.particles.shape.type; + if(typeof(shape_type) == 'object'){ + if(shape_type instanceof Array){ + var shape_selected = shape_type[Math.floor(Math.random() * shape_type.length)]; + this.shape = shape_selected; + } + }else{ + this.shape = shape_type; + } + + if(this.shape == 'image'){ + var sh = pJS.particles.shape; + this.img = { + src: sh.image.src, + ratio: sh.image.width / sh.image.height + } + if(!this.img.ratio) this.img.ratio = 1; + if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg != undefined){ + pJS.fn.vendors.createSvgImg(this); + if(pJS.tmp.pushing){ + this.img.loaded = false; + } + } + } + + + + }; + + + pJS.fn.particle.prototype.draw = function() { + + var p = this; + + if(p.radius_bubble != undefined){ + var radius = p.radius_bubble; + }else{ + var radius = p.radius; + } + + if(p.opacity_bubble != undefined){ + var opacity = p.opacity_bubble; + }else{ + var opacity = p.opacity; + } + + if(p.color.rgb){ + var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+opacity+')'; + }else{ + var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+opacity+')'; + } + + pJS.canvas.ctx.fillStyle = color_value; + pJS.canvas.ctx.beginPath(); + + switch(p.shape){ + + case 'circle': + pJS.canvas.ctx.arc(p.x, p.y, radius, 0, Math.PI * 2, false); + break; + + case 'edge': + pJS.canvas.ctx.rect(p.x-radius, p.y-radius, radius*2, radius*2); + break; + + case 'triangle': + pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x-radius, p.y+radius / 1.66, radius*2, 3, 2); + break; + + case 'polygon': + pJS.fn.vendors.drawShape( + pJS.canvas.ctx, + p.x - radius / (pJS.particles.shape.polygon.nb_sides/3.5), // startX + p.y - radius / (2.66/3.5), // startY + radius*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength + pJS.particles.shape.polygon.nb_sides, // sideCountNumerator + 1 // sideCountDenominator + ); + break; + + case 'star': + pJS.fn.vendors.drawShape( + pJS.canvas.ctx, + p.x - radius*2 / (pJS.particles.shape.polygon.nb_sides/4), // startX + p.y - radius / (2*2.66/3.5), // startY + radius*2*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength + pJS.particles.shape.polygon.nb_sides, // sideCountNumerator + 2 // sideCountDenominator + ); + break; + + case 'image': + + function draw(){ + pJS.canvas.ctx.drawImage( + img_obj, + p.x-radius, + p.y-radius, + radius*2, + radius*2 / p.img.ratio + ); + } + + if(pJS.tmp.img_type == 'svg'){ + var img_obj = p.img.obj; + }else{ + var img_obj = pJS.tmp.img_obj; + } + + if(img_obj){ + draw(); + } + + break; + + } + + pJS.canvas.ctx.closePath(); + + if(pJS.particles.shape.stroke.width > 0){ + pJS.canvas.ctx.strokeStyle = pJS.particles.shape.stroke.color; + pJS.canvas.ctx.lineWidth = pJS.particles.shape.stroke.width; + pJS.canvas.ctx.stroke(); + } + + pJS.canvas.ctx.fill(); + + }; + + + pJS.fn.particlesCreate = function(){ + for(var i = 0; i < pJS.particles.number.value; i++) { + pJS.particles.array.push(new pJS.fn.particle(pJS.particles.color, pJS.particles.opacity.value)); + } + }; + + pJS.fn.particlesUpdate = function(){ + + for(var i = 0; i < pJS.particles.array.length; i++){ + + /* the particle */ + var p = pJS.particles.array[i]; + + // var d = ( dx = pJS.interactivity.mouse.click_pos_x - p.x ) * dx + ( dy = pJS.interactivity.mouse.click_pos_y - p.y ) * dy; + // var f = -BANG_SIZE / d; + // if ( d < BANG_SIZE ) { + // var t = Math.atan2( dy, dx ); + // p.vx = f * Math.cos(t); + // p.vy = f * Math.sin(t); + // } + + /* move the particle */ + if(pJS.particles.move.enable){ + var ms = pJS.particles.move.speed/2; + p.x += p.vx * ms; + p.y += p.vy * ms; + } + + /* change opacity status */ + if(pJS.particles.opacity.anim.enable) { + if(p.opacity_status == true) { + if(p.opacity >= pJS.particles.opacity.value) p.opacity_status = false; + p.opacity += p.vo; + }else { + if(p.opacity <= pJS.particles.opacity.anim.opacity_min) p.opacity_status = true; + p.opacity -= p.vo; + } + if(p.opacity < 0) p.opacity = 0; + } + + /* change size */ + if(pJS.particles.size.anim.enable){ + if(p.size_status == true){ + if(p.radius >= pJS.particles.size.value) p.size_status = false; + p.radius += p.vs; + }else{ + if(p.radius <= pJS.particles.size.anim.size_min) p.size_status = true; + p.radius -= p.vs; + } + if(p.radius < 0) p.radius = 0; + } + + /* change particle position if it is out of canvas */ + if(pJS.particles.move.out_mode == 'bounce'){ + var new_pos = { + x_left: p.radius, + x_right: pJS.canvas.w, + y_top: p.radius, + y_bottom: pJS.canvas.h + } + }else{ + var new_pos = { + x_left: -p.radius, + x_right: pJS.canvas.w + p.radius, + y_top: -p.radius, + y_bottom: pJS.canvas.h + p.radius + } + } + + if(p.x - p.radius > pJS.canvas.w){ + p.x = new_pos.x_left; + p.y = Math.random() * pJS.canvas.h; + } + else if(p.x + p.radius < 0){ + p.x = new_pos.x_right; + p.y = Math.random() * pJS.canvas.h; + } + if(p.y - p.radius > pJS.canvas.h){ + p.y = new_pos.y_top; + p.x = Math.random() * pJS.canvas.w; + } + else if(p.y + p.radius < 0){ + p.y = new_pos.y_bottom; + p.x = Math.random() * pJS.canvas.w; + } + + /* out of canvas modes */ + switch(pJS.particles.move.out_mode){ + case 'bounce': + if (p.x + p.radius > pJS.canvas.w) p.vx = -p.vx; + else if (p.x - p.radius < 0) p.vx = -p.vx; + if (p.y + p.radius > pJS.canvas.h) p.vy = -p.vy; + else if (p.y - p.radius < 0) p.vy = -p.vy; + break; + } + + /* events */ + if(isInArray('grab', pJS.interactivity.events.onhover.mode)){ + pJS.fn.modes.grabParticle(p); + } + + if(isInArray('bubble', pJS.interactivity.events.onhover.mode) || isInArray('bubble', pJS.interactivity.events.onclick.mode)){ + pJS.fn.modes.bubbleParticle(p); + } + + if(isInArray('repulse', pJS.interactivity.events.onhover.mode) || isInArray('repulse', pJS.interactivity.events.onclick.mode)){ + pJS.fn.modes.repulseParticle(p); + } + + /* interaction auto between particles */ + if(pJS.particles.line_linked.enable || pJS.particles.move.attract.enable){ + for(var j = i + 1; j < pJS.particles.array.length; j++){ + var p2 = pJS.particles.array[j]; + + /* link particles */ + if(pJS.particles.line_linked.enable){ + pJS.fn.interact.linkParticles(p,p2); + } + + /* attract particles */ + if(pJS.particles.move.attract.enable){ + pJS.fn.interact.attractParticles(p,p2); + } + + /* bounce particles */ + if(pJS.particles.move.bounce){ + pJS.fn.interact.bounceParticles(p,p2); + } + + } + } + + + } + + }; + + pJS.fn.particlesDraw = function(){ + + /* clear canvas */ + pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h); + + /* update each particles param */ + pJS.fn.particlesUpdate(); + + /* draw each particle */ + for(var i = 0; i < pJS.particles.array.length; i++){ + var p = pJS.particles.array[i]; + p.draw(); + } + + }; + + pJS.fn.particlesEmpty = function(){ + pJS.particles.array = []; + }; + + pJS.fn.particlesRefresh = function(){ + + /* init all */ + cancelRequestAnimFrame(pJS.fn.checkAnimFrame); + cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + pJS.tmp.source_svg = undefined; + pJS.tmp.img_obj = undefined; + pJS.tmp.count_svg = 0; + pJS.fn.particlesEmpty(); + pJS.fn.canvasClear(); + + /* restart */ + pJS.fn.vendors.start(); + + }; + + + /* ---------- pJS functions - particles interaction ------------ */ + + pJS.fn.interact.linkParticles = function(p1, p2){ + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + /* draw a line between p1 and p2 if the distance between them is under the config distance */ + if(dist <= pJS.particles.line_linked.distance){ + + var opacity_line = pJS.particles.line_linked.opacity - (dist / (1/pJS.particles.line_linked.opacity)) / pJS.particles.line_linked.distance; + + if(opacity_line > 0){ + + /* style */ + var color_line = pJS.particles.line_linked.color_rgb_line; + pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')'; + pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width; + //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */ + + /* path */ + pJS.canvas.ctx.beginPath(); + pJS.canvas.ctx.moveTo(p1.x, p1.y); + pJS.canvas.ctx.lineTo(p2.x, p2.y); + pJS.canvas.ctx.stroke(); + pJS.canvas.ctx.closePath(); + + } + + } + + }; + + + pJS.fn.interact.attractParticles = function(p1, p2){ + + /* condensed particles */ + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + if(dist <= pJS.particles.line_linked.distance){ + + var ax = dx/(pJS.particles.move.attract.rotateX*1000), + ay = dy/(pJS.particles.move.attract.rotateY*1000); + + p1.vx -= ax; + p1.vy -= ay; + + p2.vx += ax; + p2.vy += ay; + + } + + + } + + + pJS.fn.interact.bounceParticles = function(p1, p2){ + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy), + dist_p = p1.radius+p2.radius; + + if(dist <= dist_p){ + p1.vx = -p1.vx; + p1.vy = -p1.vy; + + p2.vx = -p2.vx; + p2.vy = -p2.vy; + } + + } + + + /* ---------- pJS functions - modes events ------------ */ + + pJS.fn.modes.pushParticles = function(nb, pos){ + + pJS.tmp.pushing = true; + + for(var i = 0; i < nb; i++){ + pJS.particles.array.push( + new pJS.fn.particle( + pJS.particles.color, + pJS.particles.opacity.value, + { + 'x': pos ? pos.pos_x : Math.random() * pJS.canvas.w, + 'y': pos ? pos.pos_y : Math.random() * pJS.canvas.h + } + ) + ) + if(i == nb-1){ + if(!pJS.particles.move.enable){ + pJS.fn.particlesDraw(); + } + pJS.tmp.pushing = false; + } + } + + }; + + + pJS.fn.modes.removeParticles = function(nb){ + + pJS.particles.array.splice(0, nb); + if(!pJS.particles.move.enable){ + pJS.fn.particlesDraw(); + } + + }; + + + pJS.fn.modes.bubbleParticle = function(p){ + + /* on hover event */ + if(pJS.interactivity.events.onhover.enable && isInArray('bubble', pJS.interactivity.events.onhover.mode)){ + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse), + ratio = 1 - dist_mouse / pJS.interactivity.modes.bubble.distance; + + function init(){ + p.opacity_bubble = p.opacity; + p.radius_bubble = p.radius; + } + + /* mousemove - check ratio */ + if(dist_mouse <= pJS.interactivity.modes.bubble.distance){ + + if(ratio >= 0 && pJS.interactivity.status == 'mousemove'){ + + /* size */ + if(pJS.interactivity.modes.bubble.size != pJS.particles.size.value){ + + if(pJS.interactivity.modes.bubble.size > pJS.particles.size.value){ + var size = p.radius + (pJS.interactivity.modes.bubble.size*ratio); + if(size >= 0){ + p.radius_bubble = size; + } + }else{ + var dif = p.radius - pJS.interactivity.modes.bubble.size, + size = p.radius - (dif*ratio); + if(size > 0){ + p.radius_bubble = size; + }else{ + p.radius_bubble = 0; + } + } + + } + + /* opacity */ + if(pJS.interactivity.modes.bubble.opacity != pJS.particles.opacity.value){ + + if(pJS.interactivity.modes.bubble.opacity > pJS.particles.opacity.value){ + var opacity = pJS.interactivity.modes.bubble.opacity*ratio; + if(opacity > p.opacity && opacity <= pJS.interactivity.modes.bubble.opacity){ + p.opacity_bubble = opacity; + } + }else{ + var opacity = p.opacity - (pJS.particles.opacity.value-pJS.interactivity.modes.bubble.opacity)*ratio; + if(opacity < p.opacity && opacity >= pJS.interactivity.modes.bubble.opacity){ + p.opacity_bubble = opacity; + } + } + + } + + } + + }else{ + init(); + } + + + /* mouseleave */ + if(pJS.interactivity.status == 'mouseleave'){ + init(); + } + + } + + /* on click event */ + else if(pJS.interactivity.events.onclick.enable && isInArray('bubble', pJS.interactivity.events.onclick.mode)){ + + + if(pJS.tmp.bubble_clicking){ + var dx_mouse = p.x - pJS.interactivity.mouse.click_pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.click_pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse), + time_spent = (new Date().getTime() - pJS.interactivity.mouse.click_time)/1000; + + if(time_spent > pJS.interactivity.modes.bubble.duration){ + pJS.tmp.bubble_duration_end = true; + } + + if(time_spent > pJS.interactivity.modes.bubble.duration*2){ + pJS.tmp.bubble_clicking = false; + pJS.tmp.bubble_duration_end = false; + } + } + + + function process(bubble_param, particles_param, p_obj_bubble, p_obj, id){ + + if(bubble_param != particles_param){ + + if(!pJS.tmp.bubble_duration_end){ + if(dist_mouse <= pJS.interactivity.modes.bubble.distance){ + if(p_obj_bubble != undefined) var obj = p_obj_bubble; + else var obj = p_obj; + if(obj != bubble_param){ + var value = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration); + if(id == 'size') p.radius_bubble = value; + if(id == 'opacity') p.opacity_bubble = value; + } + }else{ + if(id == 'size') p.radius_bubble = undefined; + if(id == 'opacity') p.opacity_bubble = undefined; + } + }else{ + if(p_obj_bubble != undefined){ + var value_tmp = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration), + dif = bubble_param - value_tmp; + value = bubble_param + dif; + if(id == 'size') p.radius_bubble = value; + if(id == 'opacity') p.opacity_bubble = value; + } + } + + } + + } + + if(pJS.tmp.bubble_clicking){ + /* size */ + process(pJS.interactivity.modes.bubble.size, pJS.particles.size.value, p.radius_bubble, p.radius, 'size'); + /* opacity */ + process(pJS.interactivity.modes.bubble.opacity, pJS.particles.opacity.value, p.opacity_bubble, p.opacity, 'opacity'); + } + + } + + }; + + + pJS.fn.modes.repulseParticle = function(p){ + + if(pJS.interactivity.events.onhover.enable && isInArray('repulse', pJS.interactivity.events.onhover.mode) && pJS.interactivity.status == 'mousemove') { + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse); + + var normVec = {x: dx_mouse/dist_mouse, y: dy_mouse/dist_mouse}, + repulseRadius = pJS.interactivity.modes.repulse.distance, + velocity = 100, + repulseFactor = clamp((1/repulseRadius)*(-1*Math.pow(dist_mouse/repulseRadius,2)+1)*repulseRadius*velocity, 0, 50); + + var pos = { + x: p.x + normVec.x * repulseFactor, + y: p.y + normVec.y * repulseFactor + } + + if(pJS.particles.move.out_mode == 'bounce'){ + if(pos.x - p.radius > 0 && pos.x + p.radius < pJS.canvas.w) p.x = pos.x; + if(pos.y - p.radius > 0 && pos.y + p.radius < pJS.canvas.h) p.y = pos.y; + }else{ + p.x = pos.x; + p.y = pos.y; + } + + } + + + else if(pJS.interactivity.events.onclick.enable && isInArray('repulse', pJS.interactivity.events.onclick.mode)) { + + if(!pJS.tmp.repulse_finish){ + pJS.tmp.repulse_count++; + if(pJS.tmp.repulse_count == pJS.particles.array.length){ + pJS.tmp.repulse_finish = true; + } + } + + if(pJS.tmp.repulse_clicking){ + + var repulseRadius = Math.pow(pJS.interactivity.modes.repulse.distance/6, 3); + + var dx = pJS.interactivity.mouse.click_pos_x - p.x, + dy = pJS.interactivity.mouse.click_pos_y - p.y, + d = dx*dx + dy*dy; + + var force = -repulseRadius / d * 1; + + function process(){ + + var f = Math.atan2(dy,dx); + p.vx = force * Math.cos(f); + p.vy = force * Math.sin(f); + + if(pJS.particles.move.out_mode == 'bounce'){ + var pos = { + x: p.x + p.vx, + y: p.y + p.vy + } + if (pos.x + p.radius > pJS.canvas.w) p.vx = -p.vx; + else if (pos.x - p.radius < 0) p.vx = -p.vx; + if (pos.y + p.radius > pJS.canvas.h) p.vy = -p.vy; + else if (pos.y - p.radius < 0) p.vy = -p.vy; + } + + } + + // default + if(d <= repulseRadius){ + process(); + } + + // bang - slow motion mode + // if(!pJS.tmp.repulse_finish){ + // if(d <= repulseRadius){ + // process(); + // } + // }else{ + // process(); + // } + + + }else{ + + if(pJS.tmp.repulse_clicking == false){ + + p.vx = p.vx_i; + p.vy = p.vy_i; + + } + + } + + } + + } + + + pJS.fn.modes.grabParticle = function(p){ + + if(pJS.interactivity.events.onhover.enable && pJS.interactivity.status == 'mousemove'){ + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse); + + /* draw a line between the cursor and the particle if the distance between them is under the config distance */ + if(dist_mouse <= pJS.interactivity.modes.grab.distance){ + + var opacity_line = pJS.interactivity.modes.grab.line_linked.opacity - (dist_mouse / (1/pJS.interactivity.modes.grab.line_linked.opacity)) / pJS.interactivity.modes.grab.distance; + + if(opacity_line > 0){ + + /* style */ + var color_line = pJS.particles.line_linked.color_rgb_line; + pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')'; + pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width; + //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */ + + /* path */ + pJS.canvas.ctx.beginPath(); + pJS.canvas.ctx.moveTo(p.x, p.y); + pJS.canvas.ctx.lineTo(pJS.interactivity.mouse.pos_x, pJS.interactivity.mouse.pos_y); + pJS.canvas.ctx.stroke(); + pJS.canvas.ctx.closePath(); + + } + + } + + } + + }; + + + + /* ---------- pJS functions - vendors ------------ */ + + pJS.fn.vendors.eventsListeners = function(){ + + /* events target element */ + if(pJS.interactivity.detect_on == 'window'){ + pJS.interactivity.el = window; + }else{ + pJS.interactivity.el = pJS.canvas.el; + } + + + /* detect mouse pos - on hover / click event */ + if(pJS.interactivity.events.onhover.enable || pJS.interactivity.events.onclick.enable){ + + /* el on mousemove */ + pJS.interactivity.el.addEventListener('mousemove', function(e){ + + if(pJS.interactivity.el == window){ + var pos_x = e.clientX, + pos_y = e.clientY; + } + else{ + var pos_x = e.offsetX || e.clientX, + pos_y = e.offsetY || e.clientY; + } + + pJS.interactivity.mouse.pos_x = pos_x; + pJS.interactivity.mouse.pos_y = pos_y; + + if(pJS.tmp.retina){ + pJS.interactivity.mouse.pos_x *= pJS.canvas.pxratio; + pJS.interactivity.mouse.pos_y *= pJS.canvas.pxratio; + } + + pJS.interactivity.status = 'mousemove'; + + }); + + /* el on onmouseleave */ + pJS.interactivity.el.addEventListener('mouseleave', function(e){ + + pJS.interactivity.mouse.pos_x = null; + pJS.interactivity.mouse.pos_y = null; + pJS.interactivity.status = 'mouseleave'; + + }); + + } + + /* on click event */ + if(pJS.interactivity.events.onclick.enable){ + + pJS.interactivity.el.addEventListener('click', function(){ + + pJS.interactivity.mouse.click_pos_x = pJS.interactivity.mouse.pos_x; + pJS.interactivity.mouse.click_pos_y = pJS.interactivity.mouse.pos_y; + pJS.interactivity.mouse.click_time = new Date().getTime(); + + if(pJS.interactivity.events.onclick.enable){ + + switch(pJS.interactivity.events.onclick.mode){ + + case 'push': + if(pJS.particles.move.enable){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse); + }else{ + if(pJS.interactivity.modes.push.particles_nb == 1){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse); + } + else if(pJS.interactivity.modes.push.particles_nb > 1){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb); + } + } + break; + + case 'remove': + pJS.fn.modes.removeParticles(pJS.interactivity.modes.remove.particles_nb); + break; + + case 'bubble': + pJS.tmp.bubble_clicking = true; + break; + + case 'repulse': + pJS.tmp.repulse_clicking = true; + pJS.tmp.repulse_count = 0; + pJS.tmp.repulse_finish = false; + setTimeout(function(){ + pJS.tmp.repulse_clicking = false; + }, pJS.interactivity.modes.repulse.duration*1000) + break; + + } + + } + + }); + + } + + + }; + + pJS.fn.vendors.densityAutoParticles = function(){ + + if(pJS.particles.number.density.enable){ + + /* calc area */ + var area = pJS.canvas.el.width * pJS.canvas.el.height / 1000; + if(pJS.tmp.retina){ + area = area/(pJS.canvas.pxratio*2); + } + + /* calc number of particles based on density area */ + var nb_particles = area * pJS.particles.number.value / pJS.particles.number.density.value_area; + + /* add or remove X particles */ + var missing_particles = pJS.particles.array.length - nb_particles; + if(missing_particles < 0) pJS.fn.modes.pushParticles(Math.abs(missing_particles)); + else pJS.fn.modes.removeParticles(missing_particles); + + } + + }; + + + pJS.fn.vendors.checkOverlap = function(p1, position){ + for(var i = 0; i < pJS.particles.array.length; i++){ + var p2 = pJS.particles.array[i]; + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + if(dist <= p1.radius + p2.radius){ + p1.x = position ? position.x : Math.random() * pJS.canvas.w; + p1.y = position ? position.y : Math.random() * pJS.canvas.h; + pJS.fn.vendors.checkOverlap(p1); + } + } + }; + + + pJS.fn.vendors.createSvgImg = function(p){ + + /* set color to svg element */ + var svgXml = pJS.tmp.source_svg, + rgbHex = /#([0-9A-F]{3,6})/gi, + coloredSvgXml = svgXml.replace(rgbHex, function (m, r, g, b) { + if(p.color.rgb){ + var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+p.opacity+')'; + }else{ + var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+p.opacity+')'; + } + return color_value; + }); + + /* prepare to create img with colored svg */ + var svg = new Blob([coloredSvgXml], {type: 'image/svg+xml;charset=utf-8'}), + DOMURL = window.URL || window.webkitURL || window, + url = DOMURL.createObjectURL(svg); + + /* create particle img obj */ + var img = new Image(); + img.addEventListener('load', function(){ + p.img.obj = img; + p.img.loaded = true; + DOMURL.revokeObjectURL(url); + pJS.tmp.count_svg++; + }); + img.src = url; + + }; + + + pJS.fn.vendors.destroypJS = function(){ + cancelAnimationFrame(pJS.fn.drawAnimFrame); + canvas_el.remove(); + pJSDom = null; + }; + + + pJS.fn.vendors.drawShape = function(c, startX, startY, sideLength, sideCountNumerator, sideCountDenominator){ + + // By Programming Thomas - https://programmingthomas.wordpress.com/2013/04/03/n-sided-shapes/ + var sideCount = sideCountNumerator * sideCountDenominator; + var decimalSides = sideCountNumerator / sideCountDenominator; + var interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides; + var interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180; // convert to radians + c.save(); + c.beginPath(); + c.translate(startX, startY); + c.moveTo(0,0); + for (var i = 0; i < sideCount; i++) { + c.lineTo(sideLength,0); + c.translate(sideLength,0); + c.rotate(interiorAngle); + } + //c.stroke(); + c.fill(); + c.restore(); + + }; + + pJS.fn.vendors.exportImg = function(){ + window.open(pJS.canvas.el.toDataURL('image/png'), '_blank'); + }; + + + pJS.fn.vendors.loadImg = function(type){ + + pJS.tmp.img_error = undefined; + + if(pJS.particles.shape.image.src != ''){ + + if(type == 'svg'){ + + var xhr = new XMLHttpRequest(); + xhr.open('GET', pJS.particles.shape.image.src); + xhr.onreadystatechange = function (data) { + if(xhr.readyState == 4){ + if(xhr.status == 200){ + pJS.tmp.source_svg = data.currentTarget.response; + pJS.fn.vendors.checkBeforeDraw(); + }else{ + console.log('Error pJS - Image not found'); + pJS.tmp.img_error = true; + } + } + } + xhr.send(); + + }else{ + + var img = new Image(); + img.addEventListener('load', function(){ + pJS.tmp.img_obj = img; + pJS.fn.vendors.checkBeforeDraw(); + }); + img.src = pJS.particles.shape.image.src; + + } + + }else{ + console.log('Error pJS - No image.src'); + pJS.tmp.img_error = true; + } + + }; + + + pJS.fn.vendors.draw = function(){ + + if(pJS.particles.shape.type == 'image'){ + + if(pJS.tmp.img_type == 'svg'){ + + if(pJS.tmp.count_svg >= pJS.particles.number.value){ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + }else{ + //console.log('still loading...'); + if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + }else{ + + if(pJS.tmp.img_obj != undefined){ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + }else{ + if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + } + + }else{ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + }; + + + pJS.fn.vendors.checkBeforeDraw = function(){ + + // if shape is image + if(pJS.particles.shape.type == 'image'){ + + if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg == undefined){ + pJS.tmp.checkAnimFrame = requestAnimFrame(check); + }else{ + //console.log('images loaded! cancel check'); + cancelRequestAnimFrame(pJS.tmp.checkAnimFrame); + if(!pJS.tmp.img_error){ + pJS.fn.vendors.init(); + pJS.fn.vendors.draw(); + } + + } + + }else{ + pJS.fn.vendors.init(); + pJS.fn.vendors.draw(); + } + + }; + + + pJS.fn.vendors.init = function(){ + + /* init canvas + particles */ + pJS.fn.retinaInit(); + pJS.fn.canvasInit(); + pJS.fn.canvasSize(); + pJS.fn.canvasPaint(); + pJS.fn.particlesCreate(); + pJS.fn.vendors.densityAutoParticles(); + + /* particles.line_linked - convert hex colors to rgb */ + pJS.particles.line_linked.color_rgb_line = hexToRgb(pJS.particles.line_linked.color); + + }; + + + pJS.fn.vendors.start = function(){ + + if(isInArray('image', pJS.particles.shape.type)){ + pJS.tmp.img_type = pJS.particles.shape.image.src.substr(pJS.particles.shape.image.src.length - 3); + pJS.fn.vendors.loadImg(pJS.tmp.img_type); + }else{ + pJS.fn.vendors.checkBeforeDraw(); + } + + }; + + + + + /* ---------- pJS - start ------------ */ + + + pJS.fn.vendors.eventsListeners(); + + pJS.fn.vendors.start(); + + + +}; + +/* ---------- global functions - vendors ------------ */ + +Object.deepExtend = function(destination, source) { + for (var property in source) { + if (source[property] && source[property].constructor && + source[property].constructor === Object) { + destination[property] = destination[property] || {}; + arguments.callee(destination[property], source[property]); + } else { + destination[property] = source[property]; + } + } + return destination; +}; + +window.requestAnimFrame = (function(){ + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(callback){ + window.setTimeout(callback, 1000 / 60); + }; +})(); + +window.cancelRequestAnimFrame = ( function() { + return window.cancelAnimationFrame || + window.webkitCancelRequestAnimationFrame || + window.mozCancelRequestAnimationFrame || + window.oCancelRequestAnimationFrame || + window.msCancelRequestAnimationFrame || + clearTimeout +} )(); + +function hexToRgb(hex){ + // By Tim Down - http://stackoverflow.com/a/5624139/3493650 + // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") + var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + hex = hex.replace(shorthandRegex, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16) + } : null; +}; + +function clamp(number, min, max) { + return Math.min(Math.max(number, min), max); +}; + +function isInArray(value, array) { + return array.indexOf(value) > -1; +} + + +/* ---------- particles.js functions - start ------------ */ + +window.pJSDom = []; + +window.particlesJS = function(tag_id, params){ + + //console.log(params); + + /* no string id? so it's object params, and set the id with default id */ + if(typeof(tag_id) != 'string'){ + params = tag_id; + tag_id = 'particles-js'; + } + + /* no id? set the id to default id */ + if(!tag_id){ + tag_id = 'particles-js'; + } + + /* pJS elements */ + var pJS_tag = document.getElementById(tag_id), + pJS_canvas_class = 'particles-js-canvas-el', + exist_canvas = pJS_tag.getElementsByClassName(pJS_canvas_class); + + /* remove canvas if exists into the pJS target tag */ + if(exist_canvas.length){ + while(exist_canvas.length > 0){ + pJS_tag.removeChild(exist_canvas[0]); + } + } + + /* create canvas element */ + var canvas_el = document.createElement('canvas'); + canvas_el.className = pJS_canvas_class; + + /* set size canvas */ + canvas_el.style.width = "100%"; + canvas_el.style.height = "100%"; + + /* append canvas */ + var canvas = document.getElementById(tag_id).appendChild(canvas_el); + + /* launch particle.js */ + if(canvas != null){ + pJSDom.push(new pJS(tag_id, params)); + } + +}; + +window.particlesJS.load = function(tag_id, path_config_json, callback){ + + /* load json config */ + var xhr = new XMLHttpRequest(); + xhr.open('GET', path_config_json); + xhr.onreadystatechange = function (data) { + if(xhr.readyState == 4){ + if(xhr.status == 200){ + var params = JSON.parse(data.currentTarget.response); + window.particlesJS(tag_id, params); + if(callback) callback(); + }else{ + console.log('Error pJS - XMLHttpRequest status: '+xhr.status); + console.log('Error pJS - File config not found'); + } + } + }; + xhr.send(); + +}; \ No newline at end of file diff --git a/IPreoject-CLientSide/static/js/rules.js b/IPreoject-CLientSide/static/js/rules.js new file mode 100644 index 0000000..6d4faa8 --- /dev/null +++ b/IPreoject-CLientSide/static/js/rules.js @@ -0,0 +1,26 @@ +var slider = document.getElementById("customRange1"); +var output = document.getElementById("time"); +output.innerHTML = slider.value + "s"; // Display the default slider value + +var httpRequest; + +// Update the current slider value (each time you drag the slider handle) +slider.oninput = function() { + output.innerHTML = this.value + " s"; +} + +function getTime(){ + var sec = document.getElementById("customRange1").value; + + httpRequest = new XMLHttpRequest(); + if(!httpRequest) { + alert('Giving Up! Cannot send an XMLHTTO request.'); + } + + httpRequest.open('POST', 'http://192.168.37.69:50001/time'); + var data = JSON.stringify({"time": sec}); + + httpRequest.send(data); + localStorage.setItem('globalTime', sec); + console.log(sec); +} \ No newline at end of file diff --git a/IPreoject-CLientSide/static/js/test.js b/IPreoject-CLientSide/static/js/test.js new file mode 100644 index 0000000..ccf96c0 --- /dev/null +++ b/IPreoject-CLientSide/static/js/test.js @@ -0,0 +1,4 @@ +output = 4; +function so() { + return output; +} \ No newline at end of file diff --git a/IPreoject-CLientSide/templates/layout.html b/IPreoject-CLientSide/templates/layout.html new file mode 100644 index 0000000..6284250 --- /dev/null +++ b/IPreoject-CLientSide/templates/layout.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + Crads's game + + + + + + + + + + \ No newline at end of file diff --git a/IPreoject-CLientSide/templates/main.html b/IPreoject-CLientSide/templates/main.html new file mode 100644 index 0000000..bba039c --- /dev/null +++ b/IPreoject-CLientSide/templates/main.html @@ -0,0 +1,48 @@ +{% extends "layout.html" %} + +{% block body %} + + +
+
+ +
+
+ + +
+
+
+
+ Welcome to the game! +
+
+
+

Can you detect the common object quickly?

+

Check out the rules on the top left info button!

+ +
+ +
+
+ + + + +{% endblock %} + + diff --git a/IPreoject-CLientSide/templates/menu.html b/IPreoject-CLientSide/templates/menu.html new file mode 100644 index 0000000..ad562b2 --- /dev/null +++ b/IPreoject-CLientSide/templates/menu.html @@ -0,0 +1,27 @@ +{% extends "layout.html" %} + +{% block body %} + +
+

Choose an available game

+
+ +
+ + + +
+ + + + +{% endblock %} \ No newline at end of file diff --git a/IPreoject-CLientSide/templates/new-game.html b/IPreoject-CLientSide/templates/new-game.html new file mode 100644 index 0000000..4734392 --- /dev/null +++ b/IPreoject-CLientSide/templates/new-game.html @@ -0,0 +1,68 @@ + + + + + Cards's Game + + + + + + + +
+
+

Fast Detection Game

+
+
+
    +
  • + +
  • +
+ Score : 0 +
+ Restart game +
+
+
+
    +

    Click on the common object here

    + simple card + + +
+ +
+ +
    +

    Central Card

    + simple card + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/IPreoject-CLientSide/templates/rules.html b/IPreoject-CLientSide/templates/rules.html new file mode 100644 index 0000000..c9a3b75 --- /dev/null +++ b/IPreoject-CLientSide/templates/rules.html @@ -0,0 +1,109 @@ + + + + + Cards's Game + + + + + + + + + + + + + + + + +
+ Games'Icon.. +
+ + + +
+

Remeber the game rules..

+
+

Rule 1 : Choose the necessary time to play the part ..

+ +

Rule 2 : Click on the top card to detect the common object with the bottom card..

+

Rule 3 : Accept the challenge to start the game, the goog luck to Spot it :)

+ +
+

Choose the time to solve it :)

+ + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/IPreoject-CLientSide/templates/test.html b/IPreoject-CLientSide/templates/test.html new file mode 100644 index 0000000..8f3bd13 --- /dev/null +++ b/IPreoject-CLientSide/templates/test.html @@ -0,0 +1,104 @@ + + + + + Cards's Game + + + + + + +

+
+

+ ---- POSITION and COLOR ---- +

+ + +

+ {{X}} +

+ + + + + + \ No newline at end of file diff --git a/IPreoject-CLientSide/utils/cardToObjects.py b/IPreoject-CLientSide/utils/cardToObjects.py new file mode 100644 index 0000000..e952df2 --- /dev/null +++ b/IPreoject-CLientSide/utils/cardToObjects.py @@ -0,0 +1,44 @@ +#!pip install imutils +#!pip install opencv-python +import cv2 +import imutils +import numpy as np + +imgname = 'picture1' + +final = cv2.imread("../static/images/test.jpg") + +def card_to_objects(): + # just like before (with detecting the card) + gray = cv2.cvtColor(final, cv2.COLOR_RGB2GRAY) + thresh = cv2.threshold(gray, 195, 255, cv2.THRESH_BINARY)[1] + thresh = cv2.bitwise_not(thresh) + cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + cnts = imutils.grab_contours(cnts) + cnts = sorted(cnts, key=cv2.contourArea, reverse=True)[:10]# handle each contour + i = 0 + for c in cnts: + if cv2.contourArea(c) > 1000: + # draw mask, keep contour + mask = np.zeros(gray.shape, np.uint8) + mask = cv2.drawContours(mask, [c], -1, 255, cv2.FILLED) # white background + fg_masked = cv2.bitwise_and(final, final, mask=mask) + mask = cv2.bitwise_not(mask) + bk = np.full(final.shape, 255, dtype=np.uint8) + bk_masked = cv2.bitwise_and(bk, bk, mask=mask) + finalcont = cv2.bitwise_or(fg_masked, bk_masked) # bounding rectangle around contour + output = finalcont.copy() + x,y,w,h = cv2.boundingRect(c) + # squares io rectangles + if w < h: + x += int((w-h)/2) + w = h + else: + y += int((h-w)/2) + h = w # take out the square with the symbol + roi = finalcont[y:y+h, x:x+w] + roi = cv2.resize(roi, (400,400)) # save the symbol + cv2.imwrite(f"{imgname}_icon{i}.jpg", roi) + i += 1 + +card_to_objects() \ No newline at end of file diff --git a/IPreoject-CLientSide/utils/ports.py b/IPreoject-CLientSide/utils/ports.py new file mode 100644 index 0000000..194891e --- /dev/null +++ b/IPreoject-CLientSide/utils/ports.py @@ -0,0 +1,15 @@ +from flask import Flask, render_template, jsonify +import requests + +#GET PORTS :------------------------------------------------------ + +API_URL2 = "http://192.168.37.69:50000/port" + +port = 0 + +def getPort(): + res = requests.get(API_URL2) + port = res.json() + return port.get('numport') # our port + +port = getPort() \ No newline at end of file diff --git a/IPreoject-CLientSide/utils/test.py b/IPreoject-CLientSide/utils/test.py new file mode 100644 index 0000000..9b4eff8 --- /dev/null +++ b/IPreoject-CLientSide/utils/test.py @@ -0,0 +1,20 @@ +# import js2py + +# js = """../static/js/test.js""" + +# context = js2py.EvalJs() +# context.execute(js) +# print(context.output) +import execjs + + +print(execjs.eval("'red yellow blue'.split(' ')")) + +ctx = execjs.compile(""" + function add(x, y) { + return x + y; + } + +""") + +print(ctx.call("add", 1, 2)) \ No newline at end of file diff --git a/IPreoject-CLientSide/venv/bin/Activate.ps1 b/IPreoject-CLientSide/venv/bin/Activate.ps1 new file mode 100644 index 0000000..2fb3852 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/Activate.ps1 @@ -0,0 +1,241 @@ +<# +.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 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 virutal 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 + } +} + +# 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/IPreoject-CLientSide/venv/bin/activate b/IPreoject-CLientSide/venv/bin/activate new file mode 100644 index 0000000..36e083a --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/activate @@ -0,0 +1,76 @@ +# 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 + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/home/bachar/Bureau/Integrated Project/client-project/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:-}" + if [ "x(venv) " != x ] ; then + PS1="(venv) ${PS1:-}" + else + if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then + # special case for Aspen magic directories + # see https://aspen.io/ + PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" + else + PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" + fi + fi + export PS1 +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 +fi diff --git a/IPreoject-CLientSide/venv/bin/activate.csh b/IPreoject-CLientSide/venv/bin/activate.csh new file mode 100644 index 0000000..c25c642 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/activate.csh @@ -0,0 +1,37 @@ +# 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; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/bachar/Bureau/Integrated Project/client-project/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + if ("venv" != "") then + set env_name = "venv" + else + if (`basename "VIRTUAL_ENV"` == "__") then + # special case for Aspen magic directories + # see https://aspen.io/ + set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` + else + set env_name = `basename "$VIRTUAL_ENV"` + endif + endif + set prompt = "[$env_name] $prompt" + unset env_name +endif + +alias pydoc python -m pydoc + +rehash diff --git a/IPreoject-CLientSide/venv/bin/activate.fish b/IPreoject-CLientSide/venv/bin/activate.fish new file mode 100644 index 0000000..5e5cac3 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/activate.fish @@ -0,0 +1,75 @@ +# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) +# you cannot run it directly + +function deactivate -d "Exit virtualenv 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" + functions -e fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + + set -e VIRTUAL_ENV + if test "$argv[1]" != "nondestructive" + # Self destruct! + functions -e deactivate + end +end + +# unset irrelevant variables +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/bachar/Bureau/Integrated Project/client-project/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 + + # Prompt override? + if test -n "(venv) " + printf "%s%s" "(venv) " (set_color normal) + else + # ...Otherwise, prepend env + set -l _checkbase (basename "$VIRTUAL_ENV") + if test $_checkbase = "__" + # special case for Aspen magic directories + # see https://aspen.io/ + printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) + else + printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) + end + end + + # Restore the return status of the previous command. + echo "exit $old_status" | . + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" +end diff --git a/IPreoject-CLientSide/venv/bin/flask b/IPreoject-CLientSide/venv/bin/flask new file mode 100755 index 0000000..9a45220 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/flask @@ -0,0 +1,10 @@ +#!/bin/sh +'''exec' "/home/bachar/Bureau/Integrated Project/client-project/venv/bin/python3" "$0" "$@" +' ''' +# -*- coding: utf-8 -*- +import re +import sys +from flask.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/IPreoject-CLientSide/venv/bin/pip b/IPreoject-CLientSide/venv/bin/pip new file mode 100755 index 0000000..0b4da34 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/pip @@ -0,0 +1,10 @@ +#!/bin/sh +'''exec' "/home/bachar/Bureau/Integrated Project/client-project/venv/bin/python3" "$0" "$@" +' ''' +# -*- 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/IPreoject-CLientSide/venv/bin/pip3 b/IPreoject-CLientSide/venv/bin/pip3 new file mode 100755 index 0000000..0b4da34 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/pip3 @@ -0,0 +1,10 @@ +#!/bin/sh +'''exec' "/home/bachar/Bureau/Integrated Project/client-project/venv/bin/python3" "$0" "$@" +' ''' +# -*- 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/IPreoject-CLientSide/venv/bin/pip3.8 b/IPreoject-CLientSide/venv/bin/pip3.8 new file mode 100755 index 0000000..0b4da34 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/pip3.8 @@ -0,0 +1,10 @@ +#!/bin/sh +'''exec' "/home/bachar/Bureau/Integrated Project/client-project/venv/bin/python3" "$0" "$@" +' ''' +# -*- 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/IPreoject-CLientSide/venv/bin/python b/IPreoject-CLientSide/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/IPreoject-CLientSide/venv/bin/python3 b/IPreoject-CLientSide/venv/bin/python3 new file mode 120000 index 0000000..7ae3f46 --- /dev/null +++ b/IPreoject-CLientSide/venv/bin/python3 @@ -0,0 +1 @@ +/usr/local/insa/anaconda/bin/python3 \ No newline at end of file diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/INSTALLER b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/LICENSE.rst b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/LICENSE.rst new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/METADATA b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/METADATA new file mode 100644 index 0000000..aaf27ca --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/METADATA @@ -0,0 +1,125 @@ +Metadata-Version: 2.1 +Name: Flask +Version: 2.0.2 +Summary: A simple framework for building complex web applications. +Home-page: https://palletsprojects.com/p/flask +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://flask.palletsprojects.com/ +Project-URL: Changes, https://flask.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/flask/ +Project-URL: Issue Tracker, https://github.com/pallets/flask/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: Framework :: Flask +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 :: Internet :: WWW/HTTP :: WSGI +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: Werkzeug (>=2.0) +Requires-Dist: Jinja2 (>=3.0) +Requires-Dist: itsdangerous (>=2.0) +Requires-Dist: click (>=7.1.2) +Provides-Extra: async +Requires-Dist: asgiref (>=3.2) ; extra == 'async' +Provides-Extra: dotenv +Requires-Dist: python-dotenv ; extra == 'dotenv' + +Flask +===== + +Flask is a lightweight `WSGI`_ web application framework. It is designed +to make getting started quick and easy, with the ability to scale up to +complex applications. It began as a simple wrapper around `Werkzeug`_ +and `Jinja`_ and has become one of the most popular Python web +application frameworks. + +Flask offers suggestions, but doesn't enforce any dependencies or +project layout. It is up to the developer to choose the tools and +libraries they want to use. There are many extensions provided by the +community that make adding new functionality easy. + +.. _WSGI: https://wsgi.readthedocs.io/ +.. _Werkzeug: https://werkzeug.palletsprojects.com/ +.. _Jinja: https://jinja.palletsprojects.com/ + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + $ pip install -U Flask + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +A Simple Example +---------------- + +.. code-block:: python + + # save this as app.py + from flask import Flask + + app = Flask(__name__) + + @app.route("/") + def hello(): + return "Hello, World!" + +.. code-block:: text + + $ flask run + * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) + + +Contributing +------------ + +For guidance on setting up a development environment and how to make a +contribution to Flask, see the `contributing guidelines`_. + +.. _contributing guidelines: https://github.com/pallets/flask/blob/main/CONTRIBUTING.rst + + +Donate +------ + +The Pallets organization develops and supports Flask and the libraries +it uses. 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://flask.palletsprojects.com/ +- Changes: https://flask.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/Flask/ +- Source Code: https://github.com/pallets/flask/ +- Issue Tracker: https://github.com/pallets/flask/issues/ +- Website: https://palletsprojects.com/p/flask/ +- Twitter: https://twitter.com/PalletsTeam +- Chat: https://discord.gg/pallets + + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/RECORD b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/RECORD new file mode 100644 index 0000000..e33bc01 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/RECORD @@ -0,0 +1,52 @@ +../../../bin/flask,sha256=KfdQ7IUrxEtCeg5cCtNcgS_WLjwjR03OTKQok43p4AE,297 +Flask-2.0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Flask-2.0.2.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +Flask-2.0.2.dist-info/METADATA,sha256=aKsvjFA_ZjZN1jLh1Ac3aQk-ZUZDPrrwo_TGYW1kdAQ,3839 +Flask-2.0.2.dist-info/RECORD,, +Flask-2.0.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +Flask-2.0.2.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +Flask-2.0.2.dist-info/entry_points.txt,sha256=gBLA1aKg0OYR8AhbAfg8lnburHtKcgJLDU52BBctN0k,42 +Flask-2.0.2.dist-info/top_level.txt,sha256=dvi65F6AeGWVU0TBpYiC04yM60-FX1gJFkK31IKQr5c,6 +flask/__init__.py,sha256=9ZCelLoNCpr6eSuLmYlzvbp12B3lrLgoN5U2UWk1vdo,2251 +flask/__main__.py,sha256=bYt9eEaoRQWdejEHFD8REx9jxVEdZptECFsV7F49Ink,30 +flask/__pycache__/__init__.cpython-38.pyc,, +flask/__pycache__/__main__.cpython-38.pyc,, +flask/__pycache__/app.cpython-38.pyc,, +flask/__pycache__/blueprints.cpython-38.pyc,, +flask/__pycache__/cli.cpython-38.pyc,, +flask/__pycache__/config.cpython-38.pyc,, +flask/__pycache__/ctx.cpython-38.pyc,, +flask/__pycache__/debughelpers.cpython-38.pyc,, +flask/__pycache__/globals.cpython-38.pyc,, +flask/__pycache__/helpers.cpython-38.pyc,, +flask/__pycache__/logging.cpython-38.pyc,, +flask/__pycache__/scaffold.cpython-38.pyc,, +flask/__pycache__/sessions.cpython-38.pyc,, +flask/__pycache__/signals.cpython-38.pyc,, +flask/__pycache__/templating.cpython-38.pyc,, +flask/__pycache__/testing.cpython-38.pyc,, +flask/__pycache__/typing.cpython-38.pyc,, +flask/__pycache__/views.cpython-38.pyc,, +flask/__pycache__/wrappers.cpython-38.pyc,, +flask/app.py,sha256=ectBbi9hGmVHAse5TNcFQZIDRkDAxYUAnLgfuKD0Xws,81975 +flask/blueprints.py,sha256=AkAVXZ_MMkjwjklzCAMdBNowTiM0wVQPynnUnXjTL2M,23781 +flask/cli.py,sha256=wn2Un9RO32ZfRmCMem5KJ5h62-5lnmy1H9uxgyV-eBs,32238 +flask/config.py,sha256=70Uyjh1Jzb9MfTCT7NDhuZWAzyIEu-TIyk6-22MP3zQ,11285 +flask/ctx.py,sha256=EM3W0v1ctuFQAGk_HWtQdoJEg_r2f5Le4xcmElxFwwk,17428 +flask/debughelpers.py,sha256=W82-xrRmodjopBngI9roYH-q08EbQwN2HEGfDAi6SA0,6184 +flask/globals.py,sha256=cWd-R2hUH3VqPhnmQNww892tQS6Yjqg_wg8UvW1M7NM,1723 +flask/helpers.py,sha256=00WqA3wYeyjMrnAOPZTUyrnUf7H8ik3CVT0kqGl_qjk,30589 +flask/json/__init__.py,sha256=unAKdZBlxMI5OMiTU0-Z2Hl4CF1CMJmqTUzpStiExNw,11822 +flask/json/__pycache__/__init__.cpython-38.pyc,, +flask/json/__pycache__/tag.cpython-38.pyc,, +flask/json/tag.py,sha256=fys3HBLssWHuMAIJuTcf2K0bCtosePBKXIWASZEEjnU,8857 +flask/logging.py,sha256=1o_hirVGqdj7SBdETnhX7IAjklG89RXlrwz_2CjzQQE,2273 +flask/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +flask/scaffold.py,sha256=fM9mRy7QBh9fhJ0VTogVx900dDa5oxz8FOw6OK5F-TU,32796 +flask/sessions.py,sha256=Kb7zY4qBIOU2cw1xM5mQ_KmgYUBDFbUYWjlkq0EFYis,15189 +flask/signals.py,sha256=H7QwDciK-dtBxinjKpexpglP0E6k0MJILiFWTItfmqU,2136 +flask/templating.py,sha256=l96VD39JQ0nue4Bcj7wZ4-FWWs-ppLxvgBCpwDQ4KAk,5626 +flask/testing.py,sha256=OsHT-2B70abWH3ulY9IbhLchXIeyj3L-cfcDa88wv5E,10281 +flask/typing.py,sha256=hXEVcXoH-QEabmy1F11pYaQ2SonlkMAwfjBAnqj2x18,1982 +flask/views.py,sha256=nhq31TRB5Z-z2mjFGZACaaB2Et5XPCmWhWxJxOvLWww,5948 +flask/wrappers.py,sha256=VndbHPRBSUUOejmd2Y3ydkoCVUtsS2OJIdJEVIkBVD8,5604 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/REQUESTED b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/WHEEL b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/entry_points.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/entry_points.txt new file mode 100644 index 0000000..1eb0252 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +flask = flask.cli:main + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/top_level.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/top_level.txt new file mode 100644 index 0000000..7e10602 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Flask-2.0.2.dist-info/top_level.txt @@ -0,0 +1 @@ +flask diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/INSTALLER b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/LICENSE.rst b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/LICENSE.rst new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/METADATA b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/METADATA new file mode 100644 index 0000000..3b9355a --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/METADATA @@ -0,0 +1,113 @@ +Metadata-Version: 2.1 +Name: Jinja2 +Version: 3.0.3 +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.6 +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/RECORD b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/RECORD new file mode 100644 index 0000000..e60c78b --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/RECORD @@ -0,0 +1,58 @@ +Jinja2-3.0.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Jinja2-3.0.3.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +Jinja2-3.0.3.dist-info/METADATA,sha256=uvKoBSMLvh0qHK-6khEqSe1yOV4jxFzbPSREOp-3BXk,3539 +Jinja2-3.0.3.dist-info/RECORD,, +Jinja2-3.0.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +Jinja2-3.0.3.dist-info/entry_points.txt,sha256=Qy_DkVo6Xj_zzOtmErrATe8lHZhOqdjpt3e4JJAGyi8,61 +Jinja2-3.0.3.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7 +jinja2/__init__.py,sha256=V3JjnTV-nyIHN6rwj03N1M11fegjGvv-weiHMQwH1pk,2205 +jinja2/__pycache__/__init__.cpython-38.pyc,, +jinja2/__pycache__/_identifier.cpython-38.pyc,, +jinja2/__pycache__/async_utils.cpython-38.pyc,, +jinja2/__pycache__/bccache.cpython-38.pyc,, +jinja2/__pycache__/compiler.cpython-38.pyc,, +jinja2/__pycache__/constants.cpython-38.pyc,, +jinja2/__pycache__/debug.cpython-38.pyc,, +jinja2/__pycache__/defaults.cpython-38.pyc,, +jinja2/__pycache__/environment.cpython-38.pyc,, +jinja2/__pycache__/exceptions.cpython-38.pyc,, +jinja2/__pycache__/ext.cpython-38.pyc,, +jinja2/__pycache__/filters.cpython-38.pyc,, +jinja2/__pycache__/idtracking.cpython-38.pyc,, +jinja2/__pycache__/lexer.cpython-38.pyc,, +jinja2/__pycache__/loaders.cpython-38.pyc,, +jinja2/__pycache__/meta.cpython-38.pyc,, +jinja2/__pycache__/nativetypes.cpython-38.pyc,, +jinja2/__pycache__/nodes.cpython-38.pyc,, +jinja2/__pycache__/optimizer.cpython-38.pyc,, +jinja2/__pycache__/parser.cpython-38.pyc,, +jinja2/__pycache__/runtime.cpython-38.pyc,, +jinja2/__pycache__/sandbox.cpython-38.pyc,, +jinja2/__pycache__/tests.cpython-38.pyc,, +jinja2/__pycache__/utils.cpython-38.pyc,, +jinja2/__pycache__/visitor.cpython-38.pyc,, +jinja2/_identifier.py,sha256=EdgGJKi7O1yvr4yFlvqPNEqV6M1qHyQr8Gt8GmVTKVM,1775 +jinja2/async_utils.py,sha256=jBcJSmLoQa2PjJdNcOpwaUmBxFNE9rZNwMF7Ob3dP9I,1947 +jinja2/bccache.py,sha256=v5rKAlYxIvfJEa0uGzAC6yCYSS3KuXT5Eqi-n9qvNi8,12670 +jinja2/compiler.py,sha256=v7zKz-mgSYXmfXD9mRmi2BU0B6Z-1RGZmOXCrsPKzc0,72209 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=r0JL0vfO7HPlyKZEdr6eVlg7HoIg2OQGmJ7SeUEyAeI,8494 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=Vz20npBX5-SUH_eguQuxrSQDEsLFjho0qcHLdMhY3hA,60983 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=44SjDjeYkkxQTpmC2BetOTxEFMgQ42p2dfSwXmPFcSo,32122 +jinja2/filters.py,sha256=jusKTZbd0ddZMaibZkxMUVKNsOsaYtOq_Il8Imtx4BE,52609 +jinja2/idtracking.py,sha256=WekexMql3u5n3vDxFsQ_i8HW0j24AtjWTjrPBLWrHww,10721 +jinja2/lexer.py,sha256=qNEQqDQw_zO5EaH6rFQsER7Qwn2du0o22prB-TR11HE,29930 +jinja2/loaders.py,sha256=1MjXJOU6p4VywFqtpDZhtvtT_vIlmHnZKMKHHw4SZzA,22754 +jinja2/meta.py,sha256=GNPEvifmSaU3CMxlbheBOZjeZ277HThOPUTf1RkppKQ,4396 +jinja2/nativetypes.py,sha256=KCJl71MogrDih_BHBu6xV5p7Cr_jggAgu-shKTg6L28,3969 +jinja2/nodes.py,sha256=i34GPRAZexXMT6bwuf5SEyvdmS-bRCy9KMjwN5O6pjk,34550 +jinja2/optimizer.py,sha256=tHkMwXxfZkbfA1KmLcqmBMSaz7RLIvvItrJcPoXTyD8,1650 +jinja2/parser.py,sha256=kHnU8v92GwMYkfr0MVakWv8UlSf_kJPx8LUsgQMof70,39767 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=wVRlkEmAgNU67AIQDqLvI6UkNLkzDqpLA-z4Mi3vl3g,35054 +jinja2/sandbox.py,sha256=-8zxR6TO9kUkciAVFsIKu8Oq-C7PTeYEdZ5TtA55-gw,14600 +jinja2/tests.py,sha256=Am5Z6Lmfr2XaH_npIfJJ8MdXtWsbLjMULZJulTAj30E,5905 +jinja2/utils.py,sha256=udQxWIKaq4QDCZiXN31ngKOaGGdaMA5fl0JMaM-F6fg,26971 +jinja2/visitor.py,sha256=ZmeLuTj66ic35-uFH-1m0EKXiw4ObDDb_WuE6h5vPFg,3572 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/WHEEL b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/entry_points.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/entry_points.txt new file mode 100644 index 0000000..3619483 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[babel.extractors] +jinja2 = jinja2.ext:babel_extract [i18n] + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/top_level.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/top_level.txt new file mode 100644 index 0000000..7f7afbf --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Jinja2-3.0.3.dist-info/top_level.txt @@ -0,0 +1 @@ +jinja2 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/METADATA b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/METADATA new file mode 100644 index 0000000..e87ebb9 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/METADATA @@ -0,0 +1,101 @@ +Metadata-Version: 2.1 +Name: MarkupSafe +Version: 2.0.1 +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 +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.6 +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/quickstart/ + + +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/RECORD b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/RECORD new file mode 100644 index 0000000..97bed90 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/RECORD @@ -0,0 +1,14 @@ +MarkupSafe-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +MarkupSafe-2.0.1.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +MarkupSafe-2.0.1.dist-info/METADATA,sha256=lknelt-VPHWai5EJcvZpATGKVbXkg74h7CQuPwDS71U,3237 +MarkupSafe-2.0.1.dist-info/RECORD,, +MarkupSafe-2.0.1.dist-info/WHEEL,sha256=-DoGBj0Avq2--T-QgXLI1C-bokNS_QjsEnIPIG0jMTU,217 +MarkupSafe-2.0.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 +markupsafe/__init__.py,sha256=9Tez4UIlI7J6_sQcUFK1dKniT_b_8YefpGIyYJ3Sr2Q,8923 +markupsafe/__pycache__/__init__.cpython-38.pyc,, +markupsafe/__pycache__/_native.cpython-38.pyc,, +markupsafe/_native.py,sha256=GTKEV-bWgZuSjklhMHOYRHU9k0DMewTf5mVEZfkbuns,1986 +markupsafe/_speedups.c,sha256=CDDtwaV21D2nYtypnMQzxvvpZpcTvIs8OZ6KDa1g4t0,7400 +markupsafe/_speedups.cpython-38-x86_64-linux-gnu.so,sha256=s6hSF-stCrLXV4xN9Mn0ZqYBD7ADdrAY6oMkZTqMH0A,53192 +markupsafe/_speedups.pyi,sha256=vfMCsOgbAXRNLUXkyuyonG8uEWKYU4PDqNuMaDELAYw,229 +markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL new file mode 100644 index 0000000..7db59ac --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL @@ -0,0 +1,8 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.36.2) +Root-Is-Purelib: false +Tag: cp38-cp38-manylinux_2_5_x86_64 +Tag: cp38-cp38-manylinux1_x86_64 +Tag: cp38-cp38-manylinux_2_12_x86_64 +Tag: cp38-cp38-manylinux2010_x86_64 + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt new file mode 100644 index 0000000..75bf729 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt @@ -0,0 +1 @@ +markupsafe diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/INSTALLER b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/LICENSE.rst b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/LICENSE.rst new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +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/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/METADATA b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/METADATA new file mode 100644 index 0000000..b58b9bd --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/METADATA @@ -0,0 +1,129 @@ +Metadata-Version: 2.1 +Name: Werkzeug +Version: 2.0.2 +Summary: The comprehensive WSGI web application library. +Home-page: https://palletsprojects.com/p/werkzeug/ +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://werkzeug.palletsprojects.com/ +Project-URL: Changes, https://werkzeug.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/werkzeug/ +Project-URL: Issue Tracker, https://github.com/pallets/werkzeug/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 :: Internet :: WWW/HTTP :: WSGI +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: dataclasses ; python_version < "3.7" +Provides-Extra: watchdog +Requires-Dist: watchdog ; extra == 'watchdog' + +Werkzeug +======== + +*werkzeug* German noun: "tool". Etymology: *werk* ("work"), *zeug* ("stuff") + +Werkzeug is a comprehensive `WSGI`_ web application library. It began as +a simple collection of various utilities for WSGI applications and has +become one of the most advanced WSGI utility libraries. + +It includes: + +- An interactive debugger that allows inspecting stack traces and + source code in the browser with an interactive interpreter for any + frame in the stack. +- A full-featured request object with objects to interact with + headers, query args, form data, files, and cookies. +- A response object that can wrap other WSGI applications and handle + streaming data. +- A routing system for matching URLs to endpoints and generating URLs + for endpoints, with an extensible system for capturing variables + from URLs. +- HTTP utilities to handle entity tags, cache control, dates, user + agents, cookies, files, and more. +- A threaded WSGI server for use while developing applications + locally. +- A test client for simulating HTTP requests during testing without + requiring running a server. + +Werkzeug doesn't enforce any dependencies. It is up to the developer to +choose a template engine, database adapter, and even how to handle +requests. It can be used to build all sorts of end user applications +such as blogs, wikis, or bulletin boards. + +`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while +providing more structure and patterns for defining powerful +applications. + +.. _WSGI: https://wsgi.readthedocs.io/en/latest/ +.. _Flask: https://www.palletsprojects.com/p/flask/ + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + pip install -U Werkzeug + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +A Simple Example +---------------- + +.. code-block:: python + + from werkzeug.wrappers import Request, Response + + @Request.application + def application(request): + return Response('Hello, World!') + + if __name__ == '__main__': + from werkzeug.serving import run_simple + run_simple('localhost', 4000, application) + + +Donate +------ + +The Pallets organization develops and supports Werkzeug 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://werkzeug.palletsprojects.com/ +- Changes: https://werkzeug.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/Werkzeug/ +- Source Code: https://github.com/pallets/werkzeug/ +- Issue Tracker: https://github.com/pallets/werkzeug/issues/ +- Website: https://palletsprojects.com/p/werkzeug/ +- Twitter: https://twitter.com/PalletsTeam +- Chat: https://discord.gg/pallets + + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/RECORD b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/RECORD new file mode 100644 index 0000000..a566dd6 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/RECORD @@ -0,0 +1,111 @@ +Werkzeug-2.0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Werkzeug-2.0.2.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +Werkzeug-2.0.2.dist-info/METADATA,sha256=vh_xrARtpmkFYnWRAgfSiHgl66LH143rMfAfPZo-R_E,4452 +Werkzeug-2.0.2.dist-info/RECORD,, +Werkzeug-2.0.2.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +Werkzeug-2.0.2.dist-info/top_level.txt,sha256=QRyj2VjwJoQkrwjwFIOlB8Xg3r9un0NtqVHQF-15xaw,9 +werkzeug/__init__.py,sha256=Wx1PLCftJ7UAS0fBXEO4Prdr6kvEQ124Stwg-XwyhW4,188 +werkzeug/__pycache__/__init__.cpython-38.pyc,, +werkzeug/__pycache__/_internal.cpython-38.pyc,, +werkzeug/__pycache__/_reloader.cpython-38.pyc,, +werkzeug/__pycache__/datastructures.cpython-38.pyc,, +werkzeug/__pycache__/exceptions.cpython-38.pyc,, +werkzeug/__pycache__/filesystem.cpython-38.pyc,, +werkzeug/__pycache__/formparser.cpython-38.pyc,, +werkzeug/__pycache__/http.cpython-38.pyc,, +werkzeug/__pycache__/local.cpython-38.pyc,, +werkzeug/__pycache__/routing.cpython-38.pyc,, +werkzeug/__pycache__/security.cpython-38.pyc,, +werkzeug/__pycache__/serving.cpython-38.pyc,, +werkzeug/__pycache__/test.cpython-38.pyc,, +werkzeug/__pycache__/testapp.cpython-38.pyc,, +werkzeug/__pycache__/urls.cpython-38.pyc,, +werkzeug/__pycache__/user_agent.cpython-38.pyc,, +werkzeug/__pycache__/useragents.cpython-38.pyc,, +werkzeug/__pycache__/utils.cpython-38.pyc,, +werkzeug/__pycache__/wsgi.cpython-38.pyc,, +werkzeug/_internal.py,sha256=_QKkvdaG4pDFwK68c0EpPzYJGe9Y7toRAT1cBbC-CxU,18572 +werkzeug/_reloader.py,sha256=B1hEfgsUOz2IginBQM5Zak_eaIF7gr3GS5-0x2OHvAE,13950 +werkzeug/datastructures.py,sha256=m79A8rHQEt5B7qVqyrjARXzHL66Katn8S92urGscTw4,97929 +werkzeug/datastructures.pyi,sha256=CoVwrQ2Vr9JnbprNL9aE3vOz8mOejT9qysQ-BT53C8Y,34089 +werkzeug/debug/__init__.py,sha256=jYA1e1Gw_8EPOytr-BoMdmm0rzP-Z1H0Ih7wIObnKwQ,17968 +werkzeug/debug/__pycache__/__init__.cpython-38.pyc,, +werkzeug/debug/__pycache__/console.cpython-38.pyc,, +werkzeug/debug/__pycache__/repr.cpython-38.pyc,, +werkzeug/debug/__pycache__/tbtools.cpython-38.pyc,, +werkzeug/debug/console.py,sha256=E1nBMEvFkX673ShQjPtVY-byYatfX9MN-dBMjRI8a8E,5897 +werkzeug/debug/repr.py,sha256=QCSHENKsChEZDCIApkVi_UNjhJ77v8BMXK1OfxO189M,9483 +werkzeug/debug/shared/FONT_LICENSE,sha256=LwAVEI1oYnvXiNMT9SnCH_TaLCxCpeHziDrMg0gPkAI,4673 +werkzeug/debug/shared/ICON_LICENSE.md,sha256=DhA6Y1gUl5Jwfg0NFN9Rj4VWITt8tUx0IvdGf0ux9-s,222 +werkzeug/debug/shared/console.png,sha256=bxax6RXXlvOij_KeqvSNX0ojJf83YbnZ7my-3Gx9w2A,507 +werkzeug/debug/shared/debugger.js,sha256=tg42SZs1SVmYWZ-_Fj5ELK5-FLHnGNQrei0K2By8Bw8,10521 +werkzeug/debug/shared/less.png,sha256=-4-kNRaXJSONVLahrQKUxMwXGm9R4OnZ9SxDGpHlIR4,191 +werkzeug/debug/shared/more.png,sha256=GngN7CioHQoV58rH6ojnkYi8c_qED2Aka5FO5UXrReY,200 +werkzeug/debug/shared/source.png,sha256=RoGcBTE4CyCB85GBuDGTFlAnUqxwTBiIfDqW15EpnUQ,818 +werkzeug/debug/shared/style.css,sha256=h1ZSUVaKNpfbfcYzRb513WAhPySGDQom1uih3uEDxPw,6704 +werkzeug/debug/shared/ubuntu.ttf,sha256=1eaHFyepmy4FyDvjLVzpITrGEBu_CZYY94jE0nED1c0,70220 +werkzeug/debug/tbtools.py,sha256=AFRrjLDCAps7G5K2-RxNZpXXaEoeFHm68T00f4vlDYA,19362 +werkzeug/exceptions.py,sha256=CUwx0pBiNbk4f9cON17ekgKnmLi6HIVFjUmYZc2x0wM,28681 +werkzeug/filesystem.py,sha256=JS2Dv2QF98WILxY4_thHl-WMcUcwluF_4igkDPaP1l4,1956 +werkzeug/formparser.py,sha256=X-p3Ek4ji8XrKrbmaWxr8StLSc6iuksbpIeweaabs4s,17400 +werkzeug/http.py,sha256=oUCXFFMnkOQ-cHbUY_aiqitshcrSzNDq3fEMf1VI_yk,45141 +werkzeug/local.py,sha256=bwL-y3-qOZAspJ66W1P36SUApLXJy3UY8nLYbM9kfmY,23183 +werkzeug/middleware/__init__.py,sha256=qfqgdT5npwG9ses3-FXQJf3aB95JYP1zchetH_T3PUw,500 +werkzeug/middleware/__pycache__/__init__.cpython-38.pyc,, +werkzeug/middleware/__pycache__/dispatcher.cpython-38.pyc,, +werkzeug/middleware/__pycache__/http_proxy.cpython-38.pyc,, +werkzeug/middleware/__pycache__/lint.cpython-38.pyc,, +werkzeug/middleware/__pycache__/profiler.cpython-38.pyc,, +werkzeug/middleware/__pycache__/proxy_fix.cpython-38.pyc,, +werkzeug/middleware/__pycache__/shared_data.cpython-38.pyc,, +werkzeug/middleware/dispatcher.py,sha256=Fh_w-KyWnTSYF-Lfv5dimQ7THSS7afPAZMmvc4zF1gg,2580 +werkzeug/middleware/http_proxy.py,sha256=HE8VyhS7CR-E1O6_9b68huv8FLgGGR1DLYqkS3Xcp3Q,7558 +werkzeug/middleware/lint.py,sha256=sAg3GcOhICIkwYX5bJGG8n8iebX0Yipq_UH0HvrBvoU,13964 +werkzeug/middleware/profiler.py,sha256=QkXk7cqnaPnF8wQu-5SyPCIOT3_kdABUBorQOghVNOA,4899 +werkzeug/middleware/proxy_fix.py,sha256=uRgQ3dEvFV8JxUqajHYYYOPEeA_BFqaa51Yp8VW0uzA,6849 +werkzeug/middleware/shared_data.py,sha256=xydEqOhAGg0aQJEllPDVfz2-8jHwWvJpAxfPsfPCu7k,10960 +werkzeug/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +werkzeug/routing.py,sha256=oqJ32sWIZtIF6zbqfrnwB1Pbv2ShNwPDJd6FYqxdYVo,84527 +werkzeug/sansio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +werkzeug/sansio/__pycache__/__init__.cpython-38.pyc,, +werkzeug/sansio/__pycache__/multipart.cpython-38.pyc,, +werkzeug/sansio/__pycache__/request.cpython-38.pyc,, +werkzeug/sansio/__pycache__/response.cpython-38.pyc,, +werkzeug/sansio/__pycache__/utils.cpython-38.pyc,, +werkzeug/sansio/multipart.py,sha256=bJMCNC2f5xyAaylahNViJ0JqmV4ThLRbDVGVzKwcqrQ,8751 +werkzeug/sansio/request.py,sha256=aA9rABkWiG4MhYMByanst2NXkEclsq8SIxhb0LQf0e0,20228 +werkzeug/sansio/response.py,sha256=zvCq9HSBBZGBd5Gg412BY9RZIwnKsJl5Kzfd3Kl9sSo,26098 +werkzeug/sansio/utils.py,sha256=V5v-UUnX8pm4RehP9Tt_NiUSOJGJGUvKjlW0eOIQldM,4164 +werkzeug/security.py,sha256=gPDRuCjkjWrcqj99tBMq8_nHFZLFQjgoW5Ga5XIw9jo,8158 +werkzeug/serving.py,sha256=AfgLn0yKr9qXknmwO-0KXJ055oloS4h5DIFDHEu8iHA,38088 +werkzeug/test.py,sha256=8gE1l-Y9yAh2i3SI0kgpxIaI4oYZuehIkxxyDFcz6J0,48123 +werkzeug/testapp.py,sha256=f48prWSGJhbSrvYb8e1fnAah4BkrLb0enHSdChgsjBY,9471 +werkzeug/urls.py,sha256=Du2lreBHvgBh5c2_bcx72g3hzV2ZabXYZsp-picUIJs,41023 +werkzeug/user_agent.py,sha256=WclZhpvgLurMF45hsioSbS75H1Zb4iMQGKN3_yZ2oKo,1420 +werkzeug/useragents.py,sha256=G8tmv_6vxJaPrLQH3eODNgIYe0_V6KETROQlJI-WxDE,7264 +werkzeug/utils.py,sha256=D_dnCLUfodQ4k0GRSpnI6qDoVoaX7-Dza57bx7sabG0,37101 +werkzeug/wrappers/__init__.py,sha256=-s75nPbyXHzU_rwmLPDhoMuGbEUk0jZT_n0ZQAOFGf8,654 +werkzeug/wrappers/__pycache__/__init__.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/accept.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/auth.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/base_request.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/base_response.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/common_descriptors.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/cors.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/etag.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/json.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/request.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/response.cpython-38.pyc,, +werkzeug/wrappers/__pycache__/user_agent.cpython-38.pyc,, +werkzeug/wrappers/accept.py,sha256=_oZtAQkahvsrPRkNj2fieg7_St9P0NFC3SgZbJKS6xU,429 +werkzeug/wrappers/auth.py,sha256=rZPCzGxHk9R55PRkmS90kRywUVjjuMWzCGtH68qCq8U,856 +werkzeug/wrappers/base_request.py,sha256=saz9RyNQkvI_XLPYVm29KijNHmD1YzgxDqa0qHTbgss,1174 +werkzeug/wrappers/base_response.py,sha256=q_-TaYywT5G4zA-DWDRDJhJSat2_4O7gOPob6ye4_9A,1186 +werkzeug/wrappers/common_descriptors.py,sha256=v_kWLH3mvCiSRVJ1FNw7nO3w2UJfzY57UKKB5J4zCvE,898 +werkzeug/wrappers/cors.py,sha256=c5UndlZsZvYkbPrp6Gj5iSXxw_VOJDJHskO6-jRmNyQ,846 +werkzeug/wrappers/etag.py,sha256=XHWQQs7Mdd1oWezgBIsl-bYe8ydKkRZVil2Qd01D0Mo,846 +werkzeug/wrappers/json.py,sha256=HM1btPseGeXca0vnwQN_MvZl6h-qNsFY5YBKXKXFwus,410 +werkzeug/wrappers/request.py,sha256=yZGplfC3UqNuykwLJmgywiMhmnoKEGHJOZn_A_ublcQ,24822 +werkzeug/wrappers/response.py,sha256=0n8OcQptiM2e550SALLeg7vC1uWsUbCeE1rPZFfXR78,35177 +werkzeug/wrappers/user_agent.py,sha256=Wl1-A0-1r8o7cHIZQTB55O4Ged6LpCKENaQDlOY5pXA,435 +werkzeug/wsgi.py,sha256=L7s5-Rlt7BRVEZ1m81MaenGfMDP7yL3p1Kxt9Yssqzg,33727 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/WHEEL b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/top_level.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/top_level.txt new file mode 100644 index 0000000..6fe8da8 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/Werkzeug-2.0.2.dist-info/top_level.txt @@ -0,0 +1 @@ +werkzeug diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__init__.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__init__.py new file mode 100644 index 0000000..47ce249 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__init__.py @@ -0,0 +1,128 @@ +import sys +import os +import re +import importlib +import warnings + + +is_pypy = '__pypy__' in sys.builtin_module_names + + +warnings.filterwarnings('ignore', + '.+ distutils .+ deprecated', + DeprecationWarning) + + +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 + 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 + warnings.warn("Setuptools is replacing distutils.") + mods = [name for name in sys.modules if re.match(r'distutils\b', name)] + for name in mods: + del sys.modules[name] + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib') + return which == 'local' + + +def ensure_local_distutils(): + clear_distutils() + distutils = importlib.import_module('setuptools._distutils') + distutils.__name__ = 'distutils' + sys.modules['distutils'] = distutils + + # sanity check that submodules load as expected + core = importlib.import_module('distutils.core') + assert '_distutils' in core.__file__, core.__file__ + + +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 DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + if path is not None: + return + + method_name = 'spec_for_{fullname}'.format(**locals()) + method = getattr(self, method_name, lambda: None) + return method() + + def spec_for_distutils(self): + import importlib.abc + import importlib.util + + class DistutilsLoader(importlib.abc.Loader): + + def create_module(self, spec): + return importlib.import_module('setuptools._distutils') + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader('distutils', DistutilsLoader()) + + 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 + + @staticmethod + def pip_imported_during_build(): + """ + Detect if pip is being imported in a build script. Ref #2355. + """ + import traceback + return any( + frame.f_globals['__file__'].endswith('setup.py') + for frame, line in traceback.walk_stack(None) + ) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def remove_shim(): + try: + sys.meta_path.remove(DISTUTILS_FINDER) + except ValueError: + pass diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__pycache__/__init__.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/_distutils_hack/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f217cc7d916b76b03187459e96c1898c3834dcd GIT binary patch literal 5144 zcmbtYOLyDG6&^eYL6k(xkGM(tn#N8Vwl?WU9!{z%56em2I&>P@am$k&7~~8^NFYED zKq+FSP33c%YvR9|I~B(MO^xZRgvPrl$=9d^6Gq6I`Q2z5x@|U1eYcvHzS~V(n38Rlww$IT?MHLM z61H>?ErW@Ya2~SeyqFU%?qxAA%D69x1+j?xqF53Y+?PIN;)Ga!$i(u2*{sOQ0c)NR zC&ekeTNbCq8Qf0_W1Ur>djeFf(R4kpzuVvSyvzwUqFBk{i?v^K5hUp#4Z?&|L-v(y z`>7Od`eypF(72A0)KCc{Wt+y=6&Qeoxv@Kz7F~xO{{ir0YLj$|P`>Nf@=8JWz z<`bIh$s8*Gz+h~xK(ON{Jm~df1pvGyJHW`-Wjg4maU3QWcx#Z3-Urdf)En-HNz9e( zhkjcoJnc$;zgX`+@5N#eN*+Y~ezKd?@@8_s#_x24g!lYi9!g*EH0Fay$RtpH3&UHo z>u(3KN_eceR0>b{BIf>f9AI!)CYUlw1`@#XzCl8;iiPn6VW#2k1ummxfW4$$KjlfW zA$$%{N$Q6o_6v9fJXO93(jbofknaH6tFpFH<58S)KjIRvG`P`cRV*EeIso?kEy=%c z5kJIC$3+ZP&w~RqyYn-8i~h zyH-zvR9@`+?Ja*pCUviX>2=Xp_W&hGJ+Ic^&CU{vsR3Ybg2|TwDuJOgW|R%vs8}{? z^E*XdGsHI0Q4o6-jibbV1X61n!#p1{BK;aWF!tFVTVtOu?rSsHGk(h+T+l=>H55%Z zd}+d3QgY7B8FJLxV198C4hLl&CHV=e4Xp6_8JhnQ9LSz=XexWp_=owxhB+C-g+eBu zwW?-jDw&mfe%kI*qjo8?Bflpnx=~A*GAplyu(WpE>#v@tb!b6{nQV~_&$VFzY9h$m zN*K3cRI7Lxe^a#;eWA#175PK8fU0UXZIC8Wr>Li3L%!mPBhzw>NoY*2m$I>JxQ04| z_Ka3YGB(O}l;kWblKUf57|?}DvKQ8tNp5BMPMPC+FAU=y*i{I6fvP<2Oc`No7uL5O zs5t6@8GPGU0a;K@f7yI~{l=ZUAK$rs`_{U5cm0O9c60sC-8(mLt!GY>3eYkuX-QPA z%#2|lqp31$L#9vn0%w{0+S7z9B${O=rtVR?|6pIxzkUnm{C_#y8JR987JZ(VUl+f;Y7` zoNHE|45+$V5!rn1fNASX`Jb5Yr4j4wyQX8d`cL)jIB(!+&Ze-BteU;w( zl<>59XUp^cf%IS`t98SP^Nv(Wi24ZMO%GD=I3l9YuhtcM1Y5?hpz zFxbKobGVnJBU~~65WcQCr-iwYon9Nq>5pXUe-I#4szzJW8&lFn?txOF>nO=3RC`Ez zw&v9$QBxS3tOE)ku)iDob_#0mAqB$f?7-SD?UfGlL}7S3>C3hU`FMZn48o8Yw|{Im zq<-xyX?dFcvC%jxr-`uKmC*0CgumLr=>MRwVf`tasdca?kCvZyfBBcNe+QW0V>2gr zjoBPrfS;xcvD1d{>16I0Z)W%Xw3|7puP`QC=t)F2p^YbV^2QWctS@Wo)fb^bipMZE5W4_W^sn^JPmxIWHBbyMCQf#Td@z0 zwaHJ8ud&ZOjSelPFWDn(?U3?Zv!N(-Rt@!Yx|!-CZqN-B`q)rELnD{E7Wh&d`AI5A zzU>}fCVCxX_))R`gy*#%fVVa?^D*?tsH=WCMmC1*;aU`>-)5#~vY~8h-YeB_5L=K|HNMQN2+TJx94dm2umHm;h zxTqLR%Qc^Ohp!Z9pQ-B^3nK**Rj#9G8`uK{4=Doxqx%808$MA@}IhA7?-`gu&C?ryAEz@kuyM>_ zpTW2(iWTlsy^4)(peV{;hF6{`BEmS8D;Cc31-$UaM>$Un6t?BH20RaSyGM06YS|Al8}|FriaBylt-i45636qUOvD9@x6pVImRQdVhr zyHM7eOp#LZphLQ#M7||SJ>z}Rk8Hr>Ec?kxd#K5f7QHY(H9R|^{1Z;j~Lq_t8zFLh50YR}%=eyy%PZRFYtf6N+|C_uJvcAB3f9 zG?2k^n*A-R-lpm*RYWzlhALYGh%{)AA~3Bwg=E72SMcI@C_28lM%i^MZrL;x^|w)G zE)pHhl+gKSd`?NNLv!@k2Z9oDaCCUe=CQc%<>>*=@JN`m<>JiYeQ>j}cH@($fy!K8 zAUEj-y)S4n@;}T_g`kf(go-6Lo;}V-N=!FabFZKwK;UBvKht7@8RuFfL?ZWJqBQX3%7c;*U?s zEG{W6$;>H^&qz$p_S0m##T6f)nOl%wR1zN_#hsELpI??*RFs*Lx{{#?WE`0IRivMh zpPQ}r0Ny`?M_TjE!IbKk3P(Dy@JYH95%W6DWy57c8ox0d=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: colorama ; platform_system == "Windows" +Requires-Dist: importlib-metadata ; python_version < "3.8" + +\$ click\_ +========== + +Click is a Python package for creating beautiful command line interfaces +in a composable way with as little code as necessary. It's the "Command +Line Interface Creation Kit". It's highly configurable but comes with +sensible defaults out of the box. + +It aims to make the process of writing command line tools quick and fun +while also preventing any frustration caused by the inability to +implement an intended CLI API. + +Click in three points: + +- Arbitrary nesting of commands +- Automatic help page generation +- Supports lazy loading of subcommands at runtime + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + $ pip install -U click + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +A Simple Example +---------------- + +.. code-block:: python + + import click + + @click.command() + @click.option("--count", default=1, help="Number of greetings.") + @click.option("--name", prompt="Your name", help="The person to greet.") + def hello(count, name): + """Simple program that greets NAME for a total of COUNT times.""" + for _ in range(count): + click.echo(f"Hello, {name}!") + + if __name__ == '__main__': + hello() + +.. code-block:: text + + $ python hello.py --count=3 + Your name: Click + Hello, Click! + Hello, Click! + Hello, Click! + + +Donate +------ + +The Pallets organization develops and supports Click 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://click.palletsprojects.com/ +- Changes: https://click.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/click/ +- Source Code: https://github.com/pallets/click +- Issue Tracker: https://github.com/pallets/click/issues +- Website: https://palletsprojects.com/p/click +- Twitter: https://twitter.com/PalletsTeam +- Chat: https://discord.gg/pallets + + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/RECORD b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/RECORD new file mode 100644 index 0000000..263a6c6 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/RECORD @@ -0,0 +1,41 @@ +click-8.0.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +click-8.0.3.dist-info/LICENSE.rst,sha256=morRBqOU6FO_4h9C9OctWSgZoigF2ZG18ydQKSkrZY0,1475 +click-8.0.3.dist-info/METADATA,sha256=_0jCOf3DdGPvKUZUlBukeb1t6Pnxmm_OMGpaBoDthfc,3247 +click-8.0.3.dist-info/RECORD,, +click-8.0.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +click-8.0.3.dist-info/top_level.txt,sha256=J1ZQogalYS4pphY_lPECoNMfw0HzTSrZglC4Yfwo4xA,6 +click/__init__.py,sha256=YkIrDg7-0g5aBS6D2pDe58j3MOaFylHED2_8OXh2fnM,3243 +click/__pycache__/__init__.cpython-38.pyc,, +click/__pycache__/_compat.cpython-38.pyc,, +click/__pycache__/_termui_impl.cpython-38.pyc,, +click/__pycache__/_textwrap.cpython-38.pyc,, +click/__pycache__/_unicodefun.cpython-38.pyc,, +click/__pycache__/_winconsole.cpython-38.pyc,, +click/__pycache__/core.cpython-38.pyc,, +click/__pycache__/decorators.cpython-38.pyc,, +click/__pycache__/exceptions.cpython-38.pyc,, +click/__pycache__/formatting.cpython-38.pyc,, +click/__pycache__/globals.cpython-38.pyc,, +click/__pycache__/parser.cpython-38.pyc,, +click/__pycache__/shell_completion.cpython-38.pyc,, +click/__pycache__/termui.cpython-38.pyc,, +click/__pycache__/testing.cpython-38.pyc,, +click/__pycache__/types.cpython-38.pyc,, +click/__pycache__/utils.cpython-38.pyc,, +click/_compat.py,sha256=P15KQumAZC2F2MFe_JSRbvVOJcNosQfMDrdZq0ReCLM,18814 +click/_termui_impl.py,sha256=z78J5HF_RTsOBhjNLjoigaqRap3P2pWwEDDAjoZzgUg,23452 +click/_textwrap.py,sha256=10fQ64OcBUMuK7mFvh8363_uoOxPlRItZBmKzRJDgoY,1353 +click/_unicodefun.py,sha256=JKSh1oSwG_zbjAu4TBCa9tQde2P9FiYcf4MBfy5NdT8,3201 +click/_winconsole.py,sha256=5ju3jQkcZD0W27WEMGqmEP4y_crUVzPCqsX_FYb7BO0,7860 +click/core.py,sha256=k4PA2z0BT_dmed9I52Q2VLi8r6ekTMCtCQzw2y915Xs,111478 +click/decorators.py,sha256=sGkXJGmP7eLtjtmPl_Un2uBTlrhK8s2L22n-yBiDwTw,14864 +click/exceptions.py,sha256=7gDaLGuFZBeCNwY9ERMsF2-Z3R9Fvq09Zc6IZSKjseo,9167 +click/formatting.py,sha256=Frf0-5W33-loyY_i9qrwXR8-STnW3m5gvyxLVUdyxyk,9706 +click/globals.py,sha256=kGPzxq55Ug4dFUrgRV-5oHVPOPdLCUhmYolbrrVBo8g,1985 +click/parser.py,sha256=cAEt1uQR8gq3-S9ysqbVU-fdAZNvilxw4ReJ_T1OQMk,19044 +click/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +click/shell_completion.py,sha256=_hPI12T9Ex-y5a3WunWnlH0Gca2_urzXFXkDnt7G6Ow,18001 +click/termui.py,sha256=Rp2gFE8x7j8sEIoFMOcPmuqxJQVWWTrwEzyC14-sPAw,29006 +click/testing.py,sha256=kLR5Qcny1OlgxaGB3gweTr0gQe1yVlmgQRn2esA2Fz4,16020 +click/types.py,sha256=VoNZnIlRBAtRRgzavdqVnyfzY5y4U4qzVGI1UvvX1ls,35391 +click/utils.py,sha256=avYwX-3l2KkdJNUo8NmncZSoAdEmniQ_M5sdsSYloJ4,18759 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/WHEEL b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/top_level.txt b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/top_level.txt new file mode 100644 index 0000000..dca9a90 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click-8.0.3.dist-info/top_level.txt @@ -0,0 +1 @@ +click diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__init__.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__init__.py new file mode 100644 index 0000000..a2ed5d1 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__init__.py @@ -0,0 +1,75 @@ +""" +Click is a simple Python module inspired by the stdlib optparse to make +writing command line scripts fun. Unlike other modules, it's based +around a simple API that does not come with too much magic and is +composable. +""" +from .core import Argument as Argument +from .core import BaseCommand as BaseCommand +from .core import Command as Command +from .core import CommandCollection as CommandCollection +from .core import Context as Context +from .core import Group as Group +from .core import MultiCommand as MultiCommand +from .core import Option as Option +from .core import Parameter as Parameter +from .decorators import argument as argument +from .decorators import command as command +from .decorators import confirmation_option as confirmation_option +from .decorators import group as group +from .decorators import help_option as help_option +from .decorators import make_pass_decorator as make_pass_decorator +from .decorators import option as option +from .decorators import pass_context as pass_context +from .decorators import pass_obj as pass_obj +from .decorators import password_option as password_option +from .decorators import version_option as version_option +from .exceptions import Abort as Abort +from .exceptions import BadArgumentUsage as BadArgumentUsage +from .exceptions import BadOptionUsage as BadOptionUsage +from .exceptions import BadParameter as BadParameter +from .exceptions import ClickException as ClickException +from .exceptions import FileError as FileError +from .exceptions import MissingParameter as MissingParameter +from .exceptions import NoSuchOption as NoSuchOption +from .exceptions import UsageError as UsageError +from .formatting import HelpFormatter as HelpFormatter +from .formatting import wrap_text as wrap_text +from .globals import get_current_context as get_current_context +from .parser import OptionParser as OptionParser +from .termui import clear as clear +from .termui import confirm as confirm +from .termui import echo_via_pager as echo_via_pager +from .termui import edit as edit +from .termui import get_terminal_size as get_terminal_size +from .termui import getchar as getchar +from .termui import launch as launch +from .termui import pause as pause +from .termui import progressbar as progressbar +from .termui import prompt as prompt +from .termui import secho as secho +from .termui import style as style +from .termui import unstyle as unstyle +from .types import BOOL as BOOL +from .types import Choice as Choice +from .types import DateTime as DateTime +from .types import File as File +from .types import FLOAT as FLOAT +from .types import FloatRange as FloatRange +from .types import INT as INT +from .types import IntRange as IntRange +from .types import ParamType as ParamType +from .types import Path as Path +from .types import STRING as STRING +from .types import Tuple as Tuple +from .types import UNPROCESSED as UNPROCESSED +from .types import UUID as UUID +from .utils import echo as echo +from .utils import format_filename as format_filename +from .utils import get_app_dir as get_app_dir +from .utils import get_binary_stream as get_binary_stream +from .utils import get_os_args as get_os_args +from .utils import get_text_stream as get_text_stream +from .utils import open_file as open_file + +__version__ = "8.0.3" diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/__init__.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4a1258385fc294e52852bdc05103422aff031cc GIT binary patch literal 2713 zcmd7U*;W%t7zgkGNeChAg1fe&A_57D3o6PI7ExJ_z|D8lr_(8t8hSfb9TlHoUS-Z) z&I`epOvdccr>JM*{=J41WHc{KNabl*#KV$^yXxIRSJ+M6UF;sXhkC?WI7?Y^4$e_doQLz27x%)w)GIE)1uBU9;6CaT z7vUlm#r;8lSfY}+1P{=FcmN)xLGd6wL_^{sc$kL8!|(`=h)3X28WoSiV>BingRjsP z@fCQS#>M0C1Wkx1f~(;*x+cB~U#IKhYw!)aA-)dZq?_U!@GZI}z6sx^+u~dB9l9gF z4d11^;ybWIj`(hHFT79p#ST14lj3{9gYY3e6yFaXg;O*oo(vv`(=;u906(E8;)n1I z&4?etvotH7g6C*X{1`4%Sv(C_s3Lv>&(pkk27XFU#k24;dM2KO7id9ThM&`OaRq)s zFU0e~%kUMw5mt&86W8{sBxikIOn+7hq8ALxU472c+8@f!S* zK8maGC;B8_hdGxK(x!53S`T#1iIX((j8#q=JE3=?irdTJ#z2vNQ-@a$OP^HSCS;4!Uwb#Fxamd1Nxg}Oo1buRC`ri7ZGFLO|~&&GFOonK1drViAGF><2A zJK9?8il4ibcH;wla2Lx~l(Ely41B->Y{tAoorUcCX1v5byS%Z6N?pHY3_ecx@~TUn z!7z)J#n1VH@_3=J^0M4~Ey{1k?pN($IUCX{tLmDse1r$ZWTB3{z_t1ZUwSVp{iY0( z54=|7H&K~Oyq4vo{fUViMp;|yv_LUTWSdx?hMU^-G?0N>(K)kgdwZX8EMINL+UJ9X zbuU$iI%H>g;kf7K=e^ZKptu>tUi!t0H!aiFDuhQa;E0!Qq$f z-7OyIu!Y+h=s()s|FT!zI5^l?M=^VJv@QS7PIc&5mfJnX{1G-V_uwV*lEkfRUPf7= z8kWbLx;8b+3(woc*2PA*C=PX2@q2pNqAyNVB*Xs5EtcoY3%k?1?OxZd$G+>fv)Iqd z@C)4F-JLO6jvPmxqnD$=(Z|7G1E_d$6Ij#FwfIVqF#{Zf977z#93vc~9Ag|;IK~m} zqB`HJ)=Y5iRgP;M*Ew!*+~l~$ahu}~f{LA0;%A(>%e4*y+a!ojC+98WlAIA%HKILaIqL_3$_6SiiaE1q&Z<5=K$&hdid zCC4j{MUK}TZ#dp^EOER;v~#Ug<8Klttb7d|Y}0RR91 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_compat.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_compat.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18435f5043aef40865dc61d679a203d1f91c523a GIT binary patch literal 16126 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 CD7%sX literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_termui_impl.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_termui_impl.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8438997cc237e8e9b9cf846110335d51e9dbe4da GIT binary patch literal 15815 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_textwrap.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/_textwrap.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e37cee40e9161b624917ed52844557a450f9b8c4 GIT binary patch literal 1539 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 NFmJ-~w^{nv{|oR!3%URR literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/core.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/core.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d54c1579d907ea5c857ffc4f26e3d93192a997a GIT binary patch literal 88250 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/decorators.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/decorators.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e67ed3abd08165297959138eb69b681fd38189ee GIT binary patch literal 14270 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/formatting.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/formatting.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04fa78a12bac46390dfedd644ecf6b6dde435453 GIT binary patch literal 9420 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 H>QeO|kj8p^ literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/parser.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/parser.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45b7d7f271e4c730477de4384a625adbb3e7c007 GIT binary patch literal 13653 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/shell_completion.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/shell_completion.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a38d81a9391ac60adb84781fb47de1aa57cc85a7 GIT binary patch literal 16742 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 Nuf2tT%0G8MX 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%0AaaqF*c&UBqiLUo%o0s%Lm!3)h=E|F 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/testing.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/testing.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2210625d88691a635c6acdcffbb88ebbe340da80 GIT binary patch literal 14876 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 N28i}aeqnm;e*n2DK~4Yw literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/types.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/__pycache__/types.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3dc61e32623fe477d992cadf7d32a4f204c828c8 GIT binary patch literal 33108 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_compat.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_compat.py new file mode 100644 index 0000000..b9e1f0d --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_compat.py @@ -0,0 +1,627 @@ +import codecs +import io +import os +import re +import sys +import typing as t +from weakref import WeakKeyDictionary + +CYGWIN = sys.platform.startswith("cygwin") +MSYS2 = sys.platform.startswith("win") and ("GCC" in sys.version) +# Determine local App Engine environment, per Google's own suggestion +APP_ENGINE = "APPENGINE_RUNTIME" in os.environ and "Development/" in os.environ.get( + "SERVER_SOFTWARE", "" +) +WIN = sys.platform.startswith("win") and not APP_ENGINE and not MSYS2 +auto_wrap_for_ansi: t.Optional[t.Callable[[t.TextIO], t.TextIO]] = None +_ansi_re = re.compile(r"\033\[[;?0-9]*[a-zA-Z]") + + +def get_filesystem_encoding() -> str: + return sys.getfilesystemencoding() or sys.getdefaultencoding() + + +def _make_text_stream( + stream: t.BinaryIO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if encoding is None: + encoding = get_best_encoding(stream) + if errors is None: + errors = "replace" + return _NonClosingTextIOWrapper( + stream, + encoding, + errors, + line_buffering=True, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def is_ascii_encoding(encoding: str) -> bool: + """Checks if a given encoding is ascii.""" + try: + return codecs.lookup(encoding).name == "ascii" + except LookupError: + return False + + +def get_best_encoding(stream: t.IO) -> str: + """Returns the default stream encoding if not found.""" + rv = getattr(stream, "encoding", None) or sys.getdefaultencoding() + if is_ascii_encoding(rv): + return "utf-8" + return rv + + +class _NonClosingTextIOWrapper(io.TextIOWrapper): + def __init__( + self, + stream: t.BinaryIO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, + force_writable: bool = False, + **extra: t.Any, + ) -> None: + self._stream = stream = t.cast( + t.BinaryIO, _FixupStream(stream, force_readable, force_writable) + ) + super().__init__(stream, encoding, errors, **extra) + + def __del__(self) -> None: + try: + self.detach() + except Exception: + pass + + def isatty(self) -> bool: + # https://bitbucket.org/pypy/pypy/issue/1803 + return self._stream.isatty() + + +class _FixupStream: + """The new io interface needs more from streams than streams + traditionally implement. As such, this fix-up code is necessary in + some circumstances. + + The forcing of readable and writable flags are there because some tools + put badly patched objects on sys (one such offender are certain version + of jupyter notebook). + """ + + def __init__( + self, + stream: t.BinaryIO, + force_readable: bool = False, + force_writable: bool = False, + ): + self._stream = stream + self._force_readable = force_readable + self._force_writable = force_writable + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._stream, name) + + def read1(self, size: int) -> bytes: + f = getattr(self._stream, "read1", None) + + if f is not None: + return t.cast(bytes, f(size)) + + return self._stream.read(size) + + def readable(self) -> bool: + if self._force_readable: + return True + x = getattr(self._stream, "readable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.read(0) + except Exception: + return False + return True + + def writable(self) -> bool: + if self._force_writable: + return True + x = getattr(self._stream, "writable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.write("") # type: ignore + except Exception: + try: + self._stream.write(b"") + except Exception: + return False + return True + + def seekable(self) -> bool: + x = getattr(self._stream, "seekable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.seek(self._stream.tell()) + except Exception: + return False + return True + + +def _is_binary_reader(stream: t.IO, default: bool = False) -> bool: + try: + return isinstance(stream.read(0), bytes) + except Exception: + return default + # This happens in some cases where the stream was already + # closed. In this case, we assume the default. + + +def _is_binary_writer(stream: t.IO, default: bool = False) -> bool: + try: + stream.write(b"") + except Exception: + try: + stream.write("") + return False + except Exception: + pass + return default + return True + + +def _find_binary_reader(stream: t.IO) -> t.Optional[t.BinaryIO]: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_reader(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_reader(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _find_binary_writer(stream: t.IO) -> t.Optional[t.BinaryIO]: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_writer(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_writer(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _stream_is_misconfigured(stream: t.TextIO) -> bool: + """A stream is misconfigured if its encoding is ASCII.""" + # If the stream does not have an encoding set, we assume it's set + # to ASCII. This appears to happen in certain unittest + # environments. It's not quite clear what the correct behavior is + # but this at least will force Click to recover somehow. + return is_ascii_encoding(getattr(stream, "encoding", None) or "ascii") + + +def _is_compat_stream_attr(stream: t.TextIO, attr: str, value: t.Optional[str]) -> bool: + """A stream attribute is compatible if it is equal to the + desired value or the desired value is unset and the attribute + has a value. + """ + stream_value = getattr(stream, attr, None) + return stream_value == value or (value is None and stream_value is not None) + + +def _is_compatible_text_stream( + stream: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] +) -> bool: + """Check if a stream's encoding and errors attributes are + compatible with the desired values. + """ + return _is_compat_stream_attr( + stream, "encoding", encoding + ) and _is_compat_stream_attr(stream, "errors", errors) + + +def _force_correct_text_stream( + text_stream: t.IO, + encoding: t.Optional[str], + errors: t.Optional[str], + is_binary: t.Callable[[t.IO, bool], bool], + find_binary: t.Callable[[t.IO], t.Optional[t.BinaryIO]], + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if is_binary(text_stream, False): + binary_reader = t.cast(t.BinaryIO, text_stream) + else: + text_stream = t.cast(t.TextIO, text_stream) + # If the stream looks compatible, and won't default to a + # misconfigured ascii encoding, return it as-is. + if _is_compatible_text_stream(text_stream, encoding, errors) and not ( + encoding is None and _stream_is_misconfigured(text_stream) + ): + return text_stream + + # Otherwise, get the underlying binary reader. + possible_binary_reader = find_binary(text_stream) + + # If that's not possible, silently use the original reader + # and get mojibake instead of exceptions. + if possible_binary_reader is None: + return text_stream + + binary_reader = possible_binary_reader + + # Default errors to replace instead of strict in order to get + # something that works. + if errors is None: + errors = "replace" + + # Wrap the binary stream in a text stream with the correct + # encoding parameters. + return _make_text_stream( + binary_reader, + encoding, + errors, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def _force_correct_text_reader( + text_reader: t.IO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_readable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_reader, + encoding, + errors, + _is_binary_reader, + _find_binary_reader, + force_readable=force_readable, + ) + + +def _force_correct_text_writer( + text_writer: t.IO, + encoding: t.Optional[str], + errors: t.Optional[str], + force_writable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_writer, + encoding, + errors, + _is_binary_writer, + _find_binary_writer, + force_writable=force_writable, + ) + + +def get_binary_stdin() -> t.BinaryIO: + reader = _find_binary_reader(sys.stdin) + if reader is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdin.") + return reader + + +def get_binary_stdout() -> t.BinaryIO: + writer = _find_binary_writer(sys.stdout) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdout.") + return writer + + +def get_binary_stderr() -> t.BinaryIO: + writer = _find_binary_writer(sys.stderr) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stderr.") + return writer + + +def get_text_stdin( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdin, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_reader(sys.stdin, encoding, errors, force_readable=True) + + +def get_text_stdout( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdout, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stdout, encoding, errors, force_writable=True) + + +def get_text_stderr( + encoding: t.Optional[str] = None, errors: t.Optional[str] = None +) -> t.TextIO: + rv = _get_windows_console_stream(sys.stderr, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stderr, encoding, errors, force_writable=True) + + +def _wrap_io_open( + file: t.Union[str, os.PathLike, int], + mode: str, + encoding: t.Optional[str], + errors: t.Optional[str], +) -> t.IO: + """Handles not passing ``encoding`` and ``errors`` in binary mode.""" + if "b" in mode: + return open(file, mode) + + return open(file, mode, encoding=encoding, errors=errors) + + +def open_stream( + filename: str, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + atomic: bool = False, +) -> t.Tuple[t.IO, bool]: + binary = "b" in mode + + # Standard streams first. These are simple because they don't need + # special handling for the atomic flag. It's entirely ignored. + if filename == "-": + if any(m in mode for m in ["w", "a", "x"]): + if binary: + return get_binary_stdout(), False + return get_text_stdout(encoding=encoding, errors=errors), False + if binary: + return get_binary_stdin(), False + return get_text_stdin(encoding=encoding, errors=errors), False + + # Non-atomic writes directly go out through the regular open functions. + if not atomic: + return _wrap_io_open(filename, mode, encoding, errors), True + + # Some usability stuff for atomic writes + if "a" in mode: + raise ValueError( + "Appending to an existing file is not supported, because that" + " would involve an expensive `copy`-operation to a temporary" + " file. Open the file in normal `w`-mode and copy explicitly" + " if that's what you're after." + ) + if "x" in mode: + raise ValueError("Use the `overwrite`-parameter instead.") + if "w" not in mode: + raise ValueError("Atomic writes only make sense with `w`-mode.") + + # Atomic writes are more complicated. They work by opening a file + # as a proxy in the same folder and then using the fdopen + # functionality to wrap it in a Python file. Then we wrap it in an + # atomic file that moves the file over on close. + import errno + import random + + try: + perm: t.Optional[int] = os.stat(filename).st_mode + except OSError: + perm = None + + flags = os.O_RDWR | os.O_CREAT | os.O_EXCL + + if binary: + flags |= getattr(os, "O_BINARY", 0) + + while True: + tmp_filename = os.path.join( + os.path.dirname(filename), + f".__atomic-write{random.randrange(1 << 32):08x}", + ) + try: + fd = os.open(tmp_filename, flags, 0o666 if perm is None else perm) + break + except OSError as e: + if e.errno == errno.EEXIST or ( + os.name == "nt" + and e.errno == errno.EACCES + and os.path.isdir(e.filename) + and os.access(e.filename, os.W_OK) + ): + continue + raise + + if perm is not None: + os.chmod(tmp_filename, perm) # in case perm includes bits in umask + + f = _wrap_io_open(fd, mode, encoding, errors) + af = _AtomicFile(f, tmp_filename, os.path.realpath(filename)) + return t.cast(t.IO, af), True + + +class _AtomicFile: + def __init__(self, f: t.IO, tmp_filename: str, real_filename: str) -> None: + self._f = f + self._tmp_filename = tmp_filename + self._real_filename = real_filename + self.closed = False + + @property + def name(self) -> str: + return self._real_filename + + def close(self, delete: bool = False) -> None: + if self.closed: + return + self._f.close() + os.replace(self._tmp_filename, self._real_filename) + self.closed = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._f, name) + + def __enter__(self) -> "_AtomicFile": + return self + + def __exit__(self, exc_type, exc_value, tb): # type: ignore + self.close(delete=exc_type is not None) + + def __repr__(self) -> str: + return repr(self._f) + + +def strip_ansi(value: str) -> str: + return _ansi_re.sub("", value) + + +def _is_jupyter_kernel_output(stream: t.IO) -> bool: + while isinstance(stream, (_FixupStream, _NonClosingTextIOWrapper)): + stream = stream._stream + + return stream.__class__.__module__.startswith("ipykernel.") + + +def should_strip_ansi( + stream: t.Optional[t.IO] = None, color: t.Optional[bool] = None +) -> bool: + if color is None: + if stream is None: + stream = sys.stdin + return not isatty(stream) and not _is_jupyter_kernel_output(stream) + return not color + + +# On Windows, wrap the output streams with colorama to support ANSI +# color codes. +# NOTE: double check is needed so mypy does not analyze this on Linux +if sys.platform.startswith("win") and WIN: + from ._winconsole import _get_windows_console_stream + + def _get_argv_encoding() -> str: + import locale + + return locale.getpreferredencoding() + + _ansi_stream_wrappers: t.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def auto_wrap_for_ansi( + stream: t.TextIO, color: t.Optional[bool] = None + ) -> t.TextIO: + """Support ANSI color and style codes on Windows by wrapping a + stream with colorama. + """ + try: + cached = _ansi_stream_wrappers.get(stream) + except Exception: + cached = None + + if cached is not None: + return cached + + import colorama + + strip = should_strip_ansi(stream, color) + ansi_wrapper = colorama.AnsiToWin32(stream, strip=strip) + rv = t.cast(t.TextIO, ansi_wrapper.stream) + _write = rv.write + + def _safe_write(s): + try: + return _write(s) + except BaseException: + ansi_wrapper.reset_all() + raise + + rv.write = _safe_write + + try: + _ansi_stream_wrappers[stream] = rv + except Exception: + pass + + return rv + + +else: + + def _get_argv_encoding() -> str: + return getattr(sys.stdin, "encoding", None) or get_filesystem_encoding() + + def _get_windows_console_stream( + f: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] + ) -> t.Optional[t.TextIO]: + return None + + +def term_len(x: str) -> int: + return len(strip_ansi(x)) + + +def isatty(stream: t.IO) -> bool: + try: + return stream.isatty() + except Exception: + return False + + +def _make_cached_stream_func( + src_func: t.Callable[[], t.TextIO], wrapper_func: t.Callable[[], t.TextIO] +) -> t.Callable[[], t.TextIO]: + cache: t.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def func() -> t.TextIO: + stream = src_func() + try: + rv = cache.get(stream) + except Exception: + rv = None + if rv is not None: + return rv + rv = wrapper_func() + try: + cache[stream] = rv + except Exception: + pass + return rv + + return func + + +_default_text_stdin = _make_cached_stream_func(lambda: sys.stdin, get_text_stdin) +_default_text_stdout = _make_cached_stream_func(lambda: sys.stdout, get_text_stdout) +_default_text_stderr = _make_cached_stream_func(lambda: sys.stderr, get_text_stderr) + + +binary_streams: t.Mapping[str, t.Callable[[], t.BinaryIO]] = { + "stdin": get_binary_stdin, + "stdout": get_binary_stdout, + "stderr": get_binary_stderr, +} + +text_streams: t.Mapping[ + str, t.Callable[[t.Optional[str], t.Optional[str]], t.TextIO] +] = { + "stdin": get_text_stdin, + "stdout": get_text_stdout, + "stderr": get_text_stderr, +} diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_termui_impl.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_termui_impl.py new file mode 100644 index 0000000..39c1d08 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_termui_impl.py @@ -0,0 +1,718 @@ +""" +This module contains implementations for the termui module. To keep the +import time of Click down, some infrequently used functionality is +placed in this module and only imported as needed. +""" +import contextlib +import math +import os +import sys +import time +import typing as t +from gettext import gettext as _ + +from ._compat import _default_text_stdout +from ._compat import CYGWIN +from ._compat import get_best_encoding +from ._compat import isatty +from ._compat import open_stream +from ._compat import strip_ansi +from ._compat import term_len +from ._compat import WIN +from .exceptions import ClickException +from .utils import echo + +V = t.TypeVar("V") + +if os.name == "nt": + BEFORE_BAR = "\r" + AFTER_BAR = "\n" +else: + BEFORE_BAR = "\r\033[?25l" + AFTER_BAR = "\033[?25h\n" + + +class ProgressBar(t.Generic[V]): + def __init__( + self, + iterable: t.Optional[t.Iterable[V]], + length: t.Optional[int] = None, + fill_char: str = "#", + empty_char: str = " ", + bar_template: str = "%(bar)s", + info_sep: str = " ", + show_eta: bool = True, + show_percent: t.Optional[bool] = None, + show_pos: bool = False, + item_show_func: t.Optional[t.Callable[[t.Optional[V]], t.Optional[str]]] = None, + label: t.Optional[str] = None, + file: t.Optional[t.TextIO] = None, + color: t.Optional[bool] = None, + update_min_steps: int = 1, + width: int = 30, + ) -> None: + self.fill_char = fill_char + self.empty_char = empty_char + self.bar_template = bar_template + self.info_sep = info_sep + self.show_eta = show_eta + self.show_percent = show_percent + self.show_pos = show_pos + self.item_show_func = item_show_func + self.label = label or "" + if file is None: + file = _default_text_stdout() + self.file = file + self.color = color + self.update_min_steps = update_min_steps + self._completed_intervals = 0 + self.width = width + self.autowidth = width == 0 + + if length is None: + from operator import length_hint + + length = length_hint(iterable, -1) + + if length == -1: + length = None + if iterable is None: + if length is None: + raise TypeError("iterable or length is required") + iterable = t.cast(t.Iterable[V], range(length)) + self.iter = iter(iterable) + self.length = length + self.pos = 0 + self.avg: t.List[float] = [] + self.start = self.last_eta = time.time() + self.eta_known = False + self.finished = False + self.max_width: t.Optional[int] = None + self.entered = False + self.current_item: t.Optional[V] = None + self.is_hidden = not isatty(self.file) + self._last_line: t.Optional[str] = None + + def __enter__(self) -> "ProgressBar": + self.entered = True + self.render_progress() + return self + + def __exit__(self, exc_type, exc_value, tb): # type: ignore + self.render_finish() + + def __iter__(self) -> t.Iterator[V]: + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + self.render_progress() + return self.generator() + + def __next__(self) -> V: + # Iteration is defined in terms of a generator function, + # returned by iter(self); use that to define next(). This works + # because `self.iter` is an iterable consumed by that generator, + # so it is re-entry safe. Calling `next(self.generator())` + # twice works and does "what you want". + return next(iter(self)) + + def render_finish(self) -> None: + if self.is_hidden: + return + self.file.write(AFTER_BAR) + self.file.flush() + + @property + def pct(self) -> float: + if self.finished: + return 1.0 + return min(self.pos / (float(self.length or 1) or 1), 1.0) + + @property + def time_per_iteration(self) -> float: + if not self.avg: + return 0.0 + return sum(self.avg) / float(len(self.avg)) + + @property + def eta(self) -> float: + if self.length is not None and not self.finished: + return self.time_per_iteration * (self.length - self.pos) + return 0.0 + + def format_eta(self) -> str: + if self.eta_known: + t = int(self.eta) + seconds = t % 60 + t //= 60 + minutes = t % 60 + t //= 60 + hours = t % 24 + t //= 24 + if t > 0: + return f"{t}d {hours:02}:{minutes:02}:{seconds:02}" + else: + return f"{hours:02}:{minutes:02}:{seconds:02}" + return "" + + def format_pos(self) -> str: + pos = str(self.pos) + if self.length is not None: + pos += f"/{self.length}" + return pos + + def format_pct(self) -> str: + return f"{int(self.pct * 100): 4}%"[1:] + + def format_bar(self) -> str: + if self.length is not None: + bar_length = int(self.pct * self.width) + bar = self.fill_char * bar_length + bar += self.empty_char * (self.width - bar_length) + elif self.finished: + bar = self.fill_char * self.width + else: + chars = list(self.empty_char * (self.width or 1)) + if self.time_per_iteration != 0: + chars[ + int( + (math.cos(self.pos * self.time_per_iteration) / 2.0 + 0.5) + * self.width + ) + ] = self.fill_char + bar = "".join(chars) + return bar + + def format_progress_line(self) -> str: + show_percent = self.show_percent + + info_bits = [] + if self.length is not None and show_percent is None: + show_percent = not self.show_pos + + if self.show_pos: + info_bits.append(self.format_pos()) + if show_percent: + info_bits.append(self.format_pct()) + if self.show_eta and self.eta_known and not self.finished: + info_bits.append(self.format_eta()) + if self.item_show_func is not None: + item_info = self.item_show_func(self.current_item) + if item_info is not None: + info_bits.append(item_info) + + return ( + self.bar_template + % { + "label": self.label, + "bar": self.format_bar(), + "info": self.info_sep.join(info_bits), + } + ).rstrip() + + def render_progress(self) -> None: + import shutil + + if self.is_hidden: + # Only output the label as it changes if the output is not a + # TTY. Use file=stderr if you expect to be piping stdout. + if self._last_line != self.label: + self._last_line = self.label + echo(self.label, file=self.file, color=self.color) + + return + + buf = [] + # Update width in case the terminal has been resized + if self.autowidth: + old_width = self.width + self.width = 0 + clutter_length = term_len(self.format_progress_line()) + new_width = max(0, shutil.get_terminal_size().columns - clutter_length) + if new_width < old_width: + buf.append(BEFORE_BAR) + buf.append(" " * self.max_width) # type: ignore + self.max_width = new_width + self.width = new_width + + clear_width = self.width + if self.max_width is not None: + clear_width = self.max_width + + buf.append(BEFORE_BAR) + line = self.format_progress_line() + line_len = term_len(line) + if self.max_width is None or self.max_width < line_len: + self.max_width = line_len + + buf.append(line) + buf.append(" " * (clear_width - line_len)) + line = "".join(buf) + # Render the line only if it changed. + + if line != self._last_line: + self._last_line = line + echo(line, file=self.file, color=self.color, nl=False) + self.file.flush() + + def make_step(self, n_steps: int) -> None: + self.pos += n_steps + if self.length is not None and self.pos >= self.length: + self.finished = True + + if (time.time() - self.last_eta) < 1.0: + return + + self.last_eta = time.time() + + # self.avg is a rolling list of length <= 7 of steps where steps are + # defined as time elapsed divided by the total progress through + # self.length. + if self.pos: + step = (time.time() - self.start) / self.pos + else: + step = time.time() - self.start + + self.avg = self.avg[-6:] + [step] + + self.eta_known = self.length is not None + + def update(self, n_steps: int, current_item: t.Optional[V] = None) -> None: + """Update the progress bar by advancing a specified number of + steps, and optionally set the ``current_item`` for this new + position. + + :param n_steps: Number of steps to advance. + :param current_item: Optional item to set as ``current_item`` + for the updated position. + + .. versionchanged:: 8.0 + Added the ``current_item`` optional parameter. + + .. versionchanged:: 8.0 + Only render when the number of steps meets the + ``update_min_steps`` threshold. + """ + if current_item is not None: + self.current_item = current_item + + self._completed_intervals += n_steps + + if self._completed_intervals >= self.update_min_steps: + self.make_step(self._completed_intervals) + self.render_progress() + self._completed_intervals = 0 + + def finish(self) -> None: + self.eta_known = False + self.current_item = None + self.finished = True + + def generator(self) -> t.Iterator[V]: + """Return a generator which yields the items added to the bar + during construction, and updates the progress bar *after* the + yielded block returns. + """ + # WARNING: the iterator interface for `ProgressBar` relies on + # this and only works because this is a simple generator which + # doesn't create or manage additional state. If this function + # changes, the impact should be evaluated both against + # `iter(bar)` and `next(bar)`. `next()` in particular may call + # `self.generator()` repeatedly, and this must remain safe in + # order for that interface to work. + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + + if self.is_hidden: + yield from self.iter + else: + for rv in self.iter: + self.current_item = rv + + # This allows show_item_func to be updated before the + # item is processed. Only trigger at the beginning of + # the update interval. + if self._completed_intervals == 0: + self.render_progress() + + yield rv + self.update(1) + + self.finish() + self.render_progress() + + +def pager(generator: t.Iterable[str], color: t.Optional[bool] = None) -> None: + """Decide what method to use for paging through text.""" + stdout = _default_text_stdout() + if not isatty(sys.stdin) or not isatty(stdout): + return _nullpager(stdout, generator, color) + pager_cmd = (os.environ.get("PAGER", None) or "").strip() + if pager_cmd: + if WIN: + return _tempfilepager(generator, pager_cmd, color) + return _pipepager(generator, pager_cmd, color) + if os.environ.get("TERM") in ("dumb", "emacs"): + return _nullpager(stdout, generator, color) + if WIN or sys.platform.startswith("os2"): + return _tempfilepager(generator, "more <", color) + if hasattr(os, "system") and os.system("(less) 2>/dev/null") == 0: + return _pipepager(generator, "less", color) + + import tempfile + + fd, filename = tempfile.mkstemp() + os.close(fd) + try: + if hasattr(os, "system") and os.system(f'more "{filename}"') == 0: + return _pipepager(generator, "more", color) + return _nullpager(stdout, generator, color) + finally: + os.unlink(filename) + + +def _pipepager(generator: t.Iterable[str], cmd: str, color: t.Optional[bool]) -> None: + """Page through text by feeding it to another program. Invoking a + pager through this might support colors. + """ + import subprocess + + env = dict(os.environ) + + # If we're piping to less we might support colors under the + # condition that + cmd_detail = cmd.rsplit("/", 1)[-1].split() + if color is None and cmd_detail[0] == "less": + less_flags = f"{os.environ.get('LESS', '')}{' '.join(cmd_detail[1:])}" + if not less_flags: + env["LESS"] = "-R" + color = True + elif "r" in less_flags or "R" in less_flags: + color = True + + c = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, env=env) + stdin = t.cast(t.BinaryIO, c.stdin) + encoding = get_best_encoding(stdin) + try: + for text in generator: + if not color: + text = strip_ansi(text) + + stdin.write(text.encode(encoding, "replace")) + except (OSError, KeyboardInterrupt): + pass + else: + stdin.close() + + # Less doesn't respect ^C, but catches it for its own UI purposes (aborting + # search or other commands inside less). + # + # That means when the user hits ^C, the parent process (click) terminates, + # but less is still alive, paging the output and messing up the terminal. + # + # If the user wants to make the pager exit on ^C, they should set + # `LESS='-K'`. It's not our decision to make. + while True: + try: + c.wait() + except KeyboardInterrupt: + pass + else: + break + + +def _tempfilepager( + generator: t.Iterable[str], cmd: str, color: t.Optional[bool] +) -> None: + """Page through text by invoking a program on a temporary file.""" + import tempfile + + fd, filename = tempfile.mkstemp() + # TODO: This never terminates if the passed generator never terminates. + text = "".join(generator) + if not color: + text = strip_ansi(text) + encoding = get_best_encoding(sys.stdout) + with open_stream(filename, "wb")[0] as f: + f.write(text.encode(encoding)) + try: + os.system(f'{cmd} "{filename}"') + finally: + os.close(fd) + os.unlink(filename) + + +def _nullpager( + stream: t.TextIO, generator: t.Iterable[str], color: t.Optional[bool] +) -> None: + """Simply print unformatted text. This is the ultimate fallback.""" + for text in generator: + if not color: + text = strip_ansi(text) + stream.write(text) + + +class Editor: + def __init__( + self, + editor: t.Optional[str] = None, + env: t.Optional[t.Mapping[str, str]] = None, + require_save: bool = True, + extension: str = ".txt", + ) -> None: + self.editor = editor + self.env = env + self.require_save = require_save + self.extension = extension + + def get_editor(self) -> str: + if self.editor is not None: + return self.editor + for key in "VISUAL", "EDITOR": + rv = os.environ.get(key) + if rv: + return rv + if WIN: + return "notepad" + for editor in "sensible-editor", "vim", "nano": + if os.system(f"which {editor} >/dev/null 2>&1") == 0: + return editor + return "vi" + + def edit_file(self, filename: str) -> None: + import subprocess + + editor = self.get_editor() + environ: t.Optional[t.Dict[str, str]] = None + + if self.env: + environ = os.environ.copy() + environ.update(self.env) + + try: + c = subprocess.Popen(f'{editor} "{filename}"', env=environ, shell=True) + exit_code = c.wait() + if exit_code != 0: + raise ClickException( + _("{editor}: Editing failed").format(editor=editor) + ) + except OSError as e: + raise ClickException( + _("{editor}: Editing failed: {e}").format(editor=editor, e=e) + ) from e + + def edit(self, text: t.Optional[t.AnyStr]) -> t.Optional[t.AnyStr]: + import tempfile + + if not text: + data = b"" + elif isinstance(text, (bytes, bytearray)): + data = text + else: + if text and not text.endswith("\n"): + text += "\n" + + if WIN: + data = text.replace("\n", "\r\n").encode("utf-8-sig") + else: + data = text.encode("utf-8") + + fd, name = tempfile.mkstemp(prefix="editor-", suffix=self.extension) + f: t.BinaryIO + + try: + with os.fdopen(fd, "wb") as f: + f.write(data) + + # If the filesystem resolution is 1 second, like Mac OS + # 10.12 Extended, or 2 seconds, like FAT32, and the editor + # closes very fast, require_save can fail. Set the modified + # time to be 2 seconds in the past to work around this. + os.utime(name, (os.path.getatime(name), os.path.getmtime(name) - 2)) + # Depending on the resolution, the exact value might not be + # recorded, so get the new recorded value. + timestamp = os.path.getmtime(name) + + self.edit_file(name) + + if self.require_save and os.path.getmtime(name) == timestamp: + return None + + with open(name, "rb") as f: + rv = f.read() + + if isinstance(text, (bytes, bytearray)): + return rv + + return rv.decode("utf-8-sig").replace("\r\n", "\n") # type: ignore + finally: + os.unlink(name) + + +def open_url(url: str, wait: bool = False, locate: bool = False) -> int: + import subprocess + + def _unquote_file(url: str) -> str: + from urllib.parse import unquote + + if url.startswith("file://"): + url = unquote(url[7:]) + + return url + + if sys.platform == "darwin": + args = ["open"] + if wait: + args.append("-W") + if locate: + args.append("-R") + args.append(_unquote_file(url)) + null = open("/dev/null", "w") + try: + return subprocess.Popen(args, stderr=null).wait() + finally: + null.close() + elif WIN: + if locate: + url = _unquote_file(url.replace('"', "")) + args = f'explorer /select,"{url}"' + else: + url = url.replace('"', "") + wait_str = "/WAIT" if wait else "" + args = f'start {wait_str} "" "{url}"' + return os.system(args) + elif CYGWIN: + if locate: + url = os.path.dirname(_unquote_file(url).replace('"', "")) + args = f'cygstart "{url}"' + else: + url = url.replace('"', "") + wait_str = "-w" if wait else "" + args = f'cygstart {wait_str} "{url}"' + return os.system(args) + + try: + if locate: + url = os.path.dirname(_unquote_file(url)) or "." + else: + url = _unquote_file(url) + c = subprocess.Popen(["xdg-open", url]) + if wait: + return c.wait() + return 0 + except OSError: + if url.startswith(("http://", "https://")) and not locate and not wait: + import webbrowser + + webbrowser.open(url) + return 0 + return 1 + + +def _translate_ch_to_exc(ch: str) -> t.Optional[BaseException]: + if ch == "\x03": + raise KeyboardInterrupt() + + if ch == "\x04" and not WIN: # Unix-like, Ctrl+D + raise EOFError() + + if ch == "\x1a" and WIN: # Windows, Ctrl+Z + raise EOFError() + + return None + + +if WIN: + import msvcrt + + @contextlib.contextmanager + def raw_terminal() -> t.Iterator[int]: + yield -1 + + def getchar(echo: bool) -> str: + # The function `getch` will return a bytes object corresponding to + # the pressed character. Since Windows 10 build 1803, it will also + # return \x00 when called a second time after pressing a regular key. + # + # `getwch` does not share this probably-bugged behavior. Moreover, it + # returns a Unicode object by default, which is what we want. + # + # Either of these functions will return \x00 or \xe0 to indicate + # a special key, and you need to call the same function again to get + # the "rest" of the code. The fun part is that \u00e0 is + # "latin small letter a with grave", so if you type that on a French + # keyboard, you _also_ get a \xe0. + # E.g., consider the Up arrow. This returns \xe0 and then \x48. The + # resulting Unicode string reads as "a with grave" + "capital H". + # This is indistinguishable from when the user actually types + # "a with grave" and then "capital H". + # + # When \xe0 is returned, we assume it's part of a special-key sequence + # and call `getwch` again, but that means that when the user types + # the \u00e0 character, `getchar` doesn't return until a second + # character is typed. + # The alternative is returning immediately, but that would mess up + # cross-platform handling of arrow keys and others that start with + # \xe0. Another option is using `getch`, but then we can't reliably + # read non-ASCII characters, because return values of `getch` are + # limited to the current 8-bit codepage. + # + # Anyway, Click doesn't claim to do this Right(tm), and using `getwch` + # is doing the right thing in more situations than with `getch`. + func: t.Callable[[], str] + + if echo: + func = msvcrt.getwche # type: ignore + else: + func = msvcrt.getwch # type: ignore + + rv = func() + + if rv in ("\x00", "\xe0"): + # \x00 and \xe0 are control characters that indicate special key, + # see above. + rv += func() + + _translate_ch_to_exc(rv) + return rv + + +else: + import tty + import termios + + @contextlib.contextmanager + def raw_terminal() -> t.Iterator[int]: + f: t.Optional[t.TextIO] + fd: int + + if not isatty(sys.stdin): + f = open("/dev/tty") + fd = f.fileno() + else: + fd = sys.stdin.fileno() + f = None + + try: + old_settings = termios.tcgetattr(fd) + + try: + tty.setraw(fd) + yield fd + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) + sys.stdout.flush() + + if f is not None: + f.close() + except termios.error: + pass + + def getchar(echo: bool) -> str: + with raw_terminal() as fd: + ch = os.read(fd, 32).decode(get_best_encoding(sys.stdin), "replace") + + if echo and isatty(sys.stdout): + sys.stdout.write(ch) + + _translate_ch_to_exc(ch) + return ch diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_textwrap.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_textwrap.py new file mode 100644 index 0000000..b47dcbd --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_textwrap.py @@ -0,0 +1,49 @@ +import textwrap +import typing as t +from contextlib import contextmanager + + +class TextWrapper(textwrap.TextWrapper): + def _handle_long_word( + self, + reversed_chunks: t.List[str], + cur_line: t.List[str], + cur_len: int, + width: int, + ) -> None: + space_left = max(width - cur_len, 1) + + if self.break_long_words: + last = reversed_chunks[-1] + cut = last[:space_left] + res = last[space_left:] + cur_line.append(cut) + reversed_chunks[-1] = res + elif not cur_line: + cur_line.append(reversed_chunks.pop()) + + @contextmanager + def extra_indent(self, indent: str) -> t.Iterator[None]: + old_initial_indent = self.initial_indent + old_subsequent_indent = self.subsequent_indent + self.initial_indent += indent + self.subsequent_indent += indent + + try: + yield + finally: + self.initial_indent = old_initial_indent + self.subsequent_indent = old_subsequent_indent + + def indent_only(self, text: str) -> str: + rv = [] + + for idx, line in enumerate(text.splitlines()): + indent = self.initial_indent + + if idx > 0: + indent = self.subsequent_indent + + rv.append(f"{indent}{line}") + + return "\n".join(rv) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_unicodefun.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_unicodefun.py new file mode 100644 index 0000000..9cb30c3 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_unicodefun.py @@ -0,0 +1,100 @@ +import codecs +import os +from gettext import gettext as _ + + +def _verify_python_env() -> None: + """Ensures that the environment is good for Unicode.""" + try: + from locale import getpreferredencoding + + fs_enc = codecs.lookup(getpreferredencoding()).name + except Exception: + fs_enc = "ascii" + + if fs_enc != "ascii": + return + + extra = [ + _( + "Click will abort further execution because Python was" + " configured to use ASCII as encoding for the environment." + " Consult https://click.palletsprojects.com/unicode-support/" + " for mitigation steps." + ) + ] + + if os.name == "posix": + import subprocess + + try: + rv = subprocess.Popen( + ["locale", "-a"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding="ascii", + errors="replace", + ).communicate()[0] + except OSError: + rv = "" + + good_locales = set() + has_c_utf8 = False + + for line in rv.splitlines(): + locale = line.strip() + + if locale.lower().endswith((".utf-8", ".utf8")): + good_locales.add(locale) + + if locale.lower() in ("c.utf8", "c.utf-8"): + has_c_utf8 = True + + if not good_locales: + extra.append( + _( + "Additional information: on this system no suitable" + " UTF-8 locales were discovered. This most likely" + " requires resolving by reconfiguring the locale" + " system." + ) + ) + elif has_c_utf8: + extra.append( + _( + "This system supports the C.UTF-8 locale which is" + " recommended. You might be able to resolve your" + " issue by exporting the following environment" + " variables:" + ) + ) + extra.append(" export LC_ALL=C.UTF-8\n export LANG=C.UTF-8") + else: + extra.append( + _( + "This system lists some UTF-8 supporting locales" + " that you can pick from. The following suitable" + " locales were discovered: {locales}" + ).format(locales=", ".join(sorted(good_locales))) + ) + + bad_locale = None + + for env_locale in os.environ.get("LC_ALL"), os.environ.get("LANG"): + if env_locale and env_locale.lower().endswith((".utf-8", ".utf8")): + bad_locale = env_locale + + if env_locale is not None: + break + + if bad_locale is not None: + extra.append( + _( + "Click discovered that you exported a UTF-8 locale" + " but the locale system could not pick up from it" + " because it does not exist. The exported locale is" + " {locale!r} but it is not supported." + ).format(locale=bad_locale) + ) + + raise RuntimeError("\n\n".join(extra)) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_winconsole.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_winconsole.py new file mode 100644 index 0000000..6b20df3 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/_winconsole.py @@ -0,0 +1,279 @@ +# This module is based on the excellent work by Adam Bartoš who +# provided a lot of what went into the implementation here in +# the discussion to issue1602 in the Python bug tracker. +# +# There are some general differences in regards to how this works +# compared to the original patches as we do not need to patch +# the entire interpreter but just work in our little world of +# echo and prompt. +import io +import sys +import time +import typing as t +from ctypes import byref +from ctypes import c_char +from ctypes import c_char_p +from ctypes import c_int +from ctypes import c_ssize_t +from ctypes import c_ulong +from ctypes import c_void_p +from ctypes import POINTER +from ctypes import py_object +from ctypes import Structure +from ctypes.wintypes import DWORD +from ctypes.wintypes import HANDLE +from ctypes.wintypes import LPCWSTR +from ctypes.wintypes import LPWSTR + +from ._compat import _NonClosingTextIOWrapper + +assert sys.platform == "win32" +import msvcrt # noqa: E402 +from ctypes import windll # noqa: E402 +from ctypes import WINFUNCTYPE # noqa: E402 + +c_ssize_p = POINTER(c_ssize_t) + +kernel32 = windll.kernel32 +GetStdHandle = kernel32.GetStdHandle +ReadConsoleW = kernel32.ReadConsoleW +WriteConsoleW = kernel32.WriteConsoleW +GetConsoleMode = kernel32.GetConsoleMode +GetLastError = kernel32.GetLastError +GetCommandLineW = WINFUNCTYPE(LPWSTR)(("GetCommandLineW", windll.kernel32)) +CommandLineToArgvW = WINFUNCTYPE(POINTER(LPWSTR), LPCWSTR, POINTER(c_int))( + ("CommandLineToArgvW", windll.shell32) +) +LocalFree = WINFUNCTYPE(c_void_p, c_void_p)(("LocalFree", windll.kernel32)) + +STDIN_HANDLE = GetStdHandle(-10) +STDOUT_HANDLE = GetStdHandle(-11) +STDERR_HANDLE = GetStdHandle(-12) + +PyBUF_SIMPLE = 0 +PyBUF_WRITABLE = 1 + +ERROR_SUCCESS = 0 +ERROR_NOT_ENOUGH_MEMORY = 8 +ERROR_OPERATION_ABORTED = 995 + +STDIN_FILENO = 0 +STDOUT_FILENO = 1 +STDERR_FILENO = 2 + +EOF = b"\x1a" +MAX_BYTES_WRITTEN = 32767 + +try: + from ctypes import pythonapi +except ImportError: + # On PyPy we cannot get buffers so our ability to operate here is + # severely limited. + get_buffer = None +else: + + class Py_buffer(Structure): + _fields_ = [ + ("buf", c_void_p), + ("obj", py_object), + ("len", c_ssize_t), + ("itemsize", c_ssize_t), + ("readonly", c_int), + ("ndim", c_int), + ("format", c_char_p), + ("shape", c_ssize_p), + ("strides", c_ssize_p), + ("suboffsets", c_ssize_p), + ("internal", c_void_p), + ] + + PyObject_GetBuffer = pythonapi.PyObject_GetBuffer + PyBuffer_Release = pythonapi.PyBuffer_Release + + def get_buffer(obj, writable=False): + buf = Py_buffer() + flags = PyBUF_WRITABLE if writable else PyBUF_SIMPLE + PyObject_GetBuffer(py_object(obj), byref(buf), flags) + + try: + buffer_type = c_char * buf.len + return buffer_type.from_address(buf.buf) + finally: + PyBuffer_Release(byref(buf)) + + +class _WindowsConsoleRawIOBase(io.RawIOBase): + def __init__(self, handle): + self.handle = handle + + def isatty(self): + super().isatty() + return True + + +class _WindowsConsoleReader(_WindowsConsoleRawIOBase): + def readable(self): + return True + + def readinto(self, b): + bytes_to_be_read = len(b) + if not bytes_to_be_read: + return 0 + elif bytes_to_be_read % 2: + raise ValueError( + "cannot read odd number of bytes from UTF-16-LE encoded console" + ) + + buffer = get_buffer(b, writable=True) + code_units_to_be_read = bytes_to_be_read // 2 + code_units_read = c_ulong() + + rv = ReadConsoleW( + HANDLE(self.handle), + buffer, + code_units_to_be_read, + byref(code_units_read), + None, + ) + if GetLastError() == ERROR_OPERATION_ABORTED: + # wait for KeyboardInterrupt + time.sleep(0.1) + if not rv: + raise OSError(f"Windows error: {GetLastError()}") + + if buffer[0] == EOF: + return 0 + return 2 * code_units_read.value + + +class _WindowsConsoleWriter(_WindowsConsoleRawIOBase): + def writable(self): + return True + + @staticmethod + def _get_error_message(errno): + if errno == ERROR_SUCCESS: + return "ERROR_SUCCESS" + elif errno == ERROR_NOT_ENOUGH_MEMORY: + return "ERROR_NOT_ENOUGH_MEMORY" + return f"Windows error {errno}" + + def write(self, b): + bytes_to_be_written = len(b) + buf = get_buffer(b) + code_units_to_be_written = min(bytes_to_be_written, MAX_BYTES_WRITTEN) // 2 + code_units_written = c_ulong() + + WriteConsoleW( + HANDLE(self.handle), + buf, + code_units_to_be_written, + byref(code_units_written), + None, + ) + bytes_written = 2 * code_units_written.value + + if bytes_written == 0 and bytes_to_be_written > 0: + raise OSError(self._get_error_message(GetLastError())) + return bytes_written + + +class ConsoleStream: + def __init__(self, text_stream: t.TextIO, byte_stream: t.BinaryIO) -> None: + self._text_stream = text_stream + self.buffer = byte_stream + + @property + def name(self) -> str: + return self.buffer.name + + def write(self, x: t.AnyStr) -> int: + if isinstance(x, str): + return self._text_stream.write(x) + try: + self.flush() + except Exception: + pass + return self.buffer.write(x) + + def writelines(self, lines: t.Iterable[t.AnyStr]) -> None: + for line in lines: + self.write(line) + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._text_stream, name) + + def isatty(self) -> bool: + return self.buffer.isatty() + + def __repr__(self): + return f"" + + +def _get_text_stdin(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedReader(_WindowsConsoleReader(STDIN_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stdout(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDOUT_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stderr(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDERR_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +_stream_factories: t.Mapping[int, t.Callable[[t.BinaryIO], t.TextIO]] = { + 0: _get_text_stdin, + 1: _get_text_stdout, + 2: _get_text_stderr, +} + + +def _is_console(f: t.TextIO) -> bool: + if not hasattr(f, "fileno"): + return False + + try: + fileno = f.fileno() + except (OSError, io.UnsupportedOperation): + return False + + handle = msvcrt.get_osfhandle(fileno) + return bool(GetConsoleMode(handle, byref(DWORD()))) + + +def _get_windows_console_stream( + f: t.TextIO, encoding: t.Optional[str], errors: t.Optional[str] +) -> t.Optional[t.TextIO]: + if ( + get_buffer is not None + and encoding in {"utf-16-le", None} + and errors in {"strict", None} + and _is_console(f) + ): + func = _stream_factories.get(f.fileno()) + if func is not None: + b = getattr(f, "buffer", None) + + if b is None: + return None + + return func(b) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/core.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/core.py new file mode 100644 index 0000000..f226354 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/core.py @@ -0,0 +1,2953 @@ +import enum +import errno +import os +import sys +import typing +import typing as t +from collections import abc +from contextlib import contextmanager +from contextlib import ExitStack +from functools import partial +from functools import update_wrapper +from gettext import gettext as _ +from gettext import ngettext +from itertools import repeat + +from . import types +from ._unicodefun import _verify_python_env +from .exceptions import Abort +from .exceptions import BadParameter +from .exceptions import ClickException +from .exceptions import Exit +from .exceptions import MissingParameter +from .exceptions import UsageError +from .formatting import HelpFormatter +from .formatting import join_options +from .globals import pop_context +from .globals import push_context +from .parser import _flag_needs_value +from .parser import OptionParser +from .parser import split_opt +from .termui import confirm +from .termui import prompt +from .termui import style +from .utils import _detect_program_name +from .utils import _expand_args +from .utils import echo +from .utils import make_default_short_help +from .utils import make_str +from .utils import PacifyFlushWrapper + +if t.TYPE_CHECKING: + import typing_extensions as te + from .shell_completion import CompletionItem + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) +V = t.TypeVar("V") + + +def _complete_visible_commands( + ctx: "Context", incomplete: str +) -> t.Iterator[t.Tuple[str, "Command"]]: + """List all the subcommands of a group that start with the + incomplete value and aren't hidden. + + :param ctx: Invocation context for the group. + :param incomplete: Value being completed. May be empty. + """ + multi = t.cast(MultiCommand, ctx.command) + + for name in multi.list_commands(ctx): + if name.startswith(incomplete): + command = multi.get_command(ctx, name) + + if command is not None and not command.hidden: + yield name, command + + +def _check_multicommand( + base_command: "MultiCommand", cmd_name: str, cmd: "Command", register: bool = False +) -> None: + if not base_command.chain or not isinstance(cmd, MultiCommand): + return + if register: + hint = ( + "It is not possible to add multi commands as children to" + " another multi command that is in chain mode." + ) + else: + hint = ( + "Found a multi command as subcommand to a multi command" + " that is in chain mode. This is not supported." + ) + raise RuntimeError( + f"{hint}. Command {base_command.name!r} is set to chain and" + f" {cmd_name!r} was added as a subcommand but it in itself is a" + f" multi command. ({cmd_name!r} is a {type(cmd).__name__}" + f" within a chained {type(base_command).__name__} named" + f" {base_command.name!r})." + ) + + +def batch(iterable: t.Iterable[V], batch_size: int) -> t.List[t.Tuple[V, ...]]: + return list(zip(*repeat(iter(iterable), batch_size))) + + +@contextmanager +def augment_usage_errors( + ctx: "Context", param: t.Optional["Parameter"] = None +) -> t.Iterator[None]: + """Context manager that attaches extra information to exceptions.""" + try: + yield + except BadParameter as e: + if e.ctx is None: + e.ctx = ctx + if param is not None and e.param is None: + e.param = param + raise + except UsageError as e: + if e.ctx is None: + e.ctx = ctx + raise + + +def iter_params_for_processing( + invocation_order: t.Sequence["Parameter"], + declaration_order: t.Sequence["Parameter"], +) -> t.List["Parameter"]: + """Given a sequence of parameters in the order as should be considered + for processing and an iterable of parameters that exist, this returns + a list in the correct order as they should be processed. + """ + + def sort_key(item: "Parameter") -> t.Tuple[bool, float]: + try: + idx: float = invocation_order.index(item) + except ValueError: + idx = float("inf") + + return not item.is_eager, idx + + return sorted(declaration_order, key=sort_key) + + +class ParameterSource(enum.Enum): + """This is an :class:`~enum.Enum` that indicates the source of a + parameter's value. + + Use :meth:`click.Context.get_parameter_source` to get the + source for a parameter by name. + + .. versionchanged:: 8.0 + Use :class:`~enum.Enum` and drop the ``validate`` method. + + .. versionchanged:: 8.0 + Added the ``PROMPT`` value. + """ + + COMMANDLINE = enum.auto() + """The value was provided by the command line args.""" + ENVIRONMENT = enum.auto() + """The value was provided with an environment variable.""" + DEFAULT = enum.auto() + """Used the default specified by the parameter.""" + DEFAULT_MAP = enum.auto() + """Used a default provided by :attr:`Context.default_map`.""" + PROMPT = enum.auto() + """Used a prompt to confirm a default or provide a value.""" + + +class Context: + """The context is a special internal object that holds state relevant + for the script execution at every single level. It's normally invisible + to commands unless they opt-in to getting access to it. + + The context is useful as it can pass internal objects around and can + control special execution features such as reading data from + environment variables. + + A context can be used as context manager in which case it will call + :meth:`close` on teardown. + + :param command: the command class for this context. + :param parent: the parent context. + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it is usually + the name of the script, for commands below it it's + the name of the script. + :param obj: an arbitrary object of user data. + :param auto_envvar_prefix: the prefix to use for automatic environment + variables. If this is `None` then reading + from environment variables is disabled. This + does not affect manually set environment + variables which are always read. + :param default_map: a dictionary (like object) with default values + for parameters. + :param terminal_width: the width of the terminal. The default is + inherit from parent context. If no context + defines the terminal width then auto + detection will be applied. + :param max_content_width: the maximum width for content rendered by + Click (this currently only affects help + pages). This defaults to 80 characters if + not overridden. In other words: even if the + terminal is larger than that, Click will not + format things wider than 80 characters by + default. In addition to that, formatters might + add some safety mapping on the right. + :param resilient_parsing: if this flag is enabled then Click will + parse without any interactivity or callback + invocation. Default values will also be + ignored. This is useful for implementing + things such as completion support. + :param allow_extra_args: if this is set to `True` then extra arguments + at the end will not raise an error and will be + kept on the context. The default is to inherit + from the command. + :param allow_interspersed_args: if this is set to `False` then options + and arguments cannot be mixed. The + default is to inherit from the command. + :param ignore_unknown_options: instructs click to ignore options it does + not know and keeps them for later + processing. + :param help_option_names: optionally a list of strings that define how + the default help parameter is named. The + default is ``['--help']``. + :param token_normalize_func: an optional function that is used to + normalize tokens (options, choices, + etc.). This for instance can be used to + implement case insensitive behavior. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are used in texts that Click prints which is by + default not the case. This for instance would affect + help output. + :param show_default: Show defaults for all options. If not set, + defaults to the value from a parent context. Overrides an + option's ``show_default`` argument. + + .. versionchanged:: 8.0 + The ``show_default`` parameter defaults to the value from the + parent context. + + .. versionchanged:: 7.1 + Added the ``show_default`` parameter. + + .. versionchanged:: 4.0 + Added the ``color``, ``ignore_unknown_options``, and + ``max_content_width`` parameters. + + .. versionchanged:: 3.0 + Added the ``allow_extra_args`` and ``allow_interspersed_args`` + parameters. + + .. versionchanged:: 2.0 + Added the ``resilient_parsing``, ``help_option_names``, and + ``token_normalize_func`` parameters. + """ + + #: The formatter class to create with :meth:`make_formatter`. + #: + #: .. versionadded:: 8.0 + formatter_class: t.Type["HelpFormatter"] = HelpFormatter + + def __init__( + self, + command: "Command", + parent: t.Optional["Context"] = None, + info_name: t.Optional[str] = None, + obj: t.Optional[t.Any] = None, + auto_envvar_prefix: t.Optional[str] = None, + default_map: t.Optional[t.Dict[str, t.Any]] = None, + terminal_width: t.Optional[int] = None, + max_content_width: t.Optional[int] = None, + resilient_parsing: bool = False, + allow_extra_args: t.Optional[bool] = None, + allow_interspersed_args: t.Optional[bool] = None, + ignore_unknown_options: t.Optional[bool] = None, + help_option_names: t.Optional[t.List[str]] = None, + token_normalize_func: t.Optional[t.Callable[[str], str]] = None, + color: t.Optional[bool] = None, + show_default: t.Optional[bool] = None, + ) -> None: + #: the parent context or `None` if none exists. + self.parent = parent + #: the :class:`Command` for this context. + self.command = command + #: the descriptive information name + self.info_name = info_name + #: Map of parameter names to their parsed values. Parameters + #: with ``expose_value=False`` are not stored. + self.params: t.Dict[str, t.Any] = {} + #: the leftover arguments. + self.args: t.List[str] = [] + #: protected arguments. These are arguments that are prepended + #: to `args` when certain parsing scenarios are encountered but + #: must be never propagated to another arguments. This is used + #: to implement nested parsing. + self.protected_args: t.List[str] = [] + + if obj is None and parent is not None: + obj = parent.obj + + #: the user object stored. + self.obj: t.Any = obj + self._meta: t.Dict[str, t.Any] = getattr(parent, "meta", {}) + + #: A dictionary (-like object) with defaults for parameters. + if ( + default_map is None + and info_name is not None + and parent is not None + and parent.default_map is not None + ): + default_map = parent.default_map.get(info_name) + + self.default_map: t.Optional[t.Dict[str, t.Any]] = default_map + + #: This flag indicates if a subcommand is going to be executed. A + #: group callback can use this information to figure out if it's + #: being executed directly or because the execution flow passes + #: onwards to a subcommand. By default it's None, but it can be + #: the name of the subcommand to execute. + #: + #: If chaining is enabled this will be set to ``'*'`` in case + #: any commands are executed. It is however not possible to + #: figure out which ones. If you require this knowledge you + #: should use a :func:`result_callback`. + self.invoked_subcommand: t.Optional[str] = None + + if terminal_width is None and parent is not None: + terminal_width = parent.terminal_width + + #: The width of the terminal (None is autodetection). + self.terminal_width: t.Optional[int] = terminal_width + + if max_content_width is None and parent is not None: + max_content_width = parent.max_content_width + + #: The maximum width of formatted content (None implies a sensible + #: default which is 80 for most things). + self.max_content_width: t.Optional[int] = max_content_width + + if allow_extra_args is None: + allow_extra_args = command.allow_extra_args + + #: Indicates if the context allows extra args or if it should + #: fail on parsing. + #: + #: .. versionadded:: 3.0 + self.allow_extra_args = allow_extra_args + + if allow_interspersed_args is None: + allow_interspersed_args = command.allow_interspersed_args + + #: Indicates if the context allows mixing of arguments and + #: options or not. + #: + #: .. versionadded:: 3.0 + self.allow_interspersed_args: bool = allow_interspersed_args + + if ignore_unknown_options is None: + ignore_unknown_options = command.ignore_unknown_options + + #: Instructs click to ignore options that a command does not + #: understand and will store it on the context for later + #: processing. This is primarily useful for situations where you + #: want to call into external programs. Generally this pattern is + #: strongly discouraged because it's not possibly to losslessly + #: forward all arguments. + #: + #: .. versionadded:: 4.0 + self.ignore_unknown_options: bool = ignore_unknown_options + + if help_option_names is None: + if parent is not None: + help_option_names = parent.help_option_names + else: + help_option_names = ["--help"] + + #: The names for the help options. + self.help_option_names: t.List[str] = help_option_names + + if token_normalize_func is None and parent is not None: + token_normalize_func = parent.token_normalize_func + + #: An optional normalization function for tokens. This is + #: options, choices, commands etc. + self.token_normalize_func: t.Optional[ + t.Callable[[str], str] + ] = token_normalize_func + + #: Indicates if resilient parsing is enabled. In that case Click + #: will do its best to not cause any failures and default values + #: will be ignored. Useful for completion. + self.resilient_parsing: bool = resilient_parsing + + # If there is no envvar prefix yet, but the parent has one and + # the command on this level has a name, we can expand the envvar + # prefix automatically. + if auto_envvar_prefix is None: + if ( + parent is not None + and parent.auto_envvar_prefix is not None + and self.info_name is not None + ): + auto_envvar_prefix = ( + f"{parent.auto_envvar_prefix}_{self.info_name.upper()}" + ) + else: + auto_envvar_prefix = auto_envvar_prefix.upper() + + if auto_envvar_prefix is not None: + auto_envvar_prefix = auto_envvar_prefix.replace("-", "_") + + self.auto_envvar_prefix: t.Optional[str] = auto_envvar_prefix + + if color is None and parent is not None: + color = parent.color + + #: Controls if styling output is wanted or not. + self.color: t.Optional[bool] = color + + if show_default is None and parent is not None: + show_default = parent.show_default + + #: Show option default values when formatting help text. + self.show_default: t.Optional[bool] = show_default + + self._close_callbacks: t.List[t.Callable[[], t.Any]] = [] + self._depth = 0 + self._parameter_source: t.Dict[str, ParameterSource] = {} + self._exit_stack = ExitStack() + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. This traverses the entire CLI + structure. + + .. code-block:: python + + with Context(cli) as ctx: + info = ctx.to_info_dict() + + .. versionadded:: 8.0 + """ + return { + "command": self.command.to_info_dict(self), + "info_name": self.info_name, + "allow_extra_args": self.allow_extra_args, + "allow_interspersed_args": self.allow_interspersed_args, + "ignore_unknown_options": self.ignore_unknown_options, + "auto_envvar_prefix": self.auto_envvar_prefix, + } + + def __enter__(self) -> "Context": + self._depth += 1 + push_context(self) + return self + + def __exit__(self, exc_type, exc_value, tb): # type: ignore + self._depth -= 1 + if self._depth == 0: + self.close() + pop_context() + + @contextmanager + def scope(self, cleanup: bool = True) -> t.Iterator["Context"]: + """This helper method can be used with the context object to promote + it to the current thread local (see :func:`get_current_context`). + The default behavior of this is to invoke the cleanup functions which + can be disabled by setting `cleanup` to `False`. The cleanup + functions are typically used for things such as closing file handles. + + If the cleanup is intended the context object can also be directly + used as a context manager. + + Example usage:: + + with ctx.scope(): + assert get_current_context() is ctx + + This is equivalent:: + + with ctx: + assert get_current_context() is ctx + + .. versionadded:: 5.0 + + :param cleanup: controls if the cleanup functions should be run or + not. The default is to run these functions. In + some situations the context only wants to be + temporarily pushed in which case this can be disabled. + Nested pushes automatically defer the cleanup. + """ + if not cleanup: + self._depth += 1 + try: + with self as rv: + yield rv + finally: + if not cleanup: + self._depth -= 1 + + @property + def meta(self) -> t.Dict[str, t.Any]: + """This is a dictionary which is shared with all the contexts + that are nested. It exists so that click utilities can store some + state here if they need to. It is however the responsibility of + that code to manage this dictionary well. + + The keys are supposed to be unique dotted strings. For instance + module paths are a good choice for it. What is stored in there is + irrelevant for the operation of click. However what is important is + that code that places data here adheres to the general semantics of + the system. + + Example usage:: + + LANG_KEY = f'{__name__}.lang' + + def set_language(value): + ctx = get_current_context() + ctx.meta[LANG_KEY] = value + + def get_language(): + return get_current_context().meta.get(LANG_KEY, 'en_US') + + .. versionadded:: 5.0 + """ + return self._meta + + def make_formatter(self) -> HelpFormatter: + """Creates the :class:`~click.HelpFormatter` for the help and + usage output. + + To quickly customize the formatter class used without overriding + this method, set the :attr:`formatter_class` attribute. + + .. versionchanged:: 8.0 + Added the :attr:`formatter_class` attribute. + """ + return self.formatter_class( + width=self.terminal_width, max_width=self.max_content_width + ) + + def with_resource(self, context_manager: t.ContextManager[V]) -> V: + """Register a resource as if it were used in a ``with`` + statement. The resource will be cleaned up when the context is + popped. + + Uses :meth:`contextlib.ExitStack.enter_context`. It calls the + resource's ``__enter__()`` method and returns the result. When + the context is popped, it closes the stack, which calls the + resource's ``__exit__()`` method. + + To register a cleanup function for something that isn't a + context manager, use :meth:`call_on_close`. Or use something + from :mod:`contextlib` to turn it into a context manager first. + + .. code-block:: python + + @click.group() + @click.option("--name") + @click.pass_context + def cli(ctx): + ctx.obj = ctx.with_resource(connect_db(name)) + + :param context_manager: The context manager to enter. + :return: Whatever ``context_manager.__enter__()`` returns. + + .. versionadded:: 8.0 + """ + return self._exit_stack.enter_context(context_manager) + + def call_on_close(self, f: t.Callable[..., t.Any]) -> t.Callable[..., t.Any]: + """Register a function to be called when the context tears down. + + This can be used to close resources opened during the script + execution. Resources that support Python's context manager + protocol which would be used in a ``with`` statement should be + registered with :meth:`with_resource` instead. + + :param f: The function to execute on teardown. + """ + return self._exit_stack.callback(f) + + def close(self) -> None: + """Invoke all close callbacks registered with + :meth:`call_on_close`, and exit all context managers entered + with :meth:`with_resource`. + """ + self._exit_stack.close() + # In case the context is reused, create a new exit stack. + self._exit_stack = ExitStack() + + @property + def command_path(self) -> str: + """The computed command path. This is used for the ``usage`` + information on the help page. It's automatically created by + combining the info names of the chain of contexts to the root. + """ + rv = "" + if self.info_name is not None: + rv = self.info_name + if self.parent is not None: + parent_command_path = [self.parent.command_path] + + if isinstance(self.parent.command, Command): + for param in self.parent.command.get_params(self): + parent_command_path.extend(param.get_usage_pieces(self)) + + rv = f"{' '.join(parent_command_path)} {rv}" + return rv.lstrip() + + def find_root(self) -> "Context": + """Finds the outermost context.""" + node = self + while node.parent is not None: + node = node.parent + return node + + def find_object(self, object_type: t.Type[V]) -> t.Optional[V]: + """Finds the closest object of a given type.""" + node: t.Optional["Context"] = self + + while node is not None: + if isinstance(node.obj, object_type): + return node.obj + + node = node.parent + + return None + + def ensure_object(self, object_type: t.Type[V]) -> V: + """Like :meth:`find_object` but sets the innermost object to a + new instance of `object_type` if it does not exist. + """ + rv = self.find_object(object_type) + if rv is None: + self.obj = rv = object_type() + return rv + + @typing.overload + def lookup_default( + self, name: str, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @typing.overload + def lookup_default( + self, name: str, call: "te.Literal[False]" = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def lookup_default(self, name: str, call: bool = True) -> t.Optional[t.Any]: + """Get the default for a parameter from :attr:`default_map`. + + :param name: Name of the parameter. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + if self.default_map is not None: + value = self.default_map.get(name) + + if call and callable(value): + return value() + + return value + + return None + + def fail(self, message: str) -> "te.NoReturn": + """Aborts the execution of the program with a specific error + message. + + :param message: the error message to fail with. + """ + raise UsageError(message, self) + + def abort(self) -> "te.NoReturn": + """Aborts the script.""" + raise Abort() + + def exit(self, code: int = 0) -> "te.NoReturn": + """Exits the application with a given exit code.""" + raise Exit(code) + + def get_usage(self) -> str: + """Helper method to get formatted usage string for the current + context and command. + """ + return self.command.get_usage(self) + + def get_help(self) -> str: + """Helper method to get formatted help page for the current + context and command. + """ + return self.command.get_help(self) + + def _make_sub_context(self, command: "Command") -> "Context": + """Create a new context of the same type as this context, but + for a new command. + + :meta private: + """ + return type(self)(command, info_name=command.name, parent=self) + + def invoke( + __self, # noqa: B902 + __callback: t.Union["Command", t.Callable[..., t.Any]], + *args: t.Any, + **kwargs: t.Any, + ) -> t.Any: + """Invokes a command callback in exactly the way it expects. There + are two ways to invoke this method: + + 1. the first argument can be a callback and all other arguments and + keyword arguments are forwarded directly to the function. + 2. the first argument is a click command object. In that case all + arguments are forwarded as well but proper click parameters + (options and click arguments) must be keyword arguments and Click + will fill in defaults. + + Note that before Click 3.2 keyword arguments were not properly filled + in against the intention of this code and no context was created. For + more information about this change and why it was done in a bugfix + release see :ref:`upgrade-to-3.2`. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if :meth:`forward` is called at multiple levels. + """ + if isinstance(__callback, Command): + other_cmd = __callback + + if other_cmd.callback is None: + raise TypeError( + "The given command does not have a callback that can be invoked." + ) + else: + __callback = other_cmd.callback + + ctx = __self._make_sub_context(other_cmd) + + for param in other_cmd.params: + if param.name not in kwargs and param.expose_value: + kwargs[param.name] = param.type_cast_value( # type: ignore + ctx, param.get_default(ctx) + ) + + # Track all kwargs as params, so that forward() will pass + # them on in subsequent calls. + ctx.params.update(kwargs) + else: + ctx = __self + + with augment_usage_errors(__self): + with ctx: + return __callback(*args, **kwargs) + + def forward( + __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any # noqa: B902 + ) -> t.Any: + """Similar to :meth:`invoke` but fills in default keyword + arguments from the current context if the other command expects + it. This cannot invoke callbacks directly, only other commands. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if ``forward`` is called at multiple levels. + """ + # Can only forward to other commands, not direct callbacks. + if not isinstance(__cmd, Command): + raise TypeError("Callback is not a command.") + + for param in __self.params: + if param not in kwargs: + kwargs[param] = __self.params[param] + + return __self.invoke(__cmd, *args, **kwargs) + + def set_parameter_source(self, name: str, source: ParameterSource) -> None: + """Set the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + :param name: The name of the parameter. + :param source: A member of :class:`~click.core.ParameterSource`. + """ + self._parameter_source[name] = source + + def get_parameter_source(self, name: str) -> t.Optional[ParameterSource]: + """Get the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + This can be useful for determining when a user specified a value + on the command line that is the same as the default value. It + will be :attr:`~click.core.ParameterSource.DEFAULT` only if the + value was actually taken from the default. + + :param name: The name of the parameter. + :rtype: ParameterSource + + .. versionchanged:: 8.0 + Returns ``None`` if the parameter was not provided from any + source. + """ + return self._parameter_source.get(name) + + +class BaseCommand: + """The base command implements the minimal API contract of commands. + Most code will never use this as it does not implement a lot of useful + functionality but it can act as the direct subclass of alternative + parsing methods that do not depend on the Click parser. + + For instance, this can be used to bridge Click and other systems like + argparse or docopt. + + Because base commands do not implement a lot of the API that other + parts of Click take for granted, they are not supported for all + operations. For instance, they cannot be used with the decorators + usually and they have no built-in callback system. + + .. versionchanged:: 2.0 + Added the `context_settings` parameter. + + :param name: the name of the command to use unless a group overrides it. + :param context_settings: an optional dictionary with defaults that are + passed to the context object. + """ + + #: The context class to create with :meth:`make_context`. + #: + #: .. versionadded:: 8.0 + context_class: t.Type[Context] = Context + #: the default for the :attr:`Context.allow_extra_args` flag. + allow_extra_args = False + #: the default for the :attr:`Context.allow_interspersed_args` flag. + allow_interspersed_args = True + #: the default for the :attr:`Context.ignore_unknown_options` flag. + ignore_unknown_options = False + + def __init__( + self, + name: t.Optional[str], + context_settings: t.Optional[t.Dict[str, t.Any]] = None, + ) -> None: + #: the name the command thinks it has. Upon registering a command + #: on a :class:`Group` the group will default the command name + #: with this information. You should instead use the + #: :class:`Context`\'s :attr:`~Context.info_name` attribute. + self.name = name + + if context_settings is None: + context_settings = {} + + #: an optional dictionary with defaults passed to the context. + self.context_settings: t.Dict[str, t.Any] = context_settings + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. This traverses the entire structure + below this command. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + :param ctx: A :class:`Context` representing this command. + + .. versionadded:: 8.0 + """ + return {"name": self.name} + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def get_usage(self, ctx: Context) -> str: + raise NotImplementedError("Base commands cannot get usage") + + def get_help(self, ctx: Context) -> str: + raise NotImplementedError("Base commands cannot get help") + + def make_context( + self, + info_name: t.Optional[str], + args: t.List[str], + parent: t.Optional[Context] = None, + **extra: t.Any, + ) -> Context: + """This function when given an info name and arguments will kick + off the parsing and create a new :class:`Context`. It does not + invoke the actual command callback though. + + To quickly customize the context class used without overriding + this method, set the :attr:`context_class` attribute. + + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it's usually + the name of the script, for commands below it it's + the name of the command. + :param args: the arguments to parse as list of strings. + :param parent: the parent context if available. + :param extra: extra keyword arguments forwarded to the context + constructor. + + .. versionchanged:: 8.0 + Added the :attr:`context_class` attribute. + """ + for key, value in self.context_settings.items(): + if key not in extra: + extra[key] = value + + ctx = self.context_class( + self, info_name=info_name, parent=parent, **extra # type: ignore + ) + + with ctx.scope(cleanup=False): + self.parse_args(ctx, args) + return ctx + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + """Given a context and a list of arguments this creates the parser + and parses the arguments, then modifies the context as necessary. + This is automatically invoked by :meth:`make_context`. + """ + raise NotImplementedError("Base commands do not know how to parse arguments.") + + def invoke(self, ctx: Context) -> t.Any: + """Given a context, this invokes the command. The default + implementation is raising a not implemented error. + """ + raise NotImplementedError("Base commands are not invokable by default") + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of chained multi-commands. + + Any command could be part of a chained multi-command, so sibling + commands are valid at any point during command completion. Other + command classes will return more completions. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results: t.List["CompletionItem"] = [] + + while ctx.parent is not None: + ctx = ctx.parent + + if isinstance(ctx.command, MultiCommand) and ctx.command.chain: + results.extend( + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + if name not in ctx.protected_args + ) + + return results + + @typing.overload + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: "te.Literal[True]" = True, + **extra: t.Any, + ) -> "te.NoReturn": + ... + + @typing.overload + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: bool = ..., + **extra: t.Any, + ) -> t.Any: + ... + + def main( + self, + args: t.Optional[t.Sequence[str]] = None, + prog_name: t.Optional[str] = None, + complete_var: t.Optional[str] = None, + standalone_mode: bool = True, + windows_expand_args: bool = True, + **extra: t.Any, + ) -> t.Any: + """This is the way to invoke a script with all the bells and + whistles as a command line application. This will always terminate + the application after a call. If this is not wanted, ``SystemExit`` + needs to be caught. + + This method is also available by directly calling the instance of + a :class:`Command`. + + :param args: the arguments that should be used for parsing. If not + provided, ``sys.argv[1:]`` is used. + :param prog_name: the program name that should be used. By default + the program name is constructed by taking the file + name from ``sys.argv[0]``. + :param complete_var: the environment variable that controls the + bash completion support. The default is + ``"__COMPLETE"`` with prog_name in + uppercase. + :param standalone_mode: the default behavior is to invoke the script + in standalone mode. Click will then + handle exceptions and convert them into + error messages and the function will never + return but shut down the interpreter. If + this is set to `False` they will be + propagated to the caller and the return + value of this function is the return value + of :meth:`invoke`. + :param windows_expand_args: Expand glob patterns, user dir, and + env vars in command line args on Windows. + :param extra: extra keyword arguments are forwarded to the context + constructor. See :class:`Context` for more information. + + .. versionchanged:: 8.0.1 + Added the ``windows_expand_args`` parameter to allow + disabling command line arg expansion on Windows. + + .. versionchanged:: 8.0 + When taking arguments from ``sys.argv`` on Windows, glob + patterns, user dir, and env vars are expanded. + + .. versionchanged:: 3.0 + Added the ``standalone_mode`` parameter. + """ + # Verify that the environment is configured correctly, or reject + # further execution to avoid a broken script. + _verify_python_env() + + if args is None: + args = sys.argv[1:] + + if os.name == "nt" and windows_expand_args: + args = _expand_args(args) + else: + args = list(args) + + if prog_name is None: + prog_name = _detect_program_name() + + # Process shell completion requests and exit early. + self._main_shell_completion(extra, prog_name, complete_var) + + try: + try: + with self.make_context(prog_name, args, **extra) as ctx: + rv = self.invoke(ctx) + if not standalone_mode: + return rv + # it's not safe to `ctx.exit(rv)` here! + # note that `rv` may actually contain data like "1" which + # has obvious effects + # more subtle case: `rv=[None, None]` can come out of + # chained commands which all returned `None` -- so it's not + # even always obvious that `rv` indicates success/failure + # by its truthiness/falsiness + ctx.exit() + except (EOFError, KeyboardInterrupt): + echo(file=sys.stderr) + raise Abort() from None + except ClickException as e: + if not standalone_mode: + raise + e.show() + sys.exit(e.exit_code) + except OSError as e: + if e.errno == errno.EPIPE: + sys.stdout = t.cast(t.TextIO, PacifyFlushWrapper(sys.stdout)) + sys.stderr = t.cast(t.TextIO, PacifyFlushWrapper(sys.stderr)) + sys.exit(1) + else: + raise + except Exit as e: + if standalone_mode: + sys.exit(e.exit_code) + else: + # in non-standalone mode, return the exit code + # note that this is only reached if `self.invoke` above raises + # an Exit explicitly -- thus bypassing the check there which + # would return its result + # the results of non-standalone execution may therefore be + # somewhat ambiguous: if there are codepaths which lead to + # `ctx.exit(1)` and to `return 1`, the caller won't be able to + # tell the difference between the two + return e.exit_code + except Abort: + if not standalone_mode: + raise + echo(_("Aborted!"), file=sys.stderr) + sys.exit(1) + + def _main_shell_completion( + self, + ctx_args: t.Dict[str, t.Any], + prog_name: str, + complete_var: t.Optional[str] = None, + ) -> None: + """Check if the shell is asking for tab completion, process + that, then exit early. Called from :meth:`main` before the + program is invoked. + + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. Defaults to + ``_{PROG_NAME}_COMPLETE``. + """ + if complete_var is None: + complete_var = f"_{prog_name}_COMPLETE".replace("-", "_").upper() + + instruction = os.environ.get(complete_var) + + if not instruction: + return + + from .shell_completion import shell_complete + + rv = shell_complete(self, ctx_args, prog_name, complete_var, instruction) + sys.exit(rv) + + def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: + """Alias for :meth:`main`.""" + return self.main(*args, **kwargs) + + +class Command(BaseCommand): + """Commands are the basic building block of command line interfaces in + Click. A basic command handles command line parsing and might dispatch + more parsing to commands nested below it. + + .. versionchanged:: 2.0 + Added the `context_settings` parameter. + .. versionchanged:: 8.0 + Added repr showing the command name + .. versionchanged:: 7.1 + Added the `no_args_is_help` parameter. + + :param name: the name of the command to use unless a group overrides it. + :param context_settings: an optional dictionary with defaults that are + passed to the context object. + :param callback: the callback to invoke. This is optional. + :param params: the parameters to register with this command. This can + be either :class:`Option` or :class:`Argument` objects. + :param help: the help string to use for this command. + :param epilog: like the help string but it's printed at the end of the + help page after everything else. + :param short_help: the short help to use for this command. This is + shown on the command listing of the parent command. + :param add_help_option: by default each command registers a ``--help`` + option. This can be disabled by this parameter. + :param no_args_is_help: this controls what happens if no arguments are + provided. This option is disabled by default. + If enabled this will add ``--help`` as argument + if no arguments are passed + :param hidden: hide this command from help outputs. + + :param deprecated: issues a message indicating that + the command is deprecated. + """ + + def __init__( + self, + name: t.Optional[str], + context_settings: t.Optional[t.Dict[str, t.Any]] = None, + callback: t.Optional[t.Callable[..., t.Any]] = None, + params: t.Optional[t.List["Parameter"]] = None, + help: t.Optional[str] = None, + epilog: t.Optional[str] = None, + short_help: t.Optional[str] = None, + options_metavar: t.Optional[str] = "[OPTIONS]", + add_help_option: bool = True, + no_args_is_help: bool = False, + hidden: bool = False, + deprecated: bool = False, + ) -> None: + super().__init__(name, context_settings) + #: the callback to execute when the command fires. This might be + #: `None` in which case nothing happens. + self.callback = callback + #: the list of parameters for this command in the order they + #: should show up in the help page and execute. Eager parameters + #: will automatically be handled before non eager ones. + self.params: t.List["Parameter"] = params or [] + + # if a form feed (page break) is found in the help text, truncate help + # text to the content preceding the first form feed + if help and "\f" in help: + help = help.split("\f", 1)[0] + + self.help = help + self.epilog = epilog + self.options_metavar = options_metavar + self.short_help = short_help + self.add_help_option = add_help_option + self.no_args_is_help = no_args_is_help + self.hidden = hidden + self.deprecated = deprecated + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict(ctx) + info_dict.update( + params=[param.to_info_dict() for param in self.get_params(ctx)], + help=self.help, + epilog=self.epilog, + short_help=self.short_help, + hidden=self.hidden, + deprecated=self.deprecated, + ) + return info_dict + + def get_usage(self, ctx: Context) -> str: + """Formats the usage line into a string and returns it. + + Calls :meth:`format_usage` internally. + """ + formatter = ctx.make_formatter() + self.format_usage(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_params(self, ctx: Context) -> t.List["Parameter"]: + rv = self.params + help_option = self.get_help_option(ctx) + + if help_option is not None: + rv = [*rv, help_option] + + return rv + + def format_usage(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the usage line into the formatter. + + This is a low-level method called by :meth:`get_usage`. + """ + pieces = self.collect_usage_pieces(ctx) + formatter.write_usage(ctx.command_path, " ".join(pieces)) + + def collect_usage_pieces(self, ctx: Context) -> t.List[str]: + """Returns all the pieces that go into the usage line and returns + it as a list of strings. + """ + rv = [self.options_metavar] if self.options_metavar else [] + + for param in self.get_params(ctx): + rv.extend(param.get_usage_pieces(ctx)) + + return rv + + def get_help_option_names(self, ctx: Context) -> t.List[str]: + """Returns the names for the help option.""" + all_names = set(ctx.help_option_names) + for param in self.params: + all_names.difference_update(param.opts) + all_names.difference_update(param.secondary_opts) + return list(all_names) + + def get_help_option(self, ctx: Context) -> t.Optional["Option"]: + """Returns the help option object.""" + help_options = self.get_help_option_names(ctx) + + if not help_options or not self.add_help_option: + return None + + def show_help(ctx: Context, param: "Parameter", value: str) -> None: + if value and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + return Option( + help_options, + is_flag=True, + is_eager=True, + expose_value=False, + callback=show_help, + help=_("Show this message and exit."), + ) + + def make_parser(self, ctx: Context) -> OptionParser: + """Creates the underlying option parser for this command.""" + parser = OptionParser(ctx) + for param in self.get_params(ctx): + param.add_to_parser(parser, ctx) + return parser + + def get_help(self, ctx: Context) -> str: + """Formats the help into a string and returns it. + + Calls :meth:`format_help` internally. + """ + formatter = ctx.make_formatter() + self.format_help(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_short_help_str(self, limit: int = 45) -> str: + """Gets short help for the command or makes it by shortening the + long help string. + """ + text = self.short_help or "" + + if not text and self.help: + text = make_default_short_help(self.help, limit) + + if self.deprecated: + text = _("(Deprecated) {text}").format(text=text) + + return text.strip() + + def format_help(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help into the formatter if it exists. + + This is a low-level method called by :meth:`get_help`. + + This calls the following methods: + + - :meth:`format_usage` + - :meth:`format_help_text` + - :meth:`format_options` + - :meth:`format_epilog` + """ + self.format_usage(ctx, formatter) + self.format_help_text(ctx, formatter) + self.format_options(ctx, formatter) + self.format_epilog(ctx, formatter) + + def format_help_text(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help text to the formatter if it exists.""" + text = self.help or "" + + if self.deprecated: + text = _("(Deprecated) {text}").format(text=text) + + if text: + formatter.write_paragraph() + + with formatter.indentation(): + formatter.write_text(text) + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes all the options into the formatter if they exist.""" + opts = [] + for param in self.get_params(ctx): + rv = param.get_help_record(ctx) + if rv is not None: + opts.append(rv) + + if opts: + with formatter.section(_("Options")): + formatter.write_dl(opts) + + def format_epilog(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the epilog into the formatter if it exists.""" + if self.epilog: + formatter.write_paragraph() + with formatter.indentation(): + formatter.write_text(self.epilog) + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + parser = self.make_parser(ctx) + opts, args, param_order = parser.parse_args(args=args) + + for param in iter_params_for_processing(param_order, self.get_params(ctx)): + value, args = param.handle_parse_result(ctx, opts, args) + + if args and not ctx.allow_extra_args and not ctx.resilient_parsing: + ctx.fail( + ngettext( + "Got unexpected extra argument ({args})", + "Got unexpected extra arguments ({args})", + len(args), + ).format(args=" ".join(map(str, args))) + ) + + ctx.args = args + return args + + def invoke(self, ctx: Context) -> t.Any: + """Given a context, this invokes the attached callback (if it exists) + in the right way. + """ + if self.deprecated: + message = _( + "DeprecationWarning: The command {name!r} is deprecated." + ).format(name=self.name) + echo(style(message, fg="red"), err=True) + + if self.callback is not None: + return ctx.invoke(self.callback, **ctx.params) + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of options and chained multi-commands. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results: t.List["CompletionItem"] = [] + + if incomplete and not incomplete[0].isalnum(): + for param in self.get_params(ctx): + if ( + not isinstance(param, Option) + or param.hidden + or ( + not param.multiple + and ctx.get_parameter_source(param.name) # type: ignore + is ParameterSource.COMMANDLINE + ) + ): + continue + + results.extend( + CompletionItem(name, help=param.help) + for name in [*param.opts, *param.secondary_opts] + if name.startswith(incomplete) + ) + + results.extend(super().shell_complete(ctx, incomplete)) + return results + + +class MultiCommand(Command): + """A multi command is the basic implementation of a command that + dispatches to subcommands. The most common version is the + :class:`Group`. + + :param invoke_without_command: this controls how the multi command itself + is invoked. By default it's only invoked + if a subcommand is provided. + :param no_args_is_help: this controls what happens if no arguments are + provided. This option is enabled by default if + `invoke_without_command` is disabled or disabled + if it's enabled. If enabled this will add + ``--help`` as argument if no arguments are + passed. + :param subcommand_metavar: the string that is used in the documentation + to indicate the subcommand place. + :param chain: if this is set to `True` chaining of multiple subcommands + is enabled. This restricts the form of commands in that + they cannot have optional arguments but it allows + multiple commands to be chained together. + :param result_callback: The result callback to attach to this multi + command. This can be set or changed later with the + :meth:`result_callback` decorator. + """ + + allow_extra_args = True + allow_interspersed_args = False + + def __init__( + self, + name: t.Optional[str] = None, + invoke_without_command: bool = False, + no_args_is_help: t.Optional[bool] = None, + subcommand_metavar: t.Optional[str] = None, + chain: bool = False, + result_callback: t.Optional[t.Callable[..., t.Any]] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + + if no_args_is_help is None: + no_args_is_help = not invoke_without_command + + self.no_args_is_help = no_args_is_help + self.invoke_without_command = invoke_without_command + + if subcommand_metavar is None: + if chain: + subcommand_metavar = "COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]..." + else: + subcommand_metavar = "COMMAND [ARGS]..." + + self.subcommand_metavar = subcommand_metavar + self.chain = chain + # The result callback that is stored. This can be set or + # overridden with the :func:`result_callback` decorator. + self._result_callback = result_callback + + if self.chain: + for param in self.params: + if isinstance(param, Argument) and not param.required: + raise RuntimeError( + "Multi commands in chain mode cannot have" + " optional arguments." + ) + + def to_info_dict(self, ctx: Context) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict(ctx) + commands = {} + + for name in self.list_commands(ctx): + command = self.get_command(ctx, name) + + if command is None: + continue + + sub_ctx = ctx._make_sub_context(command) + + with sub_ctx.scope(cleanup=False): + commands[name] = command.to_info_dict(sub_ctx) + + info_dict.update(commands=commands, chain=self.chain) + return info_dict + + def collect_usage_pieces(self, ctx: Context) -> t.List[str]: + rv = super().collect_usage_pieces(ctx) + rv.append(self.subcommand_metavar) + return rv + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + super().format_options(ctx, formatter) + self.format_commands(ctx, formatter) + + def result_callback(self, replace: bool = False) -> t.Callable[[F], F]: + """Adds a result callback to the command. By default if a + result callback is already registered this will chain them but + this can be disabled with the `replace` parameter. The result + callback is invoked with the return value of the subcommand + (or the list of return values from all subcommands if chaining + is enabled) as well as the parameters as they would be passed + to the main callback. + + Example:: + + @click.group() + @click.option('-i', '--input', default=23) + def cli(input): + return 42 + + @cli.result_callback() + def process_result(result, input): + return result + input + + :param replace: if set to `True` an already existing result + callback will be removed. + + .. versionchanged:: 8.0 + Renamed from ``resultcallback``. + + .. versionadded:: 3.0 + """ + + def decorator(f: F) -> F: + old_callback = self._result_callback + + if old_callback is None or replace: + self._result_callback = f + return f + + def function(__value, *args, **kwargs): # type: ignore + inner = old_callback(__value, *args, **kwargs) # type: ignore + return f(inner, *args, **kwargs) + + self._result_callback = rv = update_wrapper(t.cast(F, function), f) + return rv + + return decorator + + def resultcallback(self, replace: bool = False) -> t.Callable[[F], F]: + import warnings + + warnings.warn( + "'resultcallback' has been renamed to 'result_callback'." + " The old name will be removed in Click 8.1.", + DeprecationWarning, + stacklevel=2, + ) + return self.result_callback(replace=replace) + + def format_commands(self, ctx: Context, formatter: HelpFormatter) -> None: + """Extra format methods for multi methods that adds all the commands + after the options. + """ + commands = [] + for subcommand in self.list_commands(ctx): + cmd = self.get_command(ctx, subcommand) + # What is this, the tool lied about a command. Ignore it + if cmd is None: + continue + if cmd.hidden: + continue + + commands.append((subcommand, cmd)) + + # allow for 3 times the default spacing + if len(commands): + limit = formatter.width - 6 - max(len(cmd[0]) for cmd in commands) + + rows = [] + for subcommand, cmd in commands: + help = cmd.get_short_help_str(limit) + rows.append((subcommand, help)) + + if rows: + with formatter.section(_("Commands")): + formatter.write_dl(rows) + + def parse_args(self, ctx: Context, args: t.List[str]) -> t.List[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + rest = super().parse_args(ctx, args) + + if self.chain: + ctx.protected_args = rest + ctx.args = [] + elif rest: + ctx.protected_args, ctx.args = rest[:1], rest[1:] + + return ctx.args + + def invoke(self, ctx: Context) -> t.Any: + def _process_result(value: t.Any) -> t.Any: + if self._result_callback is not None: + value = ctx.invoke(self._result_callback, value, **ctx.params) + return value + + if not ctx.protected_args: + if self.invoke_without_command: + # No subcommand was invoked, so the result callback is + # invoked with None for regular groups, or an empty list + # for chained groups. + with ctx: + super().invoke(ctx) + return _process_result([] if self.chain else None) + ctx.fail(_("Missing command.")) + + # Fetch args back out + args = [*ctx.protected_args, *ctx.args] + ctx.args = [] + ctx.protected_args = [] + + # If we're not in chain mode, we only allow the invocation of a + # single command but we also inform the current context about the + # name of the command to invoke. + if not self.chain: + # Make sure the context is entered so we do not clean up + # resources until the result processor has worked. + with ctx: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + ctx.invoked_subcommand = cmd_name + super().invoke(ctx) + sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) + with sub_ctx: + return _process_result(sub_ctx.command.invoke(sub_ctx)) + + # In chain mode we create the contexts step by step, but after the + # base command has been invoked. Because at that point we do not + # know the subcommands yet, the invoked subcommand attribute is + # set to ``*`` to inform the command that subcommands are executed + # but nothing else. + with ctx: + ctx.invoked_subcommand = "*" if args else None + super().invoke(ctx) + + # Otherwise we make every single context and invoke them in a + # chain. In that case the return value to the result processor + # is the list of all invoked subcommand's results. + contexts = [] + while args: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + sub_ctx = cmd.make_context( + cmd_name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + ) + contexts.append(sub_ctx) + args, sub_ctx.args = sub_ctx.args, [] + + rv = [] + for sub_ctx in contexts: + with sub_ctx: + rv.append(sub_ctx.command.invoke(sub_ctx)) + return _process_result(rv) + + def resolve_command( + self, ctx: Context, args: t.List[str] + ) -> t.Tuple[t.Optional[str], t.Optional[Command], t.List[str]]: + cmd_name = make_str(args[0]) + original_cmd_name = cmd_name + + # Get the command + cmd = self.get_command(ctx, cmd_name) + + # If we can't find the command but there is a normalization + # function available, we try with that one. + if cmd is None and ctx.token_normalize_func is not None: + cmd_name = ctx.token_normalize_func(cmd_name) + cmd = self.get_command(ctx, cmd_name) + + # If we don't find the command we want to show an error message + # to the user that it was not provided. However, there is + # something else we should do: if the first argument looks like + # an option we want to kick off parsing again for arguments to + # resolve things like --help which now should go to the main + # place. + if cmd is None and not ctx.resilient_parsing: + if split_opt(cmd_name)[0]: + self.parse_args(ctx, ctx.args) + ctx.fail(_("No such command {name!r}.").format(name=original_cmd_name)) + return cmd_name if cmd else None, cmd, args[1:] + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + """Given a context and a command name, this returns a + :class:`Command` object if it exists or returns `None`. + """ + raise NotImplementedError + + def list_commands(self, ctx: Context) -> t.List[str]: + """Returns a list of subcommand names in the order they should + appear. + """ + return [] + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. Looks + at the names of options, subcommands, and chained + multi-commands. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results = [ + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + ] + results.extend(super().shell_complete(ctx, incomplete)) + return results + + +class Group(MultiCommand): + """A group allows a command to have subcommands attached. This is + the most common way to implement nesting in Click. + + :param name: The name of the group command. + :param commands: A dict mapping names to :class:`Command` objects. + Can also be a list of :class:`Command`, which will use + :attr:`Command.name` to create the dict. + :param attrs: Other command arguments described in + :class:`MultiCommand`, :class:`Command`, and + :class:`BaseCommand`. + + .. versionchanged:: 8.0 + The ``commmands`` argument can be a list of command objects. + """ + + #: If set, this is used by the group's :meth:`command` decorator + #: as the default :class:`Command` class. This is useful to make all + #: subcommands use a custom command class. + #: + #: .. versionadded:: 8.0 + command_class: t.Optional[t.Type[Command]] = None + + #: If set, this is used by the group's :meth:`group` decorator + #: as the default :class:`Group` class. This is useful to make all + #: subgroups use a custom group class. + #: + #: If set to the special value :class:`type` (literally + #: ``group_class = type``), this group's class will be used as the + #: default class. This makes a custom group class continue to make + #: custom groups. + #: + #: .. versionadded:: 8.0 + group_class: t.Optional[t.Union[t.Type["Group"], t.Type[type]]] = None + # Literal[type] isn't valid, so use Type[type] + + def __init__( + self, + name: t.Optional[str] = None, + commands: t.Optional[t.Union[t.Dict[str, Command], t.Sequence[Command]]] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + + if commands is None: + commands = {} + elif isinstance(commands, abc.Sequence): + commands = {c.name: c for c in commands if c.name is not None} + + #: The registered subcommands by their exported names. + self.commands: t.Dict[str, Command] = commands + + def add_command(self, cmd: Command, name: t.Optional[str] = None) -> None: + """Registers another :class:`Command` with this group. If the name + is not provided, the name of the command is used. + """ + name = name or cmd.name + if name is None: + raise TypeError("Command has no name.") + _check_multicommand(self, name, cmd, register=True) + self.commands[name] = cmd + + def command( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Command]: + """A shortcut decorator for declaring and attaching a command to + the group. This takes the same arguments as :func:`command` and + immediately registers the created command with this group by + calling :meth:`add_command`. + + To customize the command class used, set the + :attr:`command_class` attribute. + + .. versionchanged:: 8.0 + Added the :attr:`command_class` attribute. + """ + from .decorators import command + + if self.command_class is not None and "cls" not in kwargs: + kwargs["cls"] = self.command_class + + def decorator(f: t.Callable[..., t.Any]) -> Command: + cmd = command(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + return decorator + + def group( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], "Group"]: + """A shortcut decorator for declaring and attaching a group to + the group. This takes the same arguments as :func:`group` and + immediately registers the created group with this group by + calling :meth:`add_command`. + + To customize the group class used, set the :attr:`group_class` + attribute. + + .. versionchanged:: 8.0 + Added the :attr:`group_class` attribute. + """ + from .decorators import group + + if self.group_class is not None and "cls" not in kwargs: + if self.group_class is type: + kwargs["cls"] = type(self) + else: + kwargs["cls"] = self.group_class + + def decorator(f: t.Callable[..., t.Any]) -> "Group": + cmd = group(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + return decorator + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + return self.commands.get(cmd_name) + + def list_commands(self, ctx: Context) -> t.List[str]: + return sorted(self.commands) + + +class CommandCollection(MultiCommand): + """A command collection is a multi command that merges multiple multi + commands together into one. This is a straightforward implementation + that accepts a list of different multi commands as sources and + provides all the commands for each of them. + """ + + def __init__( + self, + name: t.Optional[str] = None, + sources: t.Optional[t.List[MultiCommand]] = None, + **attrs: t.Any, + ) -> None: + super().__init__(name, **attrs) + #: The list of registered multi commands. + self.sources: t.List[MultiCommand] = sources or [] + + def add_source(self, multi_cmd: MultiCommand) -> None: + """Adds a new multi command to the chain dispatcher.""" + self.sources.append(multi_cmd) + + def get_command(self, ctx: Context, cmd_name: str) -> t.Optional[Command]: + for source in self.sources: + rv = source.get_command(ctx, cmd_name) + + if rv is not None: + if self.chain: + _check_multicommand(self, cmd_name, rv) + + return rv + + return None + + def list_commands(self, ctx: Context) -> t.List[str]: + rv: t.Set[str] = set() + + for source in self.sources: + rv.update(source.list_commands(ctx)) + + return sorted(rv) + + +def _check_iter(value: t.Any) -> t.Iterator[t.Any]: + """Check if the value is iterable but not a string. Raises a type + error, or return an iterator over the value. + """ + if isinstance(value, str): + raise TypeError + + return iter(value) + + +class Parameter: + r"""A parameter to a command comes in two versions: they are either + :class:`Option`\s or :class:`Argument`\s. Other subclasses are currently + not supported by design as some of the internals for parsing are + intentionally not finalized. + + Some settings are supported by both options and arguments. + + :param param_decls: the parameter declarations for this option or + argument. This is a list of flags or argument + names. + :param type: the type that should be used. Either a :class:`ParamType` + or a Python type. The later is converted into the former + automatically if supported. + :param required: controls if this is optional or not. + :param default: the default value if omitted. This can also be a callable, + in which case it's invoked when the default is needed + without any arguments. + :param callback: A function to further process or validate the value + after type conversion. It is called as ``f(ctx, param, value)`` + and must return the value. It is called for all sources, + including prompts. + :param nargs: the number of arguments to match. If not ``1`` the return + value is a tuple instead of single value. The default for + nargs is ``1`` (except if the type is a tuple, then it's + the arity of the tuple). If ``nargs=-1``, all remaining + parameters are collected. + :param metavar: how the value is represented in the help page. + :param expose_value: if this is `True` then the value is passed onwards + to the command callback and stored on the context, + otherwise it's skipped. + :param is_eager: eager values are processed before non eager ones. This + should not be set for arguments or it will inverse the + order of processing. + :param envvar: a string or list of strings that are environment variables + that should be checked. + :param shell_complete: A function that returns custom shell + completions. Used instead of the param's type completion if + given. Takes ``ctx, param, incomplete`` and must return a list + of :class:`~click.shell_completion.CompletionItem` or a list of + strings. + + .. versionchanged:: 8.0 + ``process_value`` validates required parameters and bounded + ``nargs``, and invokes the parameter callback before returning + the value. This allows the callback to validate prompts. + ``full_process_value`` is removed. + + .. versionchanged:: 8.0 + ``autocompletion`` is renamed to ``shell_complete`` and has new + semantics described above. The old name is deprecated and will + be removed in 8.1, until then it will be wrapped to match the + new requirements. + + .. versionchanged:: 8.0 + For ``multiple=True, nargs>1``, the default must be a list of + tuples. + + .. versionchanged:: 8.0 + Setting a default is no longer required for ``nargs>1``, it will + default to ``None``. ``multiple=True`` or ``nargs=-1`` will + default to ``()``. + + .. versionchanged:: 7.1 + Empty environment variables are ignored rather than taking the + empty string value. This makes it possible for scripts to clear + variables if they can't unset them. + + .. versionchanged:: 2.0 + Changed signature for parameter callback to also be passed the + parameter. The old callback format will still work, but it will + raise a warning to give you a chance to migrate the code easier. + """ + + param_type_name = "parameter" + + def __init__( + self, + param_decls: t.Optional[t.Sequence[str]] = None, + type: t.Optional[t.Union[types.ParamType, t.Any]] = None, + required: bool = False, + default: t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]] = None, + callback: t.Optional[t.Callable[[Context, "Parameter", t.Any], t.Any]] = None, + nargs: t.Optional[int] = None, + multiple: bool = False, + metavar: t.Optional[str] = None, + expose_value: bool = True, + is_eager: bool = False, + envvar: t.Optional[t.Union[str, t.Sequence[str]]] = None, + shell_complete: t.Optional[ + t.Callable[ + [Context, "Parameter", str], + t.Union[t.List["CompletionItem"], t.List[str]], + ] + ] = None, + autocompletion: t.Optional[ + t.Callable[ + [Context, t.List[str], str], t.List[t.Union[t.Tuple[str, str], str]] + ] + ] = None, + ) -> None: + self.name, self.opts, self.secondary_opts = self._parse_decls( + param_decls or (), expose_value + ) + self.type = types.convert_type(type, default) + + # Default nargs to what the type tells us if we have that + # information available. + if nargs is None: + if self.type.is_composite: + nargs = self.type.arity + else: + nargs = 1 + + self.required = required + self.callback = callback + self.nargs = nargs + self.multiple = multiple + self.expose_value = expose_value + self.default = default + self.is_eager = is_eager + self.metavar = metavar + self.envvar = envvar + + if autocompletion is not None: + import warnings + + warnings.warn( + "'autocompletion' is renamed to 'shell_complete'. The old name is" + " deprecated and will be removed in Click 8.1. See the docs about" + " 'Parameter' for information about new behavior.", + DeprecationWarning, + stacklevel=2, + ) + + def shell_complete( + ctx: Context, param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + from click.shell_completion import CompletionItem + + out = [] + + for c in autocompletion(ctx, [], incomplete): # type: ignore + if isinstance(c, tuple): + c = CompletionItem(c[0], help=c[1]) + elif isinstance(c, str): + c = CompletionItem(c) + + if c.value.startswith(incomplete): + out.append(c) + + return out + + self._custom_shell_complete = shell_complete + + if __debug__: + if self.type.is_composite and nargs != self.type.arity: + raise ValueError( + f"'nargs' must be {self.type.arity} (or None) for" + f" type {self.type!r}, but it was {nargs}." + ) + + # Skip no default or callable default. + check_default = default if not callable(default) else None + + if check_default is not None: + if multiple: + try: + # Only check the first value against nargs. + check_default = next(_check_iter(check_default), None) + except TypeError: + raise ValueError( + "'default' must be a list when 'multiple' is true." + ) from None + + # Can be None for multiple with empty default. + if nargs != 1 and check_default is not None: + try: + _check_iter(check_default) + except TypeError: + if multiple: + message = ( + "'default' must be a list of lists when 'multiple' is" + " true and 'nargs' != 1." + ) + else: + message = "'default' must be a list when 'nargs' != 1." + + raise ValueError(message) from None + + if nargs > 1 and len(check_default) != nargs: + subject = "item length" if multiple else "length" + raise ValueError( + f"'default' {subject} must match nargs={nargs}." + ) + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionadded:: 8.0 + """ + return { + "name": self.name, + "param_type_name": self.param_type_name, + "opts": self.opts, + "secondary_opts": self.secondary_opts, + "type": self.type.to_info_dict(), + "required": self.required, + "nargs": self.nargs, + "multiple": self.multiple, + "default": self.default, + "envvar": self.envvar, + } + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + raise NotImplementedError() + + @property + def human_readable_name(self) -> str: + """Returns the human readable name of this parameter. This is the + same as the name for options, but the metavar for arguments. + """ + return self.name # type: ignore + + def make_metavar(self) -> str: + if self.metavar is not None: + return self.metavar + + metavar = self.type.get_metavar(self) + + if metavar is None: + metavar = self.type.name.upper() + + if self.nargs != 1: + metavar += "..." + + return metavar + + @typing.overload + def get_default( + self, ctx: Context, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @typing.overload + def get_default( + self, ctx: Context, call: bool = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def get_default( + self, ctx: Context, call: bool = True + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + """Get the default for the parameter. Tries + :meth:`Context.lookup_default` first, then the local default. + + :param ctx: Current context. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0.2 + Type casting is no longer performed when getting a default. + + .. versionchanged:: 8.0.1 + Type casting can fail in resilient parsing mode. Invalid + defaults will not prevent showing help text. + + .. versionchanged:: 8.0 + Looks at ``ctx.default_map`` first. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + value = ctx.lookup_default(self.name, call=False) # type: ignore + + if value is None: + value = self.default + + if call and callable(value): + value = value() + + return value + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + raise NotImplementedError() + + def consume_value( + self, ctx: Context, opts: t.Mapping[str, t.Any] + ) -> t.Tuple[t.Any, ParameterSource]: + value = opts.get(self.name) # type: ignore + source = ParameterSource.COMMANDLINE + + if value is None: + value = self.value_from_envvar(ctx) + source = ParameterSource.ENVIRONMENT + + if value is None: + value = ctx.lookup_default(self.name) # type: ignore + source = ParameterSource.DEFAULT_MAP + + if value is None: + value = self.get_default(ctx) + source = ParameterSource.DEFAULT + + return value, source + + def type_cast_value(self, ctx: Context, value: t.Any) -> t.Any: + """Convert and validate a value against the option's + :attr:`type`, :attr:`multiple`, and :attr:`nargs`. + """ + if value is None: + return () if self.multiple or self.nargs == -1 else None + + def check_iter(value: t.Any) -> t.Iterator: + try: + return _check_iter(value) + except TypeError: + # This should only happen when passing in args manually, + # the parser should construct an iterable when parsing + # the command line. + raise BadParameter( + _("Value must be an iterable."), ctx=ctx, param=self + ) from None + + if self.nargs == 1 or self.type.is_composite: + convert: t.Callable[[t.Any], t.Any] = partial( + self.type, param=self, ctx=ctx + ) + elif self.nargs == -1: + + def convert(value: t.Any) -> t.Tuple: + return tuple(self.type(x, self, ctx) for x in check_iter(value)) + + else: # nargs > 1 + + def convert(value: t.Any) -> t.Tuple: + value = tuple(check_iter(value)) + + if len(value) != self.nargs: + raise BadParameter( + ngettext( + "Takes {nargs} values but 1 was given.", + "Takes {nargs} values but {len} were given.", + len(value), + ).format(nargs=self.nargs, len=len(value)), + ctx=ctx, + param=self, + ) + + return tuple(self.type(x, self, ctx) for x in value) + + if self.multiple: + return tuple(convert(x) for x in check_iter(value)) + + return convert(value) + + def value_is_missing(self, value: t.Any) -> bool: + if value is None: + return True + + if (self.nargs != 1 or self.multiple) and value == (): + return True + + return False + + def process_value(self, ctx: Context, value: t.Any) -> t.Any: + value = self.type_cast_value(ctx, value) + + if self.required and self.value_is_missing(value): + raise MissingParameter(ctx=ctx, param=self) + + if self.callback is not None: + value = self.callback(ctx, self, value) + + return value + + def resolve_envvar_value(self, ctx: Context) -> t.Optional[str]: + if self.envvar is None: + return None + + if isinstance(self.envvar, str): + rv = os.environ.get(self.envvar) + + if rv: + return rv + else: + for envvar in self.envvar: + rv = os.environ.get(envvar) + + if rv: + return rv + + return None + + def value_from_envvar(self, ctx: Context) -> t.Optional[t.Any]: + rv: t.Optional[t.Any] = self.resolve_envvar_value(ctx) + + if rv is not None and self.nargs != 1: + rv = self.type.split_envvar_value(rv) + + return rv + + def handle_parse_result( + self, ctx: Context, opts: t.Mapping[str, t.Any], args: t.List[str] + ) -> t.Tuple[t.Any, t.List[str]]: + with augment_usage_errors(ctx, param=self): + value, source = self.consume_value(ctx, opts) + ctx.set_parameter_source(self.name, source) # type: ignore + + try: + value = self.process_value(ctx, value) + except Exception: + if not ctx.resilient_parsing: + raise + + value = None + + if self.expose_value: + ctx.params[self.name] = value # type: ignore + + return value, args + + def get_help_record(self, ctx: Context) -> t.Optional[t.Tuple[str, str]]: + pass + + def get_usage_pieces(self, ctx: Context) -> t.List[str]: + return [] + + def get_error_hint(self, ctx: Context) -> str: + """Get a stringified version of the param for use in error messages to + indicate which param caused the error. + """ + hint_list = self.opts or [self.human_readable_name] + return " / ".join(f"'{x}'" for x in hint_list) + + def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: + """Return a list of completions for the incomplete value. If a + ``shell_complete`` function was given during init, it is used. + Otherwise, the :attr:`type` + :meth:`~click.types.ParamType.shell_complete` function is used. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + if self._custom_shell_complete is not None: + results = self._custom_shell_complete(ctx, self, incomplete) + + if results and isinstance(results[0], str): + from click.shell_completion import CompletionItem + + results = [CompletionItem(c) for c in results] + + return t.cast(t.List["CompletionItem"], results) + + return self.type.shell_complete(ctx, self, incomplete) + + +class Option(Parameter): + """Options are usually optional values on the command line and + have some extra features that arguments don't have. + + All other parameters are passed onwards to the parameter constructor. + + :param show_default: controls if the default value should be shown on the + help page. Normally, defaults are not shown. If this + value is a string, it shows the string instead of the + value. This is particularly useful for dynamic options. + :param show_envvar: controls if an environment variable should be shown on + the help page. Normally, environment variables + are not shown. + :param prompt: if set to `True` or a non empty string then the user will be + prompted for input. If set to `True` the prompt will be the + option name capitalized. + :param confirmation_prompt: Prompt a second time to confirm the + value if it was prompted for. Can be set to a string instead of + ``True`` to customize the message. + :param prompt_required: If set to ``False``, the user will be + prompted for input only when the option was specified as a flag + without a value. + :param hide_input: if this is `True` then the input on the prompt will be + hidden from the user. This is useful for password + input. + :param is_flag: forces this option to act as a flag. The default is + auto detection. + :param flag_value: which value should be used for this flag if it's + enabled. This is set to a boolean automatically if + the option string contains a slash to mark two options. + :param multiple: if this is set to `True` then the argument is accepted + multiple times and recorded. This is similar to ``nargs`` + in how it works but supports arbitrary number of + arguments. + :param count: this flag makes an option increment an integer. + :param allow_from_autoenv: if this is enabled then the value of this + parameter will be pulled from an environment + variable in case a prefix is defined on the + context. + :param help: the help string. + :param hidden: hide this option from help outputs. + + .. versionchanged:: 8.0.1 + ``type`` is detected from ``flag_value`` if given. + """ + + param_type_name = "option" + + def __init__( + self, + param_decls: t.Optional[t.Sequence[str]] = None, + show_default: t.Union[bool, str] = False, + prompt: t.Union[bool, str] = False, + confirmation_prompt: t.Union[bool, str] = False, + prompt_required: bool = True, + hide_input: bool = False, + is_flag: t.Optional[bool] = None, + flag_value: t.Optional[t.Any] = None, + multiple: bool = False, + count: bool = False, + allow_from_autoenv: bool = True, + type: t.Optional[t.Union[types.ParamType, t.Any]] = None, + help: t.Optional[str] = None, + hidden: bool = False, + show_choices: bool = True, + show_envvar: bool = False, + **attrs: t.Any, + ) -> None: + default_is_missing = "default" not in attrs + super().__init__(param_decls, type=type, multiple=multiple, **attrs) + + if prompt is True: + if self.name is None: + raise TypeError("'name' is required with 'prompt=True'.") + + prompt_text: t.Optional[str] = self.name.replace("_", " ").capitalize() + elif prompt is False: + prompt_text = None + else: + prompt_text = t.cast(str, prompt) + + self.prompt = prompt_text + self.confirmation_prompt = confirmation_prompt + self.prompt_required = prompt_required + self.hide_input = hide_input + self.hidden = hidden + + # If prompt is enabled but not required, then the option can be + # used as a flag to indicate using prompt or flag_value. + self._flag_needs_value = self.prompt is not None and not self.prompt_required + + if is_flag is None: + if flag_value is not None: + # Implicitly a flag because flag_value was set. + is_flag = True + elif self._flag_needs_value: + # Not a flag, but when used as a flag it shows a prompt. + is_flag = False + else: + # Implicitly a flag because flag options were given. + is_flag = bool(self.secondary_opts) + elif is_flag is False and not self._flag_needs_value: + # Not a flag, and prompt is not enabled, can be used as a + # flag if flag_value is set. + self._flag_needs_value = flag_value is not None + + if is_flag and default_is_missing: + self.default: t.Union[t.Any, t.Callable[[], t.Any]] = False + + if flag_value is None: + flag_value = not self.default + + if is_flag and type is None: + # Re-guess the type from the flag value instead of the + # default. + self.type = types.convert_type(None, flag_value) + + self.is_flag: bool = is_flag + self.is_bool_flag = is_flag and isinstance(self.type, types.BoolParamType) + self.flag_value: t.Any = flag_value + + # Counting + self.count = count + if count: + if type is None: + self.type = types.IntRange(min=0) + if default_is_missing: + self.default = 0 + + self.allow_from_autoenv = allow_from_autoenv + self.help = help + self.show_default = show_default + self.show_choices = show_choices + self.show_envvar = show_envvar + + if __debug__: + if self.nargs == -1: + raise TypeError("nargs=-1 is not supported for options.") + + if self.prompt and self.is_flag and not self.is_bool_flag: + raise TypeError("'prompt' is not valid for non-boolean flag.") + + if not self.is_bool_flag and self.secondary_opts: + raise TypeError("Secondary flag is not valid for non-boolean flag.") + + if self.is_bool_flag and self.hide_input and self.prompt is not None: + raise TypeError( + "'prompt' with 'hide_input' is not valid for boolean flag." + ) + + if self.count: + if self.multiple: + raise TypeError("'count' is not valid with 'multiple'.") + + if self.is_flag: + raise TypeError("'count' is not valid with 'is_flag'.") + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + help=self.help, + prompt=self.prompt, + is_flag=self.is_flag, + flag_value=self.flag_value, + count=self.count, + hidden=self.hidden, + ) + return info_dict + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + opts = [] + secondary_opts = [] + name = None + possible_names = [] + + for decl in decls: + if decl.isidentifier(): + if name is not None: + raise TypeError(f"Name '{name}' defined twice") + name = decl + else: + split_char = ";" if decl[:1] == "/" else "/" + if split_char in decl: + first, second = decl.split(split_char, 1) + first = first.rstrip() + if first: + possible_names.append(split_opt(first)) + opts.append(first) + second = second.lstrip() + if second: + secondary_opts.append(second.lstrip()) + if first == second: + raise ValueError( + f"Boolean option {decl!r} cannot use the" + " same flag for true/false." + ) + else: + possible_names.append(split_opt(decl)) + opts.append(decl) + + if name is None and possible_names: + possible_names.sort(key=lambda x: -len(x[0])) # group long options first + name = possible_names[0][1].replace("-", "_").lower() + if not name.isidentifier(): + name = None + + if name is None: + if not expose_value: + return None, opts, secondary_opts + raise TypeError("Could not determine name for option") + + if not opts and not secondary_opts: + raise TypeError( + f"No options defined but a name was passed ({name})." + " Did you mean to declare an argument instead? Did" + f" you mean to pass '--{name}'?" + ) + + return name, opts, secondary_opts + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + if self.multiple: + action = "append" + elif self.count: + action = "count" + else: + action = "store" + + if self.is_flag: + action = f"{action}_const" + + if self.is_bool_flag and self.secondary_opts: + parser.add_option( + obj=self, opts=self.opts, dest=self.name, action=action, const=True + ) + parser.add_option( + obj=self, + opts=self.secondary_opts, + dest=self.name, + action=action, + const=False, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + const=self.flag_value, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + nargs=self.nargs, + ) + + def get_help_record(self, ctx: Context) -> t.Optional[t.Tuple[str, str]]: + if self.hidden: + return None + + any_prefix_is_slash = False + + def _write_opts(opts: t.Sequence[str]) -> str: + nonlocal any_prefix_is_slash + + rv, any_slashes = join_options(opts) + + if any_slashes: + any_prefix_is_slash = True + + if not self.is_flag and not self.count: + rv += f" {self.make_metavar()}" + + return rv + + rv = [_write_opts(self.opts)] + + if self.secondary_opts: + rv.append(_write_opts(self.secondary_opts)) + + help = self.help or "" + extra = [] + + if self.show_envvar: + envvar = self.envvar + + if envvar is None: + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + + if envvar is not None: + var_str = ( + envvar + if isinstance(envvar, str) + else ", ".join(str(d) for d in envvar) + ) + extra.append(_("env var: {var}").format(var=var_str)) + + # Temporarily enable resilient parsing to avoid type casting + # failing for the default. Might be possible to extend this to + # help formatting in general. + resilient = ctx.resilient_parsing + ctx.resilient_parsing = True + + try: + default_value = self.get_default(ctx, call=False) + finally: + ctx.resilient_parsing = resilient + + show_default_is_str = isinstance(self.show_default, str) + + if show_default_is_str or ( + default_value is not None and (self.show_default or ctx.show_default) + ): + if show_default_is_str: + default_string = f"({self.show_default})" + elif isinstance(default_value, (list, tuple)): + default_string = ", ".join(str(d) for d in default_value) + elif callable(default_value): + default_string = _("(dynamic)") + elif self.is_bool_flag and self.secondary_opts: + # For boolean flags that have distinct True/False opts, + # use the opt without prefix instead of the value. + default_string = split_opt( + (self.opts if self.default else self.secondary_opts)[0] + )[1] + else: + default_string = str(default_value) + + if default_string: + extra.append(_("default: {default}").format(default=default_string)) + + if ( + isinstance(self.type, types._NumberRangeBase) + # skip count with default range type + and not (self.count and self.type.min == 0 and self.type.max is None) + ): + range_str = self.type._describe_range() + + if range_str: + extra.append(range_str) + + if self.required: + extra.append(_("required")) + + if extra: + extra_str = "; ".join(extra) + help = f"{help} [{extra_str}]" if help else f"[{extra_str}]" + + return ("; " if any_prefix_is_slash else " / ").join(rv), help + + @typing.overload + def get_default( + self, ctx: Context, call: "te.Literal[True]" = True + ) -> t.Optional[t.Any]: + ... + + @typing.overload + def get_default( + self, ctx: Context, call: bool = ... + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + ... + + def get_default( + self, ctx: Context, call: bool = True + ) -> t.Optional[t.Union[t.Any, t.Callable[[], t.Any]]]: + # If we're a non boolean flag our default is more complex because + # we need to look at all flags in the same group to figure out + # if we're the the default one in which case we return the flag + # value as default. + if self.is_flag and not self.is_bool_flag: + for param in ctx.command.params: + if param.name == self.name and param.default: + return param.flag_value # type: ignore + + return None + + return super().get_default(ctx, call=call) + + def prompt_for_value(self, ctx: Context) -> t.Any: + """This is an alternative flow that can be activated in the full + value processing if a value does not exist. It will prompt the + user until a valid value exists and then returns the processed + value as result. + """ + assert self.prompt is not None + + # Calculate the default before prompting anything to be stable. + default = self.get_default(ctx) + + # If this is a prompt for a flag we need to handle this + # differently. + if self.is_bool_flag: + return confirm(self.prompt, default) + + return prompt( + self.prompt, + default=default, + type=self.type, + hide_input=self.hide_input, + show_choices=self.show_choices, + confirmation_prompt=self.confirmation_prompt, + value_proc=lambda x: self.process_value(ctx, x), + ) + + def resolve_envvar_value(self, ctx: Context) -> t.Optional[str]: + rv = super().resolve_envvar_value(ctx) + + if rv is not None: + return rv + + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + rv = os.environ.get(envvar) + + return rv + + def value_from_envvar(self, ctx: Context) -> t.Optional[t.Any]: + rv: t.Optional[t.Any] = self.resolve_envvar_value(ctx) + + if rv is None: + return None + + value_depth = (self.nargs != 1) + bool(self.multiple) + + if value_depth > 0: + rv = self.type.split_envvar_value(rv) + + if self.multiple and self.nargs != 1: + rv = batch(rv, self.nargs) + + return rv + + def consume_value( + self, ctx: Context, opts: t.Mapping[str, "Parameter"] + ) -> t.Tuple[t.Any, ParameterSource]: + value, source = super().consume_value(ctx, opts) + + # The parser will emit a sentinel value if the option can be + # given as a flag without a value. This is different from None + # to distinguish from the flag not being given at all. + if value is _flag_needs_value: + if self.prompt is not None and not ctx.resilient_parsing: + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + else: + value = self.flag_value + source = ParameterSource.COMMANDLINE + + elif ( + self.multiple + and value is not None + and any(v is _flag_needs_value for v in value) + ): + value = [self.flag_value if v is _flag_needs_value else v for v in value] + source = ParameterSource.COMMANDLINE + + # The value wasn't set, or used the param's default, prompt if + # prompting is enabled. + elif ( + source in {None, ParameterSource.DEFAULT} + and self.prompt is not None + and (self.required or self.prompt_required) + and not ctx.resilient_parsing + ): + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + + return value, source + + +class Argument(Parameter): + """Arguments are positional parameters to a command. They generally + provide fewer features than options but can have infinite ``nargs`` + and are required by default. + + All parameters are passed onwards to the parameter constructor. + """ + + param_type_name = "argument" + + def __init__( + self, + param_decls: t.Sequence[str], + required: t.Optional[bool] = None, + **attrs: t.Any, + ) -> None: + if required is None: + if attrs.get("default") is not None: + required = False + else: + required = attrs.get("nargs", 1) > 0 + + if "multiple" in attrs: + raise TypeError("__init__() got an unexpected keyword argument 'multiple'.") + + super().__init__(param_decls, required=required, **attrs) + + if __debug__: + if self.default is not None and self.nargs == -1: + raise TypeError("'default' is not supported for nargs=-1.") + + @property + def human_readable_name(self) -> str: + if self.metavar is not None: + return self.metavar + return self.name.upper() # type: ignore + + def make_metavar(self) -> str: + if self.metavar is not None: + return self.metavar + var = self.type.get_metavar(self) + if not var: + var = self.name.upper() # type: ignore + if not self.required: + var = f"[{var}]" + if self.nargs != 1: + var += "..." + return var + + def _parse_decls( + self, decls: t.Sequence[str], expose_value: bool + ) -> t.Tuple[t.Optional[str], t.List[str], t.List[str]]: + if not decls: + if not expose_value: + return None, [], [] + raise TypeError("Could not determine name for argument") + if len(decls) == 1: + name = arg = decls[0] + name = name.replace("-", "_").lower() + else: + raise TypeError( + "Arguments take exactly one parameter declaration, got" + f" {len(decls)}." + ) + return name, [arg], [] + + def get_usage_pieces(self, ctx: Context) -> t.List[str]: + return [self.make_metavar()] + + def get_error_hint(self, ctx: Context) -> str: + return f"'{self.make_metavar()}'" + + def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: + parser.add_argument(dest=self.name, nargs=self.nargs, obj=self) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/decorators.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/decorators.py new file mode 100644 index 0000000..f1cc005 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/decorators.py @@ -0,0 +1,436 @@ +import inspect +import types +import typing as t +from functools import update_wrapper +from gettext import gettext as _ + +from .core import Argument +from .core import Command +from .core import Context +from .core import Group +from .core import Option +from .core import Parameter +from .globals import get_current_context +from .utils import echo + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) +FC = t.TypeVar("FC", t.Callable[..., t.Any], Command) + + +def pass_context(f: F) -> F: + """Marks a callback as wanting to receive the current context + object as first argument. + """ + + def new_func(*args, **kwargs): # type: ignore + return f(get_current_context(), *args, **kwargs) + + return update_wrapper(t.cast(F, new_func), f) + + +def pass_obj(f: F) -> F: + """Similar to :func:`pass_context`, but only pass the object on the + context onwards (:attr:`Context.obj`). This is useful if that object + represents the state of a nested system. + """ + + def new_func(*args, **kwargs): # type: ignore + return f(get_current_context().obj, *args, **kwargs) + + return update_wrapper(t.cast(F, new_func), f) + + +def make_pass_decorator( + object_type: t.Type, ensure: bool = False +) -> "t.Callable[[F], F]": + """Given an object type this creates a decorator that will work + similar to :func:`pass_obj` but instead of passing the object of the + current context, it will find the innermost context of type + :func:`object_type`. + + This generates a decorator that works roughly like this:: + + from functools import update_wrapper + + def decorator(f): + @pass_context + def new_func(ctx, *args, **kwargs): + obj = ctx.find_object(object_type) + return ctx.invoke(f, obj, *args, **kwargs) + return update_wrapper(new_func, f) + return decorator + + :param object_type: the type of the object to pass. + :param ensure: if set to `True`, a new object will be created and + remembered on the context if it's not there yet. + """ + + def decorator(f: F) -> F: + def new_func(*args, **kwargs): # type: ignore + ctx = get_current_context() + + if ensure: + obj = ctx.ensure_object(object_type) + else: + obj = ctx.find_object(object_type) + + if obj is None: + raise RuntimeError( + "Managed to invoke callback without a context" + f" object of type {object_type.__name__!r}" + " existing." + ) + + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(t.cast(F, new_func), f) + + return decorator + + +def pass_meta_key( + key: str, *, doc_description: t.Optional[str] = None +) -> "t.Callable[[F], F]": + """Create a decorator that passes a key from + :attr:`click.Context.meta` as the first argument to the decorated + function. + + :param key: Key in ``Context.meta`` to pass. + :param doc_description: Description of the object being passed, + inserted into the decorator's docstring. Defaults to "the 'key' + key from Context.meta". + + .. versionadded:: 8.0 + """ + + def decorator(f: F) -> F: + def new_func(*args, **kwargs): # type: ignore + ctx = get_current_context() + obj = ctx.meta[key] + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(t.cast(F, new_func), f) + + if doc_description is None: + doc_description = f"the {key!r} key from :attr:`click.Context.meta`" + + decorator.__doc__ = ( + f"Decorator that passes {doc_description} as the first argument" + " to the decorated function." + ) + return decorator + + +def _make_command( + f: F, + name: t.Optional[str], + attrs: t.MutableMapping[str, t.Any], + cls: t.Type[Command], +) -> Command: + if isinstance(f, Command): + raise TypeError("Attempted to convert a callback into a command twice.") + + try: + params = f.__click_params__ # type: ignore + params.reverse() + del f.__click_params__ # type: ignore + except AttributeError: + params = [] + + help = attrs.get("help") + + if help is None: + help = inspect.getdoc(f) + else: + help = inspect.cleandoc(help) + + attrs["help"] = help + return cls( + name=name or f.__name__.lower().replace("_", "-"), + callback=f, + params=params, + **attrs, + ) + + +def command( + name: t.Optional[str] = None, + cls: t.Optional[t.Type[Command]] = None, + **attrs: t.Any, +) -> t.Callable[[F], Command]: + r"""Creates a new :class:`Command` and uses the decorated function as + callback. This will also automatically attach all decorated + :func:`option`\s and :func:`argument`\s as parameters to the command. + + The name of the command defaults to the name of the function with + underscores replaced by dashes. If you want to change that, you can + pass the intended name as the first argument. + + All keyword arguments are forwarded to the underlying command class. + + Once decorated the function turns into a :class:`Command` instance + that can be invoked as a command line utility or be attached to a + command :class:`Group`. + + :param name: the name of the command. This defaults to the function + name with underscores replaced by dashes. + :param cls: the command class to instantiate. This defaults to + :class:`Command`. + """ + if cls is None: + cls = Command + + def decorator(f: t.Callable[..., t.Any]) -> Command: + cmd = _make_command(f, name, attrs, cls) # type: ignore + cmd.__doc__ = f.__doc__ + return cmd + + return decorator + + +def group(name: t.Optional[str] = None, **attrs: t.Any) -> t.Callable[[F], Group]: + """Creates a new :class:`Group` with a function as callback. This + works otherwise the same as :func:`command` just that the `cls` + parameter is set to :class:`Group`. + """ + attrs.setdefault("cls", Group) + return t.cast(Group, command(name, **attrs)) + + +def _param_memo(f: FC, param: Parameter) -> None: + if isinstance(f, Command): + f.params.append(param) + else: + if not hasattr(f, "__click_params__"): + f.__click_params__ = [] # type: ignore + + f.__click_params__.append(param) # type: ignore + + +def argument(*param_decls: str, **attrs: t.Any) -> t.Callable[[FC], FC]: + """Attaches an argument to the command. All positional arguments are + passed as parameter declarations to :class:`Argument`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Argument` instance manually + and attaching it to the :attr:`Command.params` list. + + :param cls: the argument class to instantiate. This defaults to + :class:`Argument`. + """ + + def decorator(f: FC) -> FC: + ArgumentClass = attrs.pop("cls", Argument) + _param_memo(f, ArgumentClass(param_decls, **attrs)) + return f + + return decorator + + +def option(*param_decls: str, **attrs: t.Any) -> t.Callable[[FC], FC]: + """Attaches an option to the command. All positional arguments are + passed as parameter declarations to :class:`Option`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Option` instance manually + and attaching it to the :attr:`Command.params` list. + + :param cls: the option class to instantiate. This defaults to + :class:`Option`. + """ + + def decorator(f: FC) -> FC: + # Issue 926, copy attrs, so pre-defined options can re-use the same cls= + option_attrs = attrs.copy() + + if "help" in option_attrs: + option_attrs["help"] = inspect.cleandoc(option_attrs["help"]) + OptionClass = option_attrs.pop("cls", Option) + _param_memo(f, OptionClass(param_decls, **option_attrs)) + return f + + return decorator + + +def confirmation_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--yes`` option which shows a prompt before continuing if + not passed. If the prompt is declined, the program will exit. + + :param param_decls: One or more option names. Defaults to the single + value ``"--yes"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value: + ctx.abort() + + if not param_decls: + param_decls = ("--yes",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("callback", callback) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("prompt", "Do you want to continue?") + kwargs.setdefault("help", "Confirm the action without prompting.") + return option(*param_decls, **kwargs) + + +def password_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--password`` option which prompts for a password, hiding + input and asking to enter the value again for confirmation. + + :param param_decls: One or more option names. Defaults to the single + value ``"--password"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + if not param_decls: + param_decls = ("--password",) + + kwargs.setdefault("prompt", True) + kwargs.setdefault("confirmation_prompt", True) + kwargs.setdefault("hide_input", True) + return option(*param_decls, **kwargs) + + +def version_option( + version: t.Optional[str] = None, + *param_decls: str, + package_name: t.Optional[str] = None, + prog_name: t.Optional[str] = None, + message: t.Optional[str] = None, + **kwargs: t.Any, +) -> t.Callable[[FC], FC]: + """Add a ``--version`` option which immediately prints the version + number and exits the program. + + If ``version`` is not provided, Click will try to detect it using + :func:`importlib.metadata.version` to get the version for the + ``package_name``. On Python < 3.8, the ``importlib_metadata`` + backport must be installed. + + If ``package_name`` is not provided, Click will try to detect it by + inspecting the stack frames. This will be used to detect the + version, so it must match the name of the installed package. + + :param version: The version number to show. If not provided, Click + will try to detect it. + :param param_decls: One or more option names. Defaults to the single + value ``"--version"``. + :param package_name: The package name to detect the version from. If + not provided, Click will try to detect it. + :param prog_name: The name of the CLI to show in the message. If not + provided, it will be detected from the command. + :param message: The message to show. The values ``%(prog)s``, + ``%(package)s``, and ``%(version)s`` are available. Defaults to + ``"%(prog)s, version %(version)s"``. + :param kwargs: Extra arguments are passed to :func:`option`. + :raise RuntimeError: ``version`` could not be detected. + + .. versionchanged:: 8.0 + Add the ``package_name`` parameter, and the ``%(package)s`` + value for messages. + + .. versionchanged:: 8.0 + Use :mod:`importlib.metadata` instead of ``pkg_resources``. The + version is detected based on the package name, not the entry + point name. The Python package name must match the installed + package name, or be passed with ``package_name=``. + """ + if message is None: + message = _("%(prog)s, version %(version)s") + + if version is None and package_name is None: + frame = inspect.currentframe() + f_back = frame.f_back if frame is not None else None + f_globals = f_back.f_globals if f_back is not None else None + # break reference cycle + # https://docs.python.org/3/library/inspect.html#the-interpreter-stack + del frame + + if f_globals is not None: + package_name = f_globals.get("__name__") + + if package_name == "__main__": + package_name = f_globals.get("__package__") + + if package_name: + package_name = package_name.partition(".")[0] + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value or ctx.resilient_parsing: + return + + nonlocal prog_name + nonlocal version + + if prog_name is None: + prog_name = ctx.find_root().info_name + + if version is None and package_name is not None: + metadata: t.Optional[types.ModuleType] + + try: + from importlib import metadata # type: ignore + except ImportError: + # Python < 3.8 + import importlib_metadata as metadata # type: ignore + + try: + version = metadata.version(package_name) # type: ignore + except metadata.PackageNotFoundError: # type: ignore + raise RuntimeError( + f"{package_name!r} is not installed. Try passing" + " 'package_name' instead." + ) from None + + if version is None: + raise RuntimeError( + f"Could not determine the version for {package_name!r} automatically." + ) + + echo( + t.cast(str, message) + % {"prog": prog_name, "package": package_name, "version": version}, + color=ctx.color, + ) + ctx.exit() + + if not param_decls: + param_decls = ("--version",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show the version and exit.")) + kwargs["callback"] = callback + return option(*param_decls, **kwargs) + + +def help_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--help`` option which immediately prints the help page + and exits the program. + + This is usually unnecessary, as the ``--help`` option is added to + each command automatically unless ``add_help_option=False`` is + passed. + + :param param_decls: One or more option names. Defaults to the single + value ``"--help"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value or ctx.resilient_parsing: + return + + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + if not param_decls: + param_decls = ("--help",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show this message and exit.")) + kwargs["callback"] = callback + return option(*param_decls, **kwargs) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/exceptions.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/exceptions.py new file mode 100644 index 0000000..9e20b3e --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/exceptions.py @@ -0,0 +1,287 @@ +import os +import typing as t +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import get_text_stderr +from .utils import echo + +if t.TYPE_CHECKING: + from .core import Context + from .core import Parameter + + +def _join_param_hints( + param_hint: t.Optional[t.Union[t.Sequence[str], str]] +) -> t.Optional[str]: + if param_hint is not None and not isinstance(param_hint, str): + return " / ".join(repr(x) for x in param_hint) + + return param_hint + + +class ClickException(Exception): + """An exception that Click can handle and show to the user.""" + + #: The exit code for this exception. + exit_code = 1 + + def __init__(self, message: str) -> None: + super().__init__(message) + self.message = message + + def format_message(self) -> str: + return self.message + + def __str__(self) -> str: + return self.message + + def show(self, file: t.Optional[t.IO] = None) -> None: + if file is None: + file = get_text_stderr() + + echo(_("Error: {message}").format(message=self.format_message()), file=file) + + +class UsageError(ClickException): + """An internal exception that signals a usage error. This typically + aborts any further handling. + + :param message: the error message to display. + :param ctx: optionally the context that caused this error. Click will + fill in the context automatically in some situations. + """ + + exit_code = 2 + + def __init__(self, message: str, ctx: t.Optional["Context"] = None) -> None: + super().__init__(message) + self.ctx = ctx + self.cmd = self.ctx.command if self.ctx else None + + def show(self, file: t.Optional[t.IO] = None) -> None: + if file is None: + file = get_text_stderr() + color = None + hint = "" + if ( + self.ctx is not None + and self.ctx.command.get_help_option(self.ctx) is not None + ): + hint = _("Try '{command} {option}' for help.").format( + command=self.ctx.command_path, option=self.ctx.help_option_names[0] + ) + hint = f"{hint}\n" + if self.ctx is not None: + color = self.ctx.color + echo(f"{self.ctx.get_usage()}\n{hint}", file=file, color=color) + echo( + _("Error: {message}").format(message=self.format_message()), + file=file, + color=color, + ) + + +class BadParameter(UsageError): + """An exception that formats out a standardized error message for a + bad parameter. This is useful when thrown from a callback or type as + Click will attach contextual information to it (for instance, which + parameter it is). + + .. versionadded:: 2.0 + + :param param: the parameter object that caused this error. This can + be left out, and Click will attach this info itself + if possible. + :param param_hint: a string that shows up as parameter name. This + can be used as alternative to `param` in cases + where custom validation should happen. If it is + a string it's used as such, if it's a list then + each item is quoted and separated. + """ + + def __init__( + self, + message: str, + ctx: t.Optional["Context"] = None, + param: t.Optional["Parameter"] = None, + param_hint: t.Optional[str] = None, + ) -> None: + super().__init__(message, ctx) + self.param = param + self.param_hint = param_hint + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + return _("Invalid value: {message}").format(message=self.message) + + return _("Invalid value for {param_hint}: {message}").format( + param_hint=_join_param_hints(param_hint), message=self.message + ) + + +class MissingParameter(BadParameter): + """Raised if click required an option or argument but it was not + provided when invoking the script. + + .. versionadded:: 4.0 + + :param param_type: a string that indicates the type of the parameter. + The default is to inherit the parameter type from + the given `param`. Valid values are ``'parameter'``, + ``'option'`` or ``'argument'``. + """ + + def __init__( + self, + message: t.Optional[str] = None, + ctx: t.Optional["Context"] = None, + param: t.Optional["Parameter"] = None, + param_hint: t.Optional[str] = None, + param_type: t.Optional[str] = None, + ) -> None: + super().__init__(message or "", ctx, param, param_hint) + self.param_type = param_type + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint: t.Optional[str] = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + param_hint = None + + param_hint = _join_param_hints(param_hint) + param_hint = f" {param_hint}" if param_hint else "" + + param_type = self.param_type + if param_type is None and self.param is not None: + param_type = self.param.param_type_name + + msg = self.message + if self.param is not None: + msg_extra = self.param.type.get_missing_message(self.param) + if msg_extra: + if msg: + msg += f". {msg_extra}" + else: + msg = msg_extra + + msg = f" {msg}" if msg else "" + + # Translate param_type for known types. + if param_type == "argument": + missing = _("Missing argument") + elif param_type == "option": + missing = _("Missing option") + elif param_type == "parameter": + missing = _("Missing parameter") + else: + missing = _("Missing {param_type}").format(param_type=param_type) + + return f"{missing}{param_hint}.{msg}" + + def __str__(self) -> str: + if not self.message: + param_name = self.param.name if self.param else None + return _("Missing parameter: {param_name}").format(param_name=param_name) + else: + return self.message + + +class NoSuchOption(UsageError): + """Raised if click attempted to handle an option that does not + exist. + + .. versionadded:: 4.0 + """ + + def __init__( + self, + option_name: str, + message: t.Optional[str] = None, + possibilities: t.Optional[t.Sequence[str]] = None, + ctx: t.Optional["Context"] = None, + ) -> None: + if message is None: + message = _("No such option: {name}").format(name=option_name) + + super().__init__(message, ctx) + self.option_name = option_name + self.possibilities = possibilities + + def format_message(self) -> str: + if not self.possibilities: + return self.message + + possibility_str = ", ".join(sorted(self.possibilities)) + suggest = ngettext( + "Did you mean {possibility}?", + "(Possible options: {possibilities})", + len(self.possibilities), + ).format(possibility=possibility_str, possibilities=possibility_str) + return f"{self.message} {suggest}" + + +class BadOptionUsage(UsageError): + """Raised if an option is generally supplied but the use of the option + was incorrect. This is for instance raised if the number of arguments + for an option is not correct. + + .. versionadded:: 4.0 + + :param option_name: the name of the option being used incorrectly. + """ + + def __init__( + self, option_name: str, message: str, ctx: t.Optional["Context"] = None + ) -> None: + super().__init__(message, ctx) + self.option_name = option_name + + +class BadArgumentUsage(UsageError): + """Raised if an argument is generally supplied but the use of the argument + was incorrect. This is for instance raised if the number of values + for an argument is not correct. + + .. versionadded:: 6.0 + """ + + +class FileError(ClickException): + """Raised if a file cannot be opened.""" + + def __init__(self, filename: str, hint: t.Optional[str] = None) -> None: + if hint is None: + hint = _("unknown error") + + super().__init__(hint) + self.ui_filename = os.fsdecode(filename) + self.filename = filename + + def format_message(self) -> str: + return _("Could not open file {filename!r}: {message}").format( + filename=self.ui_filename, message=self.message + ) + + +class Abort(RuntimeError): + """An internal signalling exception that signals Click to abort.""" + + +class Exit(RuntimeError): + """An exception that indicates that the application should exit with some + status code. + + :param code: the status code to exit with. + """ + + __slots__ = ("exit_code",) + + def __init__(self, code: int = 0) -> None: + self.exit_code = code diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/formatting.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/formatting.py new file mode 100644 index 0000000..ddd2a2f --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/formatting.py @@ -0,0 +1,301 @@ +import typing as t +from contextlib import contextmanager +from gettext import gettext as _ + +from ._compat import term_len +from .parser import split_opt + +# Can force a width. This is used by the test system +FORCED_WIDTH: t.Optional[int] = None + + +def measure_table(rows: t.Iterable[t.Tuple[str, str]]) -> t.Tuple[int, ...]: + widths: t.Dict[int, int] = {} + + for row in rows: + for idx, col in enumerate(row): + widths[idx] = max(widths.get(idx, 0), term_len(col)) + + return tuple(y for x, y in sorted(widths.items())) + + +def iter_rows( + rows: t.Iterable[t.Tuple[str, str]], col_count: int +) -> t.Iterator[t.Tuple[str, ...]]: + for row in rows: + yield row + ("",) * (col_count - len(row)) + + +def wrap_text( + text: str, + width: int = 78, + initial_indent: str = "", + subsequent_indent: str = "", + preserve_paragraphs: bool = False, +) -> str: + """A helper function that intelligently wraps text. By default, it + assumes that it operates on a single paragraph of text but if the + `preserve_paragraphs` parameter is provided it will intelligently + handle paragraphs (defined by two empty lines). + + If paragraphs are handled, a paragraph can be prefixed with an empty + line containing the ``\\b`` character (``\\x08``) to indicate that + no rewrapping should happen in that block. + + :param text: the text that should be rewrapped. + :param width: the maximum width for the text. + :param initial_indent: the initial indent that should be placed on the + first line as a string. + :param subsequent_indent: the indent string that should be placed on + each consecutive line. + :param preserve_paragraphs: if this flag is set then the wrapping will + intelligently handle paragraphs. + """ + from ._textwrap import TextWrapper + + text = text.expandtabs() + wrapper = TextWrapper( + width, + initial_indent=initial_indent, + subsequent_indent=subsequent_indent, + replace_whitespace=False, + ) + if not preserve_paragraphs: + return wrapper.fill(text) + + p: t.List[t.Tuple[int, bool, str]] = [] + buf: t.List[str] = [] + indent = None + + def _flush_par() -> None: + if not buf: + return + if buf[0].strip() == "\b": + p.append((indent or 0, True, "\n".join(buf[1:]))) + else: + p.append((indent or 0, False, " ".join(buf))) + del buf[:] + + for line in text.splitlines(): + if not line: + _flush_par() + indent = None + else: + if indent is None: + orig_len = term_len(line) + line = line.lstrip() + indent = orig_len - term_len(line) + buf.append(line) + _flush_par() + + rv = [] + for indent, raw, text in p: + with wrapper.extra_indent(" " * indent): + if raw: + rv.append(wrapper.indent_only(text)) + else: + rv.append(wrapper.fill(text)) + + return "\n\n".join(rv) + + +class HelpFormatter: + """This class helps with formatting text-based help pages. It's + usually just needed for very special internal cases, but it's also + exposed so that developers can write their own fancy outputs. + + At present, it always writes into memory. + + :param indent_increment: the additional increment for each level. + :param width: the width for the text. This defaults to the terminal + width clamped to a maximum of 78. + """ + + def __init__( + self, + indent_increment: int = 2, + width: t.Optional[int] = None, + max_width: t.Optional[int] = None, + ) -> None: + import shutil + + self.indent_increment = indent_increment + if max_width is None: + max_width = 80 + if width is None: + width = FORCED_WIDTH + if width is None: + width = max(min(shutil.get_terminal_size().columns, max_width) - 2, 50) + self.width = width + self.current_indent = 0 + self.buffer: t.List[str] = [] + + def write(self, string: str) -> None: + """Writes a unicode string into the internal buffer.""" + self.buffer.append(string) + + def indent(self) -> None: + """Increases the indentation.""" + self.current_indent += self.indent_increment + + def dedent(self) -> None: + """Decreases the indentation.""" + self.current_indent -= self.indent_increment + + def write_usage( + self, prog: str, args: str = "", prefix: t.Optional[str] = None + ) -> None: + """Writes a usage line into the buffer. + + :param prog: the program name. + :param args: whitespace separated list of arguments. + :param prefix: The prefix for the first line. Defaults to + ``"Usage: "``. + """ + if prefix is None: + prefix = f"{_('Usage:')} " + + usage_prefix = f"{prefix:>{self.current_indent}}{prog} " + text_width = self.width - self.current_indent + + if text_width >= (term_len(usage_prefix) + 20): + # The arguments will fit to the right of the prefix. + indent = " " * term_len(usage_prefix) + self.write( + wrap_text( + args, + text_width, + initial_indent=usage_prefix, + subsequent_indent=indent, + ) + ) + else: + # The prefix is too long, put the arguments on the next line. + self.write(usage_prefix) + self.write("\n") + indent = " " * (max(self.current_indent, term_len(prefix)) + 4) + self.write( + wrap_text( + args, text_width, initial_indent=indent, subsequent_indent=indent + ) + ) + + self.write("\n") + + def write_heading(self, heading: str) -> None: + """Writes a heading into the buffer.""" + self.write(f"{'':>{self.current_indent}}{heading}:\n") + + def write_paragraph(self) -> None: + """Writes a paragraph into the buffer.""" + if self.buffer: + self.write("\n") + + def write_text(self, text: str) -> None: + """Writes re-indented text into the buffer. This rewraps and + preserves paragraphs. + """ + indent = " " * self.current_indent + self.write( + wrap_text( + text, + self.width, + initial_indent=indent, + subsequent_indent=indent, + preserve_paragraphs=True, + ) + ) + self.write("\n") + + def write_dl( + self, + rows: t.Sequence[t.Tuple[str, str]], + col_max: int = 30, + col_spacing: int = 2, + ) -> None: + """Writes a definition list into the buffer. This is how options + and commands are usually formatted. + + :param rows: a list of two item tuples for the terms and values. + :param col_max: the maximum width of the first column. + :param col_spacing: the number of spaces between the first and + second column. + """ + rows = list(rows) + widths = measure_table(rows) + if len(widths) != 2: + raise TypeError("Expected two columns for definition list") + + first_col = min(widths[0], col_max) + col_spacing + + for first, second in iter_rows(rows, len(widths)): + self.write(f"{'':>{self.current_indent}}{first}") + if not second: + self.write("\n") + continue + if term_len(first) <= first_col - col_spacing: + self.write(" " * (first_col - term_len(first))) + else: + self.write("\n") + self.write(" " * (first_col + self.current_indent)) + + text_width = max(self.width - first_col - 2, 10) + wrapped_text = wrap_text(second, text_width, preserve_paragraphs=True) + lines = wrapped_text.splitlines() + + if lines: + self.write(f"{lines[0]}\n") + + for line in lines[1:]: + self.write(f"{'':>{first_col + self.current_indent}}{line}\n") + else: + self.write("\n") + + @contextmanager + def section(self, name: str) -> t.Iterator[None]: + """Helpful context manager that writes a paragraph, a heading, + and the indents. + + :param name: the section name that is written as heading. + """ + self.write_paragraph() + self.write_heading(name) + self.indent() + try: + yield + finally: + self.dedent() + + @contextmanager + def indentation(self) -> t.Iterator[None]: + """A context manager that increases the indentation.""" + self.indent() + try: + yield + finally: + self.dedent() + + def getvalue(self) -> str: + """Returns the buffer contents.""" + return "".join(self.buffer) + + +def join_options(options: t.Sequence[str]) -> t.Tuple[str, bool]: + """Given a list of option strings this joins them in the most appropriate + way and returns them in the form ``(formatted_string, + any_prefix_is_slash)`` where the second item in the tuple is a flag that + indicates if any of the option prefixes was a slash. + """ + rv = [] + any_prefix_is_slash = False + + for opt in options: + prefix = split_opt(opt)[0] + + if prefix == "/": + any_prefix_is_slash = True + + rv.append((len(prefix), opt)) + + rv.sort(key=lambda x: x[0]) + return ", ".join(x[1] for x in rv), any_prefix_is_slash diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/globals.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/globals.py new file mode 100644 index 0000000..a7b0c93 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/globals.py @@ -0,0 +1,69 @@ +import typing +import typing as t +from threading import local + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Context + +_local = local() + + +@typing.overload +def get_current_context(silent: "te.Literal[False]" = False) -> "Context": + ... + + +@typing.overload +def get_current_context(silent: bool = ...) -> t.Optional["Context"]: + ... + + +def get_current_context(silent: bool = False) -> t.Optional["Context"]: + """Returns the current click context. This can be used as a way to + access the current context object from anywhere. This is a more implicit + alternative to the :func:`pass_context` decorator. This function is + primarily useful for helpers such as :func:`echo` which might be + interested in changing its behavior based on the current context. + + To push the current context, :meth:`Context.scope` can be used. + + .. versionadded:: 5.0 + + :param silent: if set to `True` the return value is `None` if no context + is available. The default behavior is to raise a + :exc:`RuntimeError`. + """ + try: + return t.cast("Context", _local.stack[-1]) + except (AttributeError, IndexError) as e: + if not silent: + raise RuntimeError("There is no active click context.") from e + + return None + + +def push_context(ctx: "Context") -> None: + """Pushes a new context to the current stack.""" + _local.__dict__.setdefault("stack", []).append(ctx) + + +def pop_context() -> None: + """Removes the top level from the stack.""" + _local.stack.pop() + + +def resolve_color_default(color: t.Optional[bool] = None) -> t.Optional[bool]: + """Internal helper to get the default value of the color flag. If a + value is passed it's returned unchanged, otherwise it's looked up from + the current context. + """ + if color is not None: + return color + + ctx = get_current_context(silent=True) + + if ctx is not None: + return ctx.color + + return None diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/parser.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/parser.py new file mode 100644 index 0000000..2d5a2ed --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/parser.py @@ -0,0 +1,529 @@ +""" +This module started out as largely a copy paste from the stdlib's +optparse module with the features removed that we do not need from +optparse because we implement them in Click on a higher level (for +instance type handling, help formatting and a lot more). + +The plan is to remove more and more from here over time. + +The reason this is a different module and not optparse from the stdlib +is that there are differences in 2.x and 3.x about the error messages +generated and optparse in the stdlib uses gettext for no good reason +and might cause us issues. + +Click uses parts of optparse written by Gregory P. Ward and maintained +by the Python Software Foundation. This is limited to code in parser.py. + +Copyright 2001-2006 Gregory P. Ward. All rights reserved. +Copyright 2002-2006 Python Software Foundation. All rights reserved. +""" +# This code uses parts of optparse written by Gregory P. Ward and +# maintained by the Python Software Foundation. +# Copyright 2001-2006 Gregory P. Ward +# Copyright 2002-2006 Python Software Foundation +import typing as t +from collections import deque +from gettext import gettext as _ +from gettext import ngettext + +from .exceptions import BadArgumentUsage +from .exceptions import BadOptionUsage +from .exceptions import NoSuchOption +from .exceptions import UsageError + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Argument as CoreArgument + from .core import Context + from .core import Option as CoreOption + from .core import Parameter as CoreParameter + +V = t.TypeVar("V") + +# Sentinel value that indicates an option was passed as a flag without a +# value but is not a flag option. Option.consume_value uses this to +# prompt or use the flag_value. +_flag_needs_value = object() + + +def _unpack_args( + args: t.Sequence[str], nargs_spec: t.Sequence[int] +) -> t.Tuple[t.Sequence[t.Union[str, t.Sequence[t.Optional[str]], None]], t.List[str]]: + """Given an iterable of arguments and an iterable of nargs specifications, + it returns a tuple with all the unpacked arguments at the first index + and all remaining arguments as the second. + + The nargs specification is the number of arguments that should be consumed + or `-1` to indicate that this position should eat up all the remainders. + + Missing items are filled with `None`. + """ + args = deque(args) + nargs_spec = deque(nargs_spec) + rv: t.List[t.Union[str, t.Tuple[t.Optional[str], ...], None]] = [] + spos: t.Optional[int] = None + + def _fetch(c: "te.Deque[V]") -> t.Optional[V]: + try: + if spos is None: + return c.popleft() + else: + return c.pop() + except IndexError: + return None + + while nargs_spec: + nargs = _fetch(nargs_spec) + + if nargs is None: + continue + + if nargs == 1: + rv.append(_fetch(args)) + elif nargs > 1: + x = [_fetch(args) for _ in range(nargs)] + + # If we're reversed, we're pulling in the arguments in reverse, + # so we need to turn them around. + if spos is not None: + x.reverse() + + rv.append(tuple(x)) + elif nargs < 0: + if spos is not None: + raise TypeError("Cannot have two nargs < 0") + + spos = len(rv) + rv.append(None) + + # spos is the position of the wildcard (star). If it's not `None`, + # we fill it with the remainder. + if spos is not None: + rv[spos] = tuple(args) + args = [] + rv[spos + 1 :] = reversed(rv[spos + 1 :]) + + return tuple(rv), list(args) + + +def split_opt(opt: str) -> t.Tuple[str, str]: + first = opt[:1] + if first.isalnum(): + return "", opt + if opt[1:2] == first: + return opt[:2], opt[2:] + return first, opt[1:] + + +def normalize_opt(opt: str, ctx: t.Optional["Context"]) -> str: + if ctx is None or ctx.token_normalize_func is None: + return opt + prefix, opt = split_opt(opt) + return f"{prefix}{ctx.token_normalize_func(opt)}" + + +def split_arg_string(string: str) -> t.List[str]: + """Split an argument string as with :func:`shlex.split`, but don't + fail if the string is incomplete. Ignores a missing closing quote or + incomplete escape sequence and uses the partial token as-is. + + .. code-block:: python + + split_arg_string("example 'my file") + ["example", "my file"] + + split_arg_string("example my\\") + ["example", "my"] + + :param string: String to split. + """ + import shlex + + lex = shlex.shlex(string, posix=True) + lex.whitespace_split = True + lex.commenters = "" + out = [] + + try: + for token in lex: + out.append(token) + except ValueError: + # Raised when end-of-string is reached in an invalid state. Use + # the partial token as-is. The quote or escape character is in + # lex.state, not lex.token. + out.append(lex.token) + + return out + + +class Option: + def __init__( + self, + obj: "CoreOption", + opts: t.Sequence[str], + dest: t.Optional[str], + action: t.Optional[str] = None, + nargs: int = 1, + const: t.Optional[t.Any] = None, + ): + self._short_opts = [] + self._long_opts = [] + self.prefixes = set() + + for opt in opts: + prefix, value = split_opt(opt) + if not prefix: + raise ValueError(f"Invalid start character for option ({opt})") + self.prefixes.add(prefix[0]) + if len(prefix) == 1 and len(value) == 1: + self._short_opts.append(opt) + else: + self._long_opts.append(opt) + self.prefixes.add(prefix) + + if action is None: + action = "store" + + self.dest = dest + self.action = action + self.nargs = nargs + self.const = const + self.obj = obj + + @property + def takes_value(self) -> bool: + return self.action in ("store", "append") + + def process(self, value: str, state: "ParsingState") -> None: + if self.action == "store": + state.opts[self.dest] = value # type: ignore + elif self.action == "store_const": + state.opts[self.dest] = self.const # type: ignore + elif self.action == "append": + state.opts.setdefault(self.dest, []).append(value) # type: ignore + elif self.action == "append_const": + state.opts.setdefault(self.dest, []).append(self.const) # type: ignore + elif self.action == "count": + state.opts[self.dest] = state.opts.get(self.dest, 0) + 1 # type: ignore + else: + raise ValueError(f"unknown action '{self.action}'") + state.order.append(self.obj) + + +class Argument: + def __init__(self, obj: "CoreArgument", dest: t.Optional[str], nargs: int = 1): + self.dest = dest + self.nargs = nargs + self.obj = obj + + def process( + self, + value: t.Union[t.Optional[str], t.Sequence[t.Optional[str]]], + state: "ParsingState", + ) -> None: + if self.nargs > 1: + assert value is not None + holes = sum(1 for x in value if x is None) + if holes == len(value): + value = None + elif holes != 0: + raise BadArgumentUsage( + _("Argument {name!r} takes {nargs} values.").format( + name=self.dest, nargs=self.nargs + ) + ) + + if self.nargs == -1 and self.obj.envvar is not None and value == (): + # Replace empty tuple with None so that a value from the + # environment may be tried. + value = None + + state.opts[self.dest] = value # type: ignore + state.order.append(self.obj) + + +class ParsingState: + def __init__(self, rargs: t.List[str]) -> None: + self.opts: t.Dict[str, t.Any] = {} + self.largs: t.List[str] = [] + self.rargs = rargs + self.order: t.List["CoreParameter"] = [] + + +class OptionParser: + """The option parser is an internal class that is ultimately used to + parse options and arguments. It's modelled after optparse and brings + a similar but vastly simplified API. It should generally not be used + directly as the high level Click classes wrap it for you. + + It's not nearly as extensible as optparse or argparse as it does not + implement features that are implemented on a higher level (such as + types or defaults). + + :param ctx: optionally the :class:`~click.Context` where this parser + should go with. + """ + + def __init__(self, ctx: t.Optional["Context"] = None) -> None: + #: The :class:`~click.Context` for this parser. This might be + #: `None` for some advanced use cases. + self.ctx = ctx + #: This controls how the parser deals with interspersed arguments. + #: If this is set to `False`, the parser will stop on the first + #: non-option. Click uses this to implement nested subcommands + #: safely. + self.allow_interspersed_args = True + #: This tells the parser how to deal with unknown options. By + #: default it will error out (which is sensible), but there is a + #: second mode where it will ignore it and continue processing + #: after shifting all the unknown options into the resulting args. + self.ignore_unknown_options = False + + if ctx is not None: + self.allow_interspersed_args = ctx.allow_interspersed_args + self.ignore_unknown_options = ctx.ignore_unknown_options + + self._short_opt: t.Dict[str, Option] = {} + self._long_opt: t.Dict[str, Option] = {} + self._opt_prefixes = {"-", "--"} + self._args: t.List[Argument] = [] + + def add_option( + self, + obj: "CoreOption", + opts: t.Sequence[str], + dest: t.Optional[str], + action: t.Optional[str] = None, + nargs: int = 1, + const: t.Optional[t.Any] = None, + ) -> None: + """Adds a new option named `dest` to the parser. The destination + is not inferred (unlike with optparse) and needs to be explicitly + provided. Action can be any of ``store``, ``store_const``, + ``append``, ``append_const`` or ``count``. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + opts = [normalize_opt(opt, self.ctx) for opt in opts] + option = Option(obj, opts, dest, action=action, nargs=nargs, const=const) + self._opt_prefixes.update(option.prefixes) + for opt in option._short_opts: + self._short_opt[opt] = option + for opt in option._long_opts: + self._long_opt[opt] = option + + def add_argument( + self, obj: "CoreArgument", dest: t.Optional[str], nargs: int = 1 + ) -> None: + """Adds a positional argument named `dest` to the parser. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + self._args.append(Argument(obj, dest=dest, nargs=nargs)) + + def parse_args( + self, args: t.List[str] + ) -> t.Tuple[t.Dict[str, t.Any], t.List[str], t.List["CoreParameter"]]: + """Parses positional arguments and returns ``(values, args, order)`` + for the parsed options and arguments as well as the leftover + arguments if there are any. The order is a list of objects as they + appear on the command line. If arguments appear multiple times they + will be memorized multiple times as well. + """ + state = ParsingState(args) + try: + self._process_args_for_options(state) + self._process_args_for_args(state) + except UsageError: + if self.ctx is None or not self.ctx.resilient_parsing: + raise + return state.opts, state.largs, state.order + + def _process_args_for_args(self, state: ParsingState) -> None: + pargs, args = _unpack_args( + state.largs + state.rargs, [x.nargs for x in self._args] + ) + + for idx, arg in enumerate(self._args): + arg.process(pargs[idx], state) + + state.largs = args + state.rargs = [] + + def _process_args_for_options(self, state: ParsingState) -> None: + while state.rargs: + arg = state.rargs.pop(0) + arglen = len(arg) + # Double dashes always handled explicitly regardless of what + # prefixes are valid. + if arg == "--": + return + elif arg[:1] in self._opt_prefixes and arglen > 1: + self._process_opts(arg, state) + elif self.allow_interspersed_args: + state.largs.append(arg) + else: + state.rargs.insert(0, arg) + return + + # Say this is the original argument list: + # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] + # ^ + # (we are about to process arg(i)). + # + # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of + # [arg0, ..., arg(i-1)] (any options and their arguments will have + # been removed from largs). + # + # The while loop will usually consume 1 or more arguments per pass. + # If it consumes 1 (eg. arg is an option that takes no arguments), + # then after _process_arg() is done the situation is: + # + # largs = subset of [arg0, ..., arg(i)] + # rargs = [arg(i+1), ..., arg(N-1)] + # + # If allow_interspersed_args is false, largs will always be + # *empty* -- still a subset of [arg0, ..., arg(i-1)], but + # not a very interesting subset! + + def _match_long_opt( + self, opt: str, explicit_value: t.Optional[str], state: ParsingState + ) -> None: + if opt not in self._long_opt: + from difflib import get_close_matches + + possibilities = get_close_matches(opt, self._long_opt) + raise NoSuchOption(opt, possibilities=possibilities, ctx=self.ctx) + + option = self._long_opt[opt] + if option.takes_value: + # At this point it's safe to modify rargs by injecting the + # explicit value, because no exception is raised in this + # branch. This means that the inserted value will be fully + # consumed. + if explicit_value is not None: + state.rargs.insert(0, explicit_value) + + value = self._get_value_from_state(opt, option, state) + + elif explicit_value is not None: + raise BadOptionUsage( + opt, _("Option {name!r} does not take a value.").format(name=opt) + ) + + else: + value = None + + option.process(value, state) + + def _match_short_opt(self, arg: str, state: ParsingState) -> None: + stop = False + i = 1 + prefix = arg[0] + unknown_options = [] + + for ch in arg[1:]: + opt = normalize_opt(f"{prefix}{ch}", self.ctx) + option = self._short_opt.get(opt) + i += 1 + + if not option: + if self.ignore_unknown_options: + unknown_options.append(ch) + continue + raise NoSuchOption(opt, ctx=self.ctx) + if option.takes_value: + # Any characters left in arg? Pretend they're the + # next arg, and stop consuming characters of arg. + if i < len(arg): + state.rargs.insert(0, arg[i:]) + stop = True + + value = self._get_value_from_state(opt, option, state) + + else: + value = None + + option.process(value, state) + + if stop: + break + + # If we got any unknown options we re-combinate the string of the + # remaining options and re-attach the prefix, then report that + # to the state as new larg. This way there is basic combinatorics + # that can be achieved while still ignoring unknown arguments. + if self.ignore_unknown_options and unknown_options: + state.largs.append(f"{prefix}{''.join(unknown_options)}") + + def _get_value_from_state( + self, option_name: str, option: Option, state: ParsingState + ) -> t.Any: + nargs = option.nargs + + if len(state.rargs) < nargs: + if option.obj._flag_needs_value: + # Option allows omitting the value. + value = _flag_needs_value + else: + raise BadOptionUsage( + option_name, + ngettext( + "Option {name!r} requires an argument.", + "Option {name!r} requires {nargs} arguments.", + nargs, + ).format(name=option_name, nargs=nargs), + ) + elif nargs == 1: + next_rarg = state.rargs[0] + + if ( + option.obj._flag_needs_value + and isinstance(next_rarg, str) + and next_rarg[:1] in self._opt_prefixes + and len(next_rarg) > 1 + ): + # The next arg looks like the start of an option, don't + # use it as the value if omitting the value is allowed. + value = _flag_needs_value + else: + value = state.rargs.pop(0) + else: + value = tuple(state.rargs[:nargs]) + del state.rargs[:nargs] + + return value + + def _process_opts(self, arg: str, state: ParsingState) -> None: + explicit_value = None + # Long option handling happens in two parts. The first part is + # supporting explicitly attached values. In any case, we will try + # to long match the option first. + if "=" in arg: + long_opt, explicit_value = arg.split("=", 1) + else: + long_opt = arg + norm_long_opt = normalize_opt(long_opt, self.ctx) + + # At this point we will match the (assumed) long option through + # the long option matching code. Note that this allows options + # like "-foo" to be matched as long options. + try: + self._match_long_opt(norm_long_opt, explicit_value, state) + except NoSuchOption: + # At this point the long option matching failed, and we need + # to try with short options. However there is a special rule + # which says, that if we have a two character options prefix + # (applies to "--foo" for instance), we do not dispatch to the + # short option code and will instead raise the no option + # error. + if arg[:2] not in self._opt_prefixes: + self._match_short_opt(arg, state) + return + + if not self.ignore_unknown_options: + raise + + state.largs.append(arg) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/py.typed b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/shell_completion.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/shell_completion.py new file mode 100644 index 0000000..cad080d --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/shell_completion.py @@ -0,0 +1,581 @@ +import os +import re +import typing as t +from gettext import gettext as _ + +from .core import Argument +from .core import BaseCommand +from .core import Context +from .core import MultiCommand +from .core import Option +from .core import Parameter +from .core import ParameterSource +from .parser import split_arg_string +from .utils import echo + + +def shell_complete( + cli: BaseCommand, + ctx_args: t.Dict[str, t.Any], + prog_name: str, + complete_var: str, + instruction: str, +) -> int: + """Perform shell completion for the given CLI program. + + :param cli: Command being called. + :param ctx_args: Extra arguments to pass to + ``cli.make_context``. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + :param instruction: Value of ``complete_var`` with the completion + instruction and shell, in the form ``instruction_shell``. + :return: Status code to exit with. + """ + shell, _, instruction = instruction.partition("_") + comp_cls = get_completion_class(shell) + + if comp_cls is None: + return 1 + + comp = comp_cls(cli, ctx_args, prog_name, complete_var) + + if instruction == "source": + echo(comp.source()) + return 0 + + if instruction == "complete": + echo(comp.complete()) + return 0 + + return 1 + + +class CompletionItem: + """Represents a completion value and metadata about the value. The + default metadata is ``type`` to indicate special shell handling, + and ``help`` if a shell supports showing a help string next to the + value. + + Arbitrary parameters can be passed when creating the object, and + accessed using ``item.attr``. If an attribute wasn't passed, + accessing it returns ``None``. + + :param value: The completion suggestion. + :param type: Tells the shell script to provide special completion + support for the type. Click uses ``"dir"`` and ``"file"``. + :param help: String shown next to the value if supported. + :param kwargs: Arbitrary metadata. The built-in implementations + don't use this, but custom type completions paired with custom + shell support could use it. + """ + + __slots__ = ("value", "type", "help", "_info") + + def __init__( + self, + value: t.Any, + type: str = "plain", + help: t.Optional[str] = None, + **kwargs: t.Any, + ) -> None: + self.value = value + self.type = type + self.help = help + self._info = kwargs + + def __getattr__(self, name: str) -> t.Any: + return self._info.get(name) + + +# Only Bash >= 4.4 has the nosort option. +_SOURCE_BASH = """\ +%(complete_func)s() { + local IFS=$'\\n' + local response + + response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD \ +%(complete_var)s=bash_complete $1) + + for completion in $response; do + IFS=',' read type value <<< "$completion" + + if [[ $type == 'dir' ]]; then + COMREPLY=() + compopt -o dirnames + elif [[ $type == 'file' ]]; then + COMREPLY=() + compopt -o default + elif [[ $type == 'plain' ]]; then + COMPREPLY+=($value) + fi + done + + return 0 +} + +%(complete_func)s_setup() { + complete -o nosort -F %(complete_func)s %(prog_name)s +} + +%(complete_func)s_setup; +""" + +_SOURCE_ZSH = """\ +#compdef %(prog_name)s + +%(complete_func)s() { + local -a completions + local -a completions_with_descriptions + local -a response + (( ! $+commands[%(prog_name)s] )) && return 1 + + response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) \ +%(complete_var)s=zsh_complete %(prog_name)s)}") + + for type key descr in ${response}; do + if [[ "$type" == "plain" ]]; then + if [[ "$descr" == "_" ]]; then + completions+=("$key") + else + completions_with_descriptions+=("$key":"$descr") + fi + elif [[ "$type" == "dir" ]]; then + _path_files -/ + elif [[ "$type" == "file" ]]; then + _path_files -f + fi + done + + if [ -n "$completions_with_descriptions" ]; then + _describe -V unsorted completions_with_descriptions -U + fi + + if [ -n "$completions" ]; then + compadd -U -V unsorted -a completions + fi +} + +compdef %(complete_func)s %(prog_name)s; +""" + +_SOURCE_FISH = """\ +function %(complete_func)s; + set -l response; + + for value in (env %(complete_var)s=fish_complete COMP_WORDS=(commandline -cp) \ +COMP_CWORD=(commandline -t) %(prog_name)s); + set response $response $value; + end; + + for completion in $response; + set -l metadata (string split "," $completion); + + if test $metadata[1] = "dir"; + __fish_complete_directories $metadata[2]; + else if test $metadata[1] = "file"; + __fish_complete_path $metadata[2]; + else if test $metadata[1] = "plain"; + echo $metadata[2]; + end; + end; +end; + +complete --no-files --command %(prog_name)s --arguments \ +"(%(complete_func)s)"; +""" + + +class ShellComplete: + """Base class for providing shell completion support. A subclass for + a given shell will override attributes and methods to implement the + completion instructions (``source`` and ``complete``). + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + + .. versionadded:: 8.0 + """ + + name: t.ClassVar[str] + """Name to register the shell as with :func:`add_completion_class`. + This is used in completion instructions (``{name}_source`` and + ``{name}_complete``). + """ + + source_template: t.ClassVar[str] + """Completion script template formatted by :meth:`source`. This must + be provided by subclasses. + """ + + def __init__( + self, + cli: BaseCommand, + ctx_args: t.Dict[str, t.Any], + prog_name: str, + complete_var: str, + ) -> None: + self.cli = cli + self.ctx_args = ctx_args + self.prog_name = prog_name + self.complete_var = complete_var + + @property + def func_name(self) -> str: + """The name of the shell function defined by the completion + script. + """ + safe_name = re.sub(r"\W*", "", self.prog_name.replace("-", "_"), re.ASCII) + return f"_{safe_name}_completion" + + def source_vars(self) -> t.Dict[str, t.Any]: + """Vars for formatting :attr:`source_template`. + + By default this provides ``complete_func``, ``complete_var``, + and ``prog_name``. + """ + return { + "complete_func": self.func_name, + "complete_var": self.complete_var, + "prog_name": self.prog_name, + } + + def source(self) -> str: + """Produce the shell script that defines the completion + function. By default this ``%``-style formats + :attr:`source_template` with the dict returned by + :meth:`source_vars`. + """ + return self.source_template % self.source_vars() + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + """Use the env vars defined by the shell script to return a + tuple of ``args, incomplete``. This must be implemented by + subclasses. + """ + raise NotImplementedError + + def get_completions( + self, args: t.List[str], incomplete: str + ) -> t.List[CompletionItem]: + """Determine the context and last complete command or parameter + from the complete args. Call that object's ``shell_complete`` + method to get the completions for the incomplete value. + + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + ctx = _resolve_context(self.cli, self.ctx_args, self.prog_name, args) + obj, incomplete = _resolve_incomplete(ctx, args, incomplete) + return obj.shell_complete(ctx, incomplete) + + def format_completion(self, item: CompletionItem) -> str: + """Format a completion item into the form recognized by the + shell script. This must be implemented by subclasses. + + :param item: Completion item to format. + """ + raise NotImplementedError + + def complete(self) -> str: + """Produce the completion data to send back to the shell. + + By default this calls :meth:`get_completion_args`, gets the + completions, then calls :meth:`format_completion` for each + completion. + """ + args, incomplete = self.get_completion_args() + completions = self.get_completions(args, incomplete) + out = [self.format_completion(item) for item in completions] + return "\n".join(out) + + +class BashComplete(ShellComplete): + """Shell completion for Bash.""" + + name = "bash" + source_template = _SOURCE_BASH + + def _check_version(self) -> None: + import subprocess + + output = subprocess.run( + ["bash", "-c", "echo ${BASH_VERSION}"], stdout=subprocess.PIPE + ) + match = re.search(r"^(\d+)\.(\d+)\.\d+", output.stdout.decode()) + + if match is not None: + major, minor = match.groups() + + if major < "4" or major == "4" and minor < "4": + raise RuntimeError( + _( + "Shell completion is not supported for Bash" + " versions older than 4.4." + ) + ) + else: + raise RuntimeError( + _("Couldn't detect Bash version, shell completion is not supported.") + ) + + def source(self) -> str: + self._check_version() + return super().source() + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + return f"{item.type},{item.value}" + + +class ZshComplete(ShellComplete): + """Shell completion for Zsh.""" + + name = "zsh" + source_template = _SOURCE_ZSH + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + return f"{item.type}\n{item.value}\n{item.help if item.help else '_'}" + + +class FishComplete(ShellComplete): + """Shell completion for Fish.""" + + name = "fish" + source_template = _SOURCE_FISH + + def get_completion_args(self) -> t.Tuple[t.List[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + incomplete = os.environ["COMP_CWORD"] + args = cwords[1:] + + # Fish stores the partial word in both COMP_WORDS and + # COMP_CWORD, remove it from complete args. + if incomplete and args and args[-1] == incomplete: + args.pop() + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + if item.help: + return f"{item.type},{item.value}\t{item.help}" + + return f"{item.type},{item.value}" + + +_available_shells: t.Dict[str, t.Type[ShellComplete]] = { + "bash": BashComplete, + "fish": FishComplete, + "zsh": ZshComplete, +} + + +def add_completion_class( + cls: t.Type[ShellComplete], name: t.Optional[str] = None +) -> None: + """Register a :class:`ShellComplete` subclass under the given name. + The name will be provided by the completion instruction environment + variable during completion. + + :param cls: The completion class that will handle completion for the + shell. + :param name: Name to register the class under. Defaults to the + class's ``name`` attribute. + """ + if name is None: + name = cls.name + + _available_shells[name] = cls + + +def get_completion_class(shell: str) -> t.Optional[t.Type[ShellComplete]]: + """Look up a registered :class:`ShellComplete` subclass by the name + provided by the completion instruction environment variable. If the + name isn't registered, returns ``None``. + + :param shell: Name the class is registered under. + """ + return _available_shells.get(shell) + + +def _is_incomplete_argument(ctx: Context, param: Parameter) -> bool: + """Determine if the given parameter is an argument that can still + accept values. + + :param ctx: Invocation context for the command represented by the + parsed complete args. + :param param: Argument object being checked. + """ + if not isinstance(param, Argument): + return False + + assert param.name is not None + value = ctx.params[param.name] + return ( + param.nargs == -1 + or ctx.get_parameter_source(param.name) is not ParameterSource.COMMANDLINE + or ( + param.nargs > 1 + and isinstance(value, (tuple, list)) + and len(value) < param.nargs + ) + ) + + +def _start_of_option(value: str) -> bool: + """Check if the value looks like the start of an option.""" + if not value: + return False + + c = value[0] + # Allow "/" since that starts a path. + return not c.isalnum() and c != "/" + + +def _is_incomplete_option(args: t.List[str], param: Parameter) -> bool: + """Determine if the given parameter is an option that needs a value. + + :param args: List of complete args before the incomplete value. + :param param: Option object being checked. + """ + if not isinstance(param, Option): + return False + + if param.is_flag: + return False + + last_option = None + + for index, arg in enumerate(reversed(args)): + if index + 1 > param.nargs: + break + + if _start_of_option(arg): + last_option = arg + + return last_option is not None and last_option in param.opts + + +def _resolve_context( + cli: BaseCommand, ctx_args: t.Dict[str, t.Any], prog_name: str, args: t.List[str] +) -> Context: + """Produce the context hierarchy starting with the command and + traversing the complete arguments. This only follows the commands, + it doesn't trigger input prompts or callbacks. + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param args: List of complete args before the incomplete value. + """ + ctx_args["resilient_parsing"] = True + ctx = cli.make_context(prog_name, args.copy(), **ctx_args) + args = ctx.protected_args + ctx.args + + while args: + command = ctx.command + + if isinstance(command, MultiCommand): + if not command.chain: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + ctx = cmd.make_context(name, args, parent=ctx, resilient_parsing=True) + args = ctx.protected_args + ctx.args + else: + while args: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + sub_ctx = cmd.make_context( + name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + resilient_parsing=True, + ) + args = sub_ctx.args + + ctx = sub_ctx + args = [*sub_ctx.protected_args, *sub_ctx.args] + else: + break + + return ctx + + +def _resolve_incomplete( + ctx: Context, args: t.List[str], incomplete: str +) -> t.Tuple[t.Union[BaseCommand, Parameter], str]: + """Find the Click object that will handle the completion of the + incomplete value. Return the object and the incomplete value. + + :param ctx: Invocation context for the command represented by + the parsed complete args. + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + # Different shells treat an "=" between a long option name and + # value differently. Might keep the value joined, return the "=" + # as a separate item, or return the split name and value. Always + # split and discard the "=" to make completion easier. + if incomplete == "=": + incomplete = "" + elif "=" in incomplete and _start_of_option(incomplete): + name, _, incomplete = incomplete.partition("=") + args.append(name) + + # The "--" marker tells Click to stop treating values as options + # even if they start with the option character. If it hasn't been + # given and the incomplete arg looks like an option, the current + # command will provide option name completions. + if "--" not in args and _start_of_option(incomplete): + return ctx.command, incomplete + + params = ctx.command.get_params(ctx) + + # If the last complete arg is an option name with an incomplete + # value, the option will provide value completions. + for param in params: + if _is_incomplete_option(args, param): + return param, incomplete + + # It's not an option name or value. The first argument without a + # parsed value will provide value completions. + for param in params: + if _is_incomplete_argument(ctx, param): + return param, incomplete + + # There were no unparsed arguments, the command may be a group that + # will provide command name completions. + return ctx.command, incomplete diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/termui.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/termui.py new file mode 100644 index 0000000..cf8d5f1 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/termui.py @@ -0,0 +1,809 @@ +import inspect +import io +import itertools +import os +import sys +import typing +import typing as t +from gettext import gettext as _ + +from ._compat import isatty +from ._compat import strip_ansi +from ._compat import WIN +from .exceptions import Abort +from .exceptions import UsageError +from .globals import resolve_color_default +from .types import Choice +from .types import convert_type +from .types import ParamType +from .utils import echo +from .utils import LazyFile + +if t.TYPE_CHECKING: + from ._termui_impl import ProgressBar + +V = t.TypeVar("V") + +# The prompt functions to use. The doc tools currently override these +# functions to customize how they work. +visible_prompt_func: t.Callable[[str], str] = input + +_ansi_colors = { + "black": 30, + "red": 31, + "green": 32, + "yellow": 33, + "blue": 34, + "magenta": 35, + "cyan": 36, + "white": 37, + "reset": 39, + "bright_black": 90, + "bright_red": 91, + "bright_green": 92, + "bright_yellow": 93, + "bright_blue": 94, + "bright_magenta": 95, + "bright_cyan": 96, + "bright_white": 97, +} +_ansi_reset_all = "\033[0m" + + +def hidden_prompt_func(prompt: str) -> str: + import getpass + + return getpass.getpass(prompt) + + +def _build_prompt( + text: str, + suffix: str, + show_default: bool = False, + default: t.Optional[t.Any] = None, + show_choices: bool = True, + type: t.Optional[ParamType] = None, +) -> str: + prompt = text + if type is not None and show_choices and isinstance(type, Choice): + prompt += f" ({', '.join(map(str, type.choices))})" + if default is not None and show_default: + prompt = f"{prompt} [{_format_default(default)}]" + return f"{prompt}{suffix}" + + +def _format_default(default: t.Any) -> t.Any: + if isinstance(default, (io.IOBase, LazyFile)) and hasattr(default, "name"): + return default.name # type: ignore + + return default + + +def prompt( + text: str, + default: t.Optional[t.Any] = None, + hide_input: bool = False, + confirmation_prompt: t.Union[bool, str] = False, + type: t.Optional[t.Union[ParamType, t.Any]] = None, + value_proc: t.Optional[t.Callable[[str], t.Any]] = None, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, + show_choices: bool = True, +) -> t.Any: + """Prompts a user for input. This is a convenience function that can + be used to prompt a user for input later. + + If the user aborts the input by sending a interrupt signal, this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the text to show for the prompt. + :param default: the default value to use if no input happens. If this + is not given it will prompt until it's aborted. + :param hide_input: if this is set to true then the input value will + be hidden. + :param confirmation_prompt: Prompt a second time to confirm the + value. Can be set to a string instead of ``True`` to customize + the message. + :param type: the type to use to check the value against. + :param value_proc: if this parameter is provided it's a function that + is invoked instead of the type conversion to + convert a value. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + :param show_choices: Show or hide choices if the passed type is a Choice. + For example if type is a Choice of either day or week, + show_choices is true and text is "Group by" then the + prompt will be "Group by (day, week): ". + + .. versionadded:: 8.0 + ``confirmation_prompt`` can be a custom string. + + .. versionadded:: 7.0 + Added the ``show_choices`` parameter. + + .. versionadded:: 6.0 + Added unicode support for cmd.exe on Windows. + + .. versionadded:: 4.0 + Added the `err` parameter. + + """ + + def prompt_func(text: str) -> str: + f = hidden_prompt_func if hide_input else visible_prompt_func + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(text.rstrip(" "), nl=False, err=err) + # Echo a space to stdout to work around an issue where + # readline causes backspace to clear the whole line. + return f(" ") + except (KeyboardInterrupt, EOFError): + # getpass doesn't print a newline if the user aborts input with ^C. + # Allegedly this behavior is inherited from getpass(3). + # A doc bug has been filed at https://bugs.python.org/issue24711 + if hide_input: + echo(None, err=err) + raise Abort() from None + + if value_proc is None: + value_proc = convert_type(type, default) + + prompt = _build_prompt( + text, prompt_suffix, show_default, default, show_choices, type + ) + + if confirmation_prompt: + if confirmation_prompt is True: + confirmation_prompt = _("Repeat for confirmation") + + confirmation_prompt = t.cast(str, confirmation_prompt) + confirmation_prompt = _build_prompt(confirmation_prompt, prompt_suffix) + + while True: + while True: + value = prompt_func(prompt) + if value: + break + elif default is not None: + value = default + break + try: + result = value_proc(value) + except UsageError as e: + if hide_input: + echo(_("Error: The value you entered was invalid."), err=err) + else: + echo(_("Error: {e.message}").format(e=e), err=err) # noqa: B306 + continue + if not confirmation_prompt: + return result + while True: + confirmation_prompt = t.cast(str, confirmation_prompt) + value2 = prompt_func(confirmation_prompt) + if value2: + break + if value == value2: + return result + echo(_("Error: The two entered values do not match."), err=err) + + +def confirm( + text: str, + default: t.Optional[bool] = False, + abort: bool = False, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, +) -> bool: + """Prompts for confirmation (yes/no question). + + If the user aborts the input by sending a interrupt signal this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the question to ask. + :param default: The default value to use when no input is given. If + ``None``, repeat until input is given. + :param abort: if this is set to `True` a negative answer aborts the + exception by raising :exc:`Abort`. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + + .. versionchanged:: 8.0 + Repeat until input is given if ``default`` is ``None``. + + .. versionadded:: 4.0 + Added the ``err`` parameter. + """ + prompt = _build_prompt( + text, + prompt_suffix, + show_default, + "y/n" if default is None else ("Y/n" if default else "y/N"), + ) + + while True: + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(prompt.rstrip(" "), nl=False, err=err) + # Echo a space to stdout to work around an issue where + # readline causes backspace to clear the whole line. + value = visible_prompt_func(" ").lower().strip() + except (KeyboardInterrupt, EOFError): + raise Abort() from None + if value in ("y", "yes"): + rv = True + elif value in ("n", "no"): + rv = False + elif default is not None and value == "": + rv = default + else: + echo(_("Error: invalid input"), err=err) + continue + break + if abort and not rv: + raise Abort() + return rv + + +def get_terminal_size() -> os.terminal_size: + """Returns the current size of the terminal as tuple in the form + ``(width, height)`` in columns and rows. + + .. deprecated:: 8.0 + Will be removed in Click 8.1. Use + :func:`shutil.get_terminal_size` instead. + """ + import shutil + import warnings + + warnings.warn( + "'click.get_terminal_size()' is deprecated and will be removed" + " in Click 8.1. Use 'shutil.get_terminal_size()' instead.", + DeprecationWarning, + stacklevel=2, + ) + return shutil.get_terminal_size() + + +def echo_via_pager( + text_or_generator: t.Union[t.Iterable[str], t.Callable[[], t.Iterable[str]], str], + color: t.Optional[bool] = None, +) -> None: + """This function takes a text and shows it via an environment specific + pager on stdout. + + .. versionchanged:: 3.0 + Added the `color` flag. + + :param text_or_generator: the text to page, or alternatively, a + generator emitting the text to page. + :param color: controls if the pager supports ANSI colors or not. The + default is autodetection. + """ + color = resolve_color_default(color) + + if inspect.isgeneratorfunction(text_or_generator): + i = t.cast(t.Callable[[], t.Iterable[str]], text_or_generator)() + elif isinstance(text_or_generator, str): + i = [text_or_generator] + else: + i = iter(t.cast(t.Iterable[str], text_or_generator)) + + # convert every element of i to a text type if necessary + text_generator = (el if isinstance(el, str) else str(el) for el in i) + + from ._termui_impl import pager + + return pager(itertools.chain(text_generator, "\n"), color) + + +def progressbar( + iterable: t.Optional[t.Iterable[V]] = None, + length: t.Optional[int] = None, + label: t.Optional[str] = None, + show_eta: bool = True, + show_percent: t.Optional[bool] = None, + show_pos: bool = False, + item_show_func: t.Optional[t.Callable[[t.Optional[V]], t.Optional[str]]] = None, + fill_char: str = "#", + empty_char: str = "-", + bar_template: str = "%(label)s [%(bar)s] %(info)s", + info_sep: str = " ", + width: int = 36, + file: t.Optional[t.TextIO] = None, + color: t.Optional[bool] = None, + update_min_steps: int = 1, +) -> "ProgressBar[V]": + """This function creates an iterable context manager that can be used + to iterate over something while showing a progress bar. It will + either iterate over the `iterable` or `length` items (that are counted + up). While iteration happens, this function will print a rendered + progress bar to the given `file` (defaults to stdout) and will attempt + to calculate remaining time and more. By default, this progress bar + will not be rendered if the file is not a terminal. + + The context manager creates the progress bar. When the context + manager is entered the progress bar is already created. With every + iteration over the progress bar, the iterable passed to the bar is + advanced and the bar is updated. When the context manager exits, + a newline is printed and the progress bar is finalized on screen. + + Note: The progress bar is currently designed for use cases where the + total progress can be expected to take at least several seconds. + Because of this, the ProgressBar class object won't display + progress that is considered too fast, and progress where the time + between steps is less than a second. + + No printing must happen or the progress bar will be unintentionally + destroyed. + + Example usage:: + + with progressbar(items) as bar: + for item in bar: + do_something_with(item) + + Alternatively, if no iterable is specified, one can manually update the + progress bar through the `update()` method instead of directly + iterating over the progress bar. The update method accepts the number + of steps to increment the bar with:: + + with progressbar(length=chunks.total_bytes) as bar: + for chunk in chunks: + process_chunk(chunk) + bar.update(chunks.bytes) + + The ``update()`` method also takes an optional value specifying the + ``current_item`` at the new position. This is useful when used + together with ``item_show_func`` to customize the output for each + manual step:: + + with click.progressbar( + length=total_size, + label='Unzipping archive', + item_show_func=lambda a: a.filename + ) as bar: + for archive in zip_file: + archive.extract() + bar.update(archive.size, archive) + + :param iterable: an iterable to iterate over. If not provided the length + is required. + :param length: the number of items to iterate over. By default the + progressbar will attempt to ask the iterator about its + length, which might or might not work. If an iterable is + also provided this parameter can be used to override the + length. If an iterable is not provided the progress bar + will iterate over a range of that length. + :param label: the label to show next to the progress bar. + :param show_eta: enables or disables the estimated time display. This is + automatically disabled if the length cannot be + determined. + :param show_percent: enables or disables the percentage display. The + default is `True` if the iterable has a length or + `False` if not. + :param show_pos: enables or disables the absolute position display. The + default is `False`. + :param item_show_func: A function called with the current item which + can return a string to show next to the progress bar. If the + function returns ``None`` nothing is shown. The current item can + be ``None``, such as when entering and exiting the bar. + :param fill_char: the character to use to show the filled part of the + progress bar. + :param empty_char: the character to use to show the non-filled part of + the progress bar. + :param bar_template: the format string to use as template for the bar. + The parameters in it are ``label`` for the label, + ``bar`` for the progress bar and ``info`` for the + info section. + :param info_sep: the separator between multiple info items (eta etc.) + :param width: the width of the progress bar in characters, 0 means full + terminal width + :param file: The file to write to. If this is not a terminal then + only the label is printed. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are included anywhere in the progress bar output + which is not the case by default. + :param update_min_steps: Render only when this many updates have + completed. This allows tuning for very fast iterators. + + .. versionchanged:: 8.0 + Output is shown even if execution time is less than 0.5 seconds. + + .. versionchanged:: 8.0 + ``item_show_func`` shows the current item, not the previous one. + + .. versionchanged:: 8.0 + Labels are echoed if the output is not a TTY. Reverts a change + in 7.0 that removed all output. + + .. versionadded:: 8.0 + Added the ``update_min_steps`` parameter. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. Added the ``update`` method to + the object. + + .. versionadded:: 2.0 + """ + from ._termui_impl import ProgressBar + + color = resolve_color_default(color) + return ProgressBar( + iterable=iterable, + length=length, + show_eta=show_eta, + show_percent=show_percent, + show_pos=show_pos, + item_show_func=item_show_func, + fill_char=fill_char, + empty_char=empty_char, + bar_template=bar_template, + info_sep=info_sep, + file=file, + label=label, + width=width, + color=color, + update_min_steps=update_min_steps, + ) + + +def clear() -> None: + """Clears the terminal screen. This will have the effect of clearing + the whole visible space of the terminal and moving the cursor to the + top left. This does not do anything if not connected to a terminal. + + .. versionadded:: 2.0 + """ + if not isatty(sys.stdout): + return + if WIN: + os.system("cls") + else: + sys.stdout.write("\033[2J\033[1;1H") + + +def _interpret_color( + color: t.Union[int, t.Tuple[int, int, int], str], offset: int = 0 +) -> str: + if isinstance(color, int): + return f"{38 + offset};5;{color:d}" + + if isinstance(color, (tuple, list)): + r, g, b = color + return f"{38 + offset};2;{r:d};{g:d};{b:d}" + + return str(_ansi_colors[color] + offset) + + +def style( + text: t.Any, + fg: t.Optional[t.Union[int, t.Tuple[int, int, int], str]] = None, + bg: t.Optional[t.Union[int, t.Tuple[int, int, int], str]] = None, + bold: t.Optional[bool] = None, + dim: t.Optional[bool] = None, + underline: t.Optional[bool] = None, + overline: t.Optional[bool] = None, + italic: t.Optional[bool] = None, + blink: t.Optional[bool] = None, + reverse: t.Optional[bool] = None, + strikethrough: t.Optional[bool] = None, + reset: bool = True, +) -> str: + """Styles a text with ANSI styles and returns the new string. By + default the styling is self contained which means that at the end + of the string a reset code is issued. This can be prevented by + passing ``reset=False``. + + Examples:: + + click.echo(click.style('Hello World!', fg='green')) + click.echo(click.style('ATTENTION!', blink=True)) + click.echo(click.style('Some things', reverse=True, fg='cyan')) + click.echo(click.style('More colors', fg=(255, 12, 128), bg=117)) + + Supported color names: + + * ``black`` (might be a gray) + * ``red`` + * ``green`` + * ``yellow`` (might be an orange) + * ``blue`` + * ``magenta`` + * ``cyan`` + * ``white`` (might be light gray) + * ``bright_black`` + * ``bright_red`` + * ``bright_green`` + * ``bright_yellow`` + * ``bright_blue`` + * ``bright_magenta`` + * ``bright_cyan`` + * ``bright_white`` + * ``reset`` (reset the color code only) + + If the terminal supports it, color may also be specified as: + + - An integer in the interval [0, 255]. The terminal must support + 8-bit/256-color mode. + - An RGB tuple of three integers in [0, 255]. The terminal must + support 24-bit/true-color mode. + + See https://en.wikipedia.org/wiki/ANSI_color and + https://gist.github.com/XVilka/8346728 for more information. + + :param text: the string to style with ansi codes. + :param fg: if provided this will become the foreground color. + :param bg: if provided this will become the background color. + :param bold: if provided this will enable or disable bold mode. + :param dim: if provided this will enable or disable dim mode. This is + badly supported. + :param underline: if provided this will enable or disable underline. + :param overline: if provided this will enable or disable overline. + :param italic: if provided this will enable or disable italic. + :param blink: if provided this will enable or disable blinking. + :param reverse: if provided this will enable or disable inverse + rendering (foreground becomes background and the + other way round). + :param strikethrough: if provided this will enable or disable + striking through text. + :param reset: by default a reset-all code is added at the end of the + string which means that styles do not carry over. This + can be disabled to compose styles. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. + + .. versionchanged:: 8.0 + Added support for 256 and RGB color codes. + + .. versionchanged:: 8.0 + Added the ``strikethrough``, ``italic``, and ``overline`` + parameters. + + .. versionchanged:: 7.0 + Added support for bright colors. + + .. versionadded:: 2.0 + """ + if not isinstance(text, str): + text = str(text) + + bits = [] + + if fg: + try: + bits.append(f"\033[{_interpret_color(fg)}m") + except KeyError: + raise TypeError(f"Unknown color {fg!r}") from None + + if bg: + try: + bits.append(f"\033[{_interpret_color(bg, 10)}m") + except KeyError: + raise TypeError(f"Unknown color {bg!r}") from None + + if bold is not None: + bits.append(f"\033[{1 if bold else 22}m") + if dim is not None: + bits.append(f"\033[{2 if dim else 22}m") + if underline is not None: + bits.append(f"\033[{4 if underline else 24}m") + if overline is not None: + bits.append(f"\033[{53 if overline else 55}m") + if italic is not None: + bits.append(f"\033[{3 if italic else 23}m") + if blink is not None: + bits.append(f"\033[{5 if blink else 25}m") + if reverse is not None: + bits.append(f"\033[{7 if reverse else 27}m") + if strikethrough is not None: + bits.append(f"\033[{9 if strikethrough else 29}m") + bits.append(text) + if reset: + bits.append(_ansi_reset_all) + return "".join(bits) + + +def unstyle(text: str) -> str: + """Removes ANSI styling information from a string. Usually it's not + necessary to use this function as Click's echo function will + automatically remove styling if necessary. + + .. versionadded:: 2.0 + + :param text: the text to remove style information from. + """ + return strip_ansi(text) + + +def secho( + message: t.Optional[t.Any] = None, + file: t.Optional[t.IO] = None, + nl: bool = True, + err: bool = False, + color: t.Optional[bool] = None, + **styles: t.Any, +) -> None: + """This function combines :func:`echo` and :func:`style` into one + call. As such the following two calls are the same:: + + click.secho('Hello World!', fg='green') + click.echo(click.style('Hello World!', fg='green')) + + All keyword arguments are forwarded to the underlying functions + depending on which one they go with. + + Non-string types will be converted to :class:`str`. However, + :class:`bytes` are passed directly to :meth:`echo` without applying + style. If you want to style bytes that represent text, call + :meth:`bytes.decode` first. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. Bytes are + passed through without style applied. + + .. versionadded:: 2.0 + """ + if message is not None and not isinstance(message, (bytes, bytearray)): + message = style(message, **styles) + + return echo(message, file=file, nl=nl, err=err, color=color) + + +def edit( + text: t.Optional[t.AnyStr] = None, + editor: t.Optional[str] = None, + env: t.Optional[t.Mapping[str, str]] = None, + require_save: bool = True, + extension: str = ".txt", + filename: t.Optional[str] = None, +) -> t.Optional[t.AnyStr]: + r"""Edits the given text in the defined editor. If an editor is given + (should be the full path to the executable but the regular operating + system search path is used for finding the executable) it overrides + the detected editor. Optionally, some environment variables can be + used. If the editor is closed without changes, `None` is returned. In + case a file is edited directly the return value is always `None` and + `require_save` and `extension` are ignored. + + If the editor cannot be opened a :exc:`UsageError` is raised. + + Note for Windows: to simplify cross-platform usage, the newlines are + automatically converted from POSIX to Windows and vice versa. As such, + the message here will have ``\n`` as newline markers. + + :param text: the text to edit. + :param editor: optionally the editor to use. Defaults to automatic + detection. + :param env: environment variables to forward to the editor. + :param require_save: if this is true, then not saving in the editor + will make the return value become `None`. + :param extension: the extension to tell the editor about. This defaults + to `.txt` but changing this might change syntax + highlighting. + :param filename: if provided it will edit this file instead of the + provided text contents. It will not use a temporary + file as an indirection in that case. + """ + from ._termui_impl import Editor + + ed = Editor(editor=editor, env=env, require_save=require_save, extension=extension) + + if filename is None: + return ed.edit(text) + + ed.edit_file(filename) + return None + + +def launch(url: str, wait: bool = False, locate: bool = False) -> int: + """This function launches the given URL (or filename) in the default + viewer application for this file type. If this is an executable, it + might launch the executable in a new session. The return value is + the exit code of the launched application. Usually, ``0`` indicates + success. + + Examples:: + + click.launch('https://click.palletsprojects.com/') + click.launch('/my/downloaded/file', locate=True) + + .. versionadded:: 2.0 + + :param url: URL or filename of the thing to launch. + :param wait: Wait for the program to exit before returning. This + only works if the launched program blocks. In particular, + ``xdg-open`` on Linux does not block. + :param locate: if this is set to `True` then instead of launching the + application associated with the URL it will attempt to + launch a file manager with the file located. This + might have weird effects if the URL does not point to + the filesystem. + """ + from ._termui_impl import open_url + + return open_url(url, wait=wait, locate=locate) + + +# If this is provided, getchar() calls into this instead. This is used +# for unittesting purposes. +_getchar: t.Optional[t.Callable[[bool], str]] = None + + +def getchar(echo: bool = False) -> str: + """Fetches a single character from the terminal and returns it. This + will always return a unicode character and under certain rare + circumstances this might return more than one character. The + situations which more than one character is returned is when for + whatever reason multiple characters end up in the terminal buffer or + standard input was not actually a terminal. + + Note that this will always read from the terminal, even if something + is piped into the standard input. + + Note for Windows: in rare cases when typing non-ASCII characters, this + function might wait for a second character and then return both at once. + This is because certain Unicode characters look like special-key markers. + + .. versionadded:: 2.0 + + :param echo: if set to `True`, the character read will also show up on + the terminal. The default is to not show it. + """ + global _getchar + + if _getchar is None: + from ._termui_impl import getchar as f + + _getchar = f + + return _getchar(echo) + + +def raw_terminal() -> t.ContextManager[int]: + from ._termui_impl import raw_terminal as f + + return f() + + +def pause(info: t.Optional[str] = None, err: bool = False) -> None: + """This command stops execution and waits for the user to press any + key to continue. This is similar to the Windows batch "pause" + command. If the program is not run through a terminal, this command + will instead do nothing. + + .. versionadded:: 2.0 + + .. versionadded:: 4.0 + Added the `err` parameter. + + :param info: The message to print before pausing. Defaults to + ``"Press any key to continue..."``. + :param err: if set to message goes to ``stderr`` instead of + ``stdout``, the same as with echo. + """ + if not isatty(sys.stdin) or not isatty(sys.stdout): + return + + if info is None: + info = _("Press any key to continue...") + + try: + if info: + echo(info, nl=False, err=err) + try: + getchar() + except (KeyboardInterrupt, EOFError): + pass + finally: + if info: + echo(err=err) diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/testing.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/testing.py new file mode 100644 index 0000000..d19b850 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/testing.py @@ -0,0 +1,479 @@ +import contextlib +import io +import os +import shlex +import shutil +import sys +import tempfile +import typing as t +from types import TracebackType + +from . import formatting +from . import termui +from . import utils +from ._compat import _find_binary_reader + +if t.TYPE_CHECKING: + from .core import BaseCommand + + +class EchoingStdin: + def __init__(self, input: t.BinaryIO, output: t.BinaryIO) -> None: + self._input = input + self._output = output + self._paused = False + + def __getattr__(self, x: str) -> t.Any: + return getattr(self._input, x) + + def _echo(self, rv: bytes) -> bytes: + if not self._paused: + self._output.write(rv) + + return rv + + def read(self, n: int = -1) -> bytes: + return self._echo(self._input.read(n)) + + def read1(self, n: int = -1) -> bytes: + return self._echo(self._input.read1(n)) # type: ignore + + def readline(self, n: int = -1) -> bytes: + return self._echo(self._input.readline(n)) + + def readlines(self) -> t.List[bytes]: + return [self._echo(x) for x in self._input.readlines()] + + def __iter__(self) -> t.Iterator[bytes]: + return iter(self._echo(x) for x in self._input) + + def __repr__(self) -> str: + return repr(self._input) + + +@contextlib.contextmanager +def _pause_echo(stream: t.Optional[EchoingStdin]) -> t.Iterator[None]: + if stream is None: + yield + else: + stream._paused = True + yield + stream._paused = False + + +class _NamedTextIOWrapper(io.TextIOWrapper): + def __init__( + self, buffer: t.BinaryIO, name: str, mode: str, **kwargs: t.Any + ) -> None: + super().__init__(buffer, **kwargs) + self._name = name + self._mode = mode + + @property + def name(self) -> str: + return self._name + + @property + def mode(self) -> str: + return self._mode + + +def make_input_stream( + input: t.Optional[t.Union[str, bytes, t.IO]], charset: str +) -> t.BinaryIO: + # Is already an input stream. + if hasattr(input, "read"): + rv = _find_binary_reader(t.cast(t.IO, input)) + + if rv is not None: + return rv + + raise TypeError("Could not find binary reader for input stream.") + + if input is None: + input = b"" + elif isinstance(input, str): + input = input.encode(charset) + + return io.BytesIO(t.cast(bytes, input)) + + +class Result: + """Holds the captured result of an invoked CLI script.""" + + def __init__( + self, + runner: "CliRunner", + stdout_bytes: bytes, + stderr_bytes: t.Optional[bytes], + return_value: t.Any, + exit_code: int, + exception: t.Optional[BaseException], + exc_info: t.Optional[ + t.Tuple[t.Type[BaseException], BaseException, TracebackType] + ] = None, + ): + #: The runner that created the result + self.runner = runner + #: The standard output as bytes. + self.stdout_bytes = stdout_bytes + #: The standard error as bytes, or None if not available + self.stderr_bytes = stderr_bytes + #: The value returned from the invoked command. + #: + #: .. versionadded:: 8.0 + self.return_value = return_value + #: The exit code as integer. + self.exit_code = exit_code + #: The exception that happened if one did. + self.exception = exception + #: The traceback + self.exc_info = exc_info + + @property + def output(self) -> str: + """The (standard) output as unicode string.""" + return self.stdout + + @property + def stdout(self) -> str: + """The standard output as unicode string.""" + return self.stdout_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + @property + def stderr(self) -> str: + """The standard error as unicode string.""" + if self.stderr_bytes is None: + raise ValueError("stderr not separately captured") + return self.stderr_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + def __repr__(self) -> str: + exc_str = repr(self.exception) if self.exception else "okay" + return f"<{type(self).__name__} {exc_str}>" + + +class CliRunner: + """The CLI runner provides functionality to invoke a Click command line + script for unittesting purposes in a isolated environment. This only + works in single-threaded systems without any concurrency as it changes the + global interpreter state. + + :param charset: the character set for the input and output data. + :param env: a dictionary with environment variables for overriding. + :param echo_stdin: if this is set to `True`, then reading from stdin writes + to stdout. This is useful for showing examples in + some circumstances. Note that regular prompts + will automatically echo the input. + :param mix_stderr: if this is set to `False`, then stdout and stderr are + preserved as independent streams. This is useful for + Unix-philosophy apps that have predictable stdout and + noisy stderr, such that each may be measured + independently + """ + + def __init__( + self, + charset: str = "utf-8", + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + echo_stdin: bool = False, + mix_stderr: bool = True, + ) -> None: + self.charset = charset + self.env = env or {} + self.echo_stdin = echo_stdin + self.mix_stderr = mix_stderr + + def get_default_prog_name(self, cli: "BaseCommand") -> str: + """Given a command object it will return the default program name + for it. The default is the `name` attribute or ``"root"`` if not + set. + """ + return cli.name or "root" + + def make_env( + self, overrides: t.Optional[t.Mapping[str, t.Optional[str]]] = None + ) -> t.Mapping[str, t.Optional[str]]: + """Returns the environment overrides for invoking a script.""" + rv = dict(self.env) + if overrides: + rv.update(overrides) + return rv + + @contextlib.contextmanager + def isolation( + self, + input: t.Optional[t.Union[str, bytes, t.IO]] = None, + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + color: bool = False, + ) -> t.Iterator[t.Tuple[io.BytesIO, t.Optional[io.BytesIO]]]: + """A context manager that sets up the isolation for invoking of a + command line tool. This sets up stdin with the given input data + and `os.environ` with the overrides from the given dictionary. + This also rebinds some internals in Click to be mocked (like the + prompt functionality). + + This is automatically done in the :meth:`invoke` method. + + :param input: the input stream to put into sys.stdin. + :param env: the environment overrides as dictionary. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionchanged:: 8.0 + ``stderr`` is opened with ``errors="backslashreplace"`` + instead of the default ``"strict"``. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + """ + bytes_input = make_input_stream(input, self.charset) + echo_input = None + + old_stdin = sys.stdin + old_stdout = sys.stdout + old_stderr = sys.stderr + old_forced_width = formatting.FORCED_WIDTH + formatting.FORCED_WIDTH = 80 + + env = self.make_env(env) + + bytes_output = io.BytesIO() + + if self.echo_stdin: + bytes_input = echo_input = t.cast( + t.BinaryIO, EchoingStdin(bytes_input, bytes_output) + ) + + sys.stdin = text_input = _NamedTextIOWrapper( + bytes_input, encoding=self.charset, name="", mode="r" + ) + + if self.echo_stdin: + # Force unbuffered reads, otherwise TextIOWrapper reads a + # large chunk which is echoed early. + text_input._CHUNK_SIZE = 1 # type: ignore + + sys.stdout = _NamedTextIOWrapper( + bytes_output, encoding=self.charset, name="", mode="w" + ) + + bytes_error = None + if self.mix_stderr: + sys.stderr = sys.stdout + else: + bytes_error = io.BytesIO() + sys.stderr = _NamedTextIOWrapper( + bytes_error, + encoding=self.charset, + name="", + mode="w", + errors="backslashreplace", + ) + + @_pause_echo(echo_input) # type: ignore + def visible_input(prompt: t.Optional[str] = None) -> str: + sys.stdout.write(prompt or "") + val = text_input.readline().rstrip("\r\n") + sys.stdout.write(f"{val}\n") + sys.stdout.flush() + return val + + @_pause_echo(echo_input) # type: ignore + def hidden_input(prompt: t.Optional[str] = None) -> str: + sys.stdout.write(f"{prompt or ''}\n") + sys.stdout.flush() + return text_input.readline().rstrip("\r\n") + + @_pause_echo(echo_input) # type: ignore + def _getchar(echo: bool) -> str: + char = sys.stdin.read(1) + + if echo: + sys.stdout.write(char) + + sys.stdout.flush() + return char + + default_color = color + + def should_strip_ansi( + stream: t.Optional[t.IO] = None, color: t.Optional[bool] = None + ) -> bool: + if color is None: + return not default_color + return not color + + old_visible_prompt_func = termui.visible_prompt_func + old_hidden_prompt_func = termui.hidden_prompt_func + old__getchar_func = termui._getchar + old_should_strip_ansi = utils.should_strip_ansi # type: ignore + termui.visible_prompt_func = visible_input + termui.hidden_prompt_func = hidden_input + termui._getchar = _getchar + utils.should_strip_ansi = should_strip_ansi # type: ignore + + old_env = {} + try: + for key, value in env.items(): + old_env[key] = os.environ.get(key) + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + yield (bytes_output, bytes_error) + finally: + for key, value in old_env.items(): + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + sys.stdout = old_stdout + sys.stderr = old_stderr + sys.stdin = old_stdin + termui.visible_prompt_func = old_visible_prompt_func + termui.hidden_prompt_func = old_hidden_prompt_func + termui._getchar = old__getchar_func + utils.should_strip_ansi = old_should_strip_ansi # type: ignore + formatting.FORCED_WIDTH = old_forced_width + + def invoke( + self, + cli: "BaseCommand", + args: t.Optional[t.Union[str, t.Sequence[str]]] = None, + input: t.Optional[t.Union[str, bytes, t.IO]] = None, + env: t.Optional[t.Mapping[str, t.Optional[str]]] = None, + catch_exceptions: bool = True, + color: bool = False, + **extra: t.Any, + ) -> Result: + """Invokes a command in an isolated environment. The arguments are + forwarded directly to the command line script, the `extra` keyword + arguments are passed to the :meth:`~clickpkg.Command.main` function of + the command. + + This returns a :class:`Result` object. + + :param cli: the command to invoke + :param args: the arguments to invoke. It may be given as an iterable + or a string. When given as string it will be interpreted + as a Unix shell command. More details at + :func:`shlex.split`. + :param input: the input data for `sys.stdin`. + :param env: the environment overrides. + :param catch_exceptions: Whether to catch any other exceptions than + ``SystemExit``. + :param extra: the keyword arguments to pass to :meth:`main`. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionchanged:: 8.0 + The result object has the ``return_value`` attribute with + the value returned from the invoked command. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionchanged:: 3.0 + Added the ``catch_exceptions`` parameter. + + .. versionchanged:: 3.0 + The result object has the ``exc_info`` attribute with the + traceback if available. + """ + exc_info = None + with self.isolation(input=input, env=env, color=color) as outstreams: + return_value = None + exception: t.Optional[BaseException] = None + exit_code = 0 + + if isinstance(args, str): + args = shlex.split(args) + + try: + prog_name = extra.pop("prog_name") + except KeyError: + prog_name = self.get_default_prog_name(cli) + + try: + return_value = cli.main(args=args or (), prog_name=prog_name, **extra) + except SystemExit as e: + exc_info = sys.exc_info() + e_code = t.cast(t.Optional[t.Union[int, t.Any]], e.code) + + if e_code is None: + e_code = 0 + + if e_code != 0: + exception = e + + if not isinstance(e_code, int): + sys.stdout.write(str(e_code)) + sys.stdout.write("\n") + e_code = 1 + + exit_code = e_code + + except Exception as e: + if not catch_exceptions: + raise + exception = e + exit_code = 1 + exc_info = sys.exc_info() + finally: + sys.stdout.flush() + stdout = outstreams[0].getvalue() + if self.mix_stderr: + stderr = None + else: + stderr = outstreams[1].getvalue() # type: ignore + + return Result( + runner=self, + stdout_bytes=stdout, + stderr_bytes=stderr, + return_value=return_value, + exit_code=exit_code, + exception=exception, + exc_info=exc_info, # type: ignore + ) + + @contextlib.contextmanager + def isolated_filesystem( + self, temp_dir: t.Optional[t.Union[str, os.PathLike]] = None + ) -> t.Iterator[str]: + """A context manager that creates a temporary directory and + changes the current working directory to it. This isolates tests + that affect the contents of the CWD to prevent them from + interfering with each other. + + :param temp_dir: Create the temporary directory under this + directory. If given, the created directory is not removed + when exiting. + + .. versionchanged:: 8.0 + Added the ``temp_dir`` parameter. + """ + cwd = os.getcwd() + t = tempfile.mkdtemp(dir=temp_dir) + os.chdir(t) + + try: + yield t + finally: + os.chdir(cwd) + + if temp_dir is None: + try: + shutil.rmtree(t) + except OSError: # noqa: B014 + pass diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/types.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/types.py new file mode 100644 index 0000000..103d218 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/types.py @@ -0,0 +1,1052 @@ +import os +import stat +import typing as t +from datetime import datetime +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import _get_argv_encoding +from ._compat import get_filesystem_encoding +from ._compat import open_stream +from .exceptions import BadParameter +from .utils import LazyFile +from .utils import safecall + +if t.TYPE_CHECKING: + import typing_extensions as te + from .core import Context + from .core import Parameter + from .shell_completion import CompletionItem + + +class ParamType: + """Represents the type of a parameter. Validates and converts values + from the command line or Python into the correct type. + + To implement a custom type, subclass and implement at least the + following: + + - The :attr:`name` class attribute must be set. + - Calling an instance of the type with ``None`` must return + ``None``. This is already implemented by default. + - :meth:`convert` must convert string values to the correct type. + - :meth:`convert` must accept values that are already the correct + type. + - It must be able to convert a value if the ``ctx`` and ``param`` + arguments are ``None``. This can occur when converting prompt + input. + """ + + is_composite: t.ClassVar[bool] = False + arity: t.ClassVar[int] = 1 + + #: the descriptive name of this type + name: str + + #: if a list of this type is expected and the value is pulled from a + #: string environment variable, this is what splits it up. `None` + #: means any whitespace. For all parameters the general rule is that + #: whitespace splits them up. The exception are paths and files which + #: are split by ``os.path.pathsep`` by default (":" on Unix and ";" on + #: Windows). + envvar_list_splitter: t.ClassVar[t.Optional[str]] = None + + def to_info_dict(self) -> t.Dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionadded:: 8.0 + """ + # The class name without the "ParamType" suffix. + param_type = type(self).__name__.partition("ParamType")[0] + param_type = param_type.partition("ParameterType")[0] + return {"param_type": param_type, "name": self.name} + + def __call__( + self, + value: t.Any, + param: t.Optional["Parameter"] = None, + ctx: t.Optional["Context"] = None, + ) -> t.Any: + if value is not None: + return self.convert(value, param, ctx) + + def get_metavar(self, param: "Parameter") -> t.Optional[str]: + """Returns the metavar default for this param if it provides one.""" + + def get_missing_message(self, param: "Parameter") -> t.Optional[str]: + """Optionally might return extra information about a missing + parameter. + + .. versionadded:: 2.0 + """ + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + """Convert the value to the correct type. This is not called if + the value is ``None`` (the missing value). + + This must accept string values from the command line, as well as + values that are already the correct type. It may also convert + other compatible types. + + The ``param`` and ``ctx`` arguments may be ``None`` in certain + situations, such as when converting prompt input. + + If the value cannot be converted, call :meth:`fail` with a + descriptive message. + + :param value: The value to convert. + :param param: The parameter that is using this type to convert + its value. May be ``None``. + :param ctx: The current context that arrived at this value. May + be ``None``. + """ + return value + + def split_envvar_value(self, rv: str) -> t.Sequence[str]: + """Given a value from an environment variable this splits it up + into small chunks depending on the defined envvar list splitter. + + If the splitter is set to `None`, which means that whitespace splits, + then leading and trailing whitespace is ignored. Otherwise, leading + and trailing splitters usually lead to empty items being included. + """ + return (rv or "").split(self.envvar_list_splitter) + + def fail( + self, + message: str, + param: t.Optional["Parameter"] = None, + ctx: t.Optional["Context"] = None, + ) -> "t.NoReturn": + """Helper method to fail with an invalid value message.""" + raise BadParameter(message, ctx=ctx, param=param) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a list of + :class:`~click.shell_completion.CompletionItem` objects for the + incomplete value. Most types do not provide completions, but + some do, and this allows custom types to provide custom + completions as well. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + return [] + + +class CompositeParamType(ParamType): + is_composite = True + + @property + def arity(self) -> int: # type: ignore + raise NotImplementedError() + + +class FuncParamType(ParamType): + def __init__(self, func: t.Callable[[t.Any], t.Any]) -> None: + self.name = func.__name__ + self.func = func + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["func"] = self.func + return info_dict + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + try: + return self.func(value) + except ValueError: + try: + value = str(value) + except UnicodeError: + value = value.decode("utf-8", "replace") + + self.fail(value, param, ctx) + + +class UnprocessedParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + return value + + def __repr__(self) -> str: + return "UNPROCESSED" + + +class StringParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if isinstance(value, bytes): + enc = _get_argv_encoding() + try: + value = value.decode(enc) + except UnicodeError: + fs_enc = get_filesystem_encoding() + if fs_enc != enc: + try: + value = value.decode(fs_enc) + except UnicodeError: + value = value.decode("utf-8", "replace") + else: + value = value.decode("utf-8", "replace") + return value + return str(value) + + def __repr__(self) -> str: + return "STRING" + + +class Choice(ParamType): + """The choice type allows a value to be checked against a fixed set + of supported values. All of these values have to be strings. + + You should only pass a list or tuple of choices. Other iterables + (like generators) may lead to surprising results. + + The resulting value will always be one of the originally passed choices + regardless of ``case_sensitive`` or any ``ctx.token_normalize_func`` + being specified. + + See :ref:`choice-opts` for an example. + + :param case_sensitive: Set to false to make choices case + insensitive. Defaults to true. + """ + + name = "choice" + + def __init__(self, choices: t.Sequence[str], case_sensitive: bool = True) -> None: + self.choices = choices + self.case_sensitive = case_sensitive + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["choices"] = self.choices + info_dict["case_sensitive"] = self.case_sensitive + return info_dict + + def get_metavar(self, param: "Parameter") -> str: + choices_str = "|".join(self.choices) + + # Use curly braces to indicate a required argument. + if param.required and param.param_type_name == "argument": + return f"{{{choices_str}}}" + + # Use square braces to indicate an option or optional argument. + return f"[{choices_str}]" + + def get_missing_message(self, param: "Parameter") -> str: + return _("Choose from:\n\t{choices}").format(choices=",\n\t".join(self.choices)) + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + # Match through normalization and case sensitivity + # first do token_normalize_func, then lowercase + # preserve original `value` to produce an accurate message in + # `self.fail` + normed_value = value + normed_choices = {choice: choice for choice in self.choices} + + if ctx is not None and ctx.token_normalize_func is not None: + normed_value = ctx.token_normalize_func(value) + normed_choices = { + ctx.token_normalize_func(normed_choice): original + for normed_choice, original in normed_choices.items() + } + + if not self.case_sensitive: + normed_value = normed_value.casefold() + normed_choices = { + normed_choice.casefold(): original + for normed_choice, original in normed_choices.items() + } + + if normed_value in normed_choices: + return normed_choices[normed_value] + + choices_str = ", ".join(map(repr, self.choices)) + self.fail( + ngettext( + "{value!r} is not {choice}.", + "{value!r} is not one of {choices}.", + len(self.choices), + ).format(value=value, choice=choices_str, choices=choices_str), + param, + ctx, + ) + + def __repr__(self) -> str: + return f"Choice({list(self.choices)})" + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Complete choices that start with the incomplete value. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + str_choices = map(str, self.choices) + + if self.case_sensitive: + matched = (c for c in str_choices if c.startswith(incomplete)) + else: + incomplete = incomplete.lower() + matched = (c for c in str_choices if c.lower().startswith(incomplete)) + + return [CompletionItem(c) for c in matched] + + +class DateTime(ParamType): + """The DateTime type converts date strings into `datetime` objects. + + The format strings which are checked are configurable, but default to some + common (non-timezone aware) ISO 8601 formats. + + When specifying *DateTime* formats, you should only pass a list or a tuple. + Other iterables, like generators, may lead to surprising results. + + The format strings are processed using ``datetime.strptime``, and this + consequently defines the format strings which are allowed. + + Parsing is tried using each format, in order, and the first format which + parses successfully is used. + + :param formats: A list or tuple of date format strings, in the order in + which they should be tried. Defaults to + ``'%Y-%m-%d'``, ``'%Y-%m-%dT%H:%M:%S'``, + ``'%Y-%m-%d %H:%M:%S'``. + """ + + name = "datetime" + + def __init__(self, formats: t.Optional[t.Sequence[str]] = None): + self.formats = formats or ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M:%S"] + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["formats"] = self.formats + return info_dict + + def get_metavar(self, param: "Parameter") -> str: + return f"[{'|'.join(self.formats)}]" + + def _try_to_convert_date(self, value: t.Any, format: str) -> t.Optional[datetime]: + try: + return datetime.strptime(value, format) + except ValueError: + return None + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if isinstance(value, datetime): + return value + + for format in self.formats: + converted = self._try_to_convert_date(value, format) + + if converted is not None: + return converted + + formats_str = ", ".join(map(repr, self.formats)) + self.fail( + ngettext( + "{value!r} does not match the format {format}.", + "{value!r} does not match the formats {formats}.", + len(self.formats), + ).format(value=value, format=formats_str, formats=formats_str), + param, + ctx, + ) + + def __repr__(self) -> str: + return "DateTime" + + +class _NumberParamTypeBase(ParamType): + _number_class: t.ClassVar[t.Type] + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + try: + return self._number_class(value) + except ValueError: + self.fail( + _("{value!r} is not a valid {number_type}.").format( + value=value, number_type=self.name + ), + param, + ctx, + ) + + +class _NumberRangeBase(_NumberParamTypeBase): + def __init__( + self, + min: t.Optional[float] = None, + max: t.Optional[float] = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + self.min = min + self.max = max + self.min_open = min_open + self.max_open = max_open + self.clamp = clamp + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + min=self.min, + max=self.max, + min_open=self.min_open, + max_open=self.max_open, + clamp=self.clamp, + ) + return info_dict + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + import operator + + rv = super().convert(value, param, ctx) + lt_min: bool = self.min is not None and ( + operator.le if self.min_open else operator.lt + )(rv, self.min) + gt_max: bool = self.max is not None and ( + operator.ge if self.max_open else operator.gt + )(rv, self.max) + + if self.clamp: + if lt_min: + return self._clamp(self.min, 1, self.min_open) # type: ignore + + if gt_max: + return self._clamp(self.max, -1, self.max_open) # type: ignore + + if lt_min or gt_max: + self.fail( + _("{value} is not in the range {range}.").format( + value=rv, range=self._describe_range() + ), + param, + ctx, + ) + + return rv + + def _clamp(self, bound: float, dir: "te.Literal[1, -1]", open: bool) -> float: + """Find the valid value to clamp to bound in the given + direction. + + :param bound: The boundary value. + :param dir: 1 or -1 indicating the direction to move. + :param open: If true, the range does not include the bound. + """ + raise NotImplementedError + + def _describe_range(self) -> str: + """Describe the range for use in help text.""" + if self.min is None: + op = "<" if self.max_open else "<=" + return f"x{op}{self.max}" + + if self.max is None: + op = ">" if self.min_open else ">=" + return f"x{op}{self.min}" + + lop = "<" if self.min_open else "<=" + rop = "<" if self.max_open else "<=" + return f"{self.min}{lop}x{rop}{self.max}" + + def __repr__(self) -> str: + clamp = " clamped" if self.clamp else "" + return f"<{type(self).__name__} {self._describe_range()}{clamp}>" + + +class IntParamType(_NumberParamTypeBase): + name = "integer" + _number_class = int + + def __repr__(self) -> str: + return "INT" + + +class IntRange(_NumberRangeBase, IntParamType): + """Restrict an :data:`click.INT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "integer range" + + def _clamp( # type: ignore + self, bound: int, dir: "te.Literal[1, -1]", open: bool + ) -> int: + if not open: + return bound + + return bound + dir + + +class FloatParamType(_NumberParamTypeBase): + name = "float" + _number_class = float + + def __repr__(self) -> str: + return "FLOAT" + + +class FloatRange(_NumberRangeBase, FloatParamType): + """Restrict a :data:`click.FLOAT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. This is not supported if either + boundary is marked ``open``. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "float range" + + def __init__( + self, + min: t.Optional[float] = None, + max: t.Optional[float] = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + super().__init__( + min=min, max=max, min_open=min_open, max_open=max_open, clamp=clamp + ) + + if (min_open or max_open) and clamp: + raise TypeError("Clamping is not supported for open bounds.") + + def _clamp(self, bound: float, dir: "te.Literal[1, -1]", open: bool) -> float: + if not open: + return bound + + # Could use Python 3.9's math.nextafter here, but clamping an + # open float range doesn't seem to be particularly useful. It's + # left up to the user to write a callback to do it if needed. + raise RuntimeError("Clamping is not supported for open bounds.") + + +class BoolParamType(ParamType): + name = "boolean" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + if value in {False, True}: + return bool(value) + + norm = value.strip().lower() + + if norm in {"1", "true", "t", "yes", "y", "on"}: + return True + + if norm in {"0", "false", "f", "no", "n", "off"}: + return False + + self.fail( + _("{value!r} is not a valid boolean.").format(value=value), param, ctx + ) + + def __repr__(self) -> str: + return "BOOL" + + +class UUIDParameterType(ParamType): + name = "uuid" + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + import uuid + + if isinstance(value, uuid.UUID): + return value + + value = value.strip() + + try: + return uuid.UUID(value) + except ValueError: + self.fail( + _("{value!r} is not a valid UUID.").format(value=value), param, ctx + ) + + def __repr__(self) -> str: + return "UUID" + + +class File(ParamType): + """Declares a parameter to be a file for reading or writing. The file + is automatically closed once the context tears down (after the command + finished working). + + Files can be opened for reading or writing. The special value ``-`` + indicates stdin or stdout depending on the mode. + + By default, the file is opened for reading text data, but it can also be + opened in binary mode or for writing. The encoding parameter can be used + to force a specific encoding. + + The `lazy` flag controls if the file should be opened immediately or upon + first IO. The default is to be non-lazy for standard input and output + streams as well as files opened for reading, `lazy` otherwise. When opening a + file lazily for reading, it is still opened temporarily for validation, but + will not be held open until first IO. lazy is mainly useful when opening + for writing to avoid creating the file until it is needed. + + Starting with Click 2.0, files can also be opened atomically in which + case all writes go into a separate file in the same folder and upon + completion the file will be moved over to the original location. This + is useful if a file regularly read by other users is modified. + + See :ref:`file-args` for more information. + """ + + name = "filename" + envvar_list_splitter = os.path.pathsep + + def __init__( + self, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + lazy: t.Optional[bool] = None, + atomic: bool = False, + ) -> None: + self.mode = mode + self.encoding = encoding + self.errors = errors + self.lazy = lazy + self.atomic = atomic + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update(mode=self.mode, encoding=self.encoding) + return info_dict + + def resolve_lazy_flag(self, value: t.Any) -> bool: + if self.lazy is not None: + return self.lazy + if value == "-": + return False + elif "w" in self.mode: + return True + return False + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + try: + if hasattr(value, "read") or hasattr(value, "write"): + return value + + lazy = self.resolve_lazy_flag(value) + + if lazy: + f: t.IO = t.cast( + t.IO, + LazyFile( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ), + ) + + if ctx is not None: + ctx.call_on_close(f.close_intelligently) # type: ignore + + return f + + f, should_close = open_stream( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + + # If a context is provided, we automatically close the file + # at the end of the context execution (or flush out). If a + # context does not exist, it's the caller's responsibility to + # properly close the file. This for instance happens when the + # type is used with prompts. + if ctx is not None: + if should_close: + ctx.call_on_close(safecall(f.close)) + else: + ctx.call_on_close(safecall(f.flush)) + + return f + except OSError as e: # noqa: B014 + self.fail(f"{os.fsdecode(value)!r}: {e.strerror}", param, ctx) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a special completion marker that tells the completion + system to use the shell to provide file path completions. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + return [CompletionItem(incomplete, type="file")] + + +class Path(ParamType): + """The path type is similar to the :class:`File` type but it performs + different checks. First of all, instead of returning an open file + handle it returns just the filename. Secondly, it can perform various + basic checks about what the file or directory should be. + + :param exists: if set to true, the file or directory needs to exist for + this value to be valid. If this is not required and a + file does indeed not exist, then all further checks are + silently skipped. + :param file_okay: controls if a file is a possible value. + :param dir_okay: controls if a directory is a possible value. + :param writable: if true, a writable check is performed. + :param readable: if true, a readable check is performed. + :param resolve_path: if this is true, then the path is fully resolved + before the value is passed onwards. This means + that it's absolute and symlinks are resolved. It + will not expand a tilde-prefix, as this is + supposed to be done by the shell only. + :param allow_dash: If this is set to `True`, a single dash to indicate + standard streams is permitted. + :param path_type: Convert the incoming path value to this type. If + ``None``, keep Python's default, which is ``str``. Useful to + convert to :class:`pathlib.Path`. + + .. versionchanged:: 8.0 + Allow passing ``type=pathlib.Path``. + + .. versionchanged:: 6.0 + Added the ``allow_dash`` parameter. + """ + + envvar_list_splitter = os.path.pathsep + + def __init__( + self, + exists: bool = False, + file_okay: bool = True, + dir_okay: bool = True, + writable: bool = False, + readable: bool = True, + resolve_path: bool = False, + allow_dash: bool = False, + path_type: t.Optional[t.Type] = None, + ): + self.exists = exists + self.file_okay = file_okay + self.dir_okay = dir_okay + self.writable = writable + self.readable = readable + self.resolve_path = resolve_path + self.allow_dash = allow_dash + self.type = path_type + + if self.file_okay and not self.dir_okay: + self.name = _("file") + elif self.dir_okay and not self.file_okay: + self.name = _("directory") + else: + self.name = _("path") + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + exists=self.exists, + file_okay=self.file_okay, + dir_okay=self.dir_okay, + writable=self.writable, + readable=self.readable, + allow_dash=self.allow_dash, + ) + return info_dict + + def coerce_path_result(self, rv: t.Any) -> t.Any: + if self.type is not None and not isinstance(rv, self.type): + if self.type is str: + rv = os.fsdecode(rv) + elif self.type is bytes: + rv = os.fsencode(rv) + else: + rv = self.type(rv) + + return rv + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + rv = value + + is_dash = self.file_okay and self.allow_dash and rv in (b"-", "-") + + if not is_dash: + if self.resolve_path: + # os.path.realpath doesn't resolve symlinks on Windows + # until Python 3.8. Use pathlib for now. + import pathlib + + rv = os.fsdecode(pathlib.Path(rv).resolve()) + + try: + st = os.stat(rv) + except OSError: + if not self.exists: + return self.coerce_path_result(rv) + self.fail( + _("{name} {filename!r} does not exist.").format( + name=self.name.title(), filename=os.fsdecode(value) + ), + param, + ctx, + ) + + if not self.file_okay and stat.S_ISREG(st.st_mode): + self.fail( + _("{name} {filename!r} is a file.").format( + name=self.name.title(), filename=os.fsdecode(value) + ), + param, + ctx, + ) + if not self.dir_okay and stat.S_ISDIR(st.st_mode): + self.fail( + _("{name} {filename!r} is a directory.").format( + name=self.name.title(), filename=os.fsdecode(value) + ), + param, + ctx, + ) + if self.writable and not os.access(rv, os.W_OK): + self.fail( + _("{name} {filename!r} is not writable.").format( + name=self.name.title(), filename=os.fsdecode(value) + ), + param, + ctx, + ) + if self.readable and not os.access(rv, os.R_OK): + self.fail( + _("{name} {filename!r} is not readable.").format( + name=self.name.title(), filename=os.fsdecode(value) + ), + param, + ctx, + ) + + return self.coerce_path_result(rv) + + def shell_complete( + self, ctx: "Context", param: "Parameter", incomplete: str + ) -> t.List["CompletionItem"]: + """Return a special completion marker that tells the completion + system to use the shell to provide path completions for only + directories or any paths. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + type = "dir" if self.dir_okay and not self.file_okay else "file" + return [CompletionItem(incomplete, type=type)] + + +class Tuple(CompositeParamType): + """The default behavior of Click is to apply a type on a value directly. + This works well in most cases, except for when `nargs` is set to a fixed + count and different types should be used for different items. In this + case the :class:`Tuple` type can be used. This type can only be used + if `nargs` is set to a fixed number. + + For more information see :ref:`tuple-type`. + + This can be selected by using a Python tuple literal as a type. + + :param types: a list of types that should be used for the tuple items. + """ + + def __init__(self, types: t.Sequence[t.Union[t.Type, ParamType]]) -> None: + self.types = [convert_type(ty) for ty in types] + + def to_info_dict(self) -> t.Dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["types"] = [t.to_info_dict() for t in self.types] + return info_dict + + @property + def name(self) -> str: # type: ignore + return f"<{' '.join(ty.name for ty in self.types)}>" + + @property + def arity(self) -> int: # type: ignore + return len(self.types) + + def convert( + self, value: t.Any, param: t.Optional["Parameter"], ctx: t.Optional["Context"] + ) -> t.Any: + len_type = len(self.types) + len_value = len(value) + + if len_value != len_type: + self.fail( + ngettext( + "{len_type} values are required, but {len_value} was given.", + "{len_type} values are required, but {len_value} were given.", + len_value, + ).format(len_type=len_type, len_value=len_value), + param=param, + ctx=ctx, + ) + + return tuple(ty(x, param, ctx) for ty, x in zip(self.types, value)) + + +def convert_type(ty: t.Optional[t.Any], default: t.Optional[t.Any] = None) -> ParamType: + """Find the most appropriate :class:`ParamType` for the given Python + type. If the type isn't provided, it can be inferred from a default + value. + """ + guessed_type = False + + if ty is None and default is not None: + if isinstance(default, (tuple, list)): + # If the default is empty, ty will remain None and will + # return STRING. + if default: + item = default[0] + + # A tuple of tuples needs to detect the inner types. + # Can't call convert recursively because that would + # incorrectly unwind the tuple to a single type. + if isinstance(item, (tuple, list)): + ty = tuple(map(type, item)) + else: + ty = type(item) + else: + ty = type(default) + + guessed_type = True + + if isinstance(ty, tuple): + return Tuple(ty) + + if isinstance(ty, ParamType): + return ty + + if ty is str or ty is None: + return STRING + + if ty is int: + return INT + + if ty is float: + return FLOAT + + if ty is bool: + return BOOL + + if guessed_type: + return STRING + + if __debug__: + try: + if issubclass(ty, ParamType): + raise AssertionError( + f"Attempted to use an uninstantiated parameter type ({ty})." + ) + except TypeError: + # ty is an instance (correct), so issubclass fails. + pass + + return FuncParamType(ty) + + +#: A dummy parameter type that just does nothing. From a user's +#: perspective this appears to just be the same as `STRING` but +#: internally no string conversion takes place if the input was bytes. +#: This is usually useful when working with file paths as they can +#: appear in bytes and unicode. +#: +#: For path related uses the :class:`Path` type is a better choice but +#: there are situations where an unprocessed type is useful which is why +#: it is is provided. +#: +#: .. versionadded:: 4.0 +UNPROCESSED = UnprocessedParamType() + +#: A unicode string parameter type which is the implicit default. This +#: can also be selected by using ``str`` as type. +STRING = StringParamType() + +#: An integer parameter. This can also be selected by using ``int`` as +#: type. +INT = IntParamType() + +#: A floating point value parameter. This can also be selected by using +#: ``float`` as type. +FLOAT = FloatParamType() + +#: A boolean parameter. This is the default for boolean flags. This can +#: also be selected by using ``bool`` as a type. +BOOL = BoolParamType() + +#: A UUID parameter. +UUID = UUIDParameterType() diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/utils.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/utils.py new file mode 100644 index 0000000..16033d6 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/click/utils.py @@ -0,0 +1,579 @@ +import os +import sys +import typing as t +from functools import update_wrapper +from types import ModuleType + +from ._compat import _default_text_stderr +from ._compat import _default_text_stdout +from ._compat import _find_binary_writer +from ._compat import auto_wrap_for_ansi +from ._compat import binary_streams +from ._compat import get_filesystem_encoding +from ._compat import open_stream +from ._compat import should_strip_ansi +from ._compat import strip_ansi +from ._compat import text_streams +from ._compat import WIN +from .globals import resolve_color_default + +if t.TYPE_CHECKING: + import typing_extensions as te + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + + +def _posixify(name: str) -> str: + return "-".join(name.split()).lower() + + +def safecall(func: F) -> F: + """Wraps a function so that it swallows exceptions.""" + + def wrapper(*args, **kwargs): # type: ignore + try: + return func(*args, **kwargs) + except Exception: + pass + + return update_wrapper(t.cast(F, wrapper), func) + + +def make_str(value: t.Any) -> str: + """Converts a value into a valid string.""" + if isinstance(value, bytes): + try: + return value.decode(get_filesystem_encoding()) + except UnicodeError: + return value.decode("utf-8", "replace") + return str(value) + + +def make_default_short_help(help: str, max_length: int = 45) -> str: + """Returns a condensed version of help string.""" + # Consider only the first paragraph. + paragraph_end = help.find("\n\n") + + if paragraph_end != -1: + help = help[:paragraph_end] + + # Collapse newlines, tabs, and spaces. + words = help.split() + + if not words: + return "" + + # The first paragraph started with a "no rewrap" marker, ignore it. + if words[0] == "\b": + words = words[1:] + + total_length = 0 + last_index = len(words) - 1 + + for i, word in enumerate(words): + total_length += len(word) + (i > 0) + + if total_length > max_length: # too long, truncate + break + + if word[-1] == ".": # sentence end, truncate without "..." + return " ".join(words[: i + 1]) + + if total_length == max_length and i != last_index: + break # not at sentence end, truncate with "..." + else: + return " ".join(words) # no truncation needed + + # Account for the length of the suffix. + total_length += len("...") + + # remove words until the length is short enough + while i > 0: + total_length -= len(words[i]) + (i > 0) + + if total_length <= max_length: + break + + i -= 1 + + return " ".join(words[:i]) + "..." + + +class LazyFile: + """A lazy file works like a regular file but it does not fully open + the file but it does perform some basic checks early to see if the + filename parameter does make sense. This is useful for safely opening + files for writing. + """ + + def __init__( + self, + filename: str, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + atomic: bool = False, + ): + self.name = filename + self.mode = mode + self.encoding = encoding + self.errors = errors + self.atomic = atomic + self._f: t.Optional[t.IO] + + if filename == "-": + self._f, self.should_close = open_stream(filename, mode, encoding, errors) + else: + if "r" in mode: + # Open and close the file in case we're opening it for + # reading so that we can catch at least some errors in + # some cases early. + open(filename, mode).close() + self._f = None + self.should_close = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self.open(), name) + + def __repr__(self) -> str: + if self._f is not None: + return repr(self._f) + return f"" + + def open(self) -> t.IO: + """Opens the file if it's not yet open. This call might fail with + a :exc:`FileError`. Not handling this error will produce an error + that Click shows. + """ + if self._f is not None: + return self._f + try: + rv, self.should_close = open_stream( + self.name, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + except OSError as e: # noqa: E402 + from .exceptions import FileError + + raise FileError(self.name, hint=e.strerror) from e + self._f = rv + return rv + + def close(self) -> None: + """Closes the underlying file, no matter what.""" + if self._f is not None: + self._f.close() + + def close_intelligently(self) -> None: + """This function only closes the file if it was opened by the lazy + file wrapper. For instance this will never close stdin. + """ + if self.should_close: + self.close() + + def __enter__(self) -> "LazyFile": + return self + + def __exit__(self, exc_type, exc_value, tb): # type: ignore + self.close_intelligently() + + def __iter__(self) -> t.Iterator[t.AnyStr]: + self.open() + return iter(self._f) # type: ignore + + +class KeepOpenFile: + def __init__(self, file: t.IO) -> None: + self._file = file + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._file, name) + + def __enter__(self) -> "KeepOpenFile": + return self + + def __exit__(self, exc_type, exc_value, tb): # type: ignore + pass + + def __repr__(self) -> str: + return repr(self._file) + + def __iter__(self) -> t.Iterator[t.AnyStr]: + return iter(self._file) + + +def echo( + message: t.Optional[t.Any] = None, + file: t.Optional[t.IO] = None, + nl: bool = True, + err: bool = False, + color: t.Optional[bool] = None, +) -> None: + """Print a message and newline to stdout or a file. This should be + used instead of :func:`print` because it provides better support + for different data, files, and environments. + + Compared to :func:`print`, this does the following: + + - Ensures that the output encoding is not misconfigured on Linux. + - Supports Unicode in the Windows console. + - Supports writing to binary outputs, and supports writing bytes + to text outputs. + - Supports colors and styles on Windows. + - Removes ANSI color and style codes if the output does not look + like an interactive terminal. + - Always flushes the output. + + :param message: The string or bytes to output. Other objects are + converted to strings. + :param file: The file to write to. Defaults to ``stdout``. + :param err: Write to ``stderr`` instead of ``stdout``. + :param nl: Print a newline after the message. Enabled by default. + :param color: Force showing or hiding colors and other styles. By + default Click will remove color if the output does not look like + an interactive terminal. + + .. versionchanged:: 6.0 + Support Unicode output on the Windows console. Click does not + modify ``sys.stdout``, so ``sys.stdout.write()`` and ``print()`` + will still not support Unicode. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionadded:: 3.0 + Added the ``err`` parameter. + + .. versionchanged:: 2.0 + Support colors on Windows if colorama is installed. + """ + if file is None: + if err: + file = _default_text_stderr() + else: + file = _default_text_stdout() + + # Convert non bytes/text into the native string type. + if message is not None and not isinstance(message, (str, bytes, bytearray)): + out: t.Optional[t.Union[str, bytes]] = str(message) + else: + out = message + + if nl: + out = out or "" + if isinstance(out, str): + out += "\n" + else: + out += b"\n" + + if not out: + file.flush() + return + + # If there is a message and the value looks like bytes, we manually + # need to find the binary stream and write the message in there. + # This is done separately so that most stream types will work as you + # would expect. Eg: you can write to StringIO for other cases. + if isinstance(out, (bytes, bytearray)): + binary_file = _find_binary_writer(file) + + if binary_file is not None: + file.flush() + binary_file.write(out) + binary_file.flush() + return + + # ANSI style code support. For no message or bytes, nothing happens. + # When outputting to a file instead of a terminal, strip codes. + else: + color = resolve_color_default(color) + + if should_strip_ansi(file, color): + out = strip_ansi(out) + elif WIN: + if auto_wrap_for_ansi is not None: + file = auto_wrap_for_ansi(file) # type: ignore + elif not color: + out = strip_ansi(out) + + file.write(out) # type: ignore + file.flush() + + +def get_binary_stream(name: "te.Literal['stdin', 'stdout', 'stderr']") -> t.BinaryIO: + """Returns a system stream for byte processing. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + """ + opener = binary_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener() + + +def get_text_stream( + name: "te.Literal['stdin', 'stdout', 'stderr']", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", +) -> t.TextIO: + """Returns a system stream for text processing. This usually returns + a wrapped stream around a binary stream returned from + :func:`get_binary_stream` but it also can take shortcuts for already + correctly configured streams. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + :param encoding: overrides the detected default encoding. + :param errors: overrides the default error mode. + """ + opener = text_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener(encoding, errors) + + +def open_file( + filename: str, + mode: str = "r", + encoding: t.Optional[str] = None, + errors: t.Optional[str] = "strict", + lazy: bool = False, + atomic: bool = False, +) -> t.IO: + """This is similar to how the :class:`File` works but for manual + usage. Files are opened non lazy by default. This can open regular + files as well as stdin/stdout if ``'-'`` is passed. + + If stdin/stdout is returned the stream is wrapped so that the context + manager will not close the stream accidentally. This makes it possible + to always use the function like this without having to worry to + accidentally close a standard stream:: + + with open_file(filename) as f: + ... + + .. versionadded:: 3.0 + + :param filename: the name of the file to open (or ``'-'`` for stdin/stdout). + :param mode: the mode in which to open the file. + :param encoding: the encoding to use. + :param errors: the error handling for this file. + :param lazy: can be flipped to true to open the file lazily. + :param atomic: in atomic mode writes go into a temporary file and it's + moved on close. + """ + if lazy: + return t.cast(t.IO, LazyFile(filename, mode, encoding, errors, atomic=atomic)) + f, should_close = open_stream(filename, mode, encoding, errors, atomic=atomic) + if not should_close: + f = t.cast(t.IO, KeepOpenFile(f)) + return f + + +def get_os_args() -> t.Sequence[str]: + """Returns the argument part of ``sys.argv``, removing the first + value which is the name of the script. + + .. deprecated:: 8.0 + Will be removed in Click 8.1. Access ``sys.argv[1:]`` directly + instead. + """ + import warnings + + warnings.warn( + "'get_os_args' is deprecated and will be removed in Click 8.1." + " Access 'sys.argv[1:]' directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return sys.argv[1:] + + +def format_filename( + filename: t.Union[str, bytes, os.PathLike], shorten: bool = False +) -> str: + """Formats a filename for user display. The main purpose of this + function is to ensure that the filename can be displayed at all. This + will decode the filename to unicode if necessary in a way that it will + not fail. Optionally, it can shorten the filename to not include the + full path to the filename. + + :param filename: formats a filename for UI display. This will also convert + the filename into unicode without failing. + :param shorten: this optionally shortens the filename to strip of the + path that leads up to it. + """ + if shorten: + filename = os.path.basename(filename) + + return os.fsdecode(filename) + + +def get_app_dir(app_name: str, roaming: bool = True, force_posix: bool = False) -> str: + r"""Returns the config folder for the application. The default behavior + is to return whatever is most appropriate for the operating system. + + To give you an idea, for an app called ``"Foo Bar"``, something like + the following folders could be returned: + + Mac OS X: + ``~/Library/Application Support/Foo Bar`` + Mac OS X (POSIX): + ``~/.foo-bar`` + Unix: + ``~/.config/foo-bar`` + Unix (POSIX): + ``~/.foo-bar`` + Windows (roaming): + ``C:\Users\\AppData\Roaming\Foo Bar`` + Windows (not roaming): + ``C:\Users\\AppData\Local\Foo Bar`` + + .. versionadded:: 2.0 + + :param app_name: the application name. This should be properly capitalized + and can contain whitespace. + :param roaming: controls if the folder should be roaming or not on Windows. + Has no affect otherwise. + :param force_posix: if this is set to `True` then on any POSIX system the + folder will be stored in the home folder with a leading + dot instead of the XDG config home or darwin's + application support folder. + """ + if WIN: + key = "APPDATA" if roaming else "LOCALAPPDATA" + folder = os.environ.get(key) + if folder is None: + folder = os.path.expanduser("~") + return os.path.join(folder, app_name) + if force_posix: + return os.path.join(os.path.expanduser(f"~/.{_posixify(app_name)}")) + if sys.platform == "darwin": + return os.path.join( + os.path.expanduser("~/Library/Application Support"), app_name + ) + return os.path.join( + os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), + _posixify(app_name), + ) + + +class PacifyFlushWrapper: + """This wrapper is used to catch and suppress BrokenPipeErrors resulting + from ``.flush()`` being called on broken pipe during the shutdown/final-GC + of the Python interpreter. Notably ``.flush()`` is always called on + ``sys.stdout`` and ``sys.stderr``. So as to have minimal impact on any + other cleanup code, and the case where the underlying file is not a broken + pipe, all calls and attributes are proxied. + """ + + def __init__(self, wrapped: t.IO) -> None: + self.wrapped = wrapped + + def flush(self) -> None: + try: + self.wrapped.flush() + except OSError as e: + import errno + + if e.errno != errno.EPIPE: + raise + + def __getattr__(self, attr: str) -> t.Any: + return getattr(self.wrapped, attr) + + +def _detect_program_name( + path: t.Optional[str] = None, _main: ModuleType = sys.modules["__main__"] +) -> str: + """Determine the command used to run the program, for use in help + text. If a file or entry point was executed, the file name is + returned. If ``python -m`` was used to execute a module or package, + ``python -m name`` is returned. + + This doesn't try to be too precise, the goal is to give a concise + name for help text. Files are only shown as their name without the + path. ``python`` is only shown for modules, and the full path to + ``sys.executable`` is not shown. + + :param path: The Python file being executed. Python puts this in + ``sys.argv[0]``, which is used by default. + :param _main: The ``__main__`` module. This should only be passed + during internal testing. + + .. versionadded:: 8.0 + Based on command args detection in the Werkzeug reloader. + + :meta private: + """ + if not path: + path = sys.argv[0] + + # The value of __package__ indicates how Python was called. It may + # not exist if a setuptools script is installed as an egg. It may be + # set incorrectly for entry points created with pip on Windows. + if getattr(_main, "__package__", None) is None or ( + os.name == "nt" + and _main.__package__ == "" + and not os.path.exists(path) + and os.path.exists(f"{path}.exe") + ): + # Executed a file, like "python app.py". + return os.path.basename(path) + + # Executed a module, like "python -m example". + # Rewritten by Python from "-m script" to "/path/to/script.py". + # Need to look at main module to determine how it was executed. + py_module = t.cast(str, _main.__package__) + name = os.path.splitext(os.path.basename(path))[0] + + # A submodule like "example.cli". + if name != "__main__": + py_module = f"{py_module}.{name}" + + return f"python -m {py_module.lstrip('.')}" + + +def _expand_args( + args: t.Iterable[str], + *, + user: bool = True, + env: bool = True, + glob_recursive: bool = True, +) -> t.List[str]: + """Simulate Unix shell expansion with Python functions. + + See :func:`glob.glob`, :func:`os.path.expanduser`, and + :func:`os.path.expandvars`. + + This intended for use on Windows, where the shell does not do any + expansion. It may not exactly match what a Unix shell would do. + + :param args: List of command line arguments to expand. + :param user: Expand user home directory. + :param env: Expand environment variables. + :param glob_recursive: ``**`` matches directories recursively. + + .. versionadded:: 8.0 + + :meta private: + """ + from glob import glob + + out = [] + + for arg in args: + if user: + arg = os.path.expanduser(arg) + + if env: + arg = os.path.expandvars(arg) + + matches = glob(arg, recursive=glob_recursive) + + if not matches: + out.append(arg) + else: + out.extend(matches) + + return out diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/distutils-precedence.pth b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/distutils-precedence.pth new file mode 100644 index 0000000..6de4198 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/distutils-precedence.pth @@ -0,0 +1 @@ +import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__init__.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__init__.py new file mode 100644 index 0000000..43b5468 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__init__.py @@ -0,0 +1,46 @@ +from markupsafe import escape +from markupsafe import Markup +from werkzeug.exceptions import abort as abort +from werkzeug.utils import redirect as redirect + +from . import json as json +from .app import Flask as Flask +from .app import Request as Request +from .app import Response as Response +from .blueprints import Blueprint as Blueprint +from .config import Config as Config +from .ctx import after_this_request as after_this_request +from .ctx import copy_current_request_context as copy_current_request_context +from .ctx import has_app_context as has_app_context +from .ctx import has_request_context as has_request_context +from .globals import _app_ctx_stack as _app_ctx_stack +from .globals import _request_ctx_stack as _request_ctx_stack +from .globals import current_app as current_app +from .globals import g as g +from .globals import request as request +from .globals import session as session +from .helpers import flash as flash +from .helpers import get_flashed_messages as get_flashed_messages +from .helpers import get_template_attribute as get_template_attribute +from .helpers import make_response as make_response +from .helpers import safe_join as safe_join +from .helpers import send_file as send_file +from .helpers import send_from_directory as send_from_directory +from .helpers import stream_with_context as stream_with_context +from .helpers import url_for as url_for +from .json import jsonify as jsonify +from .signals import appcontext_popped as appcontext_popped +from .signals import appcontext_pushed as appcontext_pushed +from .signals import appcontext_tearing_down as appcontext_tearing_down +from .signals import before_render_template as before_render_template +from .signals import got_request_exception as got_request_exception +from .signals import message_flashed as message_flashed +from .signals import request_finished as request_finished +from .signals import request_started as request_started +from .signals import request_tearing_down as request_tearing_down +from .signals import signals_available as signals_available +from .signals import template_rendered as template_rendered +from .templating import render_template as render_template +from .templating import render_template_string as render_template_string + +__version__ = "2.0.2" diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__main__.py b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__main__.py new file mode 100644 index 0000000..4e28416 --- /dev/null +++ b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__main__.py @@ -0,0 +1,3 @@ +from .cli import main + +main() diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__init__.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c7d7bda14f1eb5da3c458ef3cc2ce0bc7655a83 GIT binary patch literal 1904 zcmbu9$!;Sz5QZh$mSnBgVtL*LQ7yI4i`ujO(fg`d9;{&fG&r&9mWVD^*2!FTv? zN=RPHORH3nhIE=ZgPeg3^PHLs=3$fOu!!h%Y$_FQK!n~_agEq98_mI!vjCmjV9L|{!kT2kZ`4G7S z9p)qCE_9iXksWZDPmnL+lKB+*4ZLA)BVWN4^BM9rTr;1muY$MmmiYqt9lS&Cz}H^) zmsH#NLg%ENe#%PIcVkKPqpNR|7-_-nMcN|dwe)-~`}RwE96f(yqL3nfP_DT}$bFK( zC(>~6Cu!m+G_=;@2bIWJ`yowazmLL!KSZj#11q(#Bi{)9{KL(D6hDf7qO}a|)EE6I zwDN&|UmdwdxN$sVHOQK*Fk@H7VfH~7>-H(X`b*S|Tbw=&SH++-<(7L%C}*TG{&=GU z+~^3Wn?q>@52PmooOg%Ppx+|j${<#*mBO`F`@O_c4a$LgEAjC!MKSI`ikrx%3N9KM zdSc)!3T=!BIts+N-jRM}+iK|s;@-ETnO)`*t;8VG7?GoX_yY>A;a(;+6LA#B(tB+t zX2j;oOr(`Ac4;WQ=$^7_^&~D#S%)4qYO*h!Ssq3&y^#-n8QXD%s*_?&i-WOC)6NY1 z(4RcCI`yzK+HxMvsr4#}n(>FBtFY&HuCLr4m#8+)Ws)1OfQ!D)v-QftlRz8%yl~aM z>|XuUeh-C!&p9f6sU8FrsHXY@SHRGw!N>no!d(0oei9L>#PDK)-% zQ+knv-o{YqP0zm3MKqqW*cLqhxQpHjmy+YP1$r{Nz$p*(0bNeG#J0B7}%8Bz4FZEF4 zRq=Lz*3k{VTAaS}@!ogh$?#5wcaHLVPW)&`QFz^b?-<|8PK+0t?wmuH@YWFm&z2RU g8$UkfzX>8QQSw`QOPSwLN@@PfOuomX|Ern*05Tp63;+NC literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__main__.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/__main__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9752d3eb21f18686f3c8fdec8bde3eb4a5025e05 GIT binary patch literal 235 zcmWIL<>g`kf`iJN6Xk&PV-N=!FabFZKwK;aBvKes7;_kM8KW2(8B!UW85kK-n1UHJ znO`yjB{dmuvE(LZ=J{zd-C|D8$t(hCUCB_y0;IsiuMGW+{M=Oiq{QTm#3FsC(xTMF zQhm?7lGOB~#FEq$g@B^`tkmQZeW2#lyb|34D7P#%uS`EDGfBUovLquv&sfhwzc{lb wRkt89IXf{uwOBtbC$TtNKRzC0dwjfJLFFwDo80`A(wtN~ki&{W4&h+}03<9tu>b%7 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/app.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/app.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad05f80f84366c5ae2b767c2f5009976b365ce51 GIT binary patch literal 63156 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%0AIq2<3Z~}%T}=kOP-=HTaIWE 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/blueprints.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/blueprints.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e1f1b195fb8fcc8319ae4ec8e71feffa0a15607 GIT binary patch literal 21962 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/ctx.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/ctx.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6d7b95cd15f7d520bf821da86e9ae74795031d1 GIT binary patch literal 15469 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 W&+Ff8KC|%N(#e%`3ofX6@qYn}eDQJs literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/debughelpers.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/debughelpers.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d489ce765253a7e7cc00651b3335ae91a51b033a GIT binary patch literal 6489 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 YsZy^r-8z154G-f6>5&p~|7?~20>tC@7ytkO literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/helpers.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/helpers.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..249559aa5afc1c341bdfec832951f7f778463b67 GIT binary patch literal 27222 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 G;{0D4l3%<4 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/logging.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/logging.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48da5c04b158d1201f940337ea2408eddf97f91f GIT binary patch literal 2475 zcmZuzO>f&q5Z$Gy56hAry9toAJuI3Ai2z3`kTxg;!wBNoiBTgB5T`{|1mcRjq9{|O zyt}d^!^tH9+Wvq7MUjJj%(<6d`!{$iddgqurJY$)j#HNgm)zCN?9AIYkA70GR|#By zT>XvzSs~;voSeOiFu4P_{sjg>1dT{1d(sZIbEi{)rxUrOVy8%nC} zmtppSfY}L!=ykLf3t+n_E`aStK_8RG(p$)mJZ#Xkx}EqudZdzP)3+4XV5zL+-b88x zuf@%X>s@#$DQPAu_R;O^<-lYeZha93L)3yHLn`PM@|YNBSb(h@{xihg3}eB}K(bMy z4ddgnO2#VWMlz{XqL?;H@)7I9D_Vg;6#CqRN!(;xea2ayQ^)D z^SlEcgiRYud)^95Ac{H&wPX{xJx@<{QyT#Wp4Y6}C=hm{tZN#VSfX4=Qx6yDLGl0xyC1e%Z?9raX1``d@SU-#; zgE~d%o73HGsSI|o!F(QHH!K{D69pS!R1qran`oMC4!;8+eFUHEAl8#hW4aSC(me2$0E5X!93ePSy!;%Vc>pL(Ukz;Z~ zeuC$7dPLQ#p+As5uvIv(Do1qa+#@gPOR81`@D}C;{rTQ1Jl*GXuO?jJa`Euj^?~$v zS=dLK!jU2s*&t&E3u8;(yaERB*cEQrK^R538Jbx110ZmW1cv0VYt|k~GiZCV-v{jA zCl<+l8L`zDGeEYjWiyawV`j6BCTsa=o~s?}zJ;}4wzWUKfK?C4k7SpALnzsE1axVG zK70dxZZ`uko#tn0Ij=`8fM0g*^YE6=tp+ld&&F!)6O4+`y2K%epANY0+5p|$v$-0f zs_3=msmso0qnIw8OFk{|c$!vnKb_8@Fz^6)l$OTOGqGtn3J*Ok`xAxpEFqhk&1&h~ z?jK@y%PpeZP{|U?vnd|| zQUfR`gjcrH~>Qw;k}yZLzM5 zfIXBb$uutHlF{bIsI~{eo0;5nt@&yuA$I2`t{}-QYrh=;X>+d^XRU-hEq)W^rQB{hd@p;#s@J$!WjMq&ABW==`U7 zRu~t8ahvx{(@)#!eNji*&g}Y=*l&AzX&4#50Oy6s14zvPn!m?&=%f3HL%JxdjcQuX z9n(2r{I+e})I}WAqQyxq0zuLWRJe^ToEB~UmYr!8l75gWO1daypHCt)YbN}v}C4ZC@`g_vv45Q z?xCCn@a2H!RVbfnIf#-TbaM7>sPBCDXrsISU}OEOt%vusRIn-1(hhuiw!XHKoR($< z_mU*aYO247wnF_#Yf$~Bh0REn&Yiy6B+nFQKRmX=%4*h^YpC-2V;CwF{v0R}`ny(e Q=yGlOQkA;2@{e2m7v~YgnE(I) literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/scaffold.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/scaffold.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3fd9880ffcfa55968470d3d0f24464bf463c3518 GIT binary patch literal 24903 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 A3;+NC literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/sessions.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/sessions.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab3774109bbd10c1d00b974c4047d24658054345 GIT binary patch literal 13140 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 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/signals.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/signals.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b2d96f1f19d7cd82663db5d40b933ec22cb1e50f GIT binary patch literal 2393 zcmZuy&5j#I5bpW$*z2ENd$UP4kV8vENS0#z00#~T1rR}d*+eXe&>ULr>9#$);~A&B zXE$r*#O5(Lz%gfD0A6FRoOlH!1XXR1Wp5a(+tt-QRb5|wRr6h^(3euqgC>7|5u%OjBd)Sm||@Q4gp_&v!!4vDH=H1%_j;7^7u{F=y`jNT9# z-S{kkRb4h<)qqv>1IhdsLVLpUO zLBNtQUq&iW;dxC34Cb4P& za9oI~GNVZ<%mwH$2s2zd+bD;=DFIw~k@G^KA0<3e=l?c`T4E6{^~K zq{3S{tAn;t4H-c$k(wb8@V0(WHbLK1&5*Dbj5dr8(5?xDLtU5ker!s}SHJC&B@R78 zP9}7mCfSA3G%>Wu#HC15F;3NE8bgk(qJmCb$;l$uwWuh!DN!IjEQVxMroaEnrBpGkZpWbrA7@YJ;{t! zLZT&^qkeM$4x^jLG_e~q&cS(MECp8N8ZQM==xH$rW*K-_f)$$OD;LSi_Hgt1sSY7G z?{FW}>$u+q0hmuXdF{gt6?aB7HlM!lXkXSjha%!!?}73bOOSL)mRQd3!lpq_#EYO! zZPntiI?{(~f_s}Xy12rBU5C>#ByICx&EfhP3}GMmiRS4ajRuHo%#r;9!`fi-N6YHR0f}C*BSxR@8hx_=UE1AinZ1Pzf1&c zuNO*ko3mr9<`A~fNqWt9cA7FVm4V(&7_L>Ul1rrxpX8c#c9vT)x}>=tgZaj*8@zSH z3#0eKQ$^*&04`LY*>X2Ut_~6YYi$0H9cAOw)mQ8@YzgKOQpESYw%_pfz0ltej~+&~rg!`IAJ}<%1ONa4 literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/templating.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/templating.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..291ac5acc482f8e2d320e026a023087d345f9949 GIT binary patch literal 5580 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 Z0QjRHwoLp*t@tZqGIjCJ++Ro+{}&1Yim?Cy literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/typing.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/typing.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4983c37e3a505f1b928765b95bd8ae529086393e GIT binary patch literal 1796 zcmZuwTTdJ}6dupaF2k}HE(;WLqe(BJ4ZBh+wSB0n03m=95d=%B`ekIsXO{u*%*5k? zkk{t5Qhz}IK%e_wsei+-l`5q_p=y;LdoQ7=9{I@Mxy?DppO0#_ii7L7d%v(>CmiQ@ z1Fo(B!9(2npTu#v!-;Sx0dnff&k(u7>-*Fv#^Q-mzf8+`_IXK6^aC0Y2R$cw8D$0c z6jV{xy6%$E*Nv7FPP*Qb)Ag4e+JI>~164YUmPzY72UY9agespfamJU<8#@nBPQfh9 z5A)3-ZjSKKbHQe6SW5#IhMrAmz|7S%S}-r4?3OV5B6`2aE3m|;c=ZR5E+f8S>Yz9A zbc>gJgqKY;y=`z0XJXNv0kYnU_2G{FFY}c6g1~Upu@G4^G!$ zdCB?Sqb*Jjoz=!0!-Bn4q8r~HZtt#VnTR8%;xs|k#11eHGJk`da1aLvkY{O|JdG4*2O<2PE5Qe%EhW(Tm!knvN_@ZE9V3B3asOLtvbzrCRoQVQt zW7OumhGpI8CQ*EW+ZGZKi&xvaJg8R_rE8t<_P4^#ovqC$yL;QT9-;~I6X30jycb&@ z(8UXoXRn~>wK!8OSF(ukMj*FT(ZPjeS%!qN{L!VO1ev1C>&fMzlG=Y1M@oAbq&-yW zNy{mwQb}v0R%{d6ixWjFhl;5p-%L5s%7CbQI2Y|djdP_-ogx!Jrv?TaMyo?Q4<<2( z&FYB`_VAoZJvnCXV0ghZOJgSJ48DnHas!8#N&N2D7kd>=*Nl}Xino=;rjlRBCH s$9?OUeZ(uc@4od*#$tTx#Qhs>!L(Z;(} literal 0 HcmV?d00001 diff --git a/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/views.cpython-38.pyc b/IPreoject-CLientSide/venv/lib/python3.8/site-packages/flask/__pycache__/views.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dc66d45e02f2fa8402a1f644c5e6e44166442518 GIT binary patch literal 5021 zcma)ATXP$?6<+Lxq-aW(<+zEHG)0`YGSh@gFVo3r6pvNMNjy!IjAQr0jAyx8fZ|Ha zT^fs(LY3}xB6sXOv~PW?J7Yg}{LrWVg8q$t?Nk0jAKHEgyCP}XX|po`7r@zr1Dp@v zIpEF3#ioVlAFusA*m&Nu{z;AbX911NDA^$@VF?ynT_$Yd#P-nXI?Temi+8u{ns+a@ zhF;fWmaK`IsEdYJ5KVDPw8Y|0{F|K?kmi1ZGFX1w^?y2%$1Uf_Jh#~&AO7ebD3$pp1m%!QJQ4( zy41N!ei6jEESw#w3wM-es0T6-MLiwq2vS8&$XIGfjB;IgS_PpjyiuUTK}ZwMKQ%Ni zqhu3QlD5I>+BdN!T}RkmS9-fOl)7x3x6WH~K{y-OoNm+fpE5n}hP7jLTSm&;T{L~( zh9#Fo?E$0By6bjN%VjLx+dWg2MX~U}r7gVcV*6Hvjm>Bk?k^&F5d77(tj$
+
+ + + + + + + {% block body %} + + {% endblock %} + + +
+
+ + + + Recognition and Classification Of Objects +
+
+ + + + Artificial Intelligence; Machine Learning; Convolutional Neural Network; Images Detection; Python... +
+
+ + + +
+
+ + {% block scripts %} + {% endblock %} + +