From 0740e6c214d7552582b99f0d6aaeb5560709fe42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2?= Date: Mon, 25 Aug 2025 09:54:15 +0500 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D1=8E=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=BF=D0=BA=D1=83=20.venv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .venv/bin/Activate.ps1 | 247 - .venv/bin/activate | 70 - .venv/bin/activate.csh | 27 - .venv/bin/activate.fish | 69 - .venv/bin/normalizer | 8 - .venv/bin/pip | 8 - .venv/bin/pip3 | 8 - .venv/bin/pip3.12 | 8 - .venv/bin/python | 1 - .venv/bin/python3 | 1 - .venv/bin/python3.12 | 1 - .../typing_extensions.cpython-312.pyc | Bin 162217 -> 0 bytes .../beautifulsoup4-4.13.4.dist-info/METADATA | 123 - .../beautifulsoup4-4.13.4.dist-info/RECORD | 90 - .../licenses/AUTHORS | 49 - .../licenses/LICENSE | 31 - .../python3.12/site-packages/bs4/__init__.py | 1170 --- .../bs4/__pycache__/__init__.cpython-312.pyc | Bin 39654 -> 0 bytes .../__pycache__/_deprecation.cpython-312.pyc | Bin 3770 -> 0 bytes .../bs4/__pycache__/_typing.cpython-312.pyc | Bin 3572 -> 0 bytes .../bs4/__pycache__/_warnings.cpython-312.pyc | Bin 5623 -> 0 bytes .../bs4/__pycache__/css.cpython-312.pyc | Bin 14449 -> 0 bytes .../bs4/__pycache__/dammit.cpython-312.pyc | Bin 46504 -> 0 bytes .../bs4/__pycache__/diagnose.cpython-312.pyc | Bin 12678 -> 0 bytes .../bs4/__pycache__/element.cpython-312.pyc | Bin 108010 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 1786 -> 0 bytes .../bs4/__pycache__/filter.cpython-312.pyc | Bin 28679 -> 0 bytes .../bs4/__pycache__/formatter.cpython-312.pyc | Bin 10554 -> 0 bytes .../site-packages/bs4/_deprecation.py | 80 - .../python3.12/site-packages/bs4/_typing.py | 196 - .../python3.12/site-packages/bs4/_warnings.py | 98 - .../site-packages/bs4/builder/__init__.py | 848 -- .../__pycache__/__init__.cpython-312.pyc | Bin 27488 -> 0 bytes .../__pycache__/_html5lib.cpython-312.pyc | Bin 23163 -> 0 bytes .../__pycache__/_htmlparser.cpython-312.pyc | Bin 14659 -> 0 bytes .../builder/__pycache__/_lxml.cpython-312.pyc | Bin 18508 -> 0 bytes .../site-packages/bs4/builder/_html5lib.py | 594 -- .../site-packages/bs4/builder/_htmlparser.py | 474 - .../site-packages/bs4/builder/_lxml.py | 491 - .venv/lib/python3.12/site-packages/bs4/css.py | 338 - .../python3.12/site-packages/bs4/dammit.py | 1408 --- .../python3.12/site-packages/bs4/diagnose.py | 268 - .../python3.12/site-packages/bs4/element.py | 2894 ------ .../site-packages/bs4/exceptions.py | 28 - .../python3.12/site-packages/bs4/filter.py | 759 -- .../python3.12/site-packages/bs4/formatter.py | 276 - .../lib/python3.12/site-packages/bs4/py.typed | 0 .../site-packages/bs4/tests/__init__.py | 1318 --- .../__pycache__/__init__.cpython-312.pyc | Bin 68284 -> 0 bytes .../__pycache__/test_builder.cpython-312.pyc | Bin 1600 -> 0 bytes .../test_builder_registry.cpython-312.pyc | Bin 7624 -> 0 bytes .../__pycache__/test_css.cpython-312.pyc | Bin 28935 -> 0 bytes .../__pycache__/test_dammit.cpython-312.pyc | Bin 19812 -> 0 bytes .../__pycache__/test_element.cpython-312.pyc | Bin 6057 -> 0 bytes .../__pycache__/test_filter.cpython-312.pyc | Bin 32637 -> 0 bytes .../test_formatter.cpython-312.pyc | Bin 7826 -> 0 bytes .../__pycache__/test_fuzz.cpython-312.pyc | Bin 7065 -> 0 bytes .../__pycache__/test_html5lib.cpython-312.pyc | Bin 11988 -> 0 bytes .../test_htmlparser.cpython-312.pyc | Bin 7311 -> 0 bytes .../__pycache__/test_lxml.cpython-312.pyc | Bin 8123 -> 0 bytes .../test_navigablestring.cpython-312.pyc | Bin 8555 -> 0 bytes .../test_pageelement.cpython-312.pyc | Bin 22934 -> 0 bytes .../__pycache__/test_soup.cpython-312.pyc | Bin 31525 -> 0 bytes .../__pycache__/test_tag.cpython-312.pyc | Bin 14145 -> 0 bytes .../__pycache__/test_tree.cpython-312.pyc | Bin 93985 -> 0 bytes ...mized-bs4_fuzzer-4670634698080256.testcase | 1 - ...mized-bs4_fuzzer-4818336571064320.testcase | 1 - ...mized-bs4_fuzzer-4999465949331456.testcase | 1 - ...mized-bs4_fuzzer-5000587759190016.testcase | Bin 15347 -> 0 bytes ...mized-bs4_fuzzer-5167584867909632.testcase | Bin 19469 -> 0 bytes ...mized-bs4_fuzzer-5270998950477824.testcase | Bin 12 -> 0 bytes ...mized-bs4_fuzzer-5375146639360000.testcase | 1 - ...mized-bs4_fuzzer-5492400320282624.testcase | Bin 11502 -> 0 bytes ...mized-bs4_fuzzer-5703933063462912.testcase | 2 - ...mized-bs4_fuzzer-5843991618256896.testcase | 1 - ...mized-bs4_fuzzer-5984173902397440.testcase | Bin 51495 -> 0 bytes ...mized-bs4_fuzzer-6124268085182464.testcase | 1 - ...mized-bs4_fuzzer-6241471367348224.testcase | 1 - ...mized-bs4_fuzzer-6306874195312640.testcase | 1 - ...mized-bs4_fuzzer-6450958476902400.testcase | Bin 3546 -> 0 bytes ...mized-bs4_fuzzer-6600557255327744.testcase | Bin 124 -> 0 bytes ...0c8ed8bcd0785b67000fcd5dea1d33f08.testcase | Bin 2607 -> 0 bytes ...a2b26f13537b68d3794b0478a4090ee4a.testcase | Bin 103 -> 0 bytes .../site-packages/bs4/tests/test_builder.py | 28 - .../bs4/tests/test_builder_registry.py | 139 - .../site-packages/bs4/tests/test_css.py | 536 - .../site-packages/bs4/tests/test_dammit.py | 433 - .../site-packages/bs4/tests/test_element.py | 138 - .../site-packages/bs4/tests/test_filter.py | 683 -- .../site-packages/bs4/tests/test_formatter.py | 170 - .../site-packages/bs4/tests/test_fuzz.py | 181 - .../site-packages/bs4/tests/test_html5lib.py | 264 - .../bs4/tests/test_htmlparser.py | 161 - .../site-packages/bs4/tests/test_lxml.py | 196 - .../bs4/tests/test_navigablestring.py | 155 - .../bs4/tests/test_pageelement.py | 437 - .../site-packages/bs4/tests/test_soup.py | 602 -- .../site-packages/bs4/tests/test_tag.py | 241 - .../site-packages/bs4/tests/test_tree.py | 1456 --- .../certifi-2025.7.14.dist-info/INSTALLER | 1 - .../certifi-2025.7.14.dist-info/METADATA | 77 - .../certifi-2025.7.14.dist-info/RECORD | 14 - .../certifi-2025.7.14.dist-info/WHEEL | 5 - .../licenses/LICENSE | 20 - .../certifi-2025.7.14.dist-info/top_level.txt | 1 - .../site-packages/certifi/__init__.py | 4 - .../site-packages/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 333 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 648 -> 0 bytes .../certifi/__pycache__/core.cpython-312.pyc | Bin 2080 -> 0 bytes .../site-packages/certifi/cacert.pem | 4778 --------- .../python3.12/site-packages/certifi/core.py | 83 - .../python3.12/site-packages/certifi/py.typed | 0 .../INSTALLER | 1 - .../METADATA | 731 -- .../charset_normalizer-3.4.2.dist-info/RECORD | 35 - .../charset_normalizer-3.4.2.dist-info/WHEEL | 6 - .../entry_points.txt | 2 - .../licenses/LICENSE | 21 - .../top_level.txt | 1 - .../charset_normalizer/__init__.py | 48 - .../charset_normalizer/__main__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 1799 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 374 -> 0 bytes .../__pycache__/api.cpython-312.pyc | Bin 18188 -> 0 bytes .../__pycache__/cd.cpython-312.pyc | Bin 13315 -> 0 bytes .../__pycache__/constant.cpython-312.pyc | Bin 40829 -> 0 bytes .../__pycache__/legacy.cpython-312.pyc | Bin 2799 -> 0 bytes .../__pycache__/md.cpython-312.pyc | Bin 24366 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 17146 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 13775 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 401 -> 0 bytes .../site-packages/charset_normalizer/api.py | 668 -- .../site-packages/charset_normalizer/cd.py | 395 - .../charset_normalizer/cli/__init__.py | 8 - .../charset_normalizer/cli/__main__.py | 381 - .../cli/__pycache__/__init__.cpython-312.pyc | Bin 362 -> 0 bytes .../cli/__pycache__/__main__.cpython-312.pyc | Bin 14423 -> 0 bytes .../charset_normalizer/constant.py | 2015 ---- .../charset_normalizer/legacy.py | 64 - .../md.cpython-312-x86_64-linux-gnu.so | Bin 16120 -> 0 bytes .../site-packages/charset_normalizer/md.py | 635 -- .../md__mypyc.cpython-312-x86_64-linux-gnu.so | Bin 280856 -> 0 bytes .../charset_normalizer/models.py | 360 - .../site-packages/charset_normalizer/py.typed | 0 .../site-packages/charset_normalizer/utils.py | 414 - .../charset_normalizer/version.py | 8 - .../INSTALLER | 0 .../LICENSE.txt} | 29 +- .../hvac-2.3.0.dist-info/METADATA | 70 + .../site-packages/hvac-2.3.0.dist-info/RECORD | 142 + .../REQUESTED | 0 .../WHEEL | 2 +- .../python3.12/site-packages/hvac/__init__.py | 3 + .../hvac/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 262 bytes .../hvac/__pycache__/adapters.cpython-312.pyc | Bin 0 -> 17692 bytes .../__pycache__/aws_utils.cpython-312.pyc | Bin 0 -> 5212 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 0 -> 3614 bytes .../hvac/__pycache__/utils.cpython-312.pyc | Bin 0 -> 18993 bytes .../python3.12/site-packages/hvac/adapters.py | 419 + .../site-packages/hvac/api/__init__.py | 14 + .../api/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 629 bytes .../vault_api_base.cpython-312.pyc | Bin 0 -> 1000 bytes .../vault_api_category.cpython-312.pyc | Bin 0 -> 5051 bytes .../hvac/api/auth_methods/__init__.py | 64 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1800 bytes .../__pycache__/approle.cpython-312.pyc | Bin 0 -> 19994 bytes .../__pycache__/aws.cpython-312.pyc | Bin 0 -> 42690 bytes .../__pycache__/azure.cpython-312.pyc | Bin 0 -> 13413 bytes .../__pycache__/cert.cpython-312.pyc | Bin 0 -> 14759 bytes .../__pycache__/gcp.cpython-312.pyc | Bin 0 -> 18452 bytes .../__pycache__/github.cpython-312.pyc | Bin 0 -> 9044 bytes .../__pycache__/jwt.cpython-312.pyc | Bin 0 -> 19517 bytes .../__pycache__/kubernetes.cpython-312.pyc | Bin 0 -> 11917 bytes .../__pycache__/ldap.cpython-312.pyc | Bin 0 -> 22726 bytes .../__pycache__/legacy_mfa.cpython-312.pyc | Bin 0 -> 6990 bytes .../__pycache__/oidc.cpython-312.pyc | Bin 0 -> 8249 bytes .../__pycache__/okta.cpython-312.pyc | Bin 0 -> 11663 bytes .../__pycache__/radius.cpython-312.pyc | Bin 0 -> 8884 bytes .../__pycache__/token.cpython-312.pyc | Bin 0 -> 25373 bytes .../__pycache__/userpass.cpython-312.pyc | Bin 0 -> 6212 bytes .../hvac/api/auth_methods/approle.py | 510 + .../hvac/api/auth_methods/aws.py | 992 ++ .../hvac/api/auth_methods/azure.py | 343 + .../hvac/api/auth_methods/cert.py | 328 + .../hvac/api/auth_methods/gcp.py | 463 + .../hvac/api/auth_methods/github.py | 241 + .../hvac/api/auth_methods/jwt.py | 457 + .../hvac/api/auth_methods/kubernetes.py | 308 + .../hvac/api/auth_methods/ldap.py | 541 + .../hvac/api/auth_methods/legacy_mfa.py | 172 + .../hvac/api/auth_methods/oidc.py | 166 + .../hvac/api/auth_methods/okta.py | 332 + .../hvac/api/auth_methods/radius.py | 237 + .../hvac/api/auth_methods/token.py | 658 ++ .../hvac/api/auth_methods/userpass.py | 167 + .../hvac/api/secrets_engines/__init__.py | 71 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1962 bytes .../active_directory.cpython-312.pyc | Bin 0 -> 8010 bytes .../__pycache__/aws.cpython-312.pyc | Bin 0 -> 17301 bytes .../__pycache__/azure.cpython-312.pyc | Bin 0 -> 8092 bytes .../__pycache__/consul.cpython-312.pyc | Bin 0 -> 7495 bytes .../__pycache__/database.cpython-312.pyc | Bin 0 -> 15835 bytes .../__pycache__/gcp.cpython-312.pyc | Bin 0 -> 28375 bytes .../__pycache__/identity.cpython-312.pyc | Bin 0 -> 56795 bytes .../__pycache__/kv.cpython-312.pyc | Bin 0 -> 4209 bytes .../__pycache__/kv_v1.cpython-312.pyc | Bin 0 -> 6164 bytes .../__pycache__/kv_v2.cpython-312.pyc | Bin 0 -> 20335 bytes .../__pycache__/ldap.cpython-312.pyc | Bin 0 -> 10793 bytes .../__pycache__/pki.cpython-312.pyc | Bin 0 -> 29338 bytes .../__pycache__/rabbitmq.cpython-312.pyc | Bin 0 -> 6501 bytes .../__pycache__/ssh.cpython-312.pyc | Bin 0 -> 20664 bytes .../__pycache__/transform.cpython-312.pyc | Bin 0 -> 44285 bytes .../__pycache__/transit.cpython-312.pyc | Bin 0 -> 48326 bytes .../api/secrets_engines/active_directory.py | 181 + .../hvac/api/secrets_engines/aws.py | 407 + .../hvac/api/secrets_engines/azure.py | 201 + .../hvac/api/secrets_engines/consul.py | 171 + .../hvac/api/secrets_engines/database.py | 405 + .../hvac/api/secrets_engines/gcp.py | 746 ++ .../hvac/api/secrets_engines/identity.py | 1642 ++++ .../hvac/api/secrets_engines/kv.py | 80 + .../hvac/api/secrets_engines/kv_v1.py | 144 + .../hvac/api/secrets_engines/kv_v2.py | 509 + .../hvac/api/secrets_engines/ldap.py | 236 + .../hvac/api/secrets_engines/pki.py | 878 ++ .../hvac/api/secrets_engines/rabbitmq.py | 147 + .../hvac/api/secrets_engines/ssh.py | 557 ++ .../hvac/api/secrets_engines/transform.py | 1174 +++ .../hvac/api/secrets_engines/transit.py | 1163 +++ .../hvac/api/system_backend/__init__.py | 85 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 2145 bytes .../__pycache__/audit.cpython-312.pyc | Bin 0 -> 4562 bytes .../__pycache__/auth.cpython-312.pyc | Bin 0 -> 9657 bytes .../__pycache__/capabilities.cpython-312.pyc | Bin 0 -> 1808 bytes .../__pycache__/health.cpython-312.pyc | Bin 0 -> 3586 bytes .../__pycache__/init.cpython-312.pyc | Bin 0 -> 5745 bytes .../__pycache__/key.cpython-312.pyc | Bin 0 -> 16788 bytes .../__pycache__/leader.cpython-312.pyc | Bin 0 -> 1827 bytes .../__pycache__/lease.cpython-312.pyc | Bin 0 -> 5159 bytes .../__pycache__/mount.cpython-312.pyc | Bin 0 -> 10572 bytes .../__pycache__/namespace.cpython-312.pyc | Bin 0 -> 2188 bytes .../__pycache__/policies.cpython-312.pyc | Bin 0 -> 9648 bytes .../__pycache__/policy.cpython-312.pyc | Bin 0 -> 3721 bytes .../__pycache__/quota.cpython-312.pyc | Bin 0 -> 4466 bytes .../__pycache__/raft.cpython-312.pyc | Bin 0 -> 10552 bytes .../__pycache__/seal.cpython-312.pyc | Bin 0 -> 4158 bytes .../system_backend_mixin.cpython-312.pyc | Bin 0 -> 696 bytes .../__pycache__/wrapping.cpython-312.pyc | Bin 0 -> 2416 bytes .../hvac/api/system_backend/audit.py | 104 + .../hvac/api/system_backend/auth.py | 212 + .../hvac/api/system_backend/capabilities.py | 43 + .../hvac/api/system_backend/health.py | 83 + .../hvac/api/system_backend/init.py | 146 + .../hvac/api/system_backend/key.py | 407 + .../hvac/api/system_backend/leader.py | 35 + .../hvac/api/system_backend/lease.py | 131 + .../hvac/api/system_backend/mount.py | 239 + .../hvac/api/system_backend/namespace.py | 46 + .../hvac/api/system_backend/policies.py | 236 + .../hvac/api/system_backend/policy.py | 86 + .../hvac/api/system_backend/quota.py | 101 + .../hvac/api/system_backend/raft.py | 253 + .../hvac/api/system_backend/seal.py | 104 + .../system_backend/system_backend_mixin.py | 11 + .../hvac/api/system_backend/wrapping.py | 51 + .../site-packages/hvac/api/vault_api_base.py | 17 + .../hvac/api/vault_api_category.py | 100 + .../site-packages/hvac/aws_utils.py | 81 + .../operations => hvac/constants}/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 213 bytes .../__pycache__/approle.cpython-312.pyc | Bin 0 -> 408 bytes .../constants/__pycache__/aws.cpython-312.pyc | Bin 0 -> 597 bytes .../__pycache__/azure.cpython-312.pyc | Bin 0 -> 405 bytes .../__pycache__/client.cpython-312.pyc | Bin 0 -> 581 bytes .../constants/__pycache__/gcp.cpython-312.pyc | Bin 0 -> 743 bytes .../__pycache__/identity.cpython-312.pyc | Bin 0 -> 385 bytes .../__pycache__/transit.cpython-312.pyc | Bin 0 -> 1036 bytes .../site-packages/hvac/constants/approle.py | 11 + .../site-packages/hvac/constants/aws.py | 8 + .../site-packages/hvac/constants/azure.py | 9 + .../site-packages/hvac/constants/client.py | 28 + .../site-packages/hvac/constants/gcp.py | 17 + .../site-packages/hvac/constants/identity.py | 8 + .../site-packages/hvac/constants/transit.py | 52 + .../site-packages/hvac/exceptions.py | 85 + .../python3.12/site-packages/hvac/utils.py | 460 + .../site-packages/hvac/v1/__init__.py | 552 ++ .../v1/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 21129 bytes .../idna-3.10.dist-info/INSTALLER | 1 - .../idna-3.10.dist-info/LICENSE.md | 31 - .../idna-3.10.dist-info/METADATA | 250 - .../site-packages/idna-3.10.dist-info/RECORD | 22 - .../site-packages/idna-3.10.dist-info/WHEEL | 4 - .../python3.12/site-packages/idna/__init__.py | 45 - .../idna/__pycache__/__init__.cpython-312.pyc | Bin 901 -> 0 bytes .../idna/__pycache__/codec.cpython-312.pyc | Bin 5001 -> 0 bytes .../idna/__pycache__/compat.cpython-312.pyc | Bin 905 -> 0 bytes .../idna/__pycache__/core.cpython-312.pyc | Bin 16191 -> 0 bytes .../idna/__pycache__/idnadata.cpython-312.pyc | Bin 99491 -> 0 bytes .../__pycache__/intranges.cpython-312.pyc | Bin 2653 -> 0 bytes .../__pycache__/package_data.cpython-312.pyc | Bin 232 -> 0 bytes .../__pycache__/uts46data.cpython-312.pyc | Bin 158861 -> 0 bytes .../python3.12/site-packages/idna/codec.py | 122 - .../python3.12/site-packages/idna/compat.py | 15 - .../lib/python3.12/site-packages/idna/core.py | 437 - .../python3.12/site-packages/idna/idnadata.py | 4243 -------- .../site-packages/idna/intranges.py | 57 - .../site-packages/idna/package_data.py | 1 - .../python3.12/site-packages/idna/py.typed | 0 .../site-packages/idna/uts46data.py | 8681 ----------------- .../pip-24.0.dist-info/AUTHORS.txt | 760 -- .../pip-24.0.dist-info/INSTALLER | 1 - .../pip-24.0.dist-info/LICENSE.txt | 20 - .../site-packages/pip-24.0.dist-info/METADATA | 88 - .../site-packages/pip-24.0.dist-info/RECORD | 1005 -- .../pip-24.0.dist-info/REQUESTED | 0 .../site-packages/pip-24.0.dist-info/WHEEL | 5 - .../pip-24.0.dist-info/entry_points.txt | 4 - .../pip-24.0.dist-info/top_level.txt | 1 - .../python3.12/site-packages/pip/__init__.py | 13 - .../python3.12/site-packages/pip/__main__.py | 24 - .../site-packages/pip/__pip-runner__.py | 50 - .../pip/__pycache__/__init__.cpython-312.pyc | Bin 711 -> 0 bytes .../pip/__pycache__/__main__.cpython-312.pyc | Bin 867 -> 0 bytes .../__pip-runner__.cpython-312.pyc | Bin 2230 -> 0 bytes .../site-packages/pip/_internal/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 813 -> 0 bytes .../__pycache__/build_env.cpython-312.pyc | Bin 14320 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 12691 -> 0 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 17692 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 33310 -> 0 bytes .../__pycache__/main.cpython-312.pyc | Bin 696 -> 0 bytes .../__pycache__/pyproject.cpython-312.pyc | Bin 4997 -> 0 bytes .../self_outdated_check.cpython-312.pyc | Bin 10578 -> 0 bytes .../__pycache__/wheel_builder.cpython-312.pyc | Bin 13675 -> 0 bytes .../site-packages/pip/_internal/build_env.py | 311 - .../site-packages/pip/_internal/cache.py | 290 - .../pip/_internal/cli/__init__.py | 4 - .../cli/__pycache__/__init__.cpython-312.pyc | Bin 304 -> 0 bytes .../autocompletion.cpython-312.pyc | Bin 8491 -> 0 bytes .../__pycache__/base_command.cpython-312.pyc | Bin 10481 -> 0 bytes .../__pycache__/cmdoptions.cpython-312.pyc | Bin 30400 -> 0 bytes .../command_context.cpython-312.pyc | Bin 1807 -> 0 bytes .../cli/__pycache__/main.cpython-312.pyc | Bin 2324 -> 0 bytes .../__pycache__/main_parser.cpython-312.pyc | Bin 4931 -> 0 bytes .../cli/__pycache__/parser.cpython-312.pyc | Bin 15048 -> 0 bytes .../__pycache__/progress_bars.cpython-312.pyc | Bin 2646 -> 0 bytes .../__pycache__/req_command.cpython-312.pyc | Bin 18878 -> 0 bytes .../cli/__pycache__/spinners.cpython-312.pyc | Bin 7866 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 401 -> 0 bytes .../pip/_internal/cli/autocompletion.py | 172 - .../pip/_internal/cli/base_command.py | 236 - .../pip/_internal/cli/cmdoptions.py | 1074 -- .../pip/_internal/cli/command_context.py | 27 - .../site-packages/pip/_internal/cli/main.py | 79 - .../pip/_internal/cli/main_parser.py | 134 - .../site-packages/pip/_internal/cli/parser.py | 294 - .../pip/_internal/cli/progress_bars.py | 68 - .../pip/_internal/cli/req_command.py | 505 - .../pip/_internal/cli/spinners.py | 159 - .../pip/_internal/cli/status_codes.py | 6 - .../pip/_internal/commands/__init__.py | 132 - .../__pycache__/__init__.cpython-312.pyc | Bin 4028 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 9737 -> 0 bytes .../__pycache__/check.cpython-312.pyc | Bin 2116 -> 0 bytes .../__pycache__/completion.cpython-312.pyc | Bin 5218 -> 0 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 13238 -> 0 bytes .../__pycache__/debug.cpython-312.pyc | Bin 10187 -> 0 bytes .../__pycache__/download.cpython-312.pyc | Bin 7615 -> 0 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 4442 -> 0 bytes .../commands/__pycache__/hash.cpython-312.pyc | Bin 3009 -> 0 bytes .../commands/__pycache__/help.cpython-312.pyc | Bin 1699 -> 0 bytes .../__pycache__/index.cpython-312.pyc | Bin 6746 -> 0 bytes .../__pycache__/inspect.cpython-312.pyc | Bin 4001 -> 0 bytes .../__pycache__/install.cpython-312.pyc | Bin 28939 -> 0 bytes .../commands/__pycache__/list.cpython-312.pyc | Bin 15682 -> 0 bytes .../__pycache__/search.cpython-312.pyc | Bin 7647 -> 0 bytes .../commands/__pycache__/show.cpython-312.pyc | Bin 9754 -> 0 bytes .../__pycache__/uninstall.cpython-312.pyc | Bin 4752 -> 0 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 8982 -> 0 bytes .../pip/_internal/commands/cache.py | 225 - .../pip/_internal/commands/check.py | 54 - .../pip/_internal/commands/completion.py | 130 - .../pip/_internal/commands/configuration.py | 280 - .../pip/_internal/commands/debug.py | 201 - .../pip/_internal/commands/download.py | 147 - .../pip/_internal/commands/freeze.py | 109 - .../pip/_internal/commands/hash.py | 59 - .../pip/_internal/commands/help.py | 41 - .../pip/_internal/commands/index.py | 139 - .../pip/_internal/commands/inspect.py | 92 - .../pip/_internal/commands/install.py | 774 -- .../pip/_internal/commands/list.py | 370 - .../pip/_internal/commands/search.py | 174 - .../pip/_internal/commands/show.py | 189 - .../pip/_internal/commands/uninstall.py | 113 - .../pip/_internal/commands/wheel.py | 183 - .../pip/_internal/configuration.py | 383 - .../pip/_internal/distributions/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 967 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 2888 -> 0 bytes .../__pycache__/installed.cpython-312.pyc | Bin 1726 -> 0 bytes .../__pycache__/sdist.cpython-312.pyc | Bin 8514 -> 0 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 2274 -> 0 bytes .../pip/_internal/distributions/base.py | 51 - .../pip/_internal/distributions/installed.py | 29 - .../pip/_internal/distributions/sdist.py | 156 - .../pip/_internal/distributions/wheel.py | 40 - .../site-packages/pip/_internal/exceptions.py | 728 -- .../pip/_internal/index/__init__.py | 2 - .../__pycache__/__init__.cpython-312.pyc | Bin 258 -> 0 bytes .../__pycache__/collector.cpython-312.pyc | Bin 21912 -> 0 bytes .../package_finder.cpython-312.pyc | Bin 40761 -> 0 bytes .../index/__pycache__/sources.cpython-312.pyc | Bin 12630 -> 0 bytes .../pip/_internal/index/collector.py | 507 - .../pip/_internal/index/package_finder.py | 1027 -- .../pip/_internal/index/sources.py | 285 - .../pip/_internal/locations/__init__.py | 467 - .../__pycache__/__init__.cpython-312.pyc | Bin 16802 -> 0 bytes .../__pycache__/_distutils.cpython-312.pyc | Bin 6882 -> 0 bytes .../__pycache__/_sysconfig.cpython-312.pyc | Bin 8037 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 3807 -> 0 bytes .../pip/_internal/locations/_distutils.py | 172 - .../pip/_internal/locations/_sysconfig.py | 213 - .../pip/_internal/locations/base.py | 81 - .../site-packages/pip/_internal/main.py | 12 - .../pip/_internal/metadata/__init__.py | 128 - .../__pycache__/__init__.cpython-312.pyc | Bin 5908 -> 0 bytes .../__pycache__/_json.cpython-312.pyc | Bin 2901 -> 0 bytes .../metadata/__pycache__/base.cpython-312.pyc | Bin 35738 -> 0 bytes .../__pycache__/pkg_resources.cpython-312.pyc | Bin 15816 -> 0 bytes .../pip/_internal/metadata/_json.py | 84 - .../pip/_internal/metadata/base.py | 702 -- .../_internal/metadata/importlib/__init__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 384 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 3359 -> 0 bytes .../__pycache__/_dists.cpython-312.pyc | Bin 13451 -> 0 bytes .../__pycache__/_envs.cpython-312.pyc | Bin 11206 -> 0 bytes .../_internal/metadata/importlib/_compat.py | 55 - .../_internal/metadata/importlib/_dists.py | 227 - .../pip/_internal/metadata/importlib/_envs.py | 189 - .../pip/_internal/metadata/pkg_resources.py | 278 - .../pip/_internal/models/__init__.py | 2 - .../__pycache__/__init__.cpython-312.pyc | Bin 292 -> 0 bytes .../__pycache__/candidate.cpython-312.pyc | Bin 1931 -> 0 bytes .../__pycache__/direct_url.cpython-312.pyc | Bin 11225 -> 0 bytes .../format_control.cpython-312.pyc | Bin 4253 -> 0 bytes .../models/__pycache__/index.cpython-312.pyc | Bin 1720 -> 0 bytes .../installation_report.cpython-312.pyc | Bin 2298 -> 0 bytes .../models/__pycache__/link.cpython-312.pyc | Bin 26028 -> 0 bytes .../models/__pycache__/scheme.cpython-312.pyc | Bin 1195 -> 0 bytes .../__pycache__/search_scope.cpython-312.pyc | Bin 5114 -> 0 bytes .../selection_prefs.cpython-312.pyc | Bin 1877 -> 0 bytes .../__pycache__/target_python.cpython-312.pyc | Bin 4980 -> 0 bytes .../models/__pycache__/wheel.cpython-312.pyc | Bin 5806 -> 0 bytes .../pip/_internal/models/candidate.py | 30 - .../pip/_internal/models/direct_url.py | 235 - .../pip/_internal/models/format_control.py | 78 - .../pip/_internal/models/index.py | 28 - .../_internal/models/installation_report.py | 56 - .../pip/_internal/models/link.py | 579 -- .../pip/_internal/models/scheme.py | 31 - .../pip/_internal/models/search_scope.py | 132 - .../pip/_internal/models/selection_prefs.py | 51 - .../pip/_internal/models/target_python.py | 122 - .../pip/_internal/models/wheel.py | 92 - .../pip/_internal/network/__init__.py | 2 - .../__pycache__/__init__.cpython-312.pyc | Bin 280 -> 0 bytes .../network/__pycache__/auth.cpython-312.pyc | Bin 22022 -> 0 bytes .../network/__pycache__/cache.cpython-312.pyc | Bin 6544 -> 0 bytes .../__pycache__/download.cpython-312.pyc | Bin 8579 -> 0 bytes .../__pycache__/lazy_wheel.cpython-312.pyc | Bin 11689 -> 0 bytes .../__pycache__/session.cpython-312.pyc | Bin 18800 -> 0 bytes .../network/__pycache__/utils.cpython-312.pyc | Bin 2279 -> 0 bytes .../__pycache__/xmlrpc.cpython-312.pyc | Bin 2975 -> 0 bytes .../pip/_internal/network/auth.py | 561 -- .../pip/_internal/network/cache.py | 106 - .../pip/_internal/network/download.py | 186 - .../pip/_internal/network/lazy_wheel.py | 210 - .../pip/_internal/network/session.py | 520 - .../pip/_internal/network/utils.py | 96 - .../pip/_internal/network/xmlrpc.py | 62 - .../__pycache__/__init__.cpython-312.pyc | Bin 223 -> 0 bytes .../__pycache__/check.cpython-312.pyc | Bin 7605 -> 0 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 10143 -> 0 bytes .../__pycache__/prepare.cpython-312.pyc | Bin 25773 -> 0 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 229 -> 0 bytes .../__pycache__/build_tracker.cpython-312.pyc | Bin 7849 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 1906 -> 0 bytes .../metadata_editable.cpython-312.pyc | Bin 1940 -> 0 bytes .../metadata_legacy.cpython-312.pyc | Bin 3091 -> 0 bytes .../build/__pycache__/wheel.cpython-312.pyc | Bin 1710 -> 0 bytes .../wheel_editable.cpython-312.pyc | Bin 2051 -> 0 bytes .../__pycache__/wheel_legacy.cpython-312.pyc | Bin 3955 -> 0 bytes .../operations/build/build_tracker.py | 139 - .../_internal/operations/build/metadata.py | 39 - .../operations/build/metadata_editable.py | 41 - .../operations/build/metadata_legacy.py | 74 - .../pip/_internal/operations/build/wheel.py | 37 - .../operations/build/wheel_editable.py | 46 - .../operations/build/wheel_legacy.py | 102 - .../pip/_internal/operations/check.py | 187 - .../pip/_internal/operations/freeze.py | 255 - .../_internal/operations/install/__init__.py | 2 - .../__pycache__/__init__.cpython-312.pyc | Bin 292 -> 0 bytes .../editable_legacy.cpython-312.pyc | Bin 1843 -> 0 bytes .../install/__pycache__/wheel.cpython-312.pyc | Bin 33885 -> 0 bytes .../operations/install/editable_legacy.py | 46 - .../pip/_internal/operations/install/wheel.py | 734 -- .../pip/_internal/operations/prepare.py | 730 -- .../site-packages/pip/_internal/pyproject.py | 179 - .../pip/_internal/req/__init__.py | 92 - .../req/__pycache__/__init__.cpython-312.pyc | Bin 3769 -> 0 bytes .../__pycache__/constructors.cpython-312.pyc | Bin 21608 -> 0 bytes .../req/__pycache__/req_file.cpython-312.pyc | Bin 21487 -> 0 bytes .../__pycache__/req_install.cpython-312.pyc | Bin 38440 -> 0 bytes .../req/__pycache__/req_set.cpython-312.pyc | Bin 7244 -> 0 bytes .../__pycache__/req_uninstall.cpython-312.pyc | Bin 33003 -> 0 bytes .../pip/_internal/req/constructors.py | 576 -- .../pip/_internal/req/req_file.py | 554 -- .../pip/_internal/req/req_install.py | 923 -- .../pip/_internal/req/req_set.py | 119 - .../pip/_internal/req/req_uninstall.py | 649 -- .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 223 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 1211 -> 0 bytes .../pip/_internal/resolution/base.py | 20 - .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 230 -> 0 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 22465 -> 0 bytes .../_internal/resolution/legacy/resolver.py | 598 -- .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 234 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 8363 -> 0 bytes .../__pycache__/candidates.cpython-312.pyc | Bin 30424 -> 0 bytes .../__pycache__/factory.cpython-312.pyc | Bin 32140 -> 0 bytes .../found_candidates.cpython-312.pyc | Bin 6234 -> 0 bytes .../__pycache__/provider.cpython-312.pyc | Bin 10404 -> 0 bytes .../__pycache__/reporter.cpython-312.pyc | Bin 4961 -> 0 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 11455 -> 0 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 12377 -> 0 bytes .../_internal/resolution/resolvelib/base.py | 141 - .../resolution/resolvelib/candidates.py | 597 -- .../resolution/resolvelib/factory.py | 812 -- .../resolution/resolvelib/found_candidates.py | 155 - .../resolution/resolvelib/provider.py | 255 - .../resolution/resolvelib/reporter.py | 80 - .../resolution/resolvelib/requirements.py | 166 - .../resolution/resolvelib/resolver.py | 317 - .../pip/_internal/self_outdated_check.py | 248 - .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 218 -> 0 bytes .../__pycache__/_jaraco_text.cpython-312.pyc | Bin 4559 -> 0 bytes .../utils/__pycache__/_log.cpython-312.pyc | Bin 1889 -> 0 bytes .../utils/__pycache__/appdirs.cpython-312.pyc | Bin 2433 -> 0 bytes .../utils/__pycache__/compat.cpython-312.pyc | Bin 2236 -> 0 bytes .../compatibility_tags.cpython-312.pyc | Bin 5584 -> 0 bytes .../__pycache__/datetime.cpython-312.pyc | Bin 707 -> 0 bytes .../__pycache__/deprecation.cpython-312.pyc | Bin 4209 -> 0 bytes .../direct_url_helpers.cpython-312.pyc | Bin 3586 -> 0 bytes .../__pycache__/egg_link.cpython-312.pyc | Bin 3249 -> 0 bytes .../__pycache__/encoding.cpython-312.pyc | Bin 2181 -> 0 bytes .../__pycache__/entrypoints.cpython-312.pyc | Bin 4016 -> 0 bytes .../__pycache__/filesystem.cpython-312.pyc | Bin 7481 -> 0 bytes .../__pycache__/filetypes.cpython-312.pyc | Bin 1187 -> 0 bytes .../utils/__pycache__/glibc.cpython-312.pyc | Bin 2365 -> 0 bytes .../utils/__pycache__/hashes.cpython-312.pyc | Bin 7577 -> 0 bytes .../utils/__pycache__/logging.cpython-312.pyc | Bin 13580 -> 0 bytes .../utils/__pycache__/misc.cpython-312.pyc | Bin 34144 -> 0 bytes .../utils/__pycache__/models.cpython-312.pyc | Bin 2735 -> 0 bytes .../__pycache__/packaging.cpython-312.pyc | Bin 2606 -> 0 bytes .../setuptools_build.cpython-312.pyc | Bin 4573 -> 0 bytes .../__pycache__/subprocess.cpython-312.pyc | Bin 8741 -> 0 bytes .../__pycache__/temp_dir.cpython-312.pyc | Bin 12085 -> 0 bytes .../__pycache__/unpacking.cpython-312.pyc | Bin 11131 -> 0 bytes .../utils/__pycache__/urls.cpython-312.pyc | Bin 2428 -> 0 bytes .../__pycache__/virtualenv.cpython-312.pyc | Bin 4503 -> 0 bytes .../utils/__pycache__/wheel.cpython-312.pyc | Bin 5949 -> 0 bytes .../pip/_internal/utils/_jaraco_text.py | 109 - .../site-packages/pip/_internal/utils/_log.py | 38 - .../pip/_internal/utils/appdirs.py | 52 - .../pip/_internal/utils/compat.py | 63 - .../pip/_internal/utils/compatibility_tags.py | 165 - .../pip/_internal/utils/datetime.py | 11 - .../pip/_internal/utils/deprecation.py | 120 - .../pip/_internal/utils/direct_url_helpers.py | 87 - .../pip/_internal/utils/egg_link.py | 80 - .../pip/_internal/utils/encoding.py | 36 - .../pip/_internal/utils/entrypoints.py | 84 - .../pip/_internal/utils/filesystem.py | 153 - .../pip/_internal/utils/filetypes.py | 27 - .../pip/_internal/utils/glibc.py | 88 - .../pip/_internal/utils/hashes.py | 151 - .../pip/_internal/utils/logging.py | 348 - .../site-packages/pip/_internal/utils/misc.py | 783 -- .../pip/_internal/utils/models.py | 39 - .../pip/_internal/utils/packaging.py | 57 - .../pip/_internal/utils/setuptools_build.py | 146 - .../pip/_internal/utils/subprocess.py | 260 - .../pip/_internal/utils/temp_dir.py | 296 - .../pip/_internal/utils/unpacking.py | 257 - .../site-packages/pip/_internal/utils/urls.py | 62 - .../pip/_internal/utils/virtualenv.py | 104 - .../pip/_internal/utils/wheel.py | 134 - .../pip/_internal/vcs/__init__.py | 15 - .../vcs/__pycache__/__init__.cpython-312.pyc | Bin 557 -> 0 bytes .../vcs/__pycache__/bazaar.cpython-312.pyc | Bin 5049 -> 0 bytes .../vcs/__pycache__/git.cpython-312.pyc | Bin 19018 -> 0 bytes .../vcs/__pycache__/mercurial.cpython-312.pyc | Bin 7638 -> 0 bytes .../__pycache__/subversion.cpython-312.pyc | Bin 12510 -> 0 bytes .../versioncontrol.cpython-312.pyc | Bin 29036 -> 0 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 112 - .../site-packages/pip/_internal/vcs/git.py | 526 - .../pip/_internal/vcs/mercurial.py | 163 - .../pip/_internal/vcs/subversion.py | 324 - .../pip/_internal/vcs/versioncontrol.py | 705 -- .../pip/_internal/wheel_builder.py | 354 - .../site-packages/pip/_vendor/__init__.py | 121 - .../__pycache__/__init__.cpython-312.pyc | Bin 4719 -> 0 bytes .../_vendor/__pycache__/six.cpython-312.pyc | Bin 41296 -> 0 bytes .../typing_extensions.cpython-312.pyc | Bin 122076 -> 0 bytes .../pip/_vendor/cachecontrol/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 929 -> 0 bytes .../__pycache__/_cmd.cpython-312.pyc | Bin 2673 -> 0 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 6491 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 3836 -> 0 bytes .../__pycache__/controller.cpython-312.pyc | Bin 16194 -> 0 bytes .../__pycache__/filewrapper.cpython-312.pyc | Bin 4374 -> 0 bytes .../__pycache__/heuristics.cpython-312.pyc | Bin 6721 -> 0 bytes .../__pycache__/serialize.cpython-312.pyc | Bin 6432 -> 0 bytes .../__pycache__/wrapper.cpython-312.pyc | Bin 1701 -> 0 bytes .../pip/_vendor/cachecontrol/_cmd.py | 70 - .../pip/_vendor/cachecontrol/adapter.py | 161 - .../pip/_vendor/cachecontrol/cache.py | 74 - .../_vendor/cachecontrol/caches/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 462 -> 0 bytes .../__pycache__/file_cache.cpython-312.pyc | Bin 7737 -> 0 bytes .../__pycache__/redis_cache.cpython-312.pyc | Bin 2765 -> 0 bytes .../_vendor/cachecontrol/caches/file_cache.py | 181 - .../cachecontrol/caches/redis_cache.py | 48 - .../pip/_vendor/cachecontrol/controller.py | 494 - .../pip/_vendor/cachecontrol/filewrapper.py | 119 - .../pip/_vendor/cachecontrol/heuristics.py | 154 - .../pip/_vendor/cachecontrol/serialize.py | 206 - .../pip/_vendor/cachecontrol/wrapper.py | 43 - .../pip/_vendor/certifi/__init__.py | 4 - .../pip/_vendor/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 345 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 672 -> 0 bytes .../certifi/__pycache__/core.cpython-312.pyc | Bin 3354 -> 0 bytes .../pip/_vendor/certifi/cacert.pem | 4635 --------- .../site-packages/pip/_vendor/certifi/core.py | 119 - .../pip/_vendor/chardet/__init__.py | 115 - .../__pycache__/__init__.cpython-312.pyc | Bin 4595 -> 0 bytes .../__pycache__/big5freq.cpython-312.pyc | Bin 27226 -> 0 bytes .../__pycache__/big5prober.cpython-312.pyc | Bin 1414 -> 0 bytes .../chardistribution.cpython-312.pyc | Bin 9665 -> 0 bytes .../charsetgroupprober.cpython-312.pyc | Bin 4149 -> 0 bytes .../__pycache__/charsetprober.cpython-312.pyc | Bin 5045 -> 0 bytes .../codingstatemachine.cpython-312.pyc | Bin 3905 -> 0 bytes .../codingstatemachinedict.cpython-312.pyc | Bin 816 -> 0 bytes .../__pycache__/cp949prober.cpython-312.pyc | Bin 1423 -> 0 bytes .../chardet/__pycache__/enums.cpython-312.pyc | Bin 3023 -> 0 bytes .../__pycache__/escprober.cpython-312.pyc | Bin 4593 -> 0 bytes .../chardet/__pycache__/escsm.cpython-312.pyc | Bin 15337 -> 0 bytes .../__pycache__/eucjpprober.cpython-312.pyc | Bin 4410 -> 0 bytes .../__pycache__/euckrfreq.cpython-312.pyc | Bin 12109 -> 0 bytes .../__pycache__/euckrprober.cpython-312.pyc | Bin 1417 -> 0 bytes .../__pycache__/euctwfreq.cpython-312.pyc | Bin 27231 -> 0 bytes .../__pycache__/euctwprober.cpython-312.pyc | Bin 1417 -> 0 bytes .../__pycache__/gb2312freq.cpython-312.pyc | Bin 19153 -> 0 bytes .../__pycache__/gb2312prober.cpython-312.pyc | Bin 1430 -> 0 bytes .../__pycache__/hebrewprober.cpython-312.pyc | Bin 5849 -> 0 bytes .../__pycache__/jisfreq.cpython-312.pyc | Bin 22182 -> 0 bytes .../__pycache__/johabfreq.cpython-312.pyc | Bin 83030 -> 0 bytes .../__pycache__/johabprober.cpython-312.pyc | Bin 1421 -> 0 bytes .../__pycache__/jpcntx.cpython-312.pyc | Bin 39576 -> 0 bytes .../langbulgarianmodel.cpython-312.pyc | Bin 83149 -> 0 bytes .../langgreekmodel.cpython-312.pyc | Bin 77015 -> 0 bytes .../langhebrewmodel.cpython-312.pyc | Bin 77526 -> 0 bytes .../langhungarianmodel.cpython-312.pyc | Bin 83103 -> 0 bytes .../langrussianmodel.cpython-312.pyc | Bin 105278 -> 0 bytes .../__pycache__/langthaimodel.cpython-312.pyc | Bin 77704 -> 0 bytes .../langturkishmodel.cpython-312.pyc | Bin 77543 -> 0 bytes .../__pycache__/latin1prober.cpython-312.pyc | Bin 7029 -> 0 bytes .../macromanprober.cpython-312.pyc | Bin 7209 -> 0 bytes .../mbcharsetprober.cpython-312.pyc | Bin 3930 -> 0 bytes .../mbcsgroupprober.cpython-312.pyc | Bin 1615 -> 0 bytes .../__pycache__/mbcssm.cpython-312.pyc | Bin 38672 -> 0 bytes .../__pycache__/resultdict.cpython-312.pyc | Bin 659 -> 0 bytes .../sbcharsetprober.cpython-312.pyc | Bin 6414 -> 0 bytes .../sbcsgroupprober.cpython-312.pyc | Bin 2384 -> 0 bytes .../__pycache__/sjisprober.cpython-312.pyc | Bin 4522 -> 0 bytes .../universaldetector.cpython-312.pyc | Bin 12296 -> 0 bytes .../__pycache__/utf1632prober.cpython-312.pyc | Bin 10006 -> 0 bytes .../__pycache__/utf8prober.cpython-312.pyc | Bin 3202 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 515 -> 0 bytes .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 261 - .../pip/_vendor/chardet/charsetgroupprober.py | 106 - .../pip/_vendor/chardet/charsetprober.py | 147 - .../pip/_vendor/chardet/cli/__init__.py | 0 .../cli/__pycache__/__init__.cpython-312.pyc | Bin 222 -> 0 bytes .../__pycache__/chardetect.cpython-312.pyc | Bin 4039 -> 0 bytes .../pip/_vendor/chardet/cli/chardetect.py | 112 - .../pip/_vendor/chardet/codingstatemachine.py | 90 - .../_vendor/chardet/codingstatemachinedict.py | 19 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 85 - .../pip/_vendor/chardet/escprober.py | 102 - .../pip/_vendor/chardet/escsm.py | 261 - .../pip/_vendor/chardet/eucjpprober.py | 102 - .../pip/_vendor/chardet/euckrfreq.py | 196 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 388 - .../pip/_vendor/chardet/euctwprober.py | 47 - .../pip/_vendor/chardet/gb2312freq.py | 284 - .../pip/_vendor/chardet/gb2312prober.py | 47 - .../pip/_vendor/chardet/hebrewprober.py | 316 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/johabfreq.py | 2382 ----- .../pip/_vendor/chardet/johabprober.py | 47 - .../pip/_vendor/chardet/jpcntx.py | 238 - .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langgreekmodel.py | 4397 --------- .../pip/_vendor/chardet/langhebrewmodel.py | 4380 --------- .../pip/_vendor/chardet/langhungarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langrussianmodel.py | 5725 ----------- .../pip/_vendor/chardet/langthaimodel.py | 4380 --------- .../pip/_vendor/chardet/langturkishmodel.py | 4380 --------- .../pip/_vendor/chardet/latin1prober.py | 147 - .../pip/_vendor/chardet/macromanprober.py | 162 - .../pip/_vendor/chardet/mbcharsetprober.py | 95 - .../pip/_vendor/chardet/mbcsgroupprober.py | 57 - .../pip/_vendor/chardet/mbcssm.py | 661 -- .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 227 -> 0 bytes .../__pycache__/languages.cpython-312.pyc | Bin 9782 -> 0 bytes .../pip/_vendor/chardet/metadata/languages.py | 352 - .../pip/_vendor/chardet/resultdict.py | 16 - .../pip/_vendor/chardet/sbcharsetprober.py | 162 - .../pip/_vendor/chardet/sbcsgroupprober.py | 88 - .../pip/_vendor/chardet/sjisprober.py | 105 - .../pip/_vendor/chardet/universaldetector.py | 362 - .../pip/_vendor/chardet/utf1632prober.py | 225 - .../pip/_vendor/chardet/utf8prober.py | 82 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 519 -> 0 bytes .../colorama/__pycache__/ansi.cpython-312.pyc | Bin 3977 -> 0 bytes .../__pycache__/ansitowin32.cpython-312.pyc | Bin 16448 -> 0 bytes .../__pycache__/initialise.cpython-312.pyc | Bin 3577 -> 0 bytes .../__pycache__/win32.cpython-312.pyc | Bin 8153 -> 0 bytes .../__pycache__/winterm.cpython-312.pyc | Bin 9115 -> 0 bytes .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 277 - .../pip/_vendor/colorama/initialise.py | 121 - .../pip/_vendor/colorama/tests/__init__.py | 1 - .../__pycache__/__init__.cpython-312.pyc | Bin 225 -> 0 bytes .../__pycache__/ansi_test.cpython-312.pyc | Bin 5494 -> 0 bytes .../ansitowin32_test.cpython-312.pyc | Bin 18130 -> 0 bytes .../initialise_test.cpython-312.pyc | Bin 11775 -> 0 bytes .../__pycache__/isatty_test.cpython-312.pyc | Bin 4931 -> 0 bytes .../tests/__pycache__/utils.cpython-312.pyc | Bin 2515 -> 0 bytes .../__pycache__/winterm_test.cpython-312.pyc | Bin 6639 -> 0 bytes .../pip/_vendor/colorama/tests/ansi_test.py | 76 - .../colorama/tests/ansitowin32_test.py | 294 - .../_vendor/colorama/tests/initialise_test.py | 189 - .../pip/_vendor/colorama/tests/isatty_test.py | 57 - .../pip/_vendor/colorama/tests/utils.py | 49 - .../_vendor/colorama/tests/winterm_test.py | 131 - .../pip/_vendor/colorama/win32.py | 180 - .../pip/_vendor/colorama/winterm.py | 195 - .../pip/_vendor/distlib/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 1296 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 45632 -> 0 bytes .../__pycache__/database.cpython-312.pyc | Bin 66054 -> 0 bytes .../distlib/__pycache__/index.cpython-312.pyc | Bin 24393 -> 0 bytes .../__pycache__/locators.cpython-312.pyc | Bin 60185 -> 0 bytes .../__pycache__/manifest.cpython-312.pyc | Bin 15152 -> 0 bytes .../__pycache__/markers.cpython-312.pyc | Bin 7709 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 41826 -> 0 bytes .../__pycache__/resources.cpython-312.pyc | Bin 17352 -> 0 bytes .../__pycache__/scripts.cpython-312.pyc | Bin 19607 -> 0 bytes .../distlib/__pycache__/util.cpython-312.pyc | Bin 88283 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 30393 -> 0 bytes .../distlib/__pycache__/wheel.cpython-312.pyc | Bin 51888 -> 0 bytes .../pip/_vendor/distlib/compat.py | 1138 --- .../pip/_vendor/distlib/database.py | 1359 --- .../pip/_vendor/distlib/index.py | 508 - .../pip/_vendor/distlib/locators.py | 1303 --- .../pip/_vendor/distlib/manifest.py | 384 - .../pip/_vendor/distlib/markers.py | 167 - .../pip/_vendor/distlib/metadata.py | 1068 -- .../pip/_vendor/distlib/resources.py | 358 - .../pip/_vendor/distlib/scripts.py | 452 - .../site-packages/pip/_vendor/distlib/util.py | 2025 ---- .../pip/_vendor/distlib/version.py | 751 -- .../pip/_vendor/distlib/wheel.py | 1099 --- .../pip/_vendor/distro/__init__.py | 54 - .../pip/_vendor/distro/__main__.py | 4 - .../__pycache__/__init__.cpython-312.pyc | Bin 987 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 319 -> 0 bytes .../distro/__pycache__/distro.cpython-312.pyc | Bin 53781 -> 0 bytes .../pip/_vendor/distro/distro.py | 1399 --- .../pip/_vendor/idna/__init__.py | 44 - .../idna/__pycache__/__init__.cpython-312.pyc | Bin 908 -> 0 bytes .../idna/__pycache__/codec.cpython-312.pyc | Bin 4660 -> 0 bytes .../idna/__pycache__/compat.cpython-312.pyc | Bin 914 -> 0 bytes .../idna/__pycache__/core.cpython-312.pyc | Bin 16309 -> 0 bytes .../idna/__pycache__/idnadata.cpython-312.pyc | Bin 38409 -> 0 bytes .../__pycache__/intranges.cpython-312.pyc | Bin 2665 -> 0 bytes .../__pycache__/package_data.cpython-312.pyc | Bin 243 -> 0 bytes .../__pycache__/uts46data.cpython-312.pyc | Bin 158897 -> 0 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 - .../site-packages/pip/_vendor/idna/compat.py | 13 - .../site-packages/pip/_vendor/idna/core.py | 400 - .../pip/_vendor/idna/idnadata.py | 2151 ---- .../pip/_vendor/idna/intranges.py | 54 - .../pip/_vendor/idna/package_data.py | 2 - .../pip/_vendor/idna/uts46data.py | 8600 ---------------- .../pip/_vendor/msgpack/__init__.py | 57 - .../__pycache__/__init__.cpython-312.pyc | Bin 1858 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 2052 -> 0 bytes .../msgpack/__pycache__/ext.cpython-312.pyc | Bin 8695 -> 0 bytes .../__pycache__/fallback.cpython-312.pyc | Bin 43603 -> 0 bytes .../pip/_vendor/msgpack/exceptions.py | 48 - .../site-packages/pip/_vendor/msgpack/ext.py | 193 - .../pip/_vendor/msgpack/fallback.py | 1010 -- .../pip/_vendor/packaging/__about__.py | 26 - .../pip/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-312.pyc | Bin 657 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 493 -> 0 bytes .../__pycache__/_manylinux.cpython-312.pyc | Bin 12103 -> 0 bytes .../__pycache__/_musllinux.cpython-312.pyc | Bin 6937 -> 0 bytes .../__pycache__/_structures.cpython-312.pyc | Bin 3268 -> 0 bytes .../__pycache__/markers.cpython-312.pyc | Bin 14085 -> 0 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 6973 -> 0 bytes .../__pycache__/specifiers.cpython-312.pyc | Bin 31274 -> 0 bytes .../__pycache__/tags.cpython-312.pyc | Bin 18983 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 5895 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 19966 -> 0 bytes .../pip/_vendor/packaging/_manylinux.py | 301 - .../pip/_vendor/packaging/_musllinux.py | 136 - .../pip/_vendor/packaging/_structures.py | 61 - .../pip/_vendor/packaging/markers.py | 304 - .../pip/_vendor/packaging/requirements.py | 146 - .../pip/_vendor/packaging/specifiers.py | 802 -- .../pip/_vendor/packaging/tags.py | 487 - .../pip/_vendor/packaging/utils.py | 136 - .../pip/_vendor/packaging/version.py | 504 - .../pip/_vendor/pkg_resources/__init__.py | 3361 ------- .../__pycache__/__init__.cpython-312.pyc | Bin 146501 -> 0 bytes .../pip/_vendor/platformdirs/__init__.py | 566 -- .../pip/_vendor/platformdirs/__main__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 18056 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 1973 -> 0 bytes .../__pycache__/android.cpython-312.pyc | Bin 9471 -> 0 bytes .../__pycache__/api.cpython-312.pyc | Bin 9699 -> 0 bytes .../__pycache__/macos.cpython-312.pyc | Bin 5664 -> 0 bytes .../__pycache__/unix.cpython-312.pyc | Bin 12468 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 338 -> 0 bytes .../__pycache__/windows.cpython-312.pyc | Bin 13026 -> 0 bytes .../pip/_vendor/platformdirs/android.py | 210 - .../pip/_vendor/platformdirs/api.py | 223 - .../pip/_vendor/platformdirs/macos.py | 91 - .../pip/_vendor/platformdirs/unix.py | 223 - .../pip/_vendor/platformdirs/version.py | 4 - .../pip/_vendor/platformdirs/windows.py | 255 - .../pip/_vendor/pygments/__init__.py | 82 - .../pip/_vendor/pygments/__main__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 3516 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 762 -> 0 bytes .../__pycache__/cmdline.cpython-312.pyc | Bin 26633 -> 0 bytes .../__pycache__/console.cpython-312.pyc | Bin 2654 -> 0 bytes .../__pycache__/filter.cpython-312.pyc | Bin 3260 -> 0 bytes .../__pycache__/formatter.cpython-312.pyc | Bin 4597 -> 0 bytes .../__pycache__/lexer.cpython-312.pyc | Bin 38357 -> 0 bytes .../__pycache__/modeline.cpython-312.pyc | Bin 1596 -> 0 bytes .../__pycache__/plugin.cpython-312.pyc | Bin 3424 -> 0 bytes .../__pycache__/regexopt.cpython-312.pyc | Bin 4109 -> 0 bytes .../__pycache__/scanner.cpython-312.pyc | Bin 4784 -> 0 bytes .../__pycache__/sphinxext.cpython-312.pyc | Bin 11074 -> 0 bytes .../__pycache__/style.cpython-312.pyc | Bin 6702 -> 0 bytes .../__pycache__/token.cpython-312.pyc | Bin 8170 -> 0 bytes .../__pycache__/unistring.cpython-312.pyc | Bin 33016 -> 0 bytes .../pygments/__pycache__/util.cpython-312.pyc | Bin 14009 -> 0 bytes .../pip/_vendor/pygments/cmdline.py | 668 -- .../pip/_vendor/pygments/console.py | 70 - .../pip/_vendor/pygments/filter.py | 71 - .../pip/_vendor/pygments/filters/__init__.py | 940 -- .../__pycache__/__init__.cpython-312.pyc | Bin 37964 -> 0 bytes .../pip/_vendor/pygments/formatter.py | 124 - .../_vendor/pygments/formatters/__init__.py | 158 - .../__pycache__/__init__.cpython-312.pyc | Bin 6954 -> 0 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 4243 -> 0 bytes .../__pycache__/bbcode.cpython-312.pyc | Bin 4222 -> 0 bytes .../__pycache__/groff.cpython-312.pyc | Bin 7292 -> 0 bytes .../__pycache__/html.cpython-312.pyc | Bin 40600 -> 0 bytes .../__pycache__/img.cpython-312.pyc | Bin 27071 -> 0 bytes .../__pycache__/irc.cpython-312.pyc | Bin 6093 -> 0 bytes .../__pycache__/latex.cpython-312.pyc | Bin 19982 -> 0 bytes .../__pycache__/other.cpython-312.pyc | Bin 6912 -> 0 bytes .../__pycache__/pangomarkup.cpython-312.pyc | Bin 2958 -> 0 bytes .../__pycache__/rtf.cpython-312.pyc | Bin 6154 -> 0 bytes .../__pycache__/svg.cpython-312.pyc | Bin 9094 -> 0 bytes .../__pycache__/terminal.cpython-312.pyc | Bin 5857 -> 0 bytes .../__pycache__/terminal256.cpython-312.pyc | Bin 15185 -> 0 bytes .../_vendor/pygments/formatters/_mapping.py | 23 - .../pip/_vendor/pygments/formatters/bbcode.py | 108 - .../pip/_vendor/pygments/formatters/groff.py | 170 - .../pip/_vendor/pygments/formatters/html.py | 989 -- .../pip/_vendor/pygments/formatters/img.py | 645 -- .../pip/_vendor/pygments/formatters/irc.py | 154 - .../pip/_vendor/pygments/formatters/latex.py | 521 - .../pip/_vendor/pygments/formatters/other.py | 161 - .../pygments/formatters/pangomarkup.py | 83 - .../pip/_vendor/pygments/formatters/rtf.py | 146 - .../pip/_vendor/pygments/formatters/svg.py | 188 - .../_vendor/pygments/formatters/terminal.py | 127 - .../pygments/formatters/terminal256.py | 338 - .../pip/_vendor/pygments/lexer.py | 943 -- .../pip/_vendor/pygments/lexers/__init__.py | 362 - .../__pycache__/__init__.cpython-312.pyc | Bin 14680 -> 0 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 64432 -> 0 bytes .../lexers/__pycache__/python.cpython-312.pyc | Bin 42667 -> 0 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 559 -- .../pip/_vendor/pygments/lexers/python.py | 1198 --- .../pip/_vendor/pygments/modeline.py | 43 - .../pip/_vendor/pygments/plugin.py | 88 - .../pip/_vendor/pygments/regexopt.py | 91 - .../pip/_vendor/pygments/scanner.py | 104 - .../pip/_vendor/pygments/sphinxext.py | 217 - .../pip/_vendor/pygments/style.py | 197 - .../pip/_vendor/pygments/styles/__init__.py | 103 - .../__pycache__/__init__.cpython-312.pyc | Bin 4476 -> 0 bytes .../pip/_vendor/pygments/token.py | 213 - .../pip/_vendor/pygments/unistring.py | 153 - .../pip/_vendor/pygments/util.py | 330 - .../pip/_vendor/pyparsing/__init__.py | 322 - .../__pycache__/__init__.cpython-312.pyc | Bin 7939 -> 0 bytes .../__pycache__/actions.cpython-312.pyc | Bin 8423 -> 0 bytes .../__pycache__/common.cpython-312.pyc | Bin 13442 -> 0 bytes .../__pycache__/core.cpython-312.pyc | Bin 267736 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 13022 -> 0 bytes .../__pycache__/helpers.cpython-312.pyc | Bin 48529 -> 0 bytes .../__pycache__/results.cpython-312.pyc | Bin 34138 -> 0 bytes .../__pycache__/testing.cpython-312.pyc | Bin 17216 -> 0 bytes .../__pycache__/unicode.cpython-312.pyc | Bin 13212 -> 0 bytes .../__pycache__/util.cpython-312.pyc | Bin 14932 -> 0 bytes .../pip/_vendor/pyparsing/actions.py | 217 - .../pip/_vendor/pyparsing/common.py | 432 - .../pip/_vendor/pyparsing/core.py | 6115 ------------ .../pip/_vendor/pyparsing/diagram/__init__.py | 656 -- .../__pycache__/__init__.cpython-312.pyc | Bin 26841 -> 0 bytes .../pip/_vendor/pyparsing/exceptions.py | 299 - .../pip/_vendor/pyparsing/helpers.py | 1100 --- .../pip/_vendor/pyparsing/results.py | 796 -- .../pip/_vendor/pyparsing/testing.py | 331 - .../pip/_vendor/pyparsing/unicode.py | 361 - .../pip/_vendor/pyparsing/util.py | 284 - .../pip/_vendor/pyproject_hooks/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 641 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 402 -> 0 bytes .../__pycache__/_impl.cpython-312.pyc | Bin 14753 -> 0 bytes .../pip/_vendor/pyproject_hooks/_compat.py | 8 - .../pip/_vendor/pyproject_hooks/_impl.py | 330 - .../pyproject_hooks/_in_process/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 1108 -> 0 bytes .../__pycache__/_in_process.cpython-312.pyc | Bin 14425 -> 0 bytes .../_in_process/_in_process.py | 353 - .../pip/_vendor/requests/__init__.py | 182 - .../__pycache__/__init__.cpython-312.pyc | Bin 5481 -> 0 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 612 -> 0 bytes .../_internal_utils.cpython-312.pyc | Bin 2052 -> 0 bytes .../__pycache__/adapters.cpython-312.pyc | Bin 21308 -> 0 bytes .../requests/__pycache__/api.cpython-312.pyc | Bin 7232 -> 0 bytes .../requests/__pycache__/auth.cpython-312.pyc | Bin 13951 -> 0 bytes .../__pycache__/certs.cpython-312.pyc | Bin 950 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 1535 -> 0 bytes .../__pycache__/cookies.cpython-312.pyc | Bin 25274 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 7075 -> 0 bytes .../requests/__pycache__/help.cpython-312.pyc | Bin 4340 -> 0 bytes .../__pycache__/hooks.cpython-312.pyc | Bin 1080 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 35476 -> 0 bytes .../__pycache__/packages.cpython-312.pyc | Bin 800 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 27785 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 5987 -> 0 bytes .../__pycache__/structures.cpython-312.pyc | Bin 5645 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 36297 -> 0 bytes .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 50 - .../pip/_vendor/requests/adapters.py | 538 - .../site-packages/pip/_vendor/requests/api.py | 157 - .../pip/_vendor/requests/auth.py | 315 - .../pip/_vendor/requests/certs.py | 24 - .../pip/_vendor/requests/compat.py | 67 - .../pip/_vendor/requests/cookies.py | 561 -- .../pip/_vendor/requests/exceptions.py | 141 - .../pip/_vendor/requests/help.py | 131 - .../pip/_vendor/requests/hooks.py | 33 - .../pip/_vendor/requests/models.py | 1034 -- .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 833 -- .../pip/_vendor/requests/status_codes.py | 128 - .../pip/_vendor/requests/structures.py | 99 - .../pip/_vendor/requests/utils.py | 1094 --- .../pip/_vendor/resolvelib/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 662 -> 0 bytes .../__pycache__/providers.cpython-312.pyc | Bin 6879 -> 0 bytes .../__pycache__/reporters.cpython-312.pyc | Bin 2682 -> 0 bytes .../__pycache__/resolvers.cpython-312.pyc | Bin 25925 -> 0 bytes .../__pycache__/structs.cpython-312.pyc | Bin 10534 -> 0 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 228 -> 0 bytes .../collections_abc.cpython-312.pyc | Bin 448 -> 0 bytes .../resolvelib/compat/collections_abc.py | 6 - .../pip/_vendor/resolvelib/providers.py | 133 - .../pip/_vendor/resolvelib/reporters.py | 43 - .../pip/_vendor/resolvelib/resolvers.py | 547 -- .../pip/_vendor/resolvelib/structs.py | 170 - .../pip/_vendor/rich/__init__.py | 177 - .../pip/_vendor/rich/__main__.py | 274 - .../rich/__pycache__/__init__.cpython-312.pyc | Bin 7043 -> 0 bytes .../rich/__pycache__/__main__.cpython-312.pyc | Bin 10332 -> 0 bytes .../__pycache__/_cell_widths.cpython-312.pyc | Bin 7849 -> 0 bytes .../__pycache__/_emoji_codes.cpython-312.pyc | Bin 206004 -> 0 bytes .../_emoji_replace.cpython-312.pyc | Bin 1757 -> 0 bytes .../_export_format.cpython-312.pyc | Bin 2349 -> 0 bytes .../__pycache__/_extension.cpython-312.pyc | Bin 565 -> 0 bytes .../rich/__pycache__/_fileno.cpython-312.pyc | Bin 883 -> 0 bytes .../rich/__pycache__/_inspect.cpython-312.pyc | Bin 12105 -> 0 bytes .../__pycache__/_log_render.cpython-312.pyc | Bin 4175 -> 0 bytes .../rich/__pycache__/_loop.cpython-312.pyc | Bin 1913 -> 0 bytes .../__pycache__/_null_file.cpython-312.pyc | Bin 3648 -> 0 bytes .../__pycache__/_palettes.cpython-312.pyc | Bin 5188 -> 0 bytes .../rich/__pycache__/_pick.cpython-312.pyc | Bin 754 -> 0 bytes .../rich/__pycache__/_ratio.cpython-312.pyc | Bin 6607 -> 0 bytes .../__pycache__/_spinners.cpython-312.pyc | Bin 13207 -> 0 bytes .../rich/__pycache__/_stack.cpython-312.pyc | Bin 993 -> 0 bytes .../rich/__pycache__/_timer.cpython-312.pyc | Bin 893 -> 0 bytes .../_win32_console.cpython-312.pyc | Bin 29004 -> 0 bytes .../rich/__pycache__/_windows.cpython-312.pyc | Bin 2518 -> 0 bytes .../_windows_renderer.cpython-312.pyc | Bin 3601 -> 0 bytes .../rich/__pycache__/_wrap.cpython-312.pyc | Bin 2388 -> 0 bytes .../rich/__pycache__/abc.cpython-312.pyc | Bin 1636 -> 0 bytes .../rich/__pycache__/align.cpython-312.pyc | Bin 12350 -> 0 bytes .../rich/__pycache__/ansi.cpython-312.pyc | Bin 9134 -> 0 bytes .../rich/__pycache__/bar.cpython-312.pyc | Bin 4300 -> 0 bytes .../rich/__pycache__/box.cpython-312.pyc | Bin 11886 -> 0 bytes .../rich/__pycache__/cells.cpython-312.pyc | Bin 5646 -> 0 bytes .../rich/__pycache__/color.cpython-312.pyc | Bin 26598 -> 0 bytes .../__pycache__/color_triplet.cpython-312.pyc | Bin 1729 -> 0 bytes .../rich/__pycache__/columns.cpython-312.pyc | Bin 8615 -> 0 bytes .../rich/__pycache__/console.cpython-312.pyc | Bin 113821 -> 0 bytes .../__pycache__/constrain.cpython-312.pyc | Bin 2286 -> 0 bytes .../__pycache__/containers.cpython-312.pyc | Bin 9254 -> 0 bytes .../rich/__pycache__/control.cpython-312.pyc | Bin 10957 -> 0 bytes .../default_styles.cpython-312.pyc | Bin 10401 -> 0 bytes .../rich/__pycache__/diagnose.cpython-312.pyc | Bin 1515 -> 0 bytes .../rich/__pycache__/emoji.cpython-312.pyc | Bin 4237 -> 0 bytes .../rich/__pycache__/errors.cpython-312.pyc | Bin 1873 -> 0 bytes .../__pycache__/file_proxy.cpython-312.pyc | Bin 3605 -> 0 bytes .../rich/__pycache__/filesize.cpython-312.pyc | Bin 3110 -> 0 bytes .../__pycache__/highlighter.cpython-312.pyc | Bin 9926 -> 0 bytes .../rich/__pycache__/json.cpython-312.pyc | Bin 6063 -> 0 bytes .../rich/__pycache__/jupyter.cpython-312.pyc | Bin 5237 -> 0 bytes .../rich/__pycache__/layout.cpython-312.pyc | Bin 20248 -> 0 bytes .../rich/__pycache__/live.cpython-312.pyc | Bin 19171 -> 0 bytes .../__pycache__/live_render.cpython-312.pyc | Bin 4922 -> 0 bytes .../rich/__pycache__/logging.cpython-312.pyc | Bin 13582 -> 0 bytes .../rich/__pycache__/markup.cpython-312.pyc | Bin 9326 -> 0 bytes .../rich/__pycache__/measure.cpython-312.pyc | Bin 6404 -> 0 bytes .../rich/__pycache__/padding.cpython-312.pyc | Bin 7162 -> 0 bytes .../rich/__pycache__/pager.cpython-312.pyc | Bin 1848 -> 0 bytes .../rich/__pycache__/palette.cpython-312.pyc | Bin 5342 -> 0 bytes .../rich/__pycache__/panel.cpython-312.pyc | Bin 12125 -> 0 bytes .../rich/__pycache__/pretty.cpython-312.pyc | Bin 40084 -> 0 bytes .../rich/__pycache__/progress.cpython-312.pyc | Bin 75106 -> 0 bytes .../__pycache__/progress_bar.cpython-312.pyc | Bin 10417 -> 0 bytes .../rich/__pycache__/prompt.cpython-312.pyc | Bin 14809 -> 0 bytes .../rich/__pycache__/protocol.cpython-312.pyc | Bin 1820 -> 0 bytes .../rich/__pycache__/region.cpython-312.pyc | Bin 595 -> 0 bytes .../rich/__pycache__/repr.cpython-312.pyc | Bin 6654 -> 0 bytes .../rich/__pycache__/rule.cpython-312.pyc | Bin 6596 -> 0 bytes .../rich/__pycache__/scope.cpython-312.pyc | Bin 3858 -> 0 bytes .../rich/__pycache__/screen.cpython-312.pyc | Bin 2512 -> 0 bytes .../rich/__pycache__/segment.cpython-312.pyc | Bin 28189 -> 0 bytes .../rich/__pycache__/spinner.cpython-312.pyc | Bin 6092 -> 0 bytes .../rich/__pycache__/status.cpython-312.pyc | Bin 6096 -> 0 bytes .../rich/__pycache__/style.cpython-312.pyc | Bin 33542 -> 0 bytes .../rich/__pycache__/styled.cpython-312.pyc | Bin 2167 -> 0 bytes .../rich/__pycache__/syntax.cpython-312.pyc | Bin 39640 -> 0 bytes .../rich/__pycache__/table.cpython-312.pyc | Bin 43612 -> 0 bytes .../terminal_theme.cpython-312.pyc | Bin 3376 -> 0 bytes .../rich/__pycache__/text.cpython-312.pyc | Bin 58991 -> 0 bytes .../rich/__pycache__/theme.cpython-312.pyc | Bin 6368 -> 0 bytes .../rich/__pycache__/themes.cpython-312.pyc | Bin 342 -> 0 bytes .../__pycache__/traceback.cpython-312.pyc | Bin 31576 -> 0 bytes .../rich/__pycache__/tree.cpython-312.pyc | Bin 11467 -> 0 bytes .../pip/_vendor/rich/_cell_widths.py | 451 - .../pip/_vendor/rich/_emoji_codes.py | 3610 ------- .../pip/_vendor/rich/_emoji_replace.py | 32 - .../pip/_vendor/rich/_export_format.py | 76 - .../pip/_vendor/rich/_extension.py | 10 - .../site-packages/pip/_vendor/rich/_fileno.py | 24 - .../pip/_vendor/rich/_inspect.py | 270 - .../pip/_vendor/rich/_log_render.py | 94 - .../site-packages/pip/_vendor/rich/_loop.py | 43 - .../pip/_vendor/rich/_null_file.py | 69 - .../pip/_vendor/rich/_palettes.py | 309 - .../site-packages/pip/_vendor/rich/_pick.py | 17 - .../site-packages/pip/_vendor/rich/_ratio.py | 160 - .../pip/_vendor/rich/_spinners.py | 482 - .../site-packages/pip/_vendor/rich/_stack.py | 16 - .../site-packages/pip/_vendor/rich/_timer.py | 19 - .../pip/_vendor/rich/_win32_console.py | 662 -- .../pip/_vendor/rich/_windows.py | 72 - .../pip/_vendor/rich/_windows_renderer.py | 56 - .../site-packages/pip/_vendor/rich/_wrap.py | 56 - .../site-packages/pip/_vendor/rich/abc.py | 33 - .../site-packages/pip/_vendor/rich/align.py | 311 - .../site-packages/pip/_vendor/rich/ansi.py | 240 - .../site-packages/pip/_vendor/rich/bar.py | 94 - .../site-packages/pip/_vendor/rich/box.py | 517 - .../site-packages/pip/_vendor/rich/cells.py | 154 - .../site-packages/pip/_vendor/rich/color.py | 622 -- .../pip/_vendor/rich/color_triplet.py | 38 - .../site-packages/pip/_vendor/rich/columns.py | 187 - .../site-packages/pip/_vendor/rich/console.py | 2633 ----- .../pip/_vendor/rich/constrain.py | 37 - .../pip/_vendor/rich/containers.py | 167 - .../site-packages/pip/_vendor/rich/control.py | 225 - .../pip/_vendor/rich/default_styles.py | 190 - .../pip/_vendor/rich/diagnose.py | 37 - .../site-packages/pip/_vendor/rich/emoji.py | 96 - .../site-packages/pip/_vendor/rich/errors.py | 34 - .../pip/_vendor/rich/file_proxy.py | 57 - .../pip/_vendor/rich/filesize.py | 89 - .../pip/_vendor/rich/highlighter.py | 232 - .../site-packages/pip/_vendor/rich/json.py | 140 - .../site-packages/pip/_vendor/rich/jupyter.py | 101 - .../site-packages/pip/_vendor/rich/layout.py | 443 - .../site-packages/pip/_vendor/rich/live.py | 375 - .../pip/_vendor/rich/live_render.py | 113 - .../site-packages/pip/_vendor/rich/logging.py | 289 - .../site-packages/pip/_vendor/rich/markup.py | 246 - .../site-packages/pip/_vendor/rich/measure.py | 151 - .../site-packages/pip/_vendor/rich/padding.py | 141 - .../site-packages/pip/_vendor/rich/pager.py | 34 - .../site-packages/pip/_vendor/rich/palette.py | 100 - .../site-packages/pip/_vendor/rich/panel.py | 308 - .../site-packages/pip/_vendor/rich/pretty.py | 994 -- .../pip/_vendor/rich/progress.py | 1702 ---- .../pip/_vendor/rich/progress_bar.py | 224 - .../site-packages/pip/_vendor/rich/prompt.py | 376 - .../pip/_vendor/rich/protocol.py | 42 - .../site-packages/pip/_vendor/rich/region.py | 10 - .../site-packages/pip/_vendor/rich/repr.py | 149 - .../site-packages/pip/_vendor/rich/rule.py | 130 - .../site-packages/pip/_vendor/rich/scope.py | 86 - .../site-packages/pip/_vendor/rich/screen.py | 54 - .../site-packages/pip/_vendor/rich/segment.py | 739 -- .../site-packages/pip/_vendor/rich/spinner.py | 137 - .../site-packages/pip/_vendor/rich/status.py | 132 - .../site-packages/pip/_vendor/rich/style.py | 796 -- .../site-packages/pip/_vendor/rich/styled.py | 42 - .../site-packages/pip/_vendor/rich/syntax.py | 948 -- .../site-packages/pip/_vendor/rich/table.py | 1002 -- .../pip/_vendor/rich/terminal_theme.py | 153 - .../site-packages/pip/_vendor/rich/text.py | 1307 --- .../site-packages/pip/_vendor/rich/theme.py | 115 - .../site-packages/pip/_vendor/rich/themes.py | 5 - .../pip/_vendor/rich/traceback.py | 756 -- .../site-packages/pip/_vendor/rich/tree.py | 251 - .../site-packages/pip/_vendor/six.py | 998 -- .../pip/_vendor/tenacity/__init__.py | 608 -- .../__pycache__/__init__.cpython-312.pyc | Bin 27114 -> 0 bytes .../__pycache__/_asyncio.cpython-312.pyc | Bin 4834 -> 0 bytes .../__pycache__/_utils.cpython-312.pyc | Bin 2343 -> 0 bytes .../__pycache__/after.cpython-312.pyc | Bin 1652 -> 0 bytes .../__pycache__/before.cpython-312.pyc | Bin 1492 -> 0 bytes .../__pycache__/before_sleep.cpython-312.pyc | Bin 2330 -> 0 bytes .../tenacity/__pycache__/nap.cpython-312.pyc | Bin 1440 -> 0 bytes .../__pycache__/retry.cpython-312.pyc | Bin 14309 -> 0 bytes .../tenacity/__pycache__/stop.cpython-312.pyc | Bin 5596 -> 0 bytes .../__pycache__/tornadoweb.cpython-312.pyc | Bin 2614 -> 0 bytes .../tenacity/__pycache__/wait.cpython-312.pyc | Bin 12441 -> 0 bytes .../pip/_vendor/tenacity/_asyncio.py | 94 - .../pip/_vendor/tenacity/_utils.py | 76 - .../pip/_vendor/tenacity/after.py | 51 - .../pip/_vendor/tenacity/before.py | 46 - .../pip/_vendor/tenacity/before_sleep.py | 71 - .../site-packages/pip/_vendor/tenacity/nap.py | 43 - .../pip/_vendor/tenacity/retry.py | 272 - .../pip/_vendor/tenacity/stop.py | 103 - .../pip/_vendor/tenacity/tornadoweb.py | 59 - .../pip/_vendor/tenacity/wait.py | 228 - .../pip/_vendor/tomli/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 412 -> 0 bytes .../tomli/__pycache__/_parser.cpython-312.pyc | Bin 26955 -> 0 bytes .../tomli/__pycache__/_re.cpython-312.pyc | Bin 3936 -> 0 bytes .../tomli/__pycache__/_types.cpython-312.pyc | Bin 394 -> 0 bytes .../pip/_vendor/tomli/_parser.py | 691 -- .../site-packages/pip/_vendor/tomli/_re.py | 107 - .../site-packages/pip/_vendor/tomli/_types.py | 10 - .../pip/_vendor/truststore/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 646 -> 0 bytes .../__pycache__/_api.cpython-312.pyc | Bin 15825 -> 0 bytes .../__pycache__/_macos.cpython-312.pyc | Bin 16690 -> 0 bytes .../__pycache__/_openssl.cpython-312.pyc | Bin 2243 -> 0 bytes .../_ssl_constants.cpython-312.pyc | Bin 1127 -> 0 bytes .../__pycache__/_windows.cpython-312.pyc | Bin 15534 -> 0 bytes .../pip/_vendor/truststore/_api.py | 302 - .../pip/_vendor/truststore/_macos.py | 501 - .../pip/_vendor/truststore/_openssl.py | 66 - .../pip/_vendor/truststore/_ssl_constants.py | 31 - .../pip/_vendor/truststore/_windows.py | 554 -- .../pip/_vendor/typing_extensions.py | 3072 ------ .../pip/_vendor/urllib3/__init__.py | 102 - .../__pycache__/__init__.cpython-312.pyc | Bin 3433 -> 0 bytes .../__pycache__/_collections.cpython-312.pyc | Bin 15959 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 246 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 20435 -> 0 bytes .../connectionpool.cpython-312.pyc | Bin 36307 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 13521 -> 0 bytes .../__pycache__/fields.cpython-312.pyc | Bin 10441 -> 0 bytes .../__pycache__/filepost.cpython-312.pyc | Bin 4046 -> 0 bytes .../__pycache__/poolmanager.cpython-312.pyc | Bin 20658 -> 0 bytes .../__pycache__/request.cpython-312.pyc | Bin 7322 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 33996 -> 0 bytes .../pip/_vendor/urllib3/_collections.py | 337 - .../pip/_vendor/urllib3/_version.py | 2 - .../pip/_vendor/urllib3/connection.py | 572 -- .../pip/_vendor/urllib3/connectionpool.py | 1132 --- .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 226 -> 0 bytes .../_appengine_environ.cpython-312.pyc | Bin 1876 -> 0 bytes .../__pycache__/appengine.cpython-312.pyc | Bin 11592 -> 0 bytes .../__pycache__/ntlmpool.cpython-312.pyc | Bin 5747 -> 0 bytes .../__pycache__/pyopenssl.cpython-312.pyc | Bin 24478 -> 0 bytes .../securetransport.cpython-312.pyc | Bin 35584 -> 0 bytes .../contrib/__pycache__/socks.cpython-312.pyc | Bin 7539 -> 0 bytes .../urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 243 -> 0 bytes .../__pycache__/bindings.cpython-312.pyc | Bin 17455 -> 0 bytes .../__pycache__/low_level.cpython-312.pyc | Bin 14829 -> 0 bytes .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - .../pip/_vendor/urllib3/contrib/appengine.py | 314 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 518 - .../urllib3/contrib/securetransport.py | 921 -- .../pip/_vendor/urllib3/contrib/socks.py | 216 - .../pip/_vendor/urllib3/exceptions.py | 323 - .../pip/_vendor/urllib3/fields.py | 274 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 227 -> 0 bytes .../packages/__pycache__/six.cpython-312.pyc | Bin 41347 -> 0 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 237 -> 0 bytes .../__pycache__/makefile.cpython-312.pyc | Bin 1853 -> 0 bytes .../weakref_finalize.cpython-312.pyc | Bin 7359 -> 0 bytes .../urllib3/packages/backports/makefile.py | 51 - .../packages/backports/weakref_finalize.py | 155 - .../pip/_vendor/urllib3/packages/six.py | 1076 -- .../pip/_vendor/urllib3/poolmanager.py | 553 -- .../pip/_vendor/urllib3/request.py | 191 - .../pip/_vendor/urllib3/response.py | 879 -- .../pip/_vendor/urllib3/util/__init__.py | 49 - .../util/__pycache__/__init__.cpython-312.pyc | Bin 1174 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 4784 -> 0 bytes .../util/__pycache__/proxy.cpython-312.pyc | Bin 1580 -> 0 bytes .../util/__pycache__/queue.cpython-312.pyc | Bin 1380 -> 0 bytes .../util/__pycache__/request.cpython-312.pyc | Bin 4211 -> 0 bytes .../util/__pycache__/response.cpython-312.pyc | Bin 3017 -> 0 bytes .../util/__pycache__/retry.cpython-312.pyc | Bin 21746 -> 0 bytes .../util/__pycache__/ssl_.cpython-312.pyc | Bin 15131 -> 0 bytes .../ssl_match_hostname.cpython-312.pyc | Bin 5099 -> 0 bytes .../__pycache__/ssltransport.cpython-312.pyc | Bin 10800 -> 0 bytes .../util/__pycache__/timeout.cpython-312.pyc | Bin 11167 -> 0 bytes .../util/__pycache__/url.cpython-312.pyc | Bin 15823 -> 0 bytes .../util/__pycache__/wait.cpython-312.pyc | Bin 4431 -> 0 bytes .../pip/_vendor/urllib3/util/connection.py | 149 - .../pip/_vendor/urllib3/util/proxy.py | 57 - .../pip/_vendor/urllib3/util/queue.py | 22 - .../pip/_vendor/urllib3/util/request.py | 137 - .../pip/_vendor/urllib3/util/response.py | 107 - .../pip/_vendor/urllib3/util/retry.py | 622 -- .../pip/_vendor/urllib3/util/ssl_.py | 495 - .../urllib3/util/ssl_match_hostname.py | 159 - .../pip/_vendor/urllib3/util/ssltransport.py | 221 - .../pip/_vendor/urllib3/util/timeout.py | 271 - .../pip/_vendor/urllib3/util/url.py | 435 - .../pip/_vendor/urllib3/util/wait.py | 152 - .../site-packages/pip/_vendor/vendor.txt | 24 - .../pip/_vendor/webencodings/__init__.py | 342 - .../__pycache__/__init__.cpython-312.pyc | Bin 12029 -> 0 bytes .../__pycache__/labels.cpython-312.pyc | Bin 7160 -> 0 bytes .../__pycache__/mklabels.cpython-312.pyc | Bin 2727 -> 0 bytes .../__pycache__/tests.cpython-312.pyc | Bin 9279 -> 0 bytes .../x_user_defined.cpython-312.pyc | Bin 3323 -> 0 bytes .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../lib/python3.12/site-packages/pip/py.typed | 4 - .../requests-2.32.4.dist-info/INSTALLER | 1 - .../requests-2.32.4.dist-info/METADATA | 133 - .../requests-2.32.4.dist-info/RECORD | 43 - .../requests-2.32.4.dist-info/REQUESTED | 0 .../requests-2.32.4.dist-info/WHEEL | 5 - .../requests-2.32.4.dist-info/top_level.txt | 1 - .../site-packages/requests/__init__.py | 184 - .../__pycache__/__init__.cpython-312.pyc | Bin 5436 -> 0 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 600 -> 0 bytes .../_internal_utils.cpython-312.pyc | Bin 2040 -> 0 bytes .../__pycache__/adapters.cpython-312.pyc | Bin 28380 -> 0 bytes .../requests/__pycache__/api.cpython-312.pyc | Bin 7220 -> 0 bytes .../requests/__pycache__/auth.cpython-312.pyc | Bin 13939 -> 0 bytes .../__pycache__/certs.cpython-312.pyc | Bin 682 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 2396 -> 0 bytes .../__pycache__/cookies.cpython-312.pyc | Bin 25292 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 7601 -> 0 bytes .../requests/__pycache__/help.cpython-312.pyc | Bin 4343 -> 0 bytes .../__pycache__/hooks.cpython-312.pyc | Bin 1068 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 35517 -> 0 bytes .../__pycache__/packages.cpython-312.pyc | Bin 1155 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 27898 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 6047 -> 0 bytes .../__pycache__/structures.cpython-312.pyc | Bin 5633 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 36194 -> 0 bytes .../site-packages/requests/__version__.py | 14 - .../site-packages/requests/_internal_utils.py | 50 - .../site-packages/requests/adapters.py | 719 -- .../python3.12/site-packages/requests/api.py | 157 - .../python3.12/site-packages/requests/auth.py | 314 - .../site-packages/requests/certs.py | 17 - .../site-packages/requests/compat.py | 106 - .../site-packages/requests/cookies.py | 561 -- .../site-packages/requests/exceptions.py | 151 - .../python3.12/site-packages/requests/help.py | 134 - .../site-packages/requests/hooks.py | 33 - .../site-packages/requests/models.py | 1039 -- .../site-packages/requests/packages.py | 23 - .../site-packages/requests/sessions.py | 831 -- .../site-packages/requests/status_codes.py | 128 - .../site-packages/requests/structures.py | 99 - .../site-packages/requests/utils.py | 1086 --- .../soupsieve-2.7.dist-info/INSTALLER | 1 - .../soupsieve-2.7.dist-info/METADATA | 115 - .../soupsieve-2.7.dist-info/RECORD | 20 - .../soupsieve-2.7.dist-info/WHEEL | 4 - .../licenses/LICENSE.md | 21 - .../site-packages/soupsieve/__init__.py | 168 - .../site-packages/soupsieve/__meta__.py | 197 - .../__pycache__/__init__.cpython-312.pyc | Bin 6133 -> 0 bytes .../__pycache__/__meta__.cpython-312.pyc | Bin 8135 -> 0 bytes .../__pycache__/css_match.cpython-312.pyc | Bin 63870 -> 0 bytes .../__pycache__/css_parser.cpython-312.pyc | Bin 50236 -> 0 bytes .../__pycache__/css_types.cpython-312.pyc | Bin 17356 -> 0 bytes .../__pycache__/pretty.cpython-312.pyc | Bin 5075 -> 0 bytes .../__pycache__/util.cpython-312.pyc | Bin 4745 -> 0 bytes .../site-packages/soupsieve/css_match.py | 1645 ---- .../site-packages/soupsieve/css_parser.py | 1318 --- .../site-packages/soupsieve/css_types.py | 407 - .../site-packages/soupsieve/pretty.py | 139 - .../site-packages/soupsieve/py.typed | 0 .../site-packages/soupsieve/util.py | 117 - .../INSTALLER | 1 - .../METADATA | 68 - .../typing_extensions-4.14.1.dist-info/RECORD | 7 - .../typing_extensions-4.14.1.dist-info/WHEEL | 4 - .../licenses/LICENSE | 279 - .../site-packages/typing_extensions.py | 4244 -------- .../urllib3-2.5.0.dist-info/INSTALLER | 1 - .../urllib3-2.5.0.dist-info/METADATA | 154 - .../urllib3-2.5.0.dist-info/RECORD | 79 - .../urllib3-2.5.0.dist-info/WHEEL | 4 - .../licenses/LICENSE.txt | 21 - .../site-packages/urllib3/__init__.py | 211 - .../__pycache__/__init__.cpython-312.pyc | Bin 7331 -> 0 bytes .../_base_connection.cpython-312.pyc | Bin 6869 -> 0 bytes .../__pycache__/_collections.cpython-312.pyc | Bin 22590 -> 0 bytes .../_request_methods.cpython-312.pyc | Bin 10623 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 667 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 38434 -> 0 bytes .../connectionpool.cpython-312.pyc | Bin 39756 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 16632 -> 0 bytes .../__pycache__/fields.cpython-312.pyc | Bin 12043 -> 0 bytes .../__pycache__/filepost.cpython-312.pyc | Bin 3510 -> 0 bytes .../__pycache__/poolmanager.cpython-312.pyc | Bin 24424 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 52734 -> 0 bytes .../site-packages/urllib3/_base_connection.py | 165 - .../site-packages/urllib3/_collections.py | 479 - .../site-packages/urllib3/_request_methods.py | 278 - .../site-packages/urllib3/_version.py | 21 - .../site-packages/urllib3/connection.py | 1093 --- .../site-packages/urllib3/connectionpool.py | 1178 --- .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 214 -> 0 bytes .../__pycache__/pyopenssl.cpython-312.pyc | Bin 28237 -> 0 bytes .../contrib/__pycache__/socks.cpython-312.pyc | Bin 8192 -> 0 bytes .../urllib3/contrib/emscripten/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 922 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 10263 -> 0 bytes .../__pycache__/fetch.cpython-312.pyc | Bin 28653 -> 0 bytes .../__pycache__/request.cpython-312.pyc | Bin 1442 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 12236 -> 0 bytes .../urllib3/contrib/emscripten/connection.py | 255 - .../emscripten/emscripten_fetch_worker.js | 110 - .../urllib3/contrib/emscripten/fetch.py | 728 -- .../urllib3/contrib/emscripten/request.py | 22 - .../urllib3/contrib/emscripten/response.py | 277 - .../urllib3/contrib/pyopenssl.py | 564 -- .../site-packages/urllib3/contrib/socks.py | 228 - .../site-packages/urllib3/exceptions.py | 335 - .../site-packages/urllib3/fields.py | 341 - .../site-packages/urllib3/filepost.py | 89 - .../site-packages/urllib3/http2/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 1767 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 17074 -> 0 bytes .../http2/__pycache__/probe.cpython-312.pyc | Bin 3718 -> 0 bytes .../site-packages/urllib3/http2/connection.py | 356 - .../site-packages/urllib3/http2/probe.py | 87 - .../site-packages/urllib3/poolmanager.py | 653 -- .../python3.12/site-packages/urllib3/py.typed | 2 - .../site-packages/urllib3/response.py | 1307 --- .../site-packages/urllib3/util/__init__.py | 42 - .../util/__pycache__/__init__.cpython-312.pyc | Bin 1027 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 4717 -> 0 bytes .../util/__pycache__/proxy.cpython-312.pyc | Bin 1239 -> 0 bytes .../util/__pycache__/request.cpython-312.pyc | Bin 8339 -> 0 bytes .../util/__pycache__/response.cpython-312.pyc | Bin 2895 -> 0 bytes .../util/__pycache__/retry.cpython-312.pyc | Bin 20308 -> 0 bytes .../util/__pycache__/ssl_.cpython-312.pyc | Bin 17191 -> 0 bytes .../ssl_match_hostname.cpython-312.pyc | Bin 5579 -> 0 bytes .../__pycache__/ssltransport.cpython-312.pyc | Bin 13346 -> 0 bytes .../util/__pycache__/timeout.cpython-312.pyc | Bin 11711 -> 0 bytes .../util/__pycache__/url.cpython-312.pyc | Bin 16248 -> 0 bytes .../util/__pycache__/util.cpython-312.pyc | Bin 2016 -> 0 bytes .../util/__pycache__/wait.cpython-312.pyc | Bin 3462 -> 0 bytes .../site-packages/urllib3/util/connection.py | 137 - .../site-packages/urllib3/util/proxy.py | 43 - .../site-packages/urllib3/util/request.py | 266 - .../site-packages/urllib3/util/response.py | 101 - .../site-packages/urllib3/util/retry.py | 533 - .../site-packages/urllib3/util/ssl_.py | 524 - .../urllib3/util/ssl_match_hostname.py | 159 - .../urllib3/util/ssltransport.py | 271 - .../site-packages/urllib3/util/timeout.py | 275 - .../site-packages/urllib3/util/url.py | 469 - .../site-packages/urllib3/util/util.py | 42 - .../site-packages/urllib3/util/wait.py | 124 - .venv/lib64 | 1 - .venv/pyvenv.cfg | 5 - 1461 files changed, 19169 insertions(+), 258732 deletions(-) delete mode 100644 .venv/bin/Activate.ps1 delete mode 100644 .venv/bin/activate delete mode 100644 .venv/bin/activate.csh delete mode 100644 .venv/bin/activate.fish delete mode 100755 .venv/bin/normalizer delete mode 100755 .venv/bin/pip delete mode 100755 .venv/bin/pip3 delete mode 100755 .venv/bin/pip3.12 delete mode 120000 .venv/bin/python delete mode 120000 .venv/bin/python3 delete mode 120000 .venv/bin/python3.12 delete mode 100644 .venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/AUTHORS delete mode 100644 .venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/_deprecation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/_typing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/_warnings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/css.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/dammit.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/diagnose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/element.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/__pycache__/formatter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/_deprecation.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/_typing.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/_warnings.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/__pycache__/_html5lib.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/__pycache__/_lxml.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/_html5lib.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/_htmlparser.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/builder/_lxml.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/css.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/dammit.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/diagnose.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/element.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/filter.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/formatter.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_css.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_dammit.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_element.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_formatter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_fuzz.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_lxml.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_soup.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_tag.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_tree.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/fuzz/crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_builder.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_builder_registry.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_css.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_dammit.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_element.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_filter.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_formatter.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_fuzz.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_html5lib.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_htmlparser.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_lxml.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_navigablestring.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_pageelement.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_soup.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_tag.py delete mode 100644 .venv/lib/python3.12/site-packages/bs4/tests/test_tree.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2025.7.14.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/cacert.pem delete mode 100644 .venv/lib/python3.12/site-packages/certifi/core.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/api.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cd.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/constant.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/legacy.py delete mode 100755 .venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/md.py delete mode 100755 .venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/models.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/version.py rename .venv/lib/python3.12/site-packages/{beautifulsoup4-4.13.4.dist-info => hvac-2.3.0.dist-info}/INSTALLER (100%) rename .venv/lib/python3.12/site-packages/{requests-2.32.4.dist-info/licenses/LICENSE => hvac-2.3.0.dist-info/LICENSE.txt} (89%) create mode 100644 .venv/lib/python3.12/site-packages/hvac-2.3.0.dist-info/METADATA create mode 100644 .venv/lib/python3.12/site-packages/hvac-2.3.0.dist-info/RECORD rename .venv/lib/python3.12/site-packages/{beautifulsoup4-4.13.4.dist-info => hvac-2.3.0.dist-info}/REQUESTED (100%) rename .venv/lib/python3.12/site-packages/{beautifulsoup4-4.13.4.dist-info => hvac-2.3.0.dist-info}/WHEEL (67%) create mode 100644 .venv/lib/python3.12/site-packages/hvac/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/__pycache__/adapters.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/__pycache__/aws_utils.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/__pycache__/exceptions.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/__pycache__/utils.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/adapters.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/__pycache__/vault_api_base.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/__pycache__/vault_api_category.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/approle.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/aws.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/azure.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/cert.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/gcp.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/github.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/jwt.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/kubernetes.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/ldap.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/legacy_mfa.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/oidc.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/okta.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/radius.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/token.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/__pycache__/userpass.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/approle.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/aws.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/azure.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/cert.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/gcp.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/github.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/jwt.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/kubernetes.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/ldap.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/legacy_mfa.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/oidc.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/okta.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/radius.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/token.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/auth_methods/userpass.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/active_directory.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/aws.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/azure.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/consul.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/database.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/gcp.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/identity.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/kv.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/kv_v1.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/kv_v2.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/ldap.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/pki.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/rabbitmq.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/ssh.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/transform.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/__pycache__/transit.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/active_directory.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/aws.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/azure.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/consul.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/database.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/gcp.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/identity.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/kv.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/kv_v1.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/kv_v2.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/ldap.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/pki.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/rabbitmq.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/ssh.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/transform.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/secrets_engines/transit.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/audit.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/auth.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/capabilities.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/health.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/init.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/key.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/leader.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/lease.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/mount.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/namespace.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/policies.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/policy.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/quota.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/raft.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/seal.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/system_backend_mixin.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/__pycache__/wrapping.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/audit.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/auth.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/capabilities.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/health.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/init.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/key.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/leader.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/lease.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/mount.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/namespace.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/policies.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/policy.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/quota.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/raft.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/seal.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/system_backend_mixin.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/system_backend/wrapping.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/vault_api_base.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/api/vault_api_category.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/aws_utils.py rename .venv/lib/python3.12/site-packages/{pip/_internal/operations => hvac/constants}/__init__.py (100%) create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/__init__.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/approle.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/aws.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/azure.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/client.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/gcp.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/identity.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/__pycache__/transit.cpython-312.pyc create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/approle.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/aws.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/azure.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/client.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/gcp.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/identity.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/constants/transit.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/exceptions.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/utils.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/v1/__init__.py create mode 100644 .venv/lib/python3.12/site-packages/hvac/v1/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.10.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.10.dist-info/LICENSE.md delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.10.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.10.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.10.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/idna/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/codec.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/idnadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/intranges.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/package_data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/uts46data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/codec.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/core.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/idnadata.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/intranges.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/package_data.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/idna/uts46data.py delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/AUTHORS.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pip-runner__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/build_env.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/command_context.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/spinners.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/completion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/configuration.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/debug.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/download.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/hash.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/help.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/inspect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/install.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/list.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/search.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/show.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/configuration.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/installed.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/collector.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/package_finder.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/sources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/_json.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/candidate.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/format_control.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/installation_report.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/link.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/scheme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/search_scope.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/target_python.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/download.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/session.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/freeze.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/pyproject.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/constructors.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_file.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_install.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/_log.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/datetime.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/encoding.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/logging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/misc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/models.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/setuptools_build.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/urls.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/git.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/wheel_builder.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/six.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachinedict.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/macromanprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/resultdict.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf1632prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5freq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/chardistribution.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachinedict.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cp949prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/enums.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/escprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/escsm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/eucjpprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312freq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/hebrewprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/jisfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/jpcntx.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langthaimodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/latin1prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/macromanprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcssm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/languages.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/resultdict.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sjisprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/universaldetector.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf1632prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf8prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansi.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansitowin32.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/initialise.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansi_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/initialise_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/isatty_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/winterm_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/win32.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/winterm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/database.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/locators.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/manifest.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/distro.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/cmdline.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/groff.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/html.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/img.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/irc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/latex.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/other.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/rtf.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/svg.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal256.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/actions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/common.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/helpers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/results.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/testing.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/unicode.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/help.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/structures.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/abc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/align.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/box.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/color.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/control.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/errors.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/json.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/live.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/logging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/measure.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/padding.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/pager.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/panel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/region.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/rule.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/scope.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/segment.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/status.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/style.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/styled.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/table.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/text.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/theme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/six.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_asyncio.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/after.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before_sleep.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/nap.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/stop.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/tornadoweb.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/wait.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/typing_extensions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/request.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/queue.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/vendor.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/labels.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/mklabels.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/tests.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/requests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/__version__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/_internal_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/adapters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/certs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/cookies.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/hooks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/packages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__version__.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/adapters.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/api.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/certs.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/cookies.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/help.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/hooks.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/models.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/packages.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/structures.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve-2.7.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve-2.7.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve-2.7.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve-2.7.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve-2.7.dist-info/licenses/LICENSE.md delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__meta__.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/__meta__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/css_match.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/css_parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/css_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/pretty.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/css_match.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/css_parser.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/css_types.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/pretty.py delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/soupsieve/util.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.14.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.14.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.14.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.14.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.14.1.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_base_connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_request_methods.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/connectionpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/filepost.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/poolmanager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_base_connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_collections.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_request_methods.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/socks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/filepost.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/probe.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/probe.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssltransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/timeout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/request.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/url.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/util.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/wait.py delete mode 120000 .venv/lib64 delete mode 100644 .venv/pyvenv.cfg diff --git a/.venv/bin/Activate.ps1 b/.venv/bin/Activate.ps1 deleted file mode 100644 index b49d77b..0000000 --- a/.venv/bin/Activate.ps1 +++ /dev/null @@ -1,247 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove VIRTUAL_ENV_PROMPT altogether. - if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { - Remove-Item -Path env:VIRTUAL_ENV_PROMPT - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } - $env:VIRTUAL_ENV_PROMPT = $Prompt -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/.venv/bin/activate b/.venv/bin/activate deleted file mode 100644 index 4a7761d..0000000 --- a/.venv/bin/activate +++ /dev/null @@ -1,70 +0,0 @@ -# This file must be used with "source bin/activate" *from bash* -# You cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then - PATH="${_OLD_VIRTUAL_PATH:-}" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then - PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # Call hash to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - hash -r 2> /dev/null - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -# on Windows, a path can contain colons and backslashes and has to be converted: -if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then - # transform D:\path\to\venv to /d/path/to/venv on MSYS - # and to /cygdrive/d/path/to/venv on Cygwin - export VIRTUAL_ENV=$(cygpath /home/slu/Repositories-Git/Control_changes_Saby_format/.venv) -else - # use the path as-is - export VIRTUAL_ENV=/home/slu/Repositories-Git/Control_changes_Saby_format/.venv -fi - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/"bin":$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1='(.venv) '"${PS1:-}" - export PS1 - VIRTUAL_ENV_PROMPT='(.venv) ' - export VIRTUAL_ENV_PROMPT -fi - -# Call hash to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -hash -r 2> /dev/null diff --git a/.venv/bin/activate.csh b/.venv/bin/activate.csh deleted file mode 100644 index 6ae0ed7..0000000 --- a/.venv/bin/activate.csh +++ /dev/null @@ -1,27 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. - -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV /home/slu/Repositories-Git/Control_changes_Saby_format/.venv - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/"bin":$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = '(.venv) '"$prompt" - setenv VIRTUAL_ENV_PROMPT '(.venv) ' -endif - -alias pydoc python -m pydoc - -rehash diff --git a/.venv/bin/activate.fish b/.venv/bin/activate.fish deleted file mode 100644 index 1eb46ad..0000000 --- a/.venv/bin/activate.fish +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/). You cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV /home/slu/Repositories-Git/Control_changes_Saby_format/.venv - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/"bin $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) '(.venv) ' (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" - set -gx VIRTUAL_ENV_PROMPT '(.venv) ' -end diff --git a/.venv/bin/normalizer b/.venv/bin/normalizer deleted file mode 100755 index 1c4bbd6..0000000 --- a/.venv/bin/normalizer +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/slu/Repositories-Git/Control_changes_Saby_format/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from charset_normalizer import cli -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli.cli_detect()) diff --git a/.venv/bin/pip b/.venv/bin/pip deleted file mode 100755 index 00ddb0d..0000000 --- a/.venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/slu/Repositories-Git/Control_changes_Saby_format/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3 b/.venv/bin/pip3 deleted file mode 100755 index 00ddb0d..0000000 --- a/.venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/slu/Repositories-Git/Control_changes_Saby_format/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3.12 b/.venv/bin/pip3.12 deleted file mode 100755 index 00ddb0d..0000000 --- a/.venv/bin/pip3.12 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/slu/Repositories-Git/Control_changes_Saby_format/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/python b/.venv/bin/python deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/python3 b/.venv/bin/python3 deleted file mode 120000 index ae65fda..0000000 --- a/.venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/python3 \ No newline at end of file diff --git a/.venv/bin/python3.12 b/.venv/bin/python3.12 deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python3.12 +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc deleted file mode 100644 index 244540e18257bcc71a20e1d400de859db5f42417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162217 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�!~t> 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 O3XG%W`d^gs2>*Xj^C~U? diff --git a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/METADATA b/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/METADATA deleted file mode 100644 index eddfd55..0000000 --- a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/METADATA +++ /dev/null @@ -1,123 +0,0 @@ -Metadata-Version: 2.4 -Name: beautifulsoup4 -Version: 4.13.4 -Summary: Screen-scraping library -Project-URL: Download, https://www.crummy.com/software/BeautifulSoup/bs4/download/ -Project-URL: Homepage, https://www.crummy.com/software/BeautifulSoup/bs4/ -Author-email: Leonard Richardson -License: MIT License -License-File: AUTHORS -License-File: LICENSE -Keywords: HTML,XML,parse,soup -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: Text Processing :: Markup :: HTML -Classifier: Topic :: Text Processing :: Markup :: SGML -Classifier: Topic :: Text Processing :: Markup :: XML -Requires-Python: >=3.7.0 -Requires-Dist: soupsieve>1.2 -Requires-Dist: typing-extensions>=4.0.0 -Provides-Extra: cchardet -Requires-Dist: cchardet; extra == 'cchardet' -Provides-Extra: chardet -Requires-Dist: chardet; extra == 'chardet' -Provides-Extra: charset-normalizer -Requires-Dist: charset-normalizer; extra == 'charset-normalizer' -Provides-Extra: html5lib -Requires-Dist: html5lib; extra == 'html5lib' -Provides-Extra: lxml -Requires-Dist: lxml; extra == 'lxml' -Description-Content-Type: text/markdown - -Beautiful Soup is a library that makes it easy to scrape information -from web pages. It sits atop an HTML or XML parser, providing Pythonic -idioms for iterating, searching, and modifying the parse tree. - -# Quick start - -``` ->>> from bs4 import BeautifulSoup ->>> soup = BeautifulSoup("

SomebadHTML") ->>> print(soup.prettify()) - - -

- Some - - bad - - HTML - - -

- - ->>> soup.find(string="bad") -'bad' ->>> soup.i -HTML -# ->>> soup = BeautifulSoup("SomebadXML", "xml") -# ->>> print(soup.prettify()) - - - Some - - bad - - XML - - -``` - -To go beyond the basics, [comprehensive documentation is available](https://www.crummy.com/software/BeautifulSoup/bs4/doc/). - -# Links - -* [Homepage](https://www.crummy.com/software/BeautifulSoup/bs4/) -* [Documentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) -* [Discussion group](https://groups.google.com/group/beautifulsoup/) -* [Development](https://code.launchpad.net/beautifulsoup/) -* [Bug tracker](https://bugs.launchpad.net/beautifulsoup/) -* [Complete changelog](https://git.launchpad.net/beautifulsoup/tree/CHANGELOG) - -# Note on Python 2 sunsetting - -Beautiful Soup's support for Python 2 was discontinued on December 31, -2020: one year after the sunset date for Python 2 itself. From this -point onward, new Beautiful Soup development will exclusively target -Python 3. The final release of Beautiful Soup 4 to support Python 2 -was 4.9.3. - -# Supporting the project - -If you use Beautiful Soup as part of your professional work, please consider a -[Tidelift subscription](https://tidelift.com/subscription/pkg/pypi-beautifulsoup4?utm_source=pypi-beautifulsoup4&utm_medium=referral&utm_campaign=readme). -This will support many of the free software projects your organization -depends on, not just Beautiful Soup. - -If you use Beautiful Soup for personal projects, the best way to say -thank you is to read -[Tool Safety](https://www.crummy.com/software/BeautifulSoup/zine/), a zine I -wrote about what Beautiful Soup has taught me about software -development. - -# Building the documentation - -The bs4/doc/ directory contains full documentation in Sphinx -format. Run `make html` in that directory to create HTML -documentation. - -# Running the unit tests - -Beautiful Soup supports unit test discovery using Pytest: - -``` -$ pytest -``` - diff --git a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/RECORD b/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/RECORD deleted file mode 100644 index 358fa4c..0000000 --- a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/RECORD +++ /dev/null @@ -1,90 +0,0 @@ -beautifulsoup4-4.13.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -beautifulsoup4-4.13.4.dist-info/METADATA,sha256=zXwPMgMEIdymEV_lAL0QzP34i6osem_P2nfqgaEexRo,3809 -beautifulsoup4-4.13.4.dist-info/RECORD,, -beautifulsoup4-4.13.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -beautifulsoup4-4.13.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 -beautifulsoup4-4.13.4.dist-info/licenses/AUTHORS,sha256=uYkjiRjh_aweRnF8tAW2PpJJeickE68NmJwd9siry28,2201 -beautifulsoup4-4.13.4.dist-info/licenses/LICENSE,sha256=VbTY1LHlvIbRDvrJG3TIe8t3UmsPW57a-LnNKtxzl7I,1441 -bs4/__init__.py,sha256=ZkHAdXHt3PEkwDrx_Z4ABuz-T_-TSO8aL6Vpy9uiI8M,44212 -bs4/__pycache__/__init__.cpython-312.pyc,, -bs4/__pycache__/_deprecation.cpython-312.pyc,, -bs4/__pycache__/_typing.cpython-312.pyc,, -bs4/__pycache__/_warnings.cpython-312.pyc,, -bs4/__pycache__/css.cpython-312.pyc,, -bs4/__pycache__/dammit.cpython-312.pyc,, -bs4/__pycache__/diagnose.cpython-312.pyc,, -bs4/__pycache__/element.cpython-312.pyc,, -bs4/__pycache__/exceptions.cpython-312.pyc,, -bs4/__pycache__/filter.cpython-312.pyc,, -bs4/__pycache__/formatter.cpython-312.pyc,, -bs4/_deprecation.py,sha256=ucZjfBAUF1B0f5ldNIIhlkHsYjHtvwELWlE3_pAR6Vs,2394 -bs4/_typing.py,sha256=3FgPPPrdsTa-kvn1R36o1k_2SfilcUWm4M9i7G4qFl8,7118 -bs4/_warnings.py,sha256=ZuOETgcnEbZgw2N0nnNXn6wvtrn2ut7AF0d98bvkMFc,4711 -bs4/builder/__init__.py,sha256=TYAKmGFuVfTsI53reHijcZKETnPuvse57KZ6LsZsJRo,31130 -bs4/builder/__pycache__/__init__.cpython-312.pyc,, -bs4/builder/__pycache__/_html5lib.cpython-312.pyc,, -bs4/builder/__pycache__/_htmlparser.cpython-312.pyc,, -bs4/builder/__pycache__/_lxml.cpython-312.pyc,, -bs4/builder/_html5lib.py,sha256=3MXq29SYg9XoS9gu2hgTDU02IQkv8kIBx3rW1QWY3fg,22846 -bs4/builder/_htmlparser.py,sha256=cu9PFkxkqVIIe9nU3fVy-JJhINEhY8cGbsuCwZCnQCA,17872 -bs4/builder/_lxml.py,sha256=9L5pJ7ekI-G3HhOhoxcpjZPqDMRfUoWj4Nnku6B2uR8,18545 -bs4/css.py,sha256=XGQq7HQUDyYEbDorFMGIGek7QGPiFuZYnvNEQ59GyxM,12685 -bs4/dammit.py,sha256=oHd1elJ44kMobBGSQRuG7Wln6M-BLz1unOuUscaL9h0,51472 -bs4/diagnose.py,sha256=zy7_GPQHsTtNf8s10WWIRcC5xH5_8LKs295Aa7iFUyI,7832 -bs4/element.py,sha256=7w9cLT9oTU8lrWm9nnlPqHpa_v4U8UuyIUsWnTHYLbw,109768 -bs4/exceptions.py,sha256=Q9FOadNe8QRvzDMaKSXe2Wtl8JK_oAZW7mbFZBVP_GE,951 -bs4/filter.py,sha256=8lzv5yE0mw7jhYwPyDiFCfXAB4-wDiIgn7m8fmIKcGA,29031 -bs4/formatter.py,sha256=5O4gBxTTi5TLU6TdqsgYI9Io0Gc_6-oCAWpfHI3Thn0,10464 -bs4/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -bs4/tests/__init__.py,sha256=ieOudaXvOWA_g4Gb25adCnhEabtEpRwf9_DdplXKdXQ,52671 -bs4/tests/__pycache__/__init__.cpython-312.pyc,, -bs4/tests/__pycache__/test_builder.cpython-312.pyc,, -bs4/tests/__pycache__/test_builder_registry.cpython-312.pyc,, -bs4/tests/__pycache__/test_css.cpython-312.pyc,, -bs4/tests/__pycache__/test_dammit.cpython-312.pyc,, -bs4/tests/__pycache__/test_element.cpython-312.pyc,, -bs4/tests/__pycache__/test_filter.cpython-312.pyc,, -bs4/tests/__pycache__/test_formatter.cpython-312.pyc,, -bs4/tests/__pycache__/test_fuzz.cpython-312.pyc,, -bs4/tests/__pycache__/test_html5lib.cpython-312.pyc,, -bs4/tests/__pycache__/test_htmlparser.cpython-312.pyc,, -bs4/tests/__pycache__/test_lxml.cpython-312.pyc,, -bs4/tests/__pycache__/test_navigablestring.cpython-312.pyc,, -bs4/tests/__pycache__/test_pageelement.cpython-312.pyc,, -bs4/tests/__pycache__/test_soup.cpython-312.pyc,, -bs4/tests/__pycache__/test_tag.cpython-312.pyc,, -bs4/tests/__pycache__/test_tree.cpython-312.pyc,, -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase,sha256=yUdXkbpNK7LVOQ0LBHMoqZ1rWaBfSXWytoO_xdSm7Ho,15 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase,sha256=Uv_dx4a43TSfoNkjU-jHW2nSXkqHFg4XdAw7SWVObUk,23 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase,sha256=OEyVA0Ej4FxswOElrUNt0In4s4YhrmtaxE_NHGZvGtg,30 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase,sha256=G4vpNBOz-RwMpi6ewEgNEa13zX0sXhmL7VHOyIcdKVQ,15347 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase,sha256=3d8z65o4p7Rur-RmCHoOjzqaYQ8EAtjmiBYTHNyAdl4,19469 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase,sha256=NfGIlit1k40Ip3mlnBkYOkIDJX6gHtjlErwl7gsBjAQ,12 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase,sha256=xy4i1U0nhFHcnyc5pRKS6JRMvuoCNUur-Scor6UxIGw,4317 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase,sha256=Q-UTYpQBUsWoMgIUspUlzveSI-41s4ABC3jajRb-K0o,11502 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase,sha256=2bq3S8KxZgk8EajLReHD8m4_0Lj_nrkyJAxB_z_U0D0,5 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase,sha256=MZDu31LPLfgu6jP9IZkrlwNes3f_sL8WFP5BChkUKdY,35 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase,sha256=w58r-s6besG5JwPXpnz37W2YTj9-_qxFbk6hiEnKeIQ,51495 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase,sha256=q8rkdMECEXKcqVhOf5zWHkSBTQeOPt0JiLg2TZiPCuk,10380 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase,sha256=QfzoOxKwNuqG-4xIrea6MOQLXhfAAOQJ0r9u-J6kSNs,19 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase,sha256=MJ2pHFuuCQUiQz1Kor2sof7LWeRERQ6QK43YNqQHg9o,47 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase,sha256=EItOpSdeD4ewK-qgJ9vtxennwn_huguzXgctrUT7fqE,3546 -bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase,sha256=a2aJTG4FceGSJXsjtxoS8S4jk_8rZsS3aznLkeO2_dY,124 -bs4/tests/fuzz/crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase,sha256=jRFRtCKlP3-3EDLc_iVRTcE6JNymv0rYcVM6qRaPrxI,2607 -bs4/tests/fuzz/crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase,sha256=7NsdCiXWAhNkmoW1pvF7rbZExyLAQIWtDtSHXIsH6YU,103 -bs4/tests/test_builder.py,sha256=BBMBirb4mb-fVdJj4dxQCxrdcjQeulKSKBFrPFVpVOk,1095 -bs4/tests/test_builder_registry.py,sha256=tpJ5Niva_cF49SdzIb1gMo0W4Tiodr8BYSOE3O6P_g8,5064 -bs4/tests/test_css.py,sha256=T_HCMzpe6hTr8d2YFXm0DScr8gT8d6h0MYlhZfo6A4U,18625 -bs4/tests/test_dammit.py,sha256=TQCVe6kKVYSuYjwTtIvIaOYYmWYPMnR_3PK45kimLg4,17840 -bs4/tests/test_element.py,sha256=u7FbTtKE6pYJetD1PgS3fCU1-QQXfB7GaLwfI3s4ROY,4373 -bs4/tests/test_filter.py,sha256=JzvU3eI4r1QyNIHKqhxbZ-M7q5qgw-S7Y73MGI2tNr4,27395 -bs4/tests/test_formatter.py,sha256=a6TaeNOVeg_ZYseiP7atmFyYJkQJqlk-jlVxMlyJC2o,6943 -bs4/tests/test_fuzz.py,sha256=zyaoWgCt8hnRkXecBYM9x91fI_Ao9eQUcsBi76ooJ08,7123 -bs4/tests/test_html5lib.py,sha256=ljMOAds__k9zhfT4jVnxxhZkLEggaT7wqDexzDNwus4,9206 -bs4/tests/test_htmlparser.py,sha256=iDHEI69GcisNP48BeHdLAWlqPGhrBwxftnUM8_3nsR4,6662 -bs4/tests/test_lxml.py,sha256=4fZIsNVbm2zdRQFNNwD-lqwf_QtUtiU4QbtLXISQZBw,7453 -bs4/tests/test_navigablestring.py,sha256=5-vs86ujXcs6LjT1lPYQHLi2ag3eBtFfnrOrjzV665M,5599 -bs4/tests/test_pageelement.py,sha256=lAw-sVP3zJX0VdHXXN1Ia3tci5dgK10Gac5o9G46IIk,16195 -bs4/tests/test_soup.py,sha256=I-mhNheo2-PTvfJToDI43EO4RmGlpKJsYOS19YoQ7-8,22669 -bs4/tests/test_tag.py,sha256=ue32hxQs_a1cMuzyu7MNjK42t0IOGMA6POPLIArMOts,9690 -bs4/tests/test_tree.py,sha256=Iw2e2spk19PEtCObE0ymgJH4n4F5_KbMvpcOeblHBsI,55074 diff --git a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/AUTHORS b/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/AUTHORS deleted file mode 100644 index 18926c2..0000000 --- a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/AUTHORS +++ /dev/null @@ -1,49 +0,0 @@ -Behold, mortal, the origins of Beautiful Soup... -================================================ - -Leonard Richardson is the primary maintainer. - -Aaron DeVore, Isaac Muse and Chris Papademetrious have made -significant contributions to the code base. - -Mark Pilgrim provided the encoding detection code that forms the base -of UnicodeDammit. - -Thomas Kluyver and Ezio Melotti finished the work of getting Beautiful -Soup 4 working under Python 3. - -Simon Willison wrote soupselect, which was used to make Beautiful Soup -support CSS selectors. Isaac Muse wrote SoupSieve, which made it -possible to _remove_ the CSS selector code from Beautiful Soup. - -Sam Ruby helped with a lot of edge cases. - -Jonathan Ellis was awarded the prestigious Beau Potage D'Or for his -work in solving the nestable tags conundrum. - -An incomplete list of people have contributed patches to Beautiful -Soup: - - Istvan Albert, Andrew Lin, Anthony Baxter, Oliver Beattie, Andrew -Boyko, Tony Chang, Francisco Canas, "Delong", Zephyr Fang, Fuzzy, -Roman Gaufman, Yoni Gilad, Richie Hindle, Toshihiro Kamiya, Peteris -Krumins, Kent Johnson, Marek Kapolka, Andreas Kostyrka, Roel Kramer, -Ben Last, Robert Leftwich, Stefaan Lippens, "liquider", Staffan -Malmgren, Ksenia Marasanova, JP Moins, Adam Monsen, John Nagle, "Jon", -Ed Oskiewicz, Martijn Peters, Greg Phillips, Giles Radford, Stefano -Revera, Arthur Rudolph, Marko Samastur, James Salter, Jouni Seppänen, -Alexander Schmolck, Tim Shirley, Geoffrey Sneddon, Ville Skyttä, -"Vikas", Jens Svalgaard, Andy Theyers, Eric Weiser, Glyn Webster, John -Wiseman, Paul Wright, Danny Yoo - -An incomplete list of people who made suggestions or found bugs or -found ways to break Beautiful Soup: - - Hanno Böck, Matteo Bertini, Chris Curvey, Simon Cusack, Bruce Eckel, - Matt Ernst, Michael Foord, Tom Harris, Bill de hOra, Donald Howes, - Matt Patterson, Scott Roberts, Steve Strassmann, Mike Williams, - warchild at redho dot com, Sami Kuisma, Carlos Rocha, Bob Hutchison, - Joren Mc, Michal Migurski, John Kleven, Tim Heaney, Tripp Lilley, Ed - Summers, Dennis Sutch, Chris Smith, Aaron Swartz, Stuart - Turner, Greg Edwards, Kevin J Kalupson, Nikos Kouremenos, Artur de - Sousa Rocha, Yichun Wei, Per Vognsen diff --git a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/LICENSE deleted file mode 100644 index 08e3a9c..0000000 --- a/.venv/lib/python3.12/site-packages/beautifulsoup4-4.13.4.dist-info/licenses/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -Beautiful Soup is made available under the MIT license: - - Copyright (c) Leonard Richardson - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -Beautiful Soup incorporates code from the html5lib library, which is -also made available under the MIT license. Copyright (c) James Graham -and other contributors - -Beautiful Soup has an optional dependency on the soupsieve library, -which is also made available under the MIT license. Copyright (c) -Isaac Muse diff --git a/.venv/lib/python3.12/site-packages/bs4/__init__.py b/.venv/lib/python3.12/site-packages/bs4/__init__.py deleted file mode 100644 index 324fcfa..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/__init__.py +++ /dev/null @@ -1,1170 +0,0 @@ -"""Beautiful Soup Elixir and Tonic - "The Screen-Scraper's Friend". - -http://www.crummy.com/software/BeautifulSoup/ - -Beautiful Soup uses a pluggable XML or HTML parser to parse a -(possibly invalid) document into a tree representation. Beautiful Soup -provides methods and Pythonic idioms that make it easy to navigate, -search, and modify the parse tree. - -Beautiful Soup works with Python 3.7 and up. It works better if lxml -and/or html5lib is installed, but they are not required. - -For more than you ever wanted to know about Beautiful Soup, see the -documentation: http://www.crummy.com/software/BeautifulSoup/bs4/doc/ -""" - -__author__ = "Leonard Richardson (leonardr@segfault.org)" -__version__ = "4.13.4" -__copyright__ = "Copyright (c) 2004-2025 Leonard Richardson" -# Use of this source code is governed by the MIT license. -__license__ = "MIT" - -__all__ = [ - "AttributeResemblesVariableWarning", - "BeautifulSoup", - "Comment", - "Declaration", - "ProcessingInstruction", - "ResultSet", - "CSS", - "Script", - "Stylesheet", - "Tag", - "TemplateString", - "ElementFilter", - "UnicodeDammit", - "CData", - "Doctype", - - # Exceptions - "FeatureNotFound", - "ParserRejectedMarkup", - "StopParsing", - - # Warnings - "AttributeResemblesVariableWarning", - "GuessedAtParserWarning", - "MarkupResemblesLocatorWarning", - "UnusualUsageWarning", - "XMLParsedAsHTMLWarning", -] - -from collections import Counter -import sys -import warnings - -# The very first thing we do is give a useful error if someone is -# running this code under Python 2. -if sys.version_info.major < 3: - raise ImportError( - "You are trying to use a Python 3-specific version of Beautiful Soup under Python 2. This will not work. The final version of Beautiful Soup to support Python 2 was 4.9.3." - ) - -from .builder import ( - builder_registry, - TreeBuilder, -) -from .builder._htmlparser import HTMLParserTreeBuilder -from .dammit import UnicodeDammit -from .css import CSS -from ._deprecation import ( - _deprecated, -) -from .element import ( - CData, - Comment, - DEFAULT_OUTPUT_ENCODING, - Declaration, - Doctype, - NavigableString, - PageElement, - ProcessingInstruction, - PYTHON_SPECIFIC_ENCODINGS, - ResultSet, - Script, - Stylesheet, - Tag, - TemplateString, -) -from .formatter import Formatter -from .filter import ( - ElementFilter, - SoupStrainer, -) -from typing import ( - Any, - cast, - Counter as CounterType, - Dict, - Iterator, - List, - Sequence, - Optional, - Type, - Union, -) - -from bs4._typing import ( - _Encoding, - _Encodings, - _IncomingMarkup, - _InsertableElement, - _RawAttributeValue, - _RawAttributeValues, - _RawMarkup, -) - -# Import all warnings and exceptions into the main package. -from bs4.exceptions import ( - FeatureNotFound, - ParserRejectedMarkup, - StopParsing, -) -from bs4._warnings import ( - AttributeResemblesVariableWarning, - GuessedAtParserWarning, - MarkupResemblesLocatorWarning, - UnusualUsageWarning, - XMLParsedAsHTMLWarning, -) - - -class BeautifulSoup(Tag): - """A data structure representing a parsed HTML or XML document. - - Most of the methods you'll call on a BeautifulSoup object are inherited from - PageElement or Tag. - - Internally, this class defines the basic interface called by the - tree builders when converting an HTML/XML document into a data - structure. The interface abstracts away the differences between - parsers. To write a new tree builder, you'll need to understand - these methods as a whole. - - These methods will be called by the BeautifulSoup constructor: - * reset() - * feed(markup) - - The tree builder may call these methods from its feed() implementation: - * handle_starttag(name, attrs) # See note about return value - * handle_endtag(name) - * handle_data(data) # Appends to the current data node - * endData(containerClass) # Ends the current data node - - No matter how complicated the underlying parser is, you should be - able to build a tree using 'start tag' events, 'end tag' events, - 'data' events, and "done with data" events. - - If you encounter an empty-element tag (aka a self-closing tag, - like HTML's
tag), call handle_starttag and then - handle_endtag. - """ - - #: Since `BeautifulSoup` subclasses `Tag`, it's possible to treat it as - #: a `Tag` with a `Tag.name`. Hoever, this name makes it clear the - #: `BeautifulSoup` object isn't a real markup tag. - ROOT_TAG_NAME: str = "[document]" - - #: If the end-user gives no indication which tree builder they - #: want, look for one with these features. - DEFAULT_BUILDER_FEATURES: Sequence[str] = ["html", "fast"] - - #: A string containing all ASCII whitespace characters, used in - #: during parsing to detect data chunks that seem 'empty'. - ASCII_SPACES: str = "\x20\x0a\x09\x0c\x0d" - - # FUTURE PYTHON: - element_classes: Dict[Type[PageElement], Type[PageElement]] #: :meta private: - builder: TreeBuilder #: :meta private: - is_xml: bool - known_xml: Optional[bool] - parse_only: Optional[SoupStrainer] #: :meta private: - - # These members are only used while parsing markup. - markup: Optional[_RawMarkup] #: :meta private: - current_data: List[str] #: :meta private: - currentTag: Optional[Tag] #: :meta private: - tagStack: List[Tag] #: :meta private: - open_tag_counter: CounterType[str] #: :meta private: - preserve_whitespace_tag_stack: List[Tag] #: :meta private: - string_container_stack: List[Tag] #: :meta private: - _most_recent_element: Optional[PageElement] #: :meta private: - - #: Beautiful Soup's best guess as to the character encoding of the - #: original document. - original_encoding: Optional[_Encoding] - - #: The character encoding, if any, that was explicitly defined - #: in the original document. This may or may not match - #: `BeautifulSoup.original_encoding`. - declared_html_encoding: Optional[_Encoding] - - #: This is True if the markup that was parsed contains - #: U+FFFD REPLACEMENT_CHARACTER characters which were not present - #: in the original markup. These mark character sequences that - #: could not be represented in Unicode. - contains_replacement_characters: bool - - def __init__( - self, - markup: _IncomingMarkup = "", - features: Optional[Union[str, Sequence[str]]] = None, - builder: Optional[Union[TreeBuilder, Type[TreeBuilder]]] = None, - parse_only: Optional[SoupStrainer] = None, - from_encoding: Optional[_Encoding] = None, - exclude_encodings: Optional[_Encodings] = None, - element_classes: Optional[Dict[Type[PageElement], Type[PageElement]]] = None, - **kwargs: Any, - ): - """Constructor. - - :param markup: A string or a file-like object representing - markup to be parsed. - - :param features: Desirable features of the parser to be - used. This may be the name of a specific parser ("lxml", - "lxml-xml", "html.parser", or "html5lib") or it may be the - type of markup to be used ("html", "html5", "xml"). It's - recommended that you name a specific parser, so that - Beautiful Soup gives you the same results across platforms - and virtual environments. - - :param builder: A TreeBuilder subclass to instantiate (or - instance to use) instead of looking one up based on - `features`. You only need to use this if you've implemented a - custom TreeBuilder. - - :param parse_only: A SoupStrainer. Only parts of the document - matching the SoupStrainer will be considered. This is useful - when parsing part of a document that would otherwise be too - large to fit into memory. - - :param from_encoding: A string indicating the encoding of the - document to be parsed. Pass this in if Beautiful Soup is - guessing wrongly about the document's encoding. - - :param exclude_encodings: A list of strings indicating - encodings known to be wrong. Pass this in if you don't know - the document's encoding but you know Beautiful Soup's guess is - wrong. - - :param element_classes: A dictionary mapping BeautifulSoup - classes like Tag and NavigableString, to other classes you'd - like to be instantiated instead as the parse tree is - built. This is useful for subclassing Tag or NavigableString - to modify default behavior. - - :param kwargs: For backwards compatibility purposes, the - constructor accepts certain keyword arguments used in - Beautiful Soup 3. None of these arguments do anything in - Beautiful Soup 4; they will result in a warning and then be - ignored. - - Apart from this, any keyword arguments passed into the - BeautifulSoup constructor are propagated to the TreeBuilder - constructor. This makes it possible to configure a - TreeBuilder by passing in arguments, not just by saying which - one to use. - """ - if "convertEntities" in kwargs: - del kwargs["convertEntities"] - warnings.warn( - "BS4 does not respect the convertEntities argument to the " - "BeautifulSoup constructor. Entities are always converted " - "to Unicode characters." - ) - - if "markupMassage" in kwargs: - del kwargs["markupMassage"] - warnings.warn( - "BS4 does not respect the markupMassage argument to the " - "BeautifulSoup constructor. The tree builder is responsible " - "for any necessary markup massage." - ) - - if "smartQuotesTo" in kwargs: - del kwargs["smartQuotesTo"] - warnings.warn( - "BS4 does not respect the smartQuotesTo argument to the " - "BeautifulSoup constructor. Smart quotes are always converted " - "to Unicode characters." - ) - - if "selfClosingTags" in kwargs: - del kwargs["selfClosingTags"] - warnings.warn( - "Beautiful Soup 4 does not respect the selfClosingTags argument to the " - "BeautifulSoup constructor. The tree builder is responsible " - "for understanding self-closing tags." - ) - - if "isHTML" in kwargs: - del kwargs["isHTML"] - warnings.warn( - "Beautiful Soup 4 does not respect the isHTML argument to the " - "BeautifulSoup constructor. Suggest you use " - "features='lxml' for HTML and features='lxml-xml' for " - "XML." - ) - - def deprecated_argument(old_name: str, new_name: str) -> Optional[Any]: - if old_name in kwargs: - warnings.warn( - 'The "%s" argument to the BeautifulSoup constructor ' - 'was renamed to "%s" in Beautiful Soup 4.0.0' - % (old_name, new_name), - DeprecationWarning, - stacklevel=3, - ) - return kwargs.pop(old_name) - return None - - parse_only = parse_only or deprecated_argument("parseOnlyThese", "parse_only") - if parse_only is not None: - # Issue a warning if we can tell in advance that - # parse_only will exclude the entire tree. - if parse_only.excludes_everything: - warnings.warn( - f"The given value for parse_only will exclude everything: {parse_only}", - UserWarning, - stacklevel=3, - ) - - from_encoding = from_encoding or deprecated_argument( - "fromEncoding", "from_encoding" - ) - - if from_encoding and isinstance(markup, str): - warnings.warn( - "You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored." - ) - from_encoding = None - - self.element_classes = element_classes or dict() - - # We need this information to track whether or not the builder - # was specified well enough that we can omit the 'you need to - # specify a parser' warning. - original_builder = builder - original_features = features - - builder_class: Type[TreeBuilder] - if isinstance(builder, type): - # A builder class was passed in; it needs to be instantiated. - builder_class = builder - builder = None - elif builder is None: - if isinstance(features, str): - features = [features] - if features is None or len(features) == 0: - features = self.DEFAULT_BUILDER_FEATURES - possible_builder_class = builder_registry.lookup(*features) - if possible_builder_class is None: - raise FeatureNotFound( - "Couldn't find a tree builder with the features you " - "requested: %s. Do you need to install a parser library?" - % ",".join(features) - ) - builder_class = possible_builder_class - - # At this point either we have a TreeBuilder instance in - # builder, or we have a builder_class that we can instantiate - # with the remaining **kwargs. - if builder is None: - builder = builder_class(**kwargs) - if ( - not original_builder - and not ( - original_features == builder.NAME - or ( - isinstance(original_features, str) - and original_features in builder.ALTERNATE_NAMES - ) - ) - and markup - ): - # The user did not tell us which TreeBuilder to use, - # and we had to guess. Issue a warning. - if builder.is_xml: - markup_type = "XML" - else: - markup_type = "HTML" - - # This code adapted from warnings.py so that we get the same line - # of code as our warnings.warn() call gets, even if the answer is wrong - # (as it may be in a multithreading situation). - caller = None - try: - caller = sys._getframe(1) - except ValueError: - pass - if caller: - globals = caller.f_globals - line_number = caller.f_lineno - else: - globals = sys.__dict__ - line_number = 1 - filename = globals.get("__file__") - if filename: - fnl = filename.lower() - if fnl.endswith((".pyc", ".pyo")): - filename = filename[:-1] - if filename: - # If there is no filename at all, the user is most likely in a REPL, - # and the warning is not necessary. - values = dict( - filename=filename, - line_number=line_number, - parser=builder.NAME, - markup_type=markup_type, - ) - warnings.warn( - GuessedAtParserWarning.MESSAGE % values, - GuessedAtParserWarning, - stacklevel=2, - ) - else: - if kwargs: - warnings.warn( - "Keyword arguments to the BeautifulSoup constructor will be ignored. These would normally be passed into the TreeBuilder constructor, but a TreeBuilder instance was passed in as `builder`." - ) - - self.builder = builder - self.is_xml = builder.is_xml - self.known_xml = self.is_xml - self._namespaces = dict() - self.parse_only = parse_only - - if hasattr(markup, "read"): # It's a file-type object. - markup = markup.read() - elif not isinstance(markup, (bytes, str)) and not hasattr(markup, "__len__"): - raise TypeError( - f"Incoming markup is of an invalid type: {markup!r}. Markup must be a string, a bytestring, or an open filehandle." - ) - elif len(markup) <= 256 and ( - (isinstance(markup, bytes) and b"<" not in markup and b"\n" not in markup) - or (isinstance(markup, str) and "<" not in markup and "\n" not in markup) - ): - # Issue warnings for a couple beginner problems - # involving passing non-markup to Beautiful Soup. - # Beautiful Soup will still parse the input as markup, - # since that is sometimes the intended behavior. - if not self._markup_is_url(markup): - self._markup_resembles_filename(markup) - - # At this point we know markup is a string or bytestring. If - # it was a file-type object, we've read from it. - markup = cast(_RawMarkup, markup) - - rejections = [] - success = False - for ( - self.markup, - self.original_encoding, - self.declared_html_encoding, - self.contains_replacement_characters, - ) in self.builder.prepare_markup( - markup, from_encoding, exclude_encodings=exclude_encodings - ): - self.reset() - self.builder.initialize_soup(self) - try: - self._feed() - success = True - break - except ParserRejectedMarkup as e: - rejections.append(e) - pass - - if not success: - other_exceptions = [str(e) for e in rejections] - raise ParserRejectedMarkup( - "The markup you provided was rejected by the parser. Trying a different parser or a different encoding may help.\n\nOriginal exception(s) from parser:\n " - + "\n ".join(other_exceptions) - ) - - # Clear out the markup and remove the builder's circular - # reference to this object. - self.markup = None - self.builder.soup = None - - def copy_self(self) -> "BeautifulSoup": - """Create a new BeautifulSoup object with the same TreeBuilder, - but not associated with any markup. - - This is the first step of the deepcopy process. - """ - clone = type(self)("", None, self.builder) - - # Keep track of the encoding of the original document, - # since we won't be parsing it again. - clone.original_encoding = self.original_encoding - return clone - - def __getstate__(self) -> Dict[str, Any]: - # Frequently a tree builder can't be pickled. - d = dict(self.__dict__) - if "builder" in d and d["builder"] is not None and not self.builder.picklable: - d["builder"] = type(self.builder) - # Store the contents as a Unicode string. - d["contents"] = [] - d["markup"] = self.decode() - - # If _most_recent_element is present, it's a Tag object left - # over from initial parse. It might not be picklable and we - # don't need it. - if "_most_recent_element" in d: - del d["_most_recent_element"] - return d - - def __setstate__(self, state: Dict[str, Any]) -> None: - # If necessary, restore the TreeBuilder by looking it up. - self.__dict__ = state - if isinstance(self.builder, type): - self.builder = self.builder() - elif not self.builder: - # We don't know which builder was used to build this - # parse tree, so use a default we know is always available. - self.builder = HTMLParserTreeBuilder() - self.builder.soup = self - self.reset() - self._feed() - - @classmethod - @_deprecated( - replaced_by="nothing (private method, will be removed)", version="4.13.0" - ) - def _decode_markup(cls, markup: _RawMarkup) -> str: - """Ensure `markup` is Unicode so it's safe to send into warnings.warn. - - warnings.warn had this problem back in 2010 but fortunately - not anymore. This has not been used for a long time; I just - noticed that fact while working on 4.13.0. - """ - if isinstance(markup, bytes): - decoded = markup.decode("utf-8", "replace") - else: - decoded = markup - return decoded - - @classmethod - def _markup_is_url(cls, markup: _RawMarkup) -> bool: - """Error-handling method to raise a warning if incoming markup looks - like a URL. - - :param markup: A string of markup. - :return: Whether or not the markup resembled a URL - closely enough to justify issuing a warning. - """ - problem: bool = False - if isinstance(markup, bytes): - problem = ( - any(markup.startswith(prefix) for prefix in (b"http:", b"https:")) - and b" " not in markup - ) - elif isinstance(markup, str): - problem = ( - any(markup.startswith(prefix) for prefix in ("http:", "https:")) - and " " not in markup - ) - else: - return False - - if not problem: - return False - warnings.warn( - MarkupResemblesLocatorWarning.URL_MESSAGE % dict(what="URL"), - MarkupResemblesLocatorWarning, - stacklevel=3, - ) - return True - - @classmethod - def _markup_resembles_filename(cls, markup: _RawMarkup) -> bool: - """Error-handling method to issue a warning if incoming markup - resembles a filename. - - :param markup: A string of markup. - :return: Whether or not the markup resembled a filename - closely enough to justify issuing a warning. - """ - markup_b: bytes - - # We're only checking ASCII characters, so rather than write - # the same tests twice, convert Unicode to a bytestring and - # operate on the bytestring. - if isinstance(markup, str): - markup_b = markup.encode("utf8") - else: - markup_b = markup - - # Step 1: does it end with a common textual file extension? - filelike = False - lower = markup_b.lower() - extensions = [b".html", b".htm", b".xml", b".xhtml", b".txt"] - if any(lower.endswith(ext) for ext in extensions): - filelike = True - if not filelike: - return False - - # Step 2: it _might_ be a file, but there are a few things - # we can look for that aren't very common in filenames. - - # Characters that have special meaning to Unix shells. (< was - # excluded before this method was called.) - # - # Many of these are also reserved characters that cannot - # appear in Windows filenames. - for byte in markup_b: - if byte in b"?*#&;>$|": - return False - - # Two consecutive forward slashes (as seen in a URL) or two - # consecutive spaces (as seen in fixed-width data). - # - # (Paths to Windows network shares contain consecutive - # backslashes, so checking that doesn't seem as helpful.) - if b"//" in markup_b: - return False - if b" " in markup_b: - return False - - # A colon in any position other than position 1 (e.g. after a - # Windows drive letter). - if markup_b.startswith(b":"): - return False - colon_i = markup_b.rfind(b":") - if colon_i not in (-1, 1): - return False - - # Step 3: If it survived all of those checks, it's similar - # enough to a file to justify issuing a warning. - warnings.warn( - MarkupResemblesLocatorWarning.FILENAME_MESSAGE % dict(what="filename"), - MarkupResemblesLocatorWarning, - stacklevel=3, - ) - return True - - def _feed(self) -> None: - """Internal method that parses previously set markup, creating a large - number of Tag and NavigableString objects. - """ - # Convert the document to Unicode. - self.builder.reset() - - if self.markup is not None: - self.builder.feed(self.markup) - # Close out any unfinished strings and close all the open tags. - self.endData() - while ( - self.currentTag is not None and self.currentTag.name != self.ROOT_TAG_NAME - ): - self.popTag() - - def reset(self) -> None: - """Reset this object to a state as though it had never parsed any - markup. - """ - Tag.__init__(self, self, self.builder, self.ROOT_TAG_NAME) - self.hidden = True - self.builder.reset() - self.current_data = [] - self.currentTag = None - self.tagStack = [] - self.open_tag_counter = Counter() - self.preserve_whitespace_tag_stack = [] - self.string_container_stack = [] - self._most_recent_element = None - self.pushTag(self) - - def new_tag( - self, - name: str, - namespace: Optional[str] = None, - nsprefix: Optional[str] = None, - attrs: Optional[_RawAttributeValues] = None, - sourceline: Optional[int] = None, - sourcepos: Optional[int] = None, - string: Optional[str] = None, - **kwattrs: _RawAttributeValue, - ) -> Tag: - """Create a new Tag associated with this BeautifulSoup object. - - :param name: The name of the new Tag. - :param namespace: The URI of the new Tag's XML namespace, if any. - :param prefix: The prefix for the new Tag's XML namespace, if any. - :param attrs: A dictionary of this Tag's attribute values; can - be used instead of ``kwattrs`` for attributes like 'class' - that are reserved words in Python. - :param sourceline: The line number where this tag was - (purportedly) found in its source document. - :param sourcepos: The character position within ``sourceline`` where this - tag was (purportedly) found. - :param string: String content for the new Tag, if any. - :param kwattrs: Keyword arguments for the new Tag's attribute values. - - """ - attr_container = self.builder.attribute_dict_class(**kwattrs) - if attrs is not None: - attr_container.update(attrs) - tag_class = self.element_classes.get(Tag, Tag) - - # Assume that this is either Tag or a subclass of Tag. If not, - # the user brought type-unsafety upon themselves. - tag_class = cast(Type[Tag], tag_class) - tag = tag_class( - None, - self.builder, - name, - namespace, - nsprefix, - attr_container, - sourceline=sourceline, - sourcepos=sourcepos, - ) - - if string is not None: - tag.string = string - return tag - - def string_container( - self, base_class: Optional[Type[NavigableString]] = None - ) -> Type[NavigableString]: - """Find the class that should be instantiated to hold a given kind of - string. - - This may be a built-in Beautiful Soup class or a custom class passed - in to the BeautifulSoup constructor. - """ - container = base_class or NavigableString - - # The user may want us to use some other class (hopefully a - # custom subclass) instead of the one we'd use normally. - container = cast( - Type[NavigableString], self.element_classes.get(container, container) - ) - - # On top of that, we may be inside a tag that needs a special - # container class. - if self.string_container_stack and container is NavigableString: - container = self.builder.string_containers.get( - self.string_container_stack[-1].name, container - ) - return container - - def new_string( - self, s: str, subclass: Optional[Type[NavigableString]] = None - ) -> NavigableString: - """Create a new `NavigableString` associated with this `BeautifulSoup` - object. - - :param s: The string content of the `NavigableString` - :param subclass: The subclass of `NavigableString`, if any, to - use. If a document is being processed, an appropriate - subclass for the current location in the document will - be determined automatically. - """ - container = self.string_container(subclass) - return container(s) - - def insert_before(self, *args: _InsertableElement) -> List[PageElement]: - """This method is part of the PageElement API, but `BeautifulSoup` doesn't implement - it because there is nothing before or after it in the parse tree. - """ - raise NotImplementedError( - "BeautifulSoup objects don't support insert_before()." - ) - - def insert_after(self, *args: _InsertableElement) -> List[PageElement]: - """This method is part of the PageElement API, but `BeautifulSoup` doesn't implement - it because there is nothing before or after it in the parse tree. - """ - raise NotImplementedError("BeautifulSoup objects don't support insert_after().") - - def popTag(self) -> Optional[Tag]: - """Internal method called by _popToTag when a tag is closed. - - :meta private: - """ - if not self.tagStack: - # Nothing to pop. This shouldn't happen. - return None - tag = self.tagStack.pop() - if tag.name in self.open_tag_counter: - self.open_tag_counter[tag.name] -= 1 - if ( - self.preserve_whitespace_tag_stack - and tag == self.preserve_whitespace_tag_stack[-1] - ): - self.preserve_whitespace_tag_stack.pop() - if self.string_container_stack and tag == self.string_container_stack[-1]: - self.string_container_stack.pop() - # print("Pop", tag.name) - if self.tagStack: - self.currentTag = self.tagStack[-1] - return self.currentTag - - def pushTag(self, tag: Tag) -> None: - """Internal method called by handle_starttag when a tag is opened. - - :meta private: - """ - # print("Push", tag.name) - if self.currentTag is not None: - self.currentTag.contents.append(tag) - self.tagStack.append(tag) - self.currentTag = self.tagStack[-1] - if tag.name != self.ROOT_TAG_NAME: - self.open_tag_counter[tag.name] += 1 - if tag.name in self.builder.preserve_whitespace_tags: - self.preserve_whitespace_tag_stack.append(tag) - if tag.name in self.builder.string_containers: - self.string_container_stack.append(tag) - - def endData(self, containerClass: Optional[Type[NavigableString]] = None) -> None: - """Method called by the TreeBuilder when the end of a data segment - occurs. - - :param containerClass: The class to use when incorporating the - data segment into the parse tree. - - :meta private: - """ - if self.current_data: - current_data = "".join(self.current_data) - # If whitespace is not preserved, and this string contains - # nothing but ASCII spaces, replace it with a single space - # or newline. - if not self.preserve_whitespace_tag_stack: - strippable = True - for i in current_data: - if i not in self.ASCII_SPACES: - strippable = False - break - if strippable: - if "\n" in current_data: - current_data = "\n" - else: - current_data = " " - - # Reset the data collector. - self.current_data = [] - - # Should we add this string to the tree at all? - if ( - self.parse_only - and len(self.tagStack) <= 1 - and (not self.parse_only.allow_string_creation(current_data)) - ): - return - - containerClass = self.string_container(containerClass) - o = containerClass(current_data) - self.object_was_parsed(o) - - def object_was_parsed( - self, - o: PageElement, - parent: Optional[Tag] = None, - most_recent_element: Optional[PageElement] = None, - ) -> None: - """Method called by the TreeBuilder to integrate an object into the - parse tree. - - :meta private: - """ - if parent is None: - parent = self.currentTag - assert parent is not None - previous_element: Optional[PageElement] - if most_recent_element is not None: - previous_element = most_recent_element - else: - previous_element = self._most_recent_element - - next_element = previous_sibling = next_sibling = None - if isinstance(o, Tag): - next_element = o.next_element - next_sibling = o.next_sibling - previous_sibling = o.previous_sibling - if previous_element is None: - previous_element = o.previous_element - - fix = parent.next_element is not None - - o.setup(parent, previous_element, next_element, previous_sibling, next_sibling) - - self._most_recent_element = o - parent.contents.append(o) - - # Check if we are inserting into an already parsed node. - if fix: - self._linkage_fixer(parent) - - def _linkage_fixer(self, el: Tag) -> None: - """Make sure linkage of this fragment is sound.""" - - first = el.contents[0] - child = el.contents[-1] - descendant: PageElement = child - - if child is first and el.parent is not None: - # Parent should be linked to first child - el.next_element = child - # We are no longer linked to whatever this element is - prev_el = child.previous_element - if prev_el is not None and prev_el is not el: - prev_el.next_element = None - # First child should be linked to the parent, and no previous siblings. - child.previous_element = el - child.previous_sibling = None - - # We have no sibling as we've been appended as the last. - child.next_sibling = None - - # This index is a tag, dig deeper for a "last descendant" - if isinstance(child, Tag) and child.contents: - # _last_decendant is typed as returning Optional[PageElement], - # but the value can't be None here, because el is a Tag - # which we know has contents. - descendant = cast(PageElement, child._last_descendant(False)) - - # As the final step, link last descendant. It should be linked - # to the parent's next sibling (if found), else walk up the chain - # and find a parent with a sibling. It should have no next sibling. - descendant.next_element = None - descendant.next_sibling = None - - target: Optional[Tag] = el - while True: - if target is None: - break - elif target.next_sibling is not None: - descendant.next_element = target.next_sibling - target.next_sibling.previous_element = child - break - target = target.parent - - def _popToTag( - self, name: str, nsprefix: Optional[str] = None, inclusivePop: bool = True - ) -> Optional[Tag]: - """Pops the tag stack up to and including the most recent - instance of the given tag. - - If there are no open tags with the given name, nothing will be - popped. - - :param name: Pop up to the most recent tag with this name. - :param nsprefix: The namespace prefix that goes with `name`. - :param inclusivePop: It this is false, pops the tag stack up - to but *not* including the most recent instqance of the - given tag. - - :meta private: - """ - # print("Popping to %s" % name) - if name == self.ROOT_TAG_NAME: - # The BeautifulSoup object itself can never be popped. - return None - - most_recently_popped = None - - stack_size = len(self.tagStack) - for i in range(stack_size - 1, 0, -1): - if not self.open_tag_counter.get(name): - break - t = self.tagStack[i] - if name == t.name and nsprefix == t.prefix: - if inclusivePop: - most_recently_popped = self.popTag() - break - most_recently_popped = self.popTag() - - return most_recently_popped - - def handle_starttag( - self, - name: str, - namespace: Optional[str], - nsprefix: Optional[str], - attrs: _RawAttributeValues, - sourceline: Optional[int] = None, - sourcepos: Optional[int] = None, - namespaces: Optional[Dict[str, str]] = None, - ) -> Optional[Tag]: - """Called by the tree builder when a new tag is encountered. - - :param name: Name of the tag. - :param nsprefix: Namespace prefix for the tag. - :param attrs: A dictionary of attribute values. Note that - attribute values are expected to be simple strings; processing - of multi-valued attributes such as "class" comes later. - :param sourceline: The line number where this tag was found in its - source document. - :param sourcepos: The character position within `sourceline` where this - tag was found. - :param namespaces: A dictionary of all namespace prefix mappings - currently in scope in the document. - - If this method returns None, the tag was rejected by an active - `ElementFilter`. You should proceed as if the tag had not occurred - in the document. For instance, if this was a self-closing tag, - don't call handle_endtag. - - :meta private: - """ - # print("Start tag %s: %s" % (name, attrs)) - self.endData() - - if ( - self.parse_only - and len(self.tagStack) <= 1 - and not self.parse_only.allow_tag_creation(nsprefix, name, attrs) - ): - return None - - tag_class = self.element_classes.get(Tag, Tag) - # Assume that this is either Tag or a subclass of Tag. If not, - # the user brought type-unsafety upon themselves. - tag_class = cast(Type[Tag], tag_class) - tag = tag_class( - self, - self.builder, - name, - namespace, - nsprefix, - attrs, - self.currentTag, - self._most_recent_element, - sourceline=sourceline, - sourcepos=sourcepos, - namespaces=namespaces, - ) - if tag is None: - return tag - if self._most_recent_element is not None: - self._most_recent_element.next_element = tag - self._most_recent_element = tag - self.pushTag(tag) - return tag - - def handle_endtag(self, name: str, nsprefix: Optional[str] = None) -> None: - """Called by the tree builder when an ending tag is encountered. - - :param name: Name of the tag. - :param nsprefix: Namespace prefix for the tag. - - :meta private: - """ - # print("End tag: " + name) - self.endData() - self._popToTag(name, nsprefix) - - def handle_data(self, data: str) -> None: - """Called by the tree builder when a chunk of textual data is - encountered. - - :meta private: - """ - self.current_data.append(data) - - def decode( - self, - indent_level: Optional[int] = None, - eventual_encoding: _Encoding = DEFAULT_OUTPUT_ENCODING, - formatter: Union[Formatter, str] = "minimal", - iterator: Optional[Iterator[PageElement]] = None, - **kwargs: Any, - ) -> str: - """Returns a string representation of the parse tree - as a full HTML or XML document. - - :param indent_level: Each line of the rendering will be - indented this many levels. (The ``formatter`` decides what a - 'level' means, in terms of spaces or other characters - output.) This is used internally in recursive calls while - pretty-printing. - :param eventual_encoding: The encoding of the final document. - If this is None, the document will be a Unicode string. - :param formatter: Either a `Formatter` object, or a string naming one of - the standard formatters. - :param iterator: The iterator to use when navigating over the - parse tree. This is only used by `Tag.decode_contents` and - you probably won't need to use it. - """ - if self.is_xml: - # Print the XML declaration - encoding_part = "" - declared_encoding: Optional[str] = eventual_encoding - if eventual_encoding in PYTHON_SPECIFIC_ENCODINGS: - # This is a special Python encoding; it can't actually - # go into an XML document because it means nothing - # outside of Python. - declared_encoding = None - if declared_encoding is not None: - encoding_part = ' encoding="%s"' % declared_encoding - prefix = '\n' % encoding_part - else: - prefix = "" - - # Prior to 4.13.0, the first argument to this method was a - # bool called pretty_print, which gave the method a different - # signature from its superclass implementation, Tag.decode. - # - # The signatures of the two methods now match, but just in - # case someone is still passing a boolean in as the first - # argument to this method (or a keyword argument with the old - # name), we can handle it and put out a DeprecationWarning. - warning: Optional[str] = None - if isinstance(indent_level, bool): - if indent_level is True: - indent_level = 0 - elif indent_level is False: - indent_level = None - warning = f"As of 4.13.0, the first argument to BeautifulSoup.decode has been changed from bool to int, to match Tag.decode. Pass in a value of {indent_level} instead." - else: - pretty_print = kwargs.pop("pretty_print", None) - assert not kwargs - if pretty_print is not None: - if pretty_print is True: - indent_level = 0 - elif pretty_print is False: - indent_level = None - warning = f"As of 4.13.0, the pretty_print argument to BeautifulSoup.decode has been removed, to match Tag.decode. Pass in a value of indent_level={indent_level} instead." - - if warning: - warnings.warn(warning, DeprecationWarning, stacklevel=2) - elif indent_level is False or pretty_print is False: - indent_level = None - return prefix + super(BeautifulSoup, self).decode( - indent_level, eventual_encoding, formatter, iterator - ) - - -# Aliases to make it easier to get started quickly, e.g. 'from bs4 import _soup' -_s = BeautifulSoup -_soup = BeautifulSoup - - -class BeautifulStoneSoup(BeautifulSoup): - """Deprecated interface to an XML parser.""" - - def __init__(self, *args: Any, **kwargs: Any): - kwargs["features"] = "xml" - warnings.warn( - "The BeautifulStoneSoup class was deprecated in version 4.0.0. Instead of using " - 'it, pass features="xml" into the BeautifulSoup constructor.', - DeprecationWarning, - stacklevel=2, - ) - super(BeautifulStoneSoup, self).__init__(*args, **kwargs) - - -# If this file is run as a script, act as an HTML pretty-printer. -if __name__ == "__main__": - import sys - - soup = BeautifulSoup(sys.stdin) - print((soup.prettify())) diff --git a/.venv/lib/python3.12/site-packages/bs4/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4489723fdb70b900312eefdd2fd9ac10a79538fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39654 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 V;O+S)0o8yz4%F7U$EbvH{{wgbpe6tS diff --git a/.venv/lib/python3.12/site-packages/bs4/__pycache__/_typing.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/__pycache__/_typing.cpython-312.pyc deleted file mode 100644 index 1d675964683244bc0e3888fcd2d569d70304f968..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3572 zcmaJ@O>Eo96(0TnS+?b0$v+ZhDY2Evl4Co68)rAR<2Y$-$8nPGhC#s4;@IM@NU1|A ziGl+4A&2x*_!b|1RIn)EV|weoKta_#xI8V;Q*TOLAi$pbW=P3)7A*mNGw*xv&Aj)9 z^Qgas!$Abk!PxJLe;r2XpHyf)UVC!fbRzT~JwXzZ93`YUc!%QTor;ThIVk5WxfKuZ zQM|lY@$o*z&-;}CA5emPPzmuNrGxKK!hBfiB9tPwPnz*P_F98DZS&_C-)q~a@Hv}5&-gxzm-_Lb&5tvF zfbm|bf7^j4Y)yt~25n9Bl;#4{#4HUSJf*qFG(*-dtnM9l-6!mdXPL#YZIQ(n?A<0A zKhowe+I)`jqc%T@19+01pLI@orj6U$9B6Z=v{Ou*VA?7E5|cP4`5?9_dxvSpC#^N4 zF?PB$j7u>tgl8Bx%eXYg(5EeAa0hh>0c*h zy<8}l%)sMX1<#jcQOg8P*SuOY{flC$#H`%6<$`WH?>#X6_jF7c=UWvk601|dP^)J6@zeDsVe#(L;{AJT%ckdv3I-Xk*)y-}MBc3G_}5~oidSS!H+$Da z1#1{=6F%G-3GN8kXPgx1Avyi~#pR&_J5fwgK$e}r|@^;q04(DYglYXTq~ z-vxM&Fyb8&;+>L%cLk6Xket{pxv)oa!_R}g*vF2~^F18-MLB3XJ}Az0HOp;qbM{BfSE*k$C(o8RMt&b=zig(6oFRZc7va7E{^tQRri z)@ypPtd48kW>qffld>A*;CVrC&aT}Hdj&1al?ewvoF*$W?907)0TJNWFWMHIgtufB zOWbCS8nTu2qD-X8ib(VtI1t+bs`~@fFUL$wuV&TMRVizx7poE*3D&DbEx22Sv`5;q zjw$&b)zAmW+6Rn05obulli%rFP0UY*Gkp=28Oj|y-Z}RO)krN zezC0Tq+EhGP*k_ECOi^1YrXr)T77Al76fm$Js0D{TBJ5ZO)re)QM_HcdbBb{@Htd%b^iCy!kq z{KIV}!xlHYgnMeCtiZXfisXlC1v1(YU)l43umnnp-s50SVB0$eO!<&7A)h5rfUBZH>(FQ8YDr?yTUl6SwqhIjtR3N?+_m(x=%wF=u zGIGk&3dZa|MYRpJjEkktav?o5p^)%EZD${WLavrI{e*fm&~Eq7PFX&Ox8-3KlbWT~ z)-qSjh}9Yd{94B1s%2fIN2v({p*ND`DC8+j zQMg25n!*eP+P27L3Rfsxr9c}Bxej2uH_PP``HIRnDA4acxk=$`3g1w;MPZ)80)<5i zw<#=9xI^J=$N1SlXSJfQ$tq}R*VFz0f18^whr{uib32^>MgX6KApq2ZPeaHZ`Rw$0 zyq^(3vky6Y|Kkif#`dGfU^E6T!`a)UL~{(qQ~NV@Pn{g3KD_$q{CN3K0V6fv7+u)u z+KnBe1?V-g_+DZE^4|B2Xl5t)?%pBFK)Z?#?*!gmKSV=KFN!7iV~yxVOL-BLi7^9p z?`95B60{?Uo$$NbA&SGCOB?Cg1I0)$HWIfD6xoFpZUaA&t*;t4?i<_D!8|KzkWy<{wZYfOLJ$bM&__p!Zlc~__Z{@r!;QohJBusLAWB`VFV-&~r0X{tV^4kV9HI>t z?U8$E@2+v~Mq^~oaL>VKBk5#eTV?4$sfi=^$X?MH|E3YYWw>vFMG7n+o|XkSYll4p z#ZOPvUB=|RF)`mrEf}bO7Y=Iy>NS)w5_cN0<(<&Gr-x|yC^23SH4-h)*`whZda!>- IGwciZU)7K9-~a#s diff --git a/.venv/lib/python3.12/site-packages/bs4/__pycache__/_warnings.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/__pycache__/_warnings.cpython-312.pyc deleted file mode 100644 index cb2d32b6ea1de9b785a326199f4d8f03041e93ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5623 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 ^-2R&orWdKt(&+-|v)K?45AQy;d)zu( zTn9hX+2ZBl;^k9C=c;Flx6U}5VeH5%inxo;yPL+hJ+}Mo?#cA$UC+4AS#pm72#&?hbOZX2 zQI7lz8QN~Q85*9IG(1XU=y;}9uQi&+?E!~xp(#Wi)VT(ZwUDkA&3p%af`;+r)`{B0 zO;m8BeSQUED1UDIh{pbBYMWh%J}JHCDvacnj<&+Ggw3L6YevpRXD%JrFkX$Fn34Pi zqb;abcfqLhH*eUaoU%tdrd>5S95EvYJ2LqT7I7PhYeCX)M~lj($6c!}Uox$>@SOG} zCO%eWKn+B#E0;GlbJ%;XnLLcV7m>E$AuQWa?20B1d>`G>-5=!r%q1Gmh80;TK*> zkvRK1c$ml)tBC9~$kjxK{JpRrSXOT1jG(fEvaVdQl5S1Imy5O6TtOthUaY@h6Wtq7 zv{ysM;$2$kU0M)ly?daqml=!K#V>W5;YS!g!tkREKgRIm49_qeXLy$3Cm4Q`;iC*c z#qiS%A5(vVZWgt)?7!ohsV-{j9x~U}4Oto*8m^g^4VjlMyJouYnrTVY)TSPygywxM zQB#LXGbi;R0@P;0XalbJTvQ8T+X14cT6G5zS1Hx4z=q8A_3BO_*G%tH;Z05-1a9B! zRd-XWVoJ4#ur9*(0*jghib~Q|-A9yZNWG1(cXPof7(RZ@RL;l~QBxNqpNU#_Y`u-q zC$E{R7Y8U7W+>8MGJzHrne>iK-sw2z}^ z7+zrbD#IT$oMjkc_*&GopOGlTpD?`0@TUy_I%+z^$lpXwTN$|&HTf9%8N;75`~}0; z8UB*t-$u`Wd;x@G8SM z82*akzg;smMooj>45og~@HY&9%kUb*e`okRhX29vKN>(rKBQe^x!*{>(&DiNgqVX7Y3{l{dXJd~fh(}|zp+}4PRE&1xXv7n-k0*#n zVzdcFi}`4bR;xrIAC1wXm56xoi5SfY#Pc7IebR_H`L)=iM#LjA`mlyb^sU%q27WF! zq2u43h&^uLkH?-c@F!xQG4RjCo;2_$V^10QQ!$#1aQ@%@Z0uyg4;FB>@@kE+u zVxKec&&5a|7U9pvo-^?0Vzj$SgnvHv1q1&=?0Ex!K1OCtk!C9Pf`PvfqwXxizZm?;QTmDpDe{Hw7S4gAH}IRifzd&$6Giha$%zZUztfqy;r4Fms1jCOH} zGJG@kEd&2n?Ar$Z?bypY{=Jj2?-=-dV&66J_r|_w;O~q5iGe>Dd&R)tAN#(6e<1d! z2L8d=4-9-X_Co_d6(e&Km+gBWiv7sIKOFmW1Aiz+3u_|HAH`@@P2hhVquHmxAC8eN zO5kI$uz{bBoj350#AXcqkr-Q+XsCVfqp??w@Q=lQY~UY{%^LWbSj51`W5fl-v(Cn% z2L6c{Noo=P$=F2$e>C<}1OHU)uMPauvA;3!$6}WZd?NNU;IW?@0Z+t!Vc?&My>8%7 z#(rtwPsRS$z&{(Kd5S2=)3Lud@X1)rz@LfzgMoi8_KybsZ0w&5{JGda8~EpA|6<@@ zi2bX9KOc)5_*Cq&fxi&DV&GqlT{ZA8#ojRRFULq<7v=m)?B5LhtFd1j_=~aM82Gu^ zZw>sV*fj(HTI}Bq{OcmSZ-~n`#pPRGOYC<@68jGV{|OMyzjJ5nwtaWDb<#<;w7P{) zJFWFvFvBQ7r%+cCpy7vrRfOZa@Dd*sfq-VhcMzb#8eOn=|DN`pTkmdf>BQ>9?v^{+ zI-6Rzb++y7XldiEw9&%tJMU;~@0_1bU4h$ql`LAYrzu5(sNLVs$KC~_S$%L6HoOXO zrX!BEmgS^#?@}B0`cX>E=q#x$6UjD+RG%RtZb(1b@_ws^RBgcj4WGVuc~q3N#-IbMtUI>@S(3T*>fg zDRQYnoHIF8;PCA!mZWqfM?LX!1Lhelu4&fj-ld1HlUJywfzu8+YR!E>tAI3xly=hW#^pZ~@CC-r*7y=iiWDBExv zj;lb<3HpY$YI^9oVbnaYuk&301|>jA<;>)g%8pdWHYC>dVUKkB7NbJ9`%ffRRtKIUk!h%P$1yx#rjpkQl`E19A+ada>rCZ?8}K`d};CQ z;6c514kj;ji46dH-5N|w%NQMrp`gD?Qa2-W1x`R(%jX*n ztrj0LM0YcWRH}Tqw)F;U5XVBSqJpmkXjLl!;legZA*7B+^U#-f!hu8~&pJhBo1MCa zqT7j=?y<7H8%gb}4TuJjZgDUbR^AvJt^YygEx}9gD(_MKd^4 zu4Y}>vF>8-l8Addj(VdsW~6~HT*;{8Qen}kBa-bJwM4RWKH5BPe`N3ZY#h|EV7&SC zEu-7WizGN(v?5%z;=F6clzgshcGI2VO?RHZ=}s6Yy>+uSJHju ztZ)h$A9!SBGJh)X*#(i}1>>Q!j&aLt#S1T|BN?8XTR5Kok+O-Z$;#QK)g%e&H)wq)Tcg5faZ1Ll!}Ff6%Zg5KpaMq zPS_3tj}W*-;O7KLgHV4#fF=&S{-@G3MkO_u?f)t%t!$JNr&-WsKy+xDa*6((= z1hr`#cfqt>Dy^8Pp03>zu4oFEY>j7dXeOQZ;9%5g9DtFm5>k_0RdhG_j;$uQrZJ^;CMF(!A;qyiIsgiKbhAa4h6Mwu& zgvQ-2TmFQXPVUH`vY*R)A&XA$$d6ZK*b2t|aS4~nTc_Hd*?X1Hcv<=Sw20j`orBT= zy<~Td<;88lP)!-`>70sqIuUjdV~gV%glB3I4kDaPRK~N2$kqrK5pIphAtDz9?$0AU zUyCRpqL7J-co7lBT1*KMrA(B^7Z6bf0tH)0_#!Q0F%cdSQBHV;z$*!_l5#5}ITiZ< z^6L=9A~2uf!YfTC+;sBRQF&|)x`Sn6|KzGE%jDX}JEuLX!=-Dc^VWp3Z@Ma#qeb6g z+G<`#bv9NIw-Bn;8KGQhC}%noTxogn3?``7#`5D1CaBhMdlnN^Yq-b71l1an1igu~>3ARo}km)yRE< zyp75H`0av(-p9{v6C}hWlluh;nZx9rf`k&t;XaEr;(k4JgAXA zK_1e`E$kcTzWFGwtVbK;|d>=opdK0(63!m$BC9@EJC1*vLeP>>;w z91!FK8hKohCp2Z{UL`p)A!tnV~6K!bB;nJ6pb?Rt5oe7A&EW~6m0kKDfg9(T|BC?o(*dxNl1jHU?ki!JT z9>wG_0kKCh1x!HfQA`mN5PK9;!UV(~5et}r*rQ|%nSj_MVlfjCdqk8oQNhIJN+uxo zC}s&05PL*aGXb$jgqI13J$lYECLs1Grk)9iJ&I{$0%DJ1RxkmvM=`6IfY>8q4HFQ1 zMBK~-#2yjrn1I+LVgnNpdqmvA1jHT@o0%Z7M^uxENfLWRHVcx(9!Q8ijwP{2u{#7w zVvoq3f+Vp==YzPK_Y#EBq>N_mmoPb?SdpJNMxHJNeU9VUyvjPiM&&gBn64QTaY9LiM&UUBn62)AV`veM0N_2 zq#%(#L6Q_CvP+O81&LGyNm7u=9zl{6B+@TPl7b+w92F!N_P>>`Ai5w6lNkJly3zDQDk%NLHDVR0d6Mv^5NeWWzh#*M{68UaHk`yGeiCOAp zl7d7w3zDQDku8EGDM;iFL6Q_Ca;G3k3KF?nkR$~`UfC;1l7bYwPmm-9iM(BqBn63V z6C_DNBKHfDq#%)Z3X-HCk#`G{q#%*^2$G~Akp~1xQjo|_L6Q_C(kDogf<$%+lB6J! ziXce}64@h2l7d9~1xZqn$fJTJDM)0WAV~^>yc`fDq@b(xwd@l7zdFD{^r7Oa@!&+u z_)xgC_6_NsCR^IoVT*M$&))MVl*#6)ys56qz2T+n!{r;^&}Q?Mn_lvTE4F+mCtT4y zZ7m&dzF=*}tgqshm+lCcQ*b$gOU73rm_C1Om#S(b)oZS1Y%|%GT*@uFY$F6W6qjF4 zXVfm0;Z#dTajd25s)Nw0bVlZ7Goiu&L$(+1YCho<8yY(Cxj)*Zk56A`(Gdp?d>jJK zk5;Wn2g_rix0g=y!R9d)HbP0I)k!st09lZt>DVWXj-9f=;2(Wo;uF30~eIvevG|;PTQo#ZwT0;ze z9WZV&nM_x#c9RwM3s?S0$1kOtpGuWKk+Oa&E&hp=@i)?vpGsxFHakq_UrRdpRk37R z`fIbrWWH*bOm5gmYU)mAkJ-md!|tjXX<6KyZ_4?FHSbcv!jrA>r8ZN|*g#yuWukbp z^6`aN35D&XV2kObbF^zl+I-0h%aCNs99@MkahuGSGo|ILpM3z4^4RL}{PC`do5y>@ zCCjGsmW8wHW~4QjoQ0!XAKrCp*Vy1}Q8hHX$@H0`?eR=rR)UM&@cL8h z$9iWAy*M^@vU;X)<TwJ-mFv?mg+7@4Zlu%z+%e3ED`**ntmwL zwB(9J@Hg?c0?D3tMRMUDb2dJ64P~?FQix%qxF>yCc-z`wp-J`Z!!b_zQshi)k1i>8R@^DL2169X(8NAIs6|E5qQj z9u6;2jwkUBuzR<+`|Y=n@4f%+a@h%_s}1LdW;PJ=3BKsbmVdbW9!JP!a*~K7NJK8k zi3ZUaGXxD#@-bta5Aqy=XH(1+HwVq^*%-3~El_8US>o29HEs*qSiL1?k2``6_H2zg z-YLYx(L`)a z7)VkfEla}akdzR_WHd1-C{kodkkhGDk}3h!c%-NQ76R<`bE@Ugm?FtNN8!=l-GAip zu`rb->NlvaLsB@cLFMnPAns64B9e>)hDXBm3=G1H zVI@r6fSPKil9Hy0NPg~!F2Qq*`+N6qAiqqM!Z(pq4A=lu#!N_Y#Y);36kcmV$S}02 zOy&IsiD>*jH_m0bcJe|eA>#(cs`nUXl%~IFCA6xBR>rI$YaDi#f5W#CB6Amj8ZI>P zB+Cus6f08Jup-uc)=-Ywg>IgRrYtu?=n;VAtpEeBqPYmkMnsEfjoIS%aiHyz)v$^7 z;kpO=Dr@vQrCxu^^26)&=VJLze#P~%%CQuk48!$od{@jfZYmkODr*`p>{k(DIRs_1 z{v}I9k3JgpWXW)&{-s#zv@#B>3wr?+Hf}B%(VI1wLl>*ZEjFSw=@7CcYks#zA7$Js z`o=9;3vDWav8obA@!L7;aElJ9Sn4?GD^#}rb;a5X&+}x=wV5cux3#o|(5kZ5j$-Rm zAxtG0CYn$r5&OzYI3b3q zC?wNLDy?YUGfgGv(sUw$C<1x~4hYBq7L9Vodu&V@f-iYi2vvULeaDazj|BjCV4SKI zU-rbJr&T_7HXh47*&`&9z^HL}oJFH7L}jcJq6t7I7K1qmJ=!A<8&zP^W5SRWO9f~x zEOo|;aGK#yk@vmLsU}IGl9Z|KOr{f}fL}}Sxz7bM0ajNzi~w>Wl1#_MM3aJR7>%Pi zfZ?eR;Pz(LXz+CWOJHUmD^z}Fpej$Lu$bB0Pseatu=H$!gt26r>f1URRfb?eIzbdz z2c$6Ydr9uUzX6tr;mKA>>!l3oXCaW;+$~Y5Ne20*EvFb21qP|uXkX@7^XHuWt5p*_ zN7MqVr5fciS+(Sk0Y%ZETJs`NrpP%_fW?y|l4=g8Qc^->dr6Vws{AkrWz`rDrvQvX zRp;U7j~os?+i{|==V-6$=wbWPL1~h*olz}AVL7ZQlp=4YD7sWz$JvO)#H(skXgDIB z4oA+YHilqGIvY`~DIf`u-eZ0n^98D)gtSvCt9&9HmsCq0WrmkFm^purEpj>% zkz{Bo!`YWn^dgC}bU)fM1k~9g$I>k)q*PLlDoGlZea^A_$1mj^hZgwu8@z4KvEi+nAFTb}+MHwO0w4H|@9~KvOP=+2 zh}Bdz$=|4Jx?cB4uI`aL#A2(O>{@cyOpji#Ys%F%{nFj^YftU63F?=v#8rRYDde2O ztZ%`&^@h{CZ;il6&SF`;}-;bVu`}rS7ezN&m`uf4+xr4{&_nw$RX1+K2X{%A)Iel;Bn&aQjV%sr`0Kf7RA2RL6Gn;LuVrAhwd>Wz1Z%TzyU zzF~FExp!Y3$+@3eupV5huA8(Vz=j(&Fomn;g__4F+m}|=Pj=n55@!ueXs+goYkPAw ztqaaJc$?mR`Ke1!y?$`Px#gzSHFxpOW9m2tkuv7J+Upd>BjrjV< zd!GEKZtYX&ubf@@sT)46CZ08ShyljOk#=1j$kps$a2~kftiA5sm~(FYm2=aw2|nMK z_rh-e)c0h^Hu5vyx=sUmzro$P&hWuDU&le?2M0LFe{S$~t}*_6HHZ1S9bIrh{^%RGC0pbin`a6L3r}gP9{5VkFLu8#$6S44dFfMG}o7Ul9Dfg5=Fo zmK0S!{X6x7`hn0Zl4#O}?KmleP*4SR2(m*dD1X_4qB?Fe5KtVEQY+Fq(*P);Sza{1 zX~-Jh;=Y0EO*0{1f;o?y$1O^Y-XUv#gA+k%8Af(qkwohoCiZPr#RqtOgZoYadr(kY zKpC<5?cpE8@*P9LiJ}r@m!wG=2}oE0F^tSN8HoTh7t_#ckg<0t^P;?e2qZ;Jf|kJW z1zD1Wq2#CrfiV~m%wU^D(s6*MSt^NSQQk74&SY*RDT1Vug}hV_2&VvCB%ELtj)H@L zWDzArqF_can+GtZtUokjl2cAek>~)JN_lMq!9^>DJIE6zG*Pk&IwNObKx#s3O`>H^;81{3^zI; zbcSOx^v^c}aglEWf=>el247wmVp;;leO4`0ihu~B{VJbU2A=R6=x(T{k3*I*>=ZJF z1G{_u&JxLFOeIsQJt{NRBoUG576fCKz)AyK56vEmHk4`umQ6K5ftG=4RKkNQuSjPV zzmU{SGLa8KX+Am@3~z4b92X@g&bI­junlw$00#E(E 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 NPp`i97r|90_74MY#;gDU diff --git a/.venv/lib/python3.12/site-packages/bs4/__pycache__/filter.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/__pycache__/filter.cpython-312.pyc deleted file mode 100644 index fe3a916d6ea766f42318f5bcbbecc5db0034a74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28679 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 U^Ll*LB|b8L@Mmxp5&07TKU!ZpmjD0& diff --git a/.venv/lib/python3.12/site-packages/bs4/__pycache__/formatter.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/__pycache__/formatter.cpython-312.pyc deleted file mode 100644 index 2c9242b83efc359412fcfc4b243908ed2803e209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10554 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 F{{V-}w#oni diff --git a/.venv/lib/python3.12/site-packages/bs4/_deprecation.py b/.venv/lib/python3.12/site-packages/bs4/_deprecation.py deleted file mode 100644 index a0d7fdc..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/_deprecation.py +++ /dev/null @@ -1,80 +0,0 @@ -"""Helper functions for deprecation. - -This interface is itself unstable and may change without warning. Do -not use these functions yourself, even as a joke. The underscores are -there for a reason. No support will be given. - -In particular, most of this will go away without warning once -Beautiful Soup drops support for Python 3.11, since Python 3.12 -defines a `@typing.deprecated() -decorator. `_ -""" - -import functools -import warnings - -from typing import ( - Any, - Callable, -) - - -def _deprecated_alias(old_name: str, new_name: str, version: str): - """Alias one attribute name to another for backward compatibility - - :meta private: - """ - - @property - def alias(self) -> Any: - ":meta private:" - warnings.warn( - f"Access to deprecated property {old_name}. (Replaced by {new_name}) -- Deprecated since version {version}.", - DeprecationWarning, - stacklevel=2, - ) - return getattr(self, new_name) - - @alias.setter - def alias(self, value: str) -> None: - ":meta private:" - warnings.warn( - f"Write to deprecated property {old_name}. (Replaced by {new_name}) -- Deprecated since version {version}.", - DeprecationWarning, - stacklevel=2, - ) - return setattr(self, new_name, value) - - return alias - - -def _deprecated_function_alias( - old_name: str, new_name: str, version: str -) -> Callable[[Any], Any]: - def alias(self, *args: Any, **kwargs: Any) -> Any: - ":meta private:" - warnings.warn( - f"Call to deprecated method {old_name}. (Replaced by {new_name}) -- Deprecated since version {version}.", - DeprecationWarning, - stacklevel=2, - ) - return getattr(self, new_name)(*args, **kwargs) - - return alias - - -def _deprecated(replaced_by: str, version: str) -> Callable: - def deprecate(func: Callable) -> Callable: - @functools.wraps(func) - def with_warning(*args: Any, **kwargs: Any) -> Any: - ":meta private:" - warnings.warn( - f"Call to deprecated method {func.__name__}. (Replaced by {replaced_by}) -- Deprecated since version {version}.", - DeprecationWarning, - stacklevel=2, - ) - return func(*args, **kwargs) - - return with_warning - - return deprecate diff --git a/.venv/lib/python3.12/site-packages/bs4/_typing.py b/.venv/lib/python3.12/site-packages/bs4/_typing.py deleted file mode 100644 index ac4ec34..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/_typing.py +++ /dev/null @@ -1,196 +0,0 @@ -# Custom type aliases used throughout Beautiful Soup to improve readability. - -# Notes on improvements to the type system in newer versions of Python -# that can be used once Beautiful Soup drops support for older -# versions: -# -# * ClassVar can be put on class variables now. -# * In 3.10, x|y is an accepted shorthand for Union[x,y]. -# * In 3.10, TypeAlias gains capabilities that can be used to -# improve the tree matching types (I don't remember what, exactly). -# * In 3.9 it's possible to specialize the re.Match type, -# e.g. re.Match[str]. In 3.8 there's a typing.re namespace for this, -# but it's removed in 3.12, so to support the widest possible set of -# versions I'm not using it. - -from typing_extensions import ( - runtime_checkable, - Protocol, - TypeAlias, -) -from typing import ( - Any, - Callable, - Dict, - IO, - Iterable, - Mapping, - Optional, - Pattern, - TYPE_CHECKING, - Union, -) - -if TYPE_CHECKING: - from bs4.element import ( - AttributeValueList, - NamespacedAttribute, - NavigableString, - PageElement, - ResultSet, - Tag, - ) - - -@runtime_checkable -class _RegularExpressionProtocol(Protocol): - """A protocol object which can accept either Python's built-in - `re.Pattern` objects, or the similar ``Regex`` objects defined by the - third-party ``regex`` package. - """ - - def search( - self, string: str, pos: int = ..., endpos: int = ... - ) -> Optional[Any]: ... - - @property - def pattern(self) -> str: ... - - -# Aliases for markup in various stages of processing. -# -#: The rawest form of markup: either a string, bytestring, or an open filehandle. -_IncomingMarkup: TypeAlias = Union[str, bytes, IO[str], IO[bytes]] - -#: Markup that is in memory but has (potentially) yet to be converted -#: to Unicode. -_RawMarkup: TypeAlias = Union[str, bytes] - -# Aliases for character encodings -# - -#: A data encoding. -_Encoding: TypeAlias = str - -#: One or more data encodings. -_Encodings: TypeAlias = Iterable[_Encoding] - -# Aliases for XML namespaces -# - -#: The prefix for an XML namespace. -_NamespacePrefix: TypeAlias = str - -#: The URL of an XML namespace -_NamespaceURL: TypeAlias = str - -#: A mapping of prefixes to namespace URLs. -_NamespaceMapping: TypeAlias = Dict[_NamespacePrefix, _NamespaceURL] - -#: A mapping of namespace URLs to prefixes -_InvertedNamespaceMapping: TypeAlias = Dict[_NamespaceURL, _NamespacePrefix] - -# Aliases for the attribute values associated with HTML/XML tags. -# - -#: The value associated with an HTML or XML attribute. This is the -#: relatively unprocessed value Beautiful Soup expects to come from a -#: `TreeBuilder`. -_RawAttributeValue: TypeAlias = str - -#: A dictionary of names to `_RawAttributeValue` objects. This is how -#: Beautiful Soup expects a `TreeBuilder` to represent a tag's -#: attribute values. -_RawAttributeValues: TypeAlias = ( - "Mapping[Union[str, NamespacedAttribute], _RawAttributeValue]" -) - -#: An attribute value in its final form, as stored in the -# `Tag` class, after it has been processed and (in some cases) -# split into a list of strings. -_AttributeValue: TypeAlias = Union[str, "AttributeValueList"] - -#: A dictionary of names to :py:data:`_AttributeValue` objects. This is what -#: a tag's attributes look like after processing. -_AttributeValues: TypeAlias = Dict[str, _AttributeValue] - -#: The methods that deal with turning :py:data:`_RawAttributeValue` into -#: :py:data:`_AttributeValue` may be called several times, even after the values -#: are already processed (e.g. when cloning a tag), so they need to -#: be able to acommodate both possibilities. -_RawOrProcessedAttributeValues: TypeAlias = Union[_RawAttributeValues, _AttributeValues] - -#: A number of tree manipulation methods can take either a `PageElement` or a -#: normal Python string (which will be converted to a `NavigableString`). -_InsertableElement: TypeAlias = Union["PageElement", str] - -# Aliases to represent the many possibilities for matching bits of a -# parse tree. -# -# This is very complicated because we're applying a formal type system -# to some very DWIM code. The types we end up with will be the types -# of the arguments to the SoupStrainer constructor and (more -# familiarly to Beautiful Soup users) the find* methods. - -#: A function that takes a PageElement and returns a yes-or-no answer. -_PageElementMatchFunction: TypeAlias = Callable[["PageElement"], bool] - -#: A function that takes the raw parsed ingredients of a markup tag -#: and returns a yes-or-no answer. -# Not necessary at the moment. -# _AllowTagCreationFunction:TypeAlias = Callable[[Optional[str], str, Optional[_RawAttributeValues]], bool] - -#: A function that takes the raw parsed ingredients of a markup string node -#: and returns a yes-or-no answer. -# Not necessary at the moment. -# _AllowStringCreationFunction:TypeAlias = Callable[[Optional[str]], bool] - -#: A function that takes a `Tag` and returns a yes-or-no answer. -#: A `TagNameMatchRule` expects this kind of function, if you're -#: going to pass it a function. -_TagMatchFunction: TypeAlias = Callable[["Tag"], bool] - -#: A function that takes a single string and returns a yes-or-no -#: answer. An `AttributeValueMatchRule` expects this kind of function, if -#: you're going to pass it a function. So does a `StringMatchRule`. -_StringMatchFunction: TypeAlias = Callable[[str], bool] - -#: Either a tag name, an attribute value or a string can be matched -#: against a string, bytestring, regular expression, or a boolean. -_BaseStrainable: TypeAlias = Union[str, bytes, Pattern[str], bool] - -#: A tag can be matched either with the `_BaseStrainable` options, or -#: using a function that takes the `Tag` as its sole argument. -_BaseStrainableElement: TypeAlias = Union[_BaseStrainable, _TagMatchFunction] - -#: A tag's attribute vgalue can be matched either with the -#: `_BaseStrainable` options, or using a function that takes that -#: value as its sole argument. -_BaseStrainableAttribute: TypeAlias = Union[_BaseStrainable, _StringMatchFunction] - -#: A tag can be matched using either a single criterion or a list of -#: criteria. -_StrainableElement: TypeAlias = Union[ - _BaseStrainableElement, Iterable[_BaseStrainableElement] -] - -#: An attribute value can be matched using either a single criterion -#: or a list of criteria. -_StrainableAttribute: TypeAlias = Union[ - _BaseStrainableAttribute, Iterable[_BaseStrainableAttribute] -] - -#: An string can be matched using the same techniques as -#: an attribute value. -_StrainableString: TypeAlias = _StrainableAttribute - -#: A dictionary may be used to match against multiple attribute vlaues at once. -_StrainableAttributes: TypeAlias = Dict[str, _StrainableAttribute] - -#: Many Beautiful soup methods return a PageElement or an ResultSet of -#: PageElements. A PageElement is either a Tag or a NavigableString. -#: These convenience aliases make it easier for IDE users to see which methods -#: are available on the objects they're dealing with. -_OneElement: TypeAlias = Union["PageElement", "Tag", "NavigableString"] -_AtMostOneElement: TypeAlias = Optional[_OneElement] -_QueryResults: TypeAlias = "ResultSet[_OneElement]" diff --git a/.venv/lib/python3.12/site-packages/bs4/_warnings.py b/.venv/lib/python3.12/site-packages/bs4/_warnings.py deleted file mode 100644 index 4309473..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/_warnings.py +++ /dev/null @@ -1,98 +0,0 @@ -"""Define some custom warnings.""" - - -class GuessedAtParserWarning(UserWarning): - """The warning issued when BeautifulSoup has to guess what parser to - use -- probably because no parser was specified in the constructor. - """ - - MESSAGE: str = """No parser was explicitly specified, so I'm using the best available %(markup_type)s parser for this system ("%(parser)s"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently. - -The code that caused this warning is on line %(line_number)s of the file %(filename)s. To get rid of this warning, pass the additional argument 'features="%(parser)s"' to the BeautifulSoup constructor. -""" - - -class UnusualUsageWarning(UserWarning): - """A superclass for warnings issued when Beautiful Soup sees - something that is typically the result of a mistake in the calling - code, but might be intentional on the part of the user. If it is - in fact intentional, you can filter the individual warning class - to get rid of the warning. If you don't like Beautiful Soup - second-guessing what you are doing, you can filter the - UnusualUsageWarningclass itself and get rid of these entirely. - """ - - -class MarkupResemblesLocatorWarning(UnusualUsageWarning): - """The warning issued when BeautifulSoup is given 'markup' that - actually looks like a resource locator -- a URL or a path to a file - on disk. - """ - - #: :meta private: - GENERIC_MESSAGE: str = """ - -However, if you want to parse some data that happens to look like a %(what)s, then nothing has gone wrong: you are using Beautiful Soup correctly, and this warning is spurious and can be filtered. To make this warning go away, run this code before calling the BeautifulSoup constructor: - - from bs4 import MarkupResemblesLocatorWarning - import warnings - - warnings.filterwarnings("ignore", category=MarkupResemblesLocatorWarning) - """ - - URL_MESSAGE: str = ( - """The input passed in on this line looks more like a URL than HTML or XML. - -If you meant to use Beautiful Soup to parse the web page found at a certain URL, then something has gone wrong. You should use an Python package like 'requests' to fetch the content behind the URL. Once you have the content as a string, you can feed that string into Beautiful Soup.""" - + GENERIC_MESSAGE - ) - - FILENAME_MESSAGE: str = ( - """The input passed in on this line looks more like a filename than HTML or XML. - -If you meant to use Beautiful Soup to parse the contents of a file on disk, then something has gone wrong. You should open the file first, using code like this: - - filehandle = open(your filename) - -You can then feed the open filehandle into Beautiful Soup instead of using the filename.""" - + GENERIC_MESSAGE - ) - - -class AttributeResemblesVariableWarning(UnusualUsageWarning, SyntaxWarning): - """The warning issued when Beautiful Soup suspects a provided - attribute name may actually be the misspelled name of a Beautiful - Soup variable. Generally speaking, this is only used in cases like - "_class" where it's very unlikely the user would be referencing an - XML attribute with that name. - """ - - MESSAGE: str = """%(original)r is an unusual attribute name and is a common misspelling for %(autocorrect)r. - -If you meant %(autocorrect)r, change your code to use it, and this warning will go away. - -If you really did mean to check the %(original)r attribute, this warning is spurious and can be filtered. To make it go away, run this code before creating your BeautifulSoup object: - - from bs4 import AttributeResemblesVariableWarning - import warnings - - warnings.filterwarnings("ignore", category=AttributeResemblesVariableWarning) -""" - - -class XMLParsedAsHTMLWarning(UnusualUsageWarning): - """The warning issued when an HTML parser is used to parse - XML that is not (as far as we can tell) XHTML. - """ - - MESSAGE: str = """It looks like you're using an HTML parser to parse an XML document. - -Assuming this really is an XML document, what you're doing might work, but you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the Python package 'lxml' installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor. - -If you want or need to use an HTML parser on this document, you can make this warning go away by filtering it. To do that, run this code before calling the BeautifulSoup constructor: - - from bs4 import XMLParsedAsHTMLWarning - import warnings - - warnings.filterwarnings("ignore", category=XMLParsedAsHTMLWarning) -""" diff --git a/.venv/lib/python3.12/site-packages/bs4/builder/__init__.py b/.venv/lib/python3.12/site-packages/bs4/builder/__init__.py deleted file mode 100644 index 5f2b38d..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/builder/__init__.py +++ /dev/null @@ -1,848 +0,0 @@ -from __future__ import annotations - -# Use of this source code is governed by the MIT license. -__license__ = "MIT" - -from collections import defaultdict -import re -from types import ModuleType -from typing import ( - Any, - cast, - Dict, - Iterable, - List, - Optional, - Pattern, - Set, - Tuple, - Type, - TYPE_CHECKING, -) -import warnings -import sys -from bs4.element import ( - AttributeDict, - AttributeValueList, - CharsetMetaAttributeValue, - ContentMetaAttributeValue, - RubyParenthesisString, - RubyTextString, - Stylesheet, - Script, - TemplateString, - nonwhitespace_re, -) - -# Exceptions were moved to their own module in 4.13. Import here for -# backwards compatibility. -from bs4.exceptions import ParserRejectedMarkup - -from bs4._typing import ( - _AttributeValues, - _RawAttributeValue, -) - -from bs4._warnings import XMLParsedAsHTMLWarning - -if TYPE_CHECKING: - from bs4 import BeautifulSoup - from bs4.element import ( - NavigableString, - Tag, - ) - from bs4._typing import ( - _AttributeValue, - _Encoding, - _Encodings, - _RawOrProcessedAttributeValues, - _RawMarkup, - ) - -__all__ = [ - "HTMLTreeBuilder", - "SAXTreeBuilder", - "TreeBuilder", - "TreeBuilderRegistry", -] - -# Some useful features for a TreeBuilder to have. -FAST = "fast" -PERMISSIVE = "permissive" -STRICT = "strict" -XML = "xml" -HTML = "html" -HTML_5 = "html5" - -__all__ = [ - "TreeBuilderRegistry", - "TreeBuilder", - "HTMLTreeBuilder", - "DetectsXMLParsedAsHTML", - - "ParserRejectedMarkup", # backwards compatibility only as of 4.13.0 -] - -class TreeBuilderRegistry(object): - """A way of looking up TreeBuilder subclasses by their name or by desired - features. - """ - - builders_for_feature: Dict[str, List[Type[TreeBuilder]]] - builders: List[Type[TreeBuilder]] - - def __init__(self) -> None: - self.builders_for_feature = defaultdict(list) - self.builders = [] - - def register(self, treebuilder_class: type[TreeBuilder]) -> None: - """Register a treebuilder based on its advertised features. - - :param treebuilder_class: A subclass of `TreeBuilder`. its - `TreeBuilder.features` attribute should list its features. - """ - for feature in treebuilder_class.features: - self.builders_for_feature[feature].insert(0, treebuilder_class) - self.builders.insert(0, treebuilder_class) - - def lookup(self, *features: str) -> Optional[Type[TreeBuilder]]: - """Look up a TreeBuilder subclass with the desired features. - - :param features: A list of features to look for. If none are - provided, the most recently registered TreeBuilder subclass - will be used. - :return: A TreeBuilder subclass, or None if there's no - registered subclass with all the requested features. - """ - if len(self.builders) == 0: - # There are no builders at all. - return None - - if len(features) == 0: - # They didn't ask for any features. Give them the most - # recently registered builder. - return self.builders[0] - - # Go down the list of features in order, and eliminate any builders - # that don't match every feature. - feature_list = list(features) - feature_list.reverse() - candidates = None - candidate_set = None - while len(feature_list) > 0: - feature = feature_list.pop() - we_have_the_feature = self.builders_for_feature.get(feature, []) - if len(we_have_the_feature) > 0: - if candidates is None: - candidates = we_have_the_feature - candidate_set = set(candidates) - else: - # Eliminate any candidates that don't have this feature. - candidate_set = candidate_set.intersection(set(we_have_the_feature)) - - # The only valid candidates are the ones in candidate_set. - # Go through the original list of candidates and pick the first one - # that's in candidate_set. - if candidate_set is None or candidates is None: - return None - for candidate in candidates: - if candidate in candidate_set: - return candidate - return None - - -#: The `BeautifulSoup` constructor will take a list of features -#: and use it to look up `TreeBuilder` classes in this registry. -builder_registry: TreeBuilderRegistry = TreeBuilderRegistry() - - -class TreeBuilder(object): - """Turn a textual document into a Beautiful Soup object tree. - - This is an abstract superclass which smooths out the behavior of - different parser libraries into a single, unified interface. - - :param multi_valued_attributes: If this is set to None, the - TreeBuilder will not turn any values for attributes like - 'class' into lists. Setting this to a dictionary will - customize this behavior; look at :py:attr:`bs4.builder.HTMLTreeBuilder.DEFAULT_CDATA_LIST_ATTRIBUTES` - for an example. - - Internally, these are called "CDATA list attributes", but that - probably doesn't make sense to an end-user, so the argument name - is ``multi_valued_attributes``. - - :param preserve_whitespace_tags: A set of tags to treat - the way
 tags are treated in HTML. Tags in this set
-     are immune from pretty-printing; their contents will always be
-     output as-is.
-
-    :param string_containers: A dictionary mapping tag names to
-     the classes that should be instantiated to contain the textual
-     contents of those tags. The default is to use NavigableString
-     for every tag, no matter what the name. You can override the
-     default by changing :py:attr:`DEFAULT_STRING_CONTAINERS`.
-
-    :param store_line_numbers: If the parser keeps track of the line
-     numbers and positions of the original markup, that information
-     will, by default, be stored in each corresponding
-     :py:class:`bs4.element.Tag` object. You can turn this off by
-     passing store_line_numbers=False; then Tag.sourcepos and
-     Tag.sourceline will always be None. If the parser you're using
-     doesn't keep track of this information, then store_line_numbers
-     is irrelevant.
-
-    :param attribute_dict_class: The value of a multi-valued attribute
-      (such as HTML's 'class') willl be stored in an instance of this
-      class.  The default is Beautiful Soup's built-in
-      `AttributeValueList`, which is a normal Python list, and you
-      will probably never need to change it.
-    """
-
-    USE_DEFAULT: Any = object()  #: :meta private:
-
-    def __init__(
-        self,
-        multi_valued_attributes: Dict[str, Set[str]] = USE_DEFAULT,
-        preserve_whitespace_tags: Set[str] = USE_DEFAULT,
-        store_line_numbers: bool = USE_DEFAULT,
-        string_containers: Dict[str, Type[NavigableString]] = USE_DEFAULT,
-        empty_element_tags: Set[str] = USE_DEFAULT,
-        attribute_dict_class: Type[AttributeDict] = AttributeDict,
-        attribute_value_list_class: Type[AttributeValueList] = AttributeValueList,
-    ):
-        self.soup = None
-        if multi_valued_attributes is self.USE_DEFAULT:
-            multi_valued_attributes = self.DEFAULT_CDATA_LIST_ATTRIBUTES
-        self.cdata_list_attributes = multi_valued_attributes
-        if preserve_whitespace_tags is self.USE_DEFAULT:
-            preserve_whitespace_tags = self.DEFAULT_PRESERVE_WHITESPACE_TAGS
-        self.preserve_whitespace_tags = preserve_whitespace_tags
-        if empty_element_tags is self.USE_DEFAULT:
-            self.empty_element_tags = self.DEFAULT_EMPTY_ELEMENT_TAGS
-        else:
-            self.empty_element_tags = empty_element_tags
-        # TODO: store_line_numbers is probably irrelevant now that
-        # the behavior of sourceline and sourcepos has been made consistent
-        # everywhere.
-        if store_line_numbers == self.USE_DEFAULT:
-            store_line_numbers = self.TRACKS_LINE_NUMBERS
-        self.store_line_numbers = store_line_numbers
-        if string_containers == self.USE_DEFAULT:
-            string_containers = self.DEFAULT_STRING_CONTAINERS
-        self.string_containers = string_containers
-        self.attribute_dict_class = attribute_dict_class
-        self.attribute_value_list_class = attribute_value_list_class
-
-    NAME: str = "[Unknown tree builder]"
-    ALTERNATE_NAMES: Iterable[str] = []
-    features: Iterable[str] = []
-
-    is_xml: bool = False
-    picklable: bool = False
-
-    soup: Optional[BeautifulSoup]  #: :meta private:
-
-    #: A tag will be considered an empty-element
-    #: tag when and only when it has no contents.
-    empty_element_tags: Optional[Set[str]] = None  #: :meta private:
-    cdata_list_attributes: Dict[str, Set[str]]  #: :meta private:
-    preserve_whitespace_tags: Set[str]  #: :meta private:
-    string_containers: Dict[str, Type[NavigableString]]  #: :meta private:
-    tracks_line_numbers: bool  #: :meta private:
-
-    #: A value for these tag/attribute combinations is a space- or
-    #: comma-separated list of CDATA, rather than a single CDATA.
-    DEFAULT_CDATA_LIST_ATTRIBUTES: Dict[str, Set[str]] = defaultdict(set)
-
-    #: Whitespace should be preserved inside these tags.
-    DEFAULT_PRESERVE_WHITESPACE_TAGS: Set[str] = set()
-
-    #: The textual contents of tags with these names should be
-    #: instantiated with some class other than `bs4.element.NavigableString`.
-    DEFAULT_STRING_CONTAINERS: Dict[str, Type[bs4.element.NavigableString]] = {}
-
-    #: By default, tags are treated as empty-element tags if they have
-    #: no contents--that is, using XML rules. HTMLTreeBuilder
-    #: defines a different set of DEFAULT_EMPTY_ELEMENT_TAGS based on the
-    #: HTML 4 and HTML5 standards.
-    DEFAULT_EMPTY_ELEMENT_TAGS: Optional[Set[str]] = None
-
-    #: Most parsers don't keep track of line numbers.
-    TRACKS_LINE_NUMBERS: bool = False
-
-    def initialize_soup(self, soup: BeautifulSoup) -> None:
-        """The BeautifulSoup object has been initialized and is now
-        being associated with the TreeBuilder.
-
-        :param soup: A BeautifulSoup object.
-        """
-        self.soup = soup
-
-    def reset(self) -> None:
-        """Do any work necessary to reset the underlying parser
-        for a new document.
-
-        By default, this does nothing.
-        """
-        pass
-
-    def can_be_empty_element(self, tag_name: str) -> bool:
-        """Might a tag with this name be an empty-element tag?
-
-        The final markup may or may not actually present this tag as
-        self-closing.
-
-        For instance: an HTMLBuilder does not consider a 

tag to be - an empty-element tag (it's not in - HTMLBuilder.empty_element_tags). This means an empty

tag - will be presented as "

", not "

" or "

". - - The default implementation has no opinion about which tags are - empty-element tags, so a tag will be presented as an - empty-element tag if and only if it has no children. - "" will become "", and "bar" will - be left alone. - - :param tag_name: The name of a markup tag. - """ - if self.empty_element_tags is None: - return True - return tag_name in self.empty_element_tags - - def feed(self, markup: _RawMarkup) -> None: - """Run incoming markup through some parsing process.""" - raise NotImplementedError() - - def prepare_markup( - self, - markup: _RawMarkup, - user_specified_encoding: Optional[_Encoding] = None, - document_declared_encoding: Optional[_Encoding] = None, - exclude_encodings: Optional[_Encodings] = None, - ) -> Iterable[Tuple[_RawMarkup, Optional[_Encoding], Optional[_Encoding], bool]]: - """Run any preliminary steps necessary to make incoming markup - acceptable to the parser. - - :param markup: The markup that's about to be parsed. - :param user_specified_encoding: The user asked to try this encoding - to convert the markup into a Unicode string. - :param document_declared_encoding: The markup itself claims to be - in this encoding. NOTE: This argument is not used by the - calling code and can probably be removed. - :param exclude_encodings: The user asked *not* to try any of - these encodings. - - :yield: A series of 4-tuples: (markup, encoding, declared encoding, - has undergone character replacement) - - Each 4-tuple represents a strategy that the parser can try - to convert the document to Unicode and parse it. Each - strategy will be tried in turn. - - By default, the only strategy is to parse the markup - as-is. See `LXMLTreeBuilderForXML` and - `HTMLParserTreeBuilder` for implementations that take into - account the quirks of particular parsers. - - :meta private: - - """ - yield markup, None, None, False - - def test_fragment_to_document(self, fragment: str) -> str: - """Wrap an HTML fragment to make it look like a document. - - Different parsers do this differently. For instance, lxml - introduces an empty tag, and html5lib - doesn't. Abstracting this away lets us write simple tests - which run HTML fragments through the parser and compare the - results against other HTML fragments. - - This method should not be used outside of unit tests. - - :param fragment: A fragment of HTML. - :return: A full HTML document. - :meta private: - """ - return fragment - - def set_up_substitutions(self, tag: Tag) -> bool: - """Set up any substitutions that will need to be performed on - a `Tag` when it's output as a string. - - By default, this does nothing. See `HTMLTreeBuilder` for a - case where this is used. - - :return: Whether or not a substitution was performed. - :meta private: - """ - return False - - def _replace_cdata_list_attribute_values( - self, tag_name: str, attrs: _RawOrProcessedAttributeValues - ) -> _AttributeValues: - """When an attribute value is associated with a tag that can - have multiple values for that attribute, convert the string - value to a list of strings. - - Basically, replaces class="foo bar" with class=["foo", "bar"] - - NOTE: This method modifies its input in place. - - :param tag_name: The name of a tag. - :param attrs: A dictionary containing the tag's attributes. - Any appropriate attribute values will be modified in place. - :return: The modified dictionary that was originally passed in. - """ - - # First, cast the attrs dict to _AttributeValues. This might - # not be accurate yet, but it will be by the time this method - # returns. - modified_attrs = cast(_AttributeValues, attrs) - if not modified_attrs or not self.cdata_list_attributes: - # Nothing to do. - return modified_attrs - - # There is at least a possibility that we need to modify one of - # the attribute values. - universal: Set[str] = self.cdata_list_attributes.get("*", set()) - tag_specific = self.cdata_list_attributes.get(tag_name.lower(), None) - for attr in list(modified_attrs.keys()): - modified_value: _AttributeValue - if attr in universal or (tag_specific and attr in tag_specific): - # We have a "class"-type attribute whose string - # value is a whitespace-separated list of - # values. Split it into a list. - original_value: _AttributeValue = modified_attrs[attr] - if isinstance(original_value, _RawAttributeValue): - # This is a _RawAttributeValue (a string) that - # needs to be split and converted to a - # AttributeValueList so it can be an - # _AttributeValue. - modified_value = self.attribute_value_list_class( - nonwhitespace_re.findall(original_value) - ) - else: - # html5lib calls setAttributes twice for the - # same tag when rearranging the parse tree. On - # the second call the attribute value here is - # already a list. This can also happen when a - # Tag object is cloned. If this happens, leave - # the value alone rather than trying to split - # it again. - modified_value = original_value - modified_attrs[attr] = modified_value - return modified_attrs - - -class SAXTreeBuilder(TreeBuilder): - """A Beautiful Soup treebuilder that listens for SAX events. - - This is not currently used for anything, and it will be removed - soon. It was a good idea, but it wasn't properly integrated into the - rest of Beautiful Soup, so there have been long stretches where it - hasn't worked properly. - """ - - def __init__(self, *args: Any, **kwargs: Any) -> None: - warnings.warn( - "The SAXTreeBuilder class was deprecated in 4.13.0 and will be removed soon thereafter. It is completely untested and probably doesn't work; do not use it.", - DeprecationWarning, - stacklevel=2, - ) - super(SAXTreeBuilder, self).__init__(*args, **kwargs) - - def feed(self, markup: _RawMarkup) -> None: - raise NotImplementedError() - - def close(self) -> None: - pass - - def startElement(self, name: str, attrs: Dict[str, str]) -> None: - attrs = AttributeDict((key[1], value) for key, value in list(attrs.items())) - # print("Start %s, %r" % (name, attrs)) - assert self.soup is not None - self.soup.handle_starttag(name, None, None, attrs) - - def endElement(self, name: str) -> None: - # print("End %s" % name) - assert self.soup is not None - self.soup.handle_endtag(name) - - def startElementNS( - self, nsTuple: Tuple[str, str], nodeName: str, attrs: Dict[str, str] - ) -> None: - # Throw away (ns, nodeName) for now. - self.startElement(nodeName, attrs) - - def endElementNS(self, nsTuple: Tuple[str, str], nodeName: str) -> None: - # Throw away (ns, nodeName) for now. - self.endElement(nodeName) - # handler.endElementNS((ns, node.nodeName), node.nodeName) - - def startPrefixMapping(self, prefix: str, nodeValue: str) -> None: - # Ignore the prefix for now. - pass - - def endPrefixMapping(self, prefix: str) -> None: - # Ignore the prefix for now. - # handler.endPrefixMapping(prefix) - pass - - def characters(self, content: str) -> None: - assert self.soup is not None - self.soup.handle_data(content) - - def startDocument(self) -> None: - pass - - def endDocument(self) -> None: - pass - - -class HTMLTreeBuilder(TreeBuilder): - """This TreeBuilder knows facts about HTML, such as which tags are treated - specially by the HTML standard. - """ - - #: Some HTML tags are defined as having no contents. Beautiful Soup - #: treats these specially. - DEFAULT_EMPTY_ELEMENT_TAGS: Set[str] = set( - [ - # These are from HTML5. - "area", - "base", - "br", - "col", - "embed", - "hr", - "img", - "input", - "keygen", - "link", - "menuitem", - "meta", - "param", - "source", - "track", - "wbr", - # These are from earlier versions of HTML and are removed in HTML5. - "basefont", - "bgsound", - "command", - "frame", - "image", - "isindex", - "nextid", - "spacer", - ] - ) - - #: The HTML standard defines these tags as block-level elements. Beautiful - #: Soup does not treat these elements differently from other elements, - #: but it may do so eventually, and this information is available if - #: you need to use it. - DEFAULT_BLOCK_ELEMENTS: Set[str] = set( - [ - "address", - "article", - "aside", - "blockquote", - "canvas", - "dd", - "div", - "dl", - "dt", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "header", - "hr", - "li", - "main", - "nav", - "noscript", - "ol", - "output", - "p", - "pre", - "section", - "table", - "tfoot", - "ul", - "video", - ] - ) - - #: These HTML tags need special treatment so they can be - #: represented by a string class other than `bs4.element.NavigableString`. - #: - #: For some of these tags, it's because the HTML standard defines - #: an unusual content model for them. I made this list by going - #: through the HTML spec - #: (https://html.spec.whatwg.org/#metadata-content) and looking for - #: "metadata content" elements that can contain strings. - #: - #: The Ruby tags ( and ) are here despite being normal - #: "phrasing content" tags, because the content they contain is - #: qualitatively different from other text in the document, and it - #: can be useful to be able to distinguish it. - #: - #: TODO: Arguably

foo

" - soup = self.soup(markup) - return doctype.encode("utf8"), soup - - def test_normal_doctypes(self): - """Make sure normal, everyday HTML doctypes are handled correctly.""" - self.assertDoctypeHandled("html") - self.assertDoctypeHandled( - 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' - ) - - def test_empty_doctype(self): - soup = self.soup("") - doctype = soup.contents[0] - assert "" == doctype.strip() - - def test_mixed_case_doctype(self): - # A lowercase or mixed-case doctype becomes a Doctype. - for doctype_fragment in ("doctype", "DocType"): - doctype_str, soup = self._document_with_doctype("html", doctype_fragment) - - # Make sure a Doctype object was created and that the DOCTYPE - # is uppercase. - doctype = soup.contents[0] - assert doctype.__class__ == Doctype - assert doctype == "html" - assert soup.encode("utf8")[: len(doctype_str)] == b"" - - # Make sure that the doctype was correctly associated with the - # parse tree and that the rest of the document parsed. - assert soup.p.contents[0] == "foo" - - def test_public_doctype_with_url(self): - doctype = 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"' - self.assertDoctypeHandled(doctype) - - def test_system_doctype(self): - self.assertDoctypeHandled('foo SYSTEM "http://www.example.com/"') - - def test_namespaced_system_doctype(self): - # We can handle a namespaced doctype with a system ID. - self.assertDoctypeHandled('xsl:stylesheet SYSTEM "htmlent.dtd"') - - def test_namespaced_public_doctype(self): - # Test a namespaced doctype with a public id. - self.assertDoctypeHandled('xsl:stylesheet PUBLIC "htmlent.dtd"') - - def test_real_xhtml_document(self): - """A real XHTML document should come out more or less the same as it went in.""" - markup = b""" - - -Hello. -Goodbye. -""" - with warnings.catch_warnings(record=True) as w: - soup = self.soup(markup) - assert soup.encode("utf-8").replace(b"\n", b"") == markup.replace(b"\n", b"") - - # No warning was issued about parsing an XML document as HTML, - # because XHTML is both. - assert w == [] - - def test_namespaced_html(self): - # When a namespaced XML document is parsed as HTML it should - # be treated as HTML with weird tag names. - markup = b"""content""" - with warnings.catch_warnings(record=True) as w: - soup = self.soup(markup) - - assert 2 == len(soup.find_all("ns1:foo")) - - # n.b. no "you're parsing XML as HTML" warning was given - # because there was no XML declaration. - assert [] == w - - def test_detect_xml_parsed_as_html(self): - # A warning is issued when parsing an XML document as HTML, - # but basic stuff should still work. - markup = b"""string""" - with warnings.catch_warnings(record=True) as w: - soup = self.soup(markup) - assert soup.tag.string == "string" - [warning] = w - assert isinstance(warning.message, XMLParsedAsHTMLWarning) - assert str(warning.message) == XMLParsedAsHTMLWarning.MESSAGE - - # NOTE: the warning is not issued if the document appears to - # be XHTML (tested with test_real_xhtml_document in the - # superclass) or if there is no XML declaration (tested with - # test_namespaced_html in the superclass). - - def test_processing_instruction(self): - # We test both Unicode and bytestring to verify that - # process_markup correctly sets processing_instruction_class - # even when the markup is already Unicode and there is no - # need to process anything. - markup = """""" - soup = self.soup(markup) - assert markup == soup.decode() - - markup = b"""""" - soup = self.soup(markup) - assert markup == soup.encode("utf8") - - def test_deepcopy(self): - """Make sure you can copy the tree builder. - - This is important because the builder is part of a - BeautifulSoup object, and we want to be able to copy that. - """ - copy.deepcopy(self.default_builder) - - def test_p_tag_is_never_empty_element(self): - """A

tag is never designated as an empty-element tag. - - Even if the markup shows it as an empty-element tag, it - shouldn't be presented that way. - """ - soup = self.soup("

") - assert not soup.p.is_empty_element - assert str(soup.p) == "

" - - def test_unclosed_tags_get_closed(self): - """A tag that's not closed by the end of the document should be closed. - - This applies to all tags except empty-element tags. - """ - self.assert_soup("

", "

") - self.assert_soup("", "") - - self.assert_soup("
", "
") - - def test_br_is_always_empty_element_tag(self): - """A
tag is designated as an empty-element tag. - - Some parsers treat

as one
tag, some parsers as - two tags, but it should always be an empty-element tag. - """ - soup = self.soup("

") - assert soup.br.is_empty_element - assert str(soup.br) == "
" - - def test_nested_formatting_elements(self): - self.assert_soup("") - - def test_double_head(self): - html = """ - - -Ordinary HEAD element test - - - -Hello, world! - - -""" - soup = self.soup(html) - assert "text/javascript" == soup.find("script")["type"] - - def test_comment(self): - # Comments are represented as Comment objects. - markup = "

foobaz

" - self.assert_soup(markup) - - soup = self.soup(markup) - comment = soup.find(string="foobar") - assert comment.__class__ == Comment - - # The comment is properly integrated into the tree. - foo = soup.find(string="foo") - assert comment == foo.next_element - baz = soup.find(string="baz") - assert comment == baz.previous_element - - def test_preserved_whitespace_in_pre_and_textarea(self): - """Whitespace must be preserved in
 and \n"
-        self.assert_soup(pre_markup)
-        self.assert_soup(textarea_markup)
-
-        soup = self.soup(pre_markup)
-        assert soup.pre.prettify() == pre_markup
-
-        soup = self.soup(textarea_markup)
-        assert soup.textarea.prettify() == textarea_markup
-
-        soup = self.soup("")
-        assert soup.textarea.prettify() == "\n"
-
-    def test_nested_inline_elements(self):
-        """Inline elements can be nested indefinitely."""
-        b_tag = "Inside a B tag"
-        self.assert_soup(b_tag)
-
-        nested_b_tag = "

A nested tag

" - self.assert_soup(nested_b_tag) - - double_nested_b_tag = "

A doubly nested tag

" - self.assert_soup(double_nested_b_tag) - - def test_nested_block_level_elements(self): - """Block elements can be nested.""" - soup = self.soup("

Foo

") - blockquote = soup.blockquote - assert blockquote.p.b.string == "Foo" - assert blockquote.b.string == "Foo" - - def test_correctly_nested_tables(self): - """One table can go inside another one.""" - markup = ( - '' - "" - "" - ) - - self.assert_soup( - markup, - '
Here's another table:" - '' - "" - "
foo
Here\'s another table:' - '
foo
' - "
", - ) - - self.assert_soup( - "" - "" - "
Foo
Bar
Baz
" - ) - - def test_multivalued_attribute_with_whitespace(self): - # Whitespace separating the values of a multi-valued attribute - # should be ignored. - - markup = '
' - soup = self.soup(markup) - assert ["foo", "bar"] == soup.div["class"] - - # If you search by the literal name of the class it's like the whitespace - # wasn't there. - assert soup.div == soup.find("div", class_="foo bar") - - def test_deeply_nested_multivalued_attribute(self): - # html5lib can set the attributes of the same tag many times - # as it rearranges the tree. This has caused problems with - # multivalued attributes. - markup = '
' - soup = self.soup(markup) - assert ["css"] == soup.div.div["class"] - - def test_multivalued_attribute_on_html(self): - # html5lib uses a different API to set the attributes ot the - # tag. This has caused problems with multivalued - # attributes. - markup = '' - soup = self.soup(markup) - assert ["a", "b"] == soup.html["class"] - - def test_angle_brackets_in_attribute_values_are_escaped(self): - self.assert_soup('', '') - - def test_strings_resembling_character_entity_references(self): - # "&T" and "&p" look like incomplete character entities, but they are - # not. - self.assert_soup( - "

• AT&T is in the s&p 500

", - "

\u2022 AT&T is in the s&p 500

", - ) - - def test_apos_entity(self): - self.assert_soup( - "

Bob's Bar

", - "

Bob's Bar

", - ) - - def test_entities_in_foreign_document_encoding(self): - # “ and ” are invalid numeric entities referencing - # Windows-1252 characters. - references a character common - # to Windows-1252 and Unicode, and ☃ references a - # character only found in Unicode. - # - # All of these entities should be converted to Unicode - # characters. - markup = "

“Hello” -☃

" - soup = self.soup(markup) - assert "“Hello†-☃" == soup.p.string - - def test_entities_in_attributes_converted_to_unicode(self): - expect = '

' - self.assert_soup('

', expect) - self.assert_soup('

', expect) - self.assert_soup('

', expect) - self.assert_soup('

', expect) - - def test_entities_in_text_converted_to_unicode(self): - expect = "

pi\N{LATIN SMALL LETTER N WITH TILDE}ata

" - self.assert_soup("

piñata

", expect) - self.assert_soup("

piñata

", expect) - self.assert_soup("

piñata

", expect) - self.assert_soup("

piñata

", expect) - - def test_quot_entity_converted_to_quotation_mark(self): - self.assert_soup( - "

I said "good day!"

", '

I said "good day!"

' - ) - - def test_out_of_range_entity(self): - expect = "\N{REPLACEMENT CHARACTER}" - self.assert_soup("�", expect) - self.assert_soup("�", expect) - self.assert_soup("�", expect) - - def test_multipart_strings(self): - "Mostly to prevent a recurrence of a bug in the html5lib treebuilder." - soup = self.soup("

\nfoo

") - assert "p" == soup.h2.string.next_element.name - assert "p" == soup.p.name - self.assertConnectedness(soup) - - def test_invalid_html_entity(self): - # The html.parser treebuilder can't distinguish between an - # invalid HTML entity with a semicolon and an invalid HTML - # entity with no semicolon (see its subclass for the tested - # behavior). But the other treebuilders can. - markup = "

a &nosuchentity b

" - soup = self.soup(markup) - assert "

a &nosuchentity b

" == soup.p.decode() - - markup = "

a &nosuchentity; b

" - soup = self.soup(markup) - assert "

a &nosuchentity; b

" == soup.p.decode() - - def test_head_tag_between_head_and_body(self): - "Prevent recurrence of a bug in the html5lib treebuilder." - content = """ - - foo - -""" - soup = self.soup(content) - assert soup.html.body is not None - self.assertConnectedness(soup) - - def test_multiple_copies_of_a_tag(self): - "Prevent recurrence of a bug in the html5lib treebuilder." - content = """ - - - - - -""" - soup = self.soup(content) - self.assertConnectedness(soup.article) - - def test_basic_namespaces(self): - """Parsers don't need to *understand* namespaces, but at the - very least they should not choke on namespaces or lose - data.""" - - markup = b'4' - soup = self.soup(markup) - assert markup == soup.encode() - assert "http://www.w3.org/1999/xhtml" == soup.html["xmlns"] - assert "http://www.w3.org/1998/Math/MathML" == soup.html["xmlns:mathml"] - assert "http://www.w3.org/2000/svg" == soup.html["xmlns:svg"] - - def test_multivalued_attribute_value_becomes_list(self): - markup = b'' - soup = self.soup(markup) - assert ["foo", "bar"] == soup.a["class"] - - # - # Generally speaking, tests below this point are more tests of - # Beautiful Soup than tests of the tree builders. But parsers are - # weird, so we run these tests separately for every tree builder - # to detect any differences between them. - # - - def test_can_parse_unicode_document(self): - # A seemingly innocuous document... but it's in Unicode! And - # it contains characters that can't be represented in the - # encoding found in the declaration! The horror! - markup = 'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' - soup = self.soup(markup) - assert "Sacr\xe9 bleu!" == soup.body.string - - def test_soupstrainer(self): - """Parsers should be able to work with SoupStrainers.""" - strainer = SoupStrainer("b") - soup = self.soup("A bold statement", parse_only=strainer) - assert soup.decode() == "bold" - - def test_single_quote_attribute_values_become_double_quotes(self): - self.assert_soup("", '') - - def test_attribute_values_with_nested_quotes_are_left_alone(self): - text = """a""" - self.assert_soup(text) - - def test_attribute_values_with_double_nested_quotes_get_quoted(self): - text = """a""" - soup = self.soup(text) - soup.foo["attr"] = 'Brawls happen at "Bob\'s Bar"' - self.assert_soup( - soup.foo.decode(), - """a""", - ) - - def test_ampersand_in_attribute_value_gets_escaped(self): - self.assert_soup( - '', - '', - ) - - self.assert_soup( - 'foo', - 'foo', - ) - - def test_escaped_ampersand_in_attribute_value_is_left_alone(self): - self.assert_soup('') - - def test_entities_in_strings_converted_during_parsing(self): - # Both XML and HTML entities are converted to Unicode characters - # during parsing. - text = "

<<sacré bleu!>>

" - expected = ( - "

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

" - ) - self.assert_soup(text, expected) - - def test_smart_quotes_converted_on_the_way_in(self): - # Microsoft smart quotes are converted to Unicode characters during - # parsing. - quote = b"

\x91Foo\x92

" - soup = self.soup(quote, from_encoding="windows-1252") - assert ( - soup.p.string - == "\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}" - ) - - def test_non_breaking_spaces_converted_on_the_way_in(self): - soup = self.soup("  ") - assert soup.a.string == "\N{NO-BREAK SPACE}" * 2 - - def test_entities_converted_on_the_way_out(self): - text = "

<<sacré bleu!>>

" - expected = "

<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>

".encode( - "utf-8" - ) - soup = self.soup(text) - assert soup.p.encode("utf-8") == expected - - def test_real_iso_8859_document(self): - # Smoke test of interrelated functionality, using an - # easy-to-understand document. - - # Here it is in Unicode. Note that it claims to be in ISO-8859-1. - unicode_html = '

Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!

' - - # That's because we're going to encode it into ISO-8859-1, - # and use that to test. - iso_latin_html = unicode_html.encode("iso-8859-1") - - # Parse the ISO-8859-1 HTML. - soup = self.soup(iso_latin_html) - - # Encode it to UTF-8. - result = soup.encode("utf-8") - - # What do we expect the result to look like? Well, it would - # look like unicode_html, except that the META tag would say - # UTF-8 instead of ISO-8859-1. - expected = unicode_html.replace("ISO-8859-1", "utf-8") - - # And, of course, it would be in UTF-8, not Unicode. - expected = expected.encode("utf-8") - - # Ta-da! - assert result == expected - - def test_real_shift_jis_document(self): - # Smoke test to make sure the parser can handle a document in - # Shift-JIS encoding, without choking. - shift_jis_html = ( - b"
"
-            b"\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f"
-            b"\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c"
-            b"\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B"
-            b"
" - ) - unicode_html = shift_jis_html.decode("shift-jis") - soup = self.soup(unicode_html) - - # Make sure the parse tree is correctly encoded to various - # encodings. - assert soup.encode("utf-8") == unicode_html.encode("utf-8") - assert soup.encode("euc_jp") == unicode_html.encode("euc_jp") - - def test_real_hebrew_document(self): - # A real-world test to make sure we can convert ISO-8859-9 (a - # Hebrew encoding) to UTF-8. - hebrew_document = b"Hebrew (ISO 8859-8) in Visual Directionality

Hebrew (ISO 8859-8) in Visual Directionality

\xed\xe5\xec\xf9" - soup = self.soup(hebrew_document, from_encoding="iso8859-8") - # Some tree builders call it iso8859-8, others call it iso-8859-9. - # That's not a difference we really care about. - assert soup.original_encoding in ("iso8859-8", "iso-8859-8") - assert soup.encode("utf-8") == ( - hebrew_document.decode("iso8859-8").encode("utf-8") - ) - - def test_meta_tag_reflects_current_encoding(self): - # Here's the tag saying that a document is - # encoded in Shift-JIS. - meta_tag = ( - '' - ) - - # Here's a document incorporating that meta tag. - shift_jis_html = ( - "\n%s\n" - '' - "Shift-JIS markup goes here." - ) % meta_tag - soup = self.soup(shift_jis_html) - - # Parse the document, and the charset is seemingly unaffected. - parsed_meta = soup.find("meta", {"http-equiv": "Content-type"}) - content = parsed_meta["content"] - assert "text/html; charset=x-sjis" == content - - # But that value is actually a ContentMetaAttributeValue object. - assert isinstance(content, ContentMetaAttributeValue) - - # And it will take on a value that reflects its current - # encoding. - assert "text/html; charset=utf8" == content.substitute_encoding("utf8") - - # No matter how the tag is encoded, its charset attribute - # will always be accurate. - assert b"charset=utf8" in parsed_meta.encode("utf8") - assert b"charset=shift-jis" in parsed_meta.encode("shift-jis") - - # For the rest of the story, see TestSubstitutions in - # test_tree.py. - - def test_html5_style_meta_tag_reflects_current_encoding(self): - # Here's the tag saying that a document is - # encoded in Shift-JIS. - meta_tag = '' - - # Here's a document incorporating that meta tag. - shift_jis_html = ( - "\n%s\n" - '' - "Shift-JIS markup goes here." - ) % meta_tag - soup = self.soup(shift_jis_html) - - # Parse the document, and the charset is seemingly unaffected. - parsed_meta = soup.find("meta", id="encoding") - charset = parsed_meta["charset"] - assert "x-sjis" == charset - - # But that value is actually a CharsetMetaAttributeValue object. - assert isinstance(charset, CharsetMetaAttributeValue) - - # And it will take on a value that reflects its current - # encoding. - assert "utf8" == charset.substitute_encoding("utf8") - - # No matter how the tag is encoded, its charset attribute - # will always be accurate. - assert b'charset="utf8"' in parsed_meta.encode("utf8") - assert b'charset="shift-jis"' in parsed_meta.encode("shift-jis") - - def test_python_specific_encodings_not_used_in_charset(self): - # You can encode an HTML document using a Python-specific - # encoding, but that encoding won't be mentioned _inside_ the - # resulting document. Instead, the document will appear to - # have no encoding. - for markup in [ - b'' b'' - ]: - soup = self.soup(markup) - for encoding in PYTHON_SPECIFIC_ENCODINGS: - if encoding in ( - "idna", - "mbcs", - "oem", - "undefined", - "string_escape", - "string-escape", - ): - # For one reason or another, these will raise an - # exception if we actually try to use them, so don't - # bother. - continue - encoded = soup.encode(encoding) - assert b'meta charset=""' in encoded - assert encoding.encode("ascii") not in encoded - - def test_tag_with_no_attributes_can_have_attributes_added(self): - data = self.soup("text") - data.a["foo"] = "bar" - assert 'text' == data.a.decode() - - def test_closing_tag_with_no_opening_tag(self): - # Without BeautifulSoup.open_tag_counter, the tag will - # cause _popToTag to be called over and over again as we look - # for a tag that wasn't there. The result is that 'text2' - # will show up outside the body of the document. - soup = self.soup("

text1

text2
") - assert "

text1

text2
" == soup.body.decode() - - def test_worst_case(self): - """Test the worst case (currently) for linking issues.""" - - soup = self.soup(BAD_DOCUMENT) - self.linkage_validator(soup) - - -class XMLTreeBuilderSmokeTest(TreeBuilderSmokeTest): - def test_pickle_and_unpickle_identity(self): - # Pickling a tree, then unpickling it, yields a tree identical - # to the original. - tree = self.soup("foo") - dumped = pickle.dumps(tree, 2) - loaded = pickle.loads(dumped) - assert loaded.__class__ == BeautifulSoup - assert loaded.decode() == tree.decode() - - def test_docstring_generated(self): - soup = self.soup("") - assert soup.encode() == b'\n' - - def test_xml_declaration(self): - markup = b"""\n""" - soup = self.soup(markup) - assert markup == soup.encode("utf8") - - def test_python_specific_encodings_not_used_in_xml_declaration(self): - # You can encode an XML document using a Python-specific - # encoding, but that encoding won't be mentioned _inside_ the - # resulting document. - markup = b"""\n""" - soup = self.soup(markup) - for encoding in PYTHON_SPECIFIC_ENCODINGS: - if encoding in ( - "idna", - "mbcs", - "oem", - "undefined", - "string_escape", - "string-escape", - ): - # For one reason or another, these will raise an - # exception if we actually try to use them, so don't - # bother. - continue - encoded = soup.encode(encoding) - assert b'' in encoded - assert encoding.encode("ascii") not in encoded - - def test_processing_instruction(self): - markup = b"""\n""" - soup = self.soup(markup) - assert markup == soup.encode("utf8") - - def test_real_xhtml_document(self): - """A real XHTML document should come out *exactly* the same as it went in.""" - markup = b""" - - -Hello. -Goodbye. -""" - soup = self.soup(markup) - assert soup.encode("utf-8") == markup - - def test_nested_namespaces(self): - doc = b""" - - - - - -""" - soup = self.soup(doc) - assert doc == soup.encode() - - def test_formatter_processes_script_tag_for_xml_documents(self): - doc = """ - -""" - soup = BeautifulSoup(doc, "lxml-xml") - # lxml would have stripped this while parsing, but we can add - # it later. - soup.script.string = 'console.log("< < hey > > ");' - encoded = soup.encode() - assert b"< < hey > >" in encoded - - def test_can_parse_unicode_document(self): - markup = 'Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' - soup = self.soup(markup) - assert "Sacr\xe9 bleu!" == soup.root.string - - def test_can_parse_unicode_document_begining_with_bom(self): - markup = '\N{BYTE ORDER MARK}Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!' - soup = self.soup(markup) - assert "Sacr\xe9 bleu!" == soup.root.string - - def test_popping_namespaced_tag(self): - markup = 'b2012-07-02T20:33:42Zcd' - soup = self.soup(markup) - assert str(soup.rss) == markup - - def test_docstring_includes_correct_encoding(self): - soup = self.soup("") - assert ( - soup.encode("latin1") == b'\n' - ) - - def test_large_xml_document(self): - """A large XML document should come out the same as it went in.""" - markup = ( - b'\n' - + b"0" * (2**12) - + b"" - ) - soup = self.soup(markup) - assert soup.encode("utf-8") == markup - - def test_tags_are_empty_element_if_and_only_if_they_are_empty(self): - self.assert_soup("

", "

") - self.assert_soup("

foo

") - - def test_namespaces_are_preserved(self): - markup = 'This tag is in the a namespaceThis tag is in the b namespace' - soup = self.soup(markup) - root = soup.root - assert "http://example.com/" == root["xmlns:a"] - assert "http://example.net/" == root["xmlns:b"] - - def test_closing_namespaced_tag(self): - markup = '

20010504

' - soup = self.soup(markup) - assert str(soup.p) == markup - - def test_namespaced_attributes(self): - markup = '' - soup = self.soup(markup) - assert str(soup.foo) == markup - - def test_namespaced_attributes_xml_namespace(self): - markup = 'bar' - soup = self.soup(markup) - assert str(soup.foo) == markup - - def test_find_by_prefixed_name(self): - doc = """ - - foo - bar - baz - -""" - soup = self.soup(doc) - - # There are three tags. - assert 3 == len(soup.find_all("tag")) - - # But two of them are ns1:tag and one of them is ns2:tag. - assert 2 == len(soup.find_all("ns1:tag")) - assert 1 == len(soup.find_all("ns2:tag")) - - assert 1, len(soup.find_all("ns2:tag", key="value")) - assert 3, len(soup.find_all(["ns1:tag", "ns2:tag"])) - - def test_copy_tag_preserves_namespace(self): - xml = """ -""" - - soup = self.soup(xml) - tag = soup.document - duplicate = copy.copy(tag) - - # The two tags have the same namespace prefix. - assert tag.prefix == duplicate.prefix - - def test_worst_case(self): - """Test the worst case (currently) for linking issues.""" - - soup = self.soup(BAD_DOCUMENT) - self.linkage_validator(soup) - - -class HTML5TreeBuilderSmokeTest(HTMLTreeBuilderSmokeTest): - """Smoke test for a tree builder that supports HTML5.""" - - def test_real_xhtml_document(self): - # Since XHTML is not HTML5, HTML5 parsers are not tested to handle - # XHTML documents in any particular way. - pass - - def test_html_tags_have_namespace(self): - markup = "" - soup = self.soup(markup) - assert "http://www.w3.org/1999/xhtml" == soup.a.namespace - - def test_svg_tags_have_namespace(self): - markup = "" - soup = self.soup(markup) - namespace = "http://www.w3.org/2000/svg" - assert namespace == soup.svg.namespace - assert namespace == soup.circle.namespace - - def test_mathml_tags_have_namespace(self): - markup = "5" - soup = self.soup(markup) - namespace = "http://www.w3.org/1998/Math/MathML" - assert namespace == soup.math.namespace - assert namespace == soup.msqrt.namespace - - def test_xml_declaration_becomes_comment(self): - markup = '' - soup = self.soup(markup) - assert isinstance(soup.contents[0], Comment) - assert soup.contents[0] == '?xml version="1.0" encoding="utf-8"?' - assert "html" == soup.contents[0].next_element.name diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 033457a84ad9450b991e5b7ba6fad88fa74180b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68284 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

8ez3zQSAJcCz2 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 Aw*UYD diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder.cpython-312.pyc deleted file mode 100644 index 2395d9129ea82a4d8ed3fd973bf0eb581cd4020d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1600 zcmah}&2Jk;6o0c{N$fg_h}(QLZBhrJ8i-c~BDG5DDo_!G5)08BT32Yb-W|sq?}ynL zCw1zG4@KhALpi1DrG*QiT>2-#4T+1}sH$10gv5zk6C*{+iJ9H32yH6fN^jqr`TgF^ zy!U2)Nu?6NPTSoOoPC5?ldXpSCN%f`tq9Gni zio$H}cM^!FlQJENiM9^xDOeYqsEL*j^J0_`qsqc%_+%bnU7~S`V3|jMPMT88SeKh} zQ>dN=Ai{_6C29(OZ}Z49lKyc1$T>gaibs_?E-Qjt1qph1SF$fIJc0&Hz&Rjjm38bj zKOx*KxZs_wgiRHxT@I9p67)XDkvJ-lOr7e1!gzI?5}xO% zG4_dC@f@rYyRLqWYaX$v=UbRe&RJA_&vU8o*_u(&-6c%4D|)G+l|A3lshV5C?uu$# zCAHR|70-P;ckV5fvGHV0H>x^=t1KTXWjBL_T8mRtYXliS9OmMsXI;Da@=KNbe|i@? zA=zN+bNG7%dIwqq7q?USXVBe~`SI2E(CPcicd2hu-c(yU>-&+?IYHR-X(n zJRDy5+1wt!a$9K+p1Obf(V*JuS6hSXuLEb=C&%th-<@uyU%NB?$JoTZn|E)v(y!mS z)b3Aj_I=&=xc|&fAB(gnvSs%8T030rlVfZnw`M11FNi-~klz)$3fZopThmwqg9`<&Og45ub?&q2D0&6vm!HZcjOZGP}T3$ovOp CpPCf_ diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-312.pyc deleted file mode 100644 index 388d7f3df7b3790697e0b32636f031aa6052ed6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7624 zcmb_hTWs6r75*veLd%lrSn;h*Qa86&NhL>a?8a^`i(1FEn|fZ87OSw9lSMj~LrKn0 zDv2})>4so%fDKunoB;)vhhcD#KKP*zd2HVb?1i#i*yWOkq1{8@TsuX8JnbA(q^^#W zVKj93^S>PaJm)*N-~aUcy#%hMz1OF|2@vu^Uq>g*6xwlxS(d&oamWtl4 zoFmBR_nem$Rq4r0^{CTQ&tx_!ixTaj(uJg=(p>mQWHBCObm#fptOR#|RElTSJptm-J%PqC+7}&;Ilw%_>Jml+WM^gFR;^=qZ&%4Z9(>2NvhMv zkSI;Xv$AT5S}9GDs3e9H)^>19PWYh)H#?wrfvEP_j01~!EQFZUEL{mvcNnVz8_9}F9IM^>ICxe{M*+6y6nasuPEXA*+ z%}DS))Q<%BPI0q$0sD$1Pbv7_Jx}I(r!y(3SCO;5?@O~8C8=g;Qc^-ANwxQ_Oj@NG zSx8LB(-$N~I2WJH2~!!GimSch%ToGsFYKUqHm6Q!(yxajeZ8<+3eCn77vnI!cTzdp ztD-d;RH(J9@N7Gq5;N4D@}OSq=MUXiO>!pLC!>R7j|?bX@F-F?JvNniD7KmuR z2+)W8OAk6tVZGLZIc!^vp_xB-y1S?jXbHinUVTzAUg zDGeN%i0TCK{3724EY? zMIhC1S_FhdR{Bf6MhlEth^q5ll^&`XFwkS5O#`%*oZ+=1A6ki=S?14Z+?fJ@rXD@0 zcLP0M6Fnt2L`dUc{Dtjo`Uyi+D@i0GD>}ch17z)p=)T~n9BqPh68|jxzM zB11);7|4MRZc2))St==XCu}dzr!yfXo0txjx`S?=yAr4AWcq@lwOKLvYJE(3u;>Th55?=SfGFTTCvkNiZqrX7#G#Q(zWy>~8u>kI$j>%P5r(Y@r> zUU}nN-?24c>*F0brHi!ey!G+Tk3SzO`Vam@n5LlzI8%G&*tfpH$1FUrW9Q>;n7ocm zpFHleI-e+LlMA~~huE(>T22qLUx!?$2RvU7x}pxxIHop&fVLwDx>pcV88Itk+b0N@ zvT?aI;t@a~2|=K{ffwyTvJXiJ$X#L}-v|k`6?>8Nz)!&_af5v49NTcZUGFj*txc|X zn2ipPYlPWsYjF*k3vqe^e)eS{fAd4=YMft7kX=h|$%6rF3ev|L&KM`UA=7RWJwUx8 z2eesi0_qdJK>b+Y#9BljP(J4mw&*_8s-1=#@yf`xD~bVYv?n3Q6{QDK^9xd1qH(!8 z>Bbb=u=Bmfe#~9sB{hO>Ei`?KqyidK5~O@$zPoap;mV%6FodpqN}^M6gOuBN}(4z#pmChZFc4`uICEw$evs$^5_RWRA&}%Ijy> z3*?d|Y?N1nAAvOfZP=^MPR1!6h88^oq)H1%8VJ_HKjiBd?I0&Ws7*+cm_MNO8~UFz@}39njr|Bk3pQ{H;SasF&Xq*hSB2TP zDn)%k0&%7?hAT;cY^@VR;~>LUffeqQSt*g6N&<{0wv_z;$ng?vSa}l&D1!5?axWLS zm+u@{;a*(}bgl+oD+FF!{Gb?keV(gQ6FQx)Wj>;Dkpds7R}*?n!|5D{#`D0~60zyx zbA)2aLw|{+7P@_v@~nog3Wu&1eihqUgZNHuDZXc8fa$J+IU1sp0?;>Q-W9!aK+3Z!*KFw@OZ<&rO!ej;_w-l#xPWRi-avVT~sEYj!)NMcBSgQO1$o;8{^^HFRe!37GYa9A@R+i)_j@VeXW3M}ng zCvdyJ|Nid^L+@^48%ycPMhEK}*zhv0*Eig(s}Eb@4YwaE?ae)`Rb3)S*vyEGufu9l@2r>*7Vw)B0zrj5@zVJlZ8hwaqfKR9QZfOKX$M#_oLPjGj#jlBLcTa Szh&NJhW;|}Gl83-qW=Q+Xv%N^ diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_css.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_css.cpython-312.pyc deleted file mode 100644 index c3a7dafc989e3916cf2fc2d62c98c521d6515ea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28935 zcmd6Q4RjkSo=hJvmNKTbWwd ziBA8%``!#N00tB#J5A?E7c+0}d-L9X_uhBkefK^7E04!z!nM%wmC+xaHktl}9<#?}q2!@XT}MBQVa0neCsz-u;16_RfwJ|tC&&K~;p%3Dy55Um=k9;hDk5BP!O zAE>dIq;*pDP1J-gdJ-$Nr`IhelWdV{2WlkKg4nhQ zGbdg?5qjap6K7BK^=CUMjVGP>^05;y^q+aYFNA+D^__j`g%_TGvH!&J&{~==n$wb{gU=hs&R?#wG6Rlq}4cJASVTYz)j*Nz|G=jzyS!@Pu5nBMai`xNrh&upV#a6&Ju?=vi zxD#-fxC^jdYzOQRI{<@X5OBA+8?aOC1nd&K0K3I*z&+v~z`f#LzuvhE_d{TT8@G0>rz^BEh0gsAD0gs8t0FR5u0Z)i0 z08ff10Z)mi08dW|t*5h<#B#^Zp4AvcN&GRT1kQ(*$WQ<;0*cByf#J#6P#hc^jz;2B z9WGY@SN~{4DSQz?LSzh_J|@NDk_d(hC}1&#IBZwo(r9F8G%y-g0^z{e0t6S6ca#gqtGF-~<*CL?j=QN{yt`V9WDT7f;M0^wLdx*V6ofuT`p=yg_1d^C(a z+P4Ci#^u-X83lL~;C)H#U|8Y*Z8Mo%J=-8D{ja`oB5=C@xn~0}yma*0GsglA?ZMzH z-N%B#Y>$UW z0z=WTq8w@9DGdS2N%zQnT8c)AsFEyo^aM+CqBJpbk!2VQM`8_HNyFjT&=h@IdmD+x zB$+k2lVMYhBpDxgIu; ziU-xtjY$o?V_*&{T$uoKtDUE?uGXsD$m^nXhLKEYxZ!z9F+eSj(G}n&QY(Iu^OUW0EU8M$3O#f5fhpT!N&#)~MbGO~jtYVnW2m|YD)e3W=g49CO7!W#2l3`ZwH zO3uM?)PfMTZwHYBkC)l&%Mm7m3HFePh+&4Be>`9GJj9E-i~^=uo~fb&c!nTJ*hC;2 zj-gHxB!a3!PwjZJlgZ6SuI0@18l zNYkcJ?)?-jn7#+=Nb_|}gk?pNTdgvcnzfOB&Dukxmv5M}HjF023VkE+U_3Yq#Sm1Y zlff6IiE$+Y`y?VM?WZE~;IZ*oTpo{xhDJeTNeP_|pPvd1kIQ4>c(CK56uTIVM$QK( zrsAXHvF?t}t{`$t?Gxdl*TX;$o>%q+iN_TNL(rTZ6H{5YBE=^sLXhdvaWS!l#yS1S z*P(y?i>RVf1Ms%#!`g<_p5Hw9orCjZncALN+uw5CN4hC1Xd`3Rtqn1uh^S;8uU`tw zBlwl^IXTuhM1;_;3f!#2|N94+{bVtL%-TEMuMz2|&BNx1Y1;Zd^RJj^Y;n7WK5dI@ zrnyP$9L4gC>8s{x+i}xX`;cYCG-MfcnoKkHX}f49TkD$ToeG<2#(@;a1*%igrJ1^B z)3oJb@24HF?*Ora&%pejHh;gD-!#{Bz3p1t-Rj20>c-UR#p?YF z4uDzbhrW%;?cY0i+t;2J+S9)F<>p;~RMno8=Njhv-`$a}YM*rgEDPSN>#nSO$FnTd z+!Z!13L9?=o0ol?lNXnK&7YWT6|StiX4zeN^~{wsbJ08QM(uw1j(f{Jr)>u~97v14 z=D%2RnyNb#;-}Z2yvh0Yu8QF=HsTp4JOlT&<-<}87mlE?RLD* zUDK9ntH!Km(>oh&Cg>1z-wm_e2AozK?}MGV&v%4EU6rTxrV=uS*m#eTJhAiPG|wTw zfl`$gfVWM{Ejw3C=8B$0cf;)IxhTkT*WI}2Mix{FdSR$j6U54+e)~j7-f>m`8oi2!drdy!j%hGV^?B#y-kbWrqoLr@6K84M?C$mck7~e zYs#AOHqBZ;^i|Jwf8%np^KZ_ih5FfvXxVwJf+JWR`#^027H>Lee_rOfe z5Ox$ZaAn}Gr(x04km}BOw$ECYeYMHz%w3~)A42O14ea}VUvOrmXsF%-vyl!FEAY!W0B^T}jH zBr0+fBy=os0_%HuAKmQ-$O=QS2r#2mZdkZ#Aag~byoKEi)(F9JBo-;x%{r8~sgQnv zTsN!T>CAX{7<4DPxAV%yt8ZR;GdTiPniiVVzUE~$^($Atk~*AfU-AXhLU7R+T&2%$ z?HO;2L03MiWbVy)S|3p|Pog%D+sh)9=_DAO zR4}uyv)&k*dl{ZYNC7y!)xzb3k(J9t)(-P{XtY2ob}(Y*^=610rAmlO3q^+U8)CT< z2aRdGhOAeK^rWjn`pTN?u4}HlmCcKl&FPkXnacgM_GO=cZt@Cg#49tULP2978$HQW z%gAM5E{JB)B3ef*d6NM|vGpaKY`Pe^n6)!sMAlAI$4wEcQP`TQm_N1fN_yv!J3?=1qe$*pqxh^!B%26ojScAr z&6_rlzr_}10BBP8G>vlo=GoIai)pFj#XIh^WHR-eO9_%d#gn8Ge3@A%bzvBYSJl^+VSV z-Ssyu`pGi$@67miEtr>looS(S(bri@hMZ^;2kXgTH0O@nfW$7X!Fx@N2dR{z%V?gQ zA2Qjpmr2ac(9M|eG@3f0p)O%w`zlJMl*`svO_$7YrX=iWa&!EKJ?ns%0|qSI3E_w$ zDY6fr)tN}eH09QABnF>ZL?ks=&J5C_d=Et``vBnV@c6F|UKzZ-xg+BVegdi9PIJR& zt~_(sy=Bq8B{_22-SQb^di!Vejv+j_PqxCh>Yud!!2Y!0ESMVQ#QZUo`-7?y&ot?G zc(D0Tm$91P#N`mhI z=3laeJNWGKvbvuVRJ+2#$yhLU)EQ6?K00`1TKkI~YvoYMyQ3Tj0Ew$=uW!1x>26iS zVpT)B@o1*%*sKHdpt$&v{i@qoC`i?L9j{n%Z)^bXQ8=+(1N{cXbm8OXHYr ziS`l8aG?q8fFl(8(5bGx;h{@=$lY|qsn&r{lu(Ng6+A1cNTu9Rp+mVvblA@6K&J5a zMPd80r)uuZ+~Kr)E4xchrTwjGciX3StC1O!<0|gBV5Tulsj}WK;=rOy=V!9$To^h3 zvfe0}2I2V)9^$)VT%s#w7@j^dF};+j5}eBC+r=VI87uR6a1I0c?9@F-k*^* zPh{yMwXKXd*+Z@6_L1u+C zI#{&s&-C=GOm+M0u@C+0=ahF3B;WYeBWZVF?g)HSb8lSRcm43S!>Pt4 ze{r6v`6tgfB z0;WQY`kI+pMB67(gMzVYqmGhe5rxY(H;&p?BWfY;A5gI^0HAMy@6W~jfrY-mRcE@S zN3O#Whe=`WYLi0DX!KLU4Y?^{q5>pnWK-URL;dxrQ(^wdCM(=P`h{Y0tYhS0^M5f> zZ%hFG_9v9JkvF;SDVpRRESTfXUz(5HaUY;b-od|8mhd!+8qeSUYihhvfBQ1t-NhayqyEl`#1cyS%MuB;+(O>`a_&B6GV0uYX3b#K z>$#j8*U5CHk@L^4&46UhDJAqJ*5&vxF!3?9SDqrkX2l7*dy@donT@@ISpl&?p>RA- z3&uxpZLyBl^aZrCwjm)X#j@pmu0k?|i$yAP!O<@8H#a`}1n zsgQ7Xuwk?_Axvm@YEoA&sY}D^&LwpxxJORS)WwO*^m2fg(}npvTa_%Mi}^H)VTAZd zu1ro$U@^MfG|B+=-xF22O?J;xu@RQ1tK!h?>3cOMPgQRH^78zJJMM#@)Z$esV}4nzdf&rY_^IBwJoLwDTFevqR|&^ajF+MnGT}gIx)?ni!yH zEd(&I2rgsK2X}A}jYguP8hn5#-!cyFLahHrq-h0!T}2h{Y@__fs1^Ft(AQV-^4klHI6jUG^1fKYnkXwxF(pV2SJsC32)*1 zL`DA9dWt|jR~&(gBBGs%TK29e_;gTBE{ahdOw=)Ko*Wx*&qc2eCaO!zPgI>NDYxoe zNtrcjQek5a*7R7tdy8LNu$K1GqruK}nc!6&*; zq-s)*v>Q|2jmhK5eQ9^YvS&-mmb{pDw=8?=l6#UZuo#v-&GWVt(mIwsO{sWlIPGrN z-)*0-PP=z4d$y&Hr%*=QvL}$*lS0l`{as_~#k6||5-N9@La^X&g77 zgG)KrI#sSk#6IIzm->rM7VO#0e{YhVhl_Eer!P^ha^qV^8u)MuKO-sjk{575mZWtf zt%`H2E`MW~5++Lk(dOx=q`{tkZNQ6Vsy7P)tuVExS>8dnH*tU_e82T z$qKjNoBKShRbBi9)%hG(J zORQvfRrn=cSPdNd^@}z1dy{w;7vrAVKBy{m;V-J;@Zg*z-X*FvC6#}XsKY!@my9PC zLC-jY7okhynye(bDyOngFccOtSBIHy!Lu5zjXHcAb;w%AB=8(*DE&L8N|6Aq%dMB| zRA17sNE|~V*}2TL&Lt&W;r#su7~JQyNM~f>E?ne0gM7xk$o&|3Cc{=8Ij&ra#77fl z{1`^KwZxU*#77FaGOxw*T1nGWfm8#yDzAz1+G<4^!hHnwwmCVR{4!(PyaH{R-!Na1c6WWc*=xkMG#O=V+mD;Iv#mA& zW3kuqU1B?IL1OGzK}>v;=3=-Q^SOxmsDGP|G_Y+K1|-6A^(*<16(yzikzG z&k@_o#0#=aU=9GL975)~O(Wu2;|iXUWlL1@f@0&?b`Xh;fDa4@wGG9CT1?~&u;Zb_ znu^&%-TxeF@zCzCPsWoNx|%<#+?=gEd(Uq5c<%`&Z+&tk`6?R&x27u z5?Hq_<7VyMwkB-@EyFa6SM;$ityDEjmD=gm>aSn@tpO9%GA39rZeTg;*mpJ}eG^OH zoYP?SYMw2kPke%XWh;J(fdV}5O>#HlVyv@G)mv@l^j7{wf!;#0PDxdf>MKmj>8--# zyxu}O*IQgQ;jvI{$$tlRWc-O&g-VJX0$?|!=kyfQOgurA1w3$BP<1egK|W0r1EgqT zz;9bC%8G$}4KxGAqEAgKtDf)rYFcWe@k6lRs& zv>`h#CY8>vXC=uH8ja4#hq>#(C%o-VpE357xvUuE=Ke#ydU!6L4D223W6tsXIM zF1MDymbkfhPVu<8vhj5AG1i6;!Ih+7&w2ZVB29|p%tHak!J$}uw0(TIot#oT!mZdU zM&Uwohycw{bu0HQ^sYGIuAZ^aWK8wjgNO9xw;MA~8T2V)8HKS-E)efb#`6rt+3ha~ z#7jT1_qKZ1 z{n3W{qk{EEJ@%t^=kE*lqg915eI#m3*L=WOuuO=Lk&el&=|6m>AJJ`V3)@)xzL(qr z=I8u6-|on_Qmy^#PE8QXd|e;exAsznwU-KgUD21=1YOD_1OgKUoZs1+4_|puk=wFg zK0|kF)~Rl+FORgRHBo~v7JX}XD+1PO7Ny(e^AG5;WVN0z`$9r#v5_RS+_J9@aV!2y#Q9KF?UaMcu7uE%_FzDgPq^C7sO&VqH&$ z#0Yln#Y3W`48biDj>XFj#H(g{ml)y*J_(~tAGnha^k%$I7SkJn0HqAE=rdT(Co_U6 z!be~6+NjE4F{!#*xe?n=1S%eBIDHV+U9_g9YkWEStePoF^eI^pJA6yL_3|Czc&QDN zTP>bNEgy~hM9T-cZNG^4GaCgq)OFuAU&=n;GUv-wc4EJjzwUa^wVsqc<8PT2pd>0h>YgKE ze*eO$bX(6I;Yew>_GOzXWvgWmw#g(U}ZU zEzyu|H!}lioKB;{K|GP+2uvi-!C1B3Wo#cAV}Flm*UV^_Uy;V1m<8-_Kb%WR2X-$s z+!6M!LZRRN0w_e&;yjJY&=JQR=&?p<`_dZYd&JyP2nBO4xHg2wiO#^zz-X6DYfA~Y z_K36zzTQ^HlNx#8ZWmstQ5Oj(e=~8z$~M~TM&V*@^91X*uy_FzqF6knM9yQLK9ZXk zC4$C1S2n{ub>7QGo#&c=b^c4Yg#)?HOR)fh!tOkD>&v&Exh1g;HZ1I{Xh1C9uD-%2eN3@hXZdIgr9lb3a%P|N^_rZmo1>54h3pERl+roYw(*9dbx7Oblo+{>< znN028CEwn(uy@gCpdoV8>tAO)^N>j{XN9&XeC^JC)9qNpIDBWN`SWCgwGC6$P-Apsf7TOQiLi5y? z2XYu$A7>jF_w44CDh3|R+}CkW?jRU>0wZ*x_s=*+sEg??O=ab25V{0sy{f`O3LHCZ zXIT7FWJpRJGuCI1RLJ*h3 z=lJK;I`SN=PI$ImADlbyyd&)Xf_t-y#E>)-TcS8JED!Rg(#nJ}7ju7MaR;etCQ-&; zSO)zk)KZ$V=vqp#jMA-F%k5G9TuMh^t?dmYSR=DGoUnJ^xRo7-y-M4-!`Qo5Ib!C~unhW7sb9xI00U#S+~EcPsrZzGa#k&^lC*qg$597#xBbCq zHaxS$2lDUYn~!7V8lPmdQ5`{~7|t!s-6KX}P`Bu9IDqQ*N92t>wx_D>fd@qt=g2=J zLY53Bhi^rGT%SJjxhz;?-O#2DCWyp2LaGuCPiXh&br0t$Xn@&O}Qd<(p8MS1AacsWe8=NBaM zd+!AJW%5ZkI+s^9^I|3D#*W2I256Uqbs9`Fj3J8UhueGX&#r9>YyJwxtzV*qb_uJlU zdq4PIaK3rrWHOl9ba=^kI4vAr^sTmg>*x5==jyaaA-*k7d~}@IDB#GjyK_tVqC-0* z52|9V%#zRT)N-T41$F%>*Wvseus;VqPWG4dw0r{T1-(q`PKCY9PXObm>yGQN(5=0)HBw6H(z+fRqST)uLd z4$eu&GQReO8hAU)`8b@!#mJ@_C8rbDqr`bbrI$PR}X$xg%jsz(Vsz)oA4TEkRqHw$$CyP z4>la6{dh({lLeHu!cWasS6C@U0b^Wx)xye2ulm{wx+xS;1nK2#&$@$T`!n7)T7KS` zZ2XPMyIZ>!w|3q3b*F{yw6A-4OJGshG`nGLJ7jq-j@X2JctKH$;o(O)E!+d{`dk9N zcCplHVcj9bkC9)~=K52u9zi|iR?cQDaSC^3*R&<>*6xe=&B9|IaiS?Z{y-E8MuLhG z#lRTtB@~wMj&_m7%GcSt2RZlA(u;bav2JK^3`e3khM%8_M;ypb9#*=lHP|yohqgR`9nj;<$HE(nH6KhQ(@}Y@ey#LFbBB&+WZ_@Y=z<{>DXrW9oRu z-AEwrOARBW;wSTgJ+9}xH#1pXy~KP2#P2&4(zCh$iDNGRkife#7%jKF^;@TUYm zCh%Vf{8s}1oxuMf@PNSoB!Dv|O|pZ43*d%{2_TDimaFMKfhPP{C^+hCrcZ2kyKv7N zblcuOzH;7dwja6YaNAwWb(`;5>33&v!FuB$zkli&`~9fGbKj14*eg=g^7ga$Y!-XZ zLhXWb>-Z1--#@eP)?(+$`zEBV2o?5*mGw6J?iIHachwgAmKDKle{#iPvG+k-1!mfd1MxFWDShke&dC3{?FKeV#R z0)Q9zs@eWDGFKvB6Kc6q?*nL92e4@eK)=}mSm^?&bJ$x}D($F%w+dBjv7$tL`UG-2 z?Y&greJg?uukrnT^!*kp{L84h*?wTfVYcrlaF{?R0jfR-NNqsH8L%Obo8{q&X8SWh za-+HRR@4=(+ef9ht#}1{>-`#=oiD+#UTWRQ1Csv_dJDUnl|6jYNm?-LfDMCHUM?(5 zY?yeEt(C3fe+>n%@ds1bpPG{^DBUE}kSM$9zT(8?A!&mCs8`k(f|D6r(!%tlKsqaO ze@aXCQU)IZ59RXrjmOXA|HK#jYjRl|O?PoV#p{uY$S~)zDq_FQl#T4Q2SN|m1HE!R zUf`ceA<4qwI%e~SCeOb!xj(a6&6dwxcC+Qa3E)$&$=t%yFeUBWyYT97`7)*_e`>A$ zneEU$w`t!QbK2JRQ>S@?&R diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_dammit.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_dammit.cpython-312.pyc deleted file mode 100644 index 06d0b7107417530fc6bd36a556dae16ddc13b2d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19812 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 BPo)3= diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_element.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_element.cpython-312.pyc deleted file mode 100644 index 3788055b8356e688a802bf3406f67a4137fc8e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6057 zcmcf_TWs6bl@C#(6v?z5+ligjWgREAQd?@`wn-B=ot-)U1~Fgl&2;h)u+ zG@E48zN9bBCAqXe=}!lefi$1wX^NpPQi|^urEm`zmrF88=KL@h@a95fj)%FRH@A<> zgY6hOG{Z!`^U{Qz31m-!&I$HswI20AIf@8b$ZWd zGZwse3)KFEoL0?wIi)JzA}9F1YUXt7ifW}?dAg9U47LWLbC*&nPz{x26#5pGWEBRW zPhkOasEnk)z`?5@L^0wXO4BB(DmP?`%4gx(vH;wrEDr~&r>crsq)T85*M}&|WZt2^ zpc|-|XQ6sf;oHoqKtdu_by_XuosucFE=sEtS3}^PT1JaEtkJc&L7M zxwHkmsMe}|4=@d?1^<2qrGa_vM&+uFwd7eN0?dsz1OkAHz6|_4=cp$HVu8B}@!WqF z;$G_yJB5NfY4(Lgw_#5eAf88DWeWznx!-Eam^@ry?Rj4VJ@k*Ex2e zTpo3+(4AVaTh0@IN<;$=FS#EqIUz|(XO*0;N|F0CX&~2f!`r3Bz-TpLB6t-;*|m>)YbnxE^;2Qm5eYS~Zbvp$h9$W@ExE z_@bN>MQwOVm}KscG;6Ms*01EIO-r+KmX^&F=g+H#B}2*JIh`qDEupBUHk*NJ!pe$s zavq8cs8JvzVO@Zw3=BhPJTqEG)gX}+xl9Y&~oc%R9N@^yRRUkRv zXNWU993g2)OfL}Et!PI|L)j*I>U234fBwuS;ime%n7sk7Y%T)$oC1gIIKDbmZXaFZ zHiZK#udWNC&5O1mlF`PY_}ZcPx)8VdxGlsth3=K^joy=My(b^OR_;BsE}XIXGq!MM zQ|MVay3sef);Id_V!3Z@T^O_ZFCw6rEZQS7zU1uH&hrS-E_Pkh5Qu;PIhD6}~PN?fXVum#q&#VDeK z9@@Yv0c;XegYgoAVFV)pTG^X>6!?kkZ4YMe;Ql25kO$hM_VLMb`vo+&R0`cJL(pZc0F_m8g&<2FCOCX82df!}xmMKXZk2mmJ_ zNf7-c$%y0B2?T=(uoQCx|1s<#I1P`9mE4+5q> z=-19k1vct)Ivczjk9B54oW)86pRL~$KD9Xe0LIuB;XDLqB4!Nw_>YBzQdhGm5c`_2 zTwN3eTW-SobCoJa3GBcHJRI4pVNbrs6=G;G@q+?y;?Q}AJ@N9(|9mc~oc(*?>d&4A zU<5~>(F;=~om3jZ(*=-Dr=655}dIV9gjY*>=dCJ3HMs{5pMJ=03;Gd zo-2p@q3G!7TB4VZEc>y<*uR`#>Aro_=KGg!Zgw1OMD(r;12#Wk3j<(yod+6`-OKK( z?>f305naol+5B@$pY1?&l7rTAX=h~gYTduVyVlpbKehf9$h~>mtzQ*SyA88D?V-Mg zMk^&v;gz5g@@iuS?Wk0-&ys7O!3JB|moQ#~l?K$$l!2~hypG@ufD2QQa7pdz_^?`Y zf(XeW3`_>MBIEvqeb^FmsaxY!cm()x+Wa0ghj3?EE;FwJB)Dzg9vKT@D&^)_z)g53;@gEPVVs5 zP#1U1B}8-z907~YhM+Alevc9+|;UE>kaw{b%HYK8w^cd zrD*v5a&UpYO5LENOrrQ(?@Pt(^ffhQL5*&TnQX0!7YES92V&yYZ0<#<=jV;=G~5^# zL<=q&Exa_8MO`yVEnm4JGGXGn3iEgsq^sT)rTCVnh=puUgoB=r1-~LeXDBM(m{T(Z zkyd4>{h`|TD2AeMMgs;)2RyHUF5~zOS%b?@r_DQgX$N^?gIc&MnrnWb@BGaZ5Bq4;5?aUz7;y}oVa`H*QdTLJz?p{;YTbR3_WI` zw;eztT=&#O75^?W-p&50n;Y*BB%;1%pTIh%*&WW~9D*<4G4ZzW7PZ9$xRC1!h>1oF zybdxZ0XX~MdM{Q{m>ap!T*)cIE!&U<5xjfg#FB!z8`-33_ow`rdzd|EybE;b3?}aK zh^1-zG2^3sTVaZB+hzhZvrQrB9He_5QvkLT^dWkJeoP_U9*fe)9#a6eKc;y)^n?OH GKH%TtDE+kn diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_filter.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_filter.cpython-312.pyc deleted file mode 100644 index 599723ec3ea8a8e401c56a86c22eeefb72115e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32637 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 diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-312.pyc deleted file mode 100644 index 9c2b9265632fbf8c6d667379cc3583d14590c4c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11988 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 diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-312.pyc deleted file mode 100644 index 0e4bad778f3500365d900beb6ed0772b36f9e5d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8555 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 N2WNgq;IDT6{{;0m diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-312.pyc deleted file mode 100644 index f31fa90978e926d0f0e5c2cf73d1826b973b8c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22934 zcmdUXd2k%pnP1O|!Qg0IB*9A>fE36P2n-G$5D5;&3%o&zqIJ;GjvLbrV5q^&xO)a9 z#(>G}DhXgIMR4U>f+bZ5m0dAt*;#3w#NM@Qv$p?9)mEiuFth=;nF?#YsfsF<3I$M6 z!b(;0`(Ag?*#IF~>q?r$H{Gw_d;R)-=lj0z_1{)ixj7skHeVY)dWhqGM;FH7&`*|s zhLc;I$X((@i)am7E?L;G^^%qS+Ai7Hull=@M{Y@N6IdhS*VRY>>4S*R6gRq z z-S4%iRYxQt5f2R}!Y@S=F|SpvI~QZZ=7~o=65W+N(SgfS z5c3g=piIF_MTV62pfM^MnH_(Ggyr`DfPBk@Wt_X5UjyZIj9Wg?ODC-3*2`9{G#_53 zzKV{^Wkm(J6s<;2qHXp2Z|vka#d@0iW6K!lwfBEYG~7Gj|GSw#>GcixA3GB9!M2`H zY4|Ae+Eu#(B&e1F)v3L!>eS}pt_`=O@StiRj*o<89t{*~UiUx)n%7LWHS+HsC-|hy(_tfHrI~ z>C4A-`;!}Npf`IS;5xU+Z=19)^7S{yrp9I(-nyn;j82W-n3$Sa;J2muZL=pb{H_nH z7CMflJC6O$E18aS^ZdD#>s*>Yw~RhGb3&QKo!^sC42eSz(T^Naj9V_RdcS}uZ2fX2 zdXTFC?%Eh;HYVO$sr1c6&{FgW4~IPjO^;PbTKLSyIwcmhgh zUdiy!%r*S^=DV9ed?n*OIL{wUxeliJgK{Gp7odVjm+|anocu$gLbMf3wq2WS)gdUs zP)Mo9)4`1`+n(Fk-FbjGQr?6jlUeU&v(AW`=37Y&DDhAn@>Rjy%Th2p6bU6Ik@!p& zf^kV!0$?;z8Wa-Yc=A*!0={5ZO&Ffi0k9Taq`dp*`TZ%^{xrY86bDZ9!f@~doU9cG zacaR1Gg%p@KG|W&$32{dgRCt#%5%S>RkZ!U{(&xqpnW-EHr1Z9x4np2YHsH}J$jEPhyq#ERt>V%q8Bt@aN6Noh*h@+cH({pKzA)uEoll z8)v4@%#_W!CePff?EK7z!q4aqyZuF`Yw2CV!L=!po z0s5t*fUyiIMjYkMlVU0_f;lj6B&=Y3C?>qsz-GIsUb3llhKs7~!m|_~fZ41r@>^!@ z-*dk2T=48od-i5LJ@b4|%GHzRdrDcsj!qaWdzZWS{euS2ydV~SckB*mc{60#DCM#7T<0FSxY~w= znrG5A&tz(L%r&KJS|=TgwHs%Sr)!%gorXcSKEr!pk=3og)q1n_owmucMZRIC>`v9~ zs@YJcv16X^NVz)Fd`Bt5X`&dn5vte9ZL2FD(fWfdlJ;;wwbhKz3{*qem?PR@a3R{0 zrCxNb)@P11%1cz)HQO=nhCOH<;)2%KVc<^K<7Dlz10+Y>U33`ZxM_WRqn(>@phc}w zg_c+2j$@qhHbz}znNh4Z-+o?Gn?WejpmoB2h4Yqa3iKi=O)_3&QKmu2&jOSvlWr6) zlLk8j9ej%$=U#_4#~KUkKzivvv)r;+xVJ0p+?eHuHfU#S^72t39Hup#D8jwomjDig&-;njOk0htg7&O+S)wFa$P8)NKo>O!nOiCd3LvV z;9vh;4$EC@dxvVds*o+AGs)xf-XSR>U5&~9q>1^P8(5%dM7`l?PzWpj_H6qT=vCPU z@L#z9d7WG0?Dg)4POi4@p@XZcUgW>=sm)R~Zu!K9^8clf#Q$Ty*5WPKc-VDCkjX+< z)N0H_a5#{=E_|?NiZCf|!%9jm8<7+R%PrN0x%4`jl#thvt@Ag}|Egwtir+hF2e{AIeWK6*`c03@FyoIndyV@cXD@f- zMveQka@GeM!~b4#ay9!D;+yXuI^wnceD9Vcd+fjPI*xP|T1(<> zIVF>m0%P1=tHxzstA;YW3{o~Rf65u6=w@<#DNd;T9LA*(2bxVkMiH^7_RZ|wV*>^4WgWyx)G_z4_Xa@!qU zOO-aqb9DI%?zkMCOAQqc_wpv2qgm^a`U>JNdl>e>@+gYF3=fo80Y6lg2&deoYOxBC z7vYM#R3q|$wPFomomdN4FV+DzjMaM^)M`RaA9I}0>MkkMHS<|%-jq0)+%qT%@q{ex z@+1^ZqG?i3@q|NfNRWnP3GeiJgox-SMg_OU;k6sv>D@(T`Mu#0bU6Z_�udv+4zs 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 W$4(yg+n=(Wu}t@T%F!>If&UA*{{e3R diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_soup.cpython-312.pyc b/.venv/lib/python3.12/site-packages/bs4/tests/__pycache__/test_soup.cpython-312.pyc deleted file mode 100644 index dc952c378415e463f24e23a4d87dc79d26198a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31525 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 diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase deleted file mode 100644 index 4828f8a..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase +++ /dev/null @@ -1 +0,0 @@ - ÿÿ ÿ

\ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase deleted file mode 100644 index 8a585ce9270e58b125922297f2d099298adac822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15347 zcmeHOKW`H;6u+P#aRU+(18Xxd6l%E*Nl7L5s!A+KhygMnL5ETmLXBVgZv$er@K!|sD^YeJSDOAWa&ttPlG6X?Atl{} z^qDpjS}5Y|WIWoTq(csczd4*??66BhVoGhy6y1ZDBgWIhQ~nf$4?LB=5tQo zxX3XIMJ!OhCjE@@G@nnHL!!ULItAw?J4Na|Tz{fnYNoHpCUhroxQ^Xm|6~3AZ`jNU z_1CN>Z8L2Ov5UvVto$ukPyf~8Z|ZG_z+Cw)}rtPVgJ$Y!^aQq_qB2x+d@%#VL&Ee zscL#D6CO7NUrf^%e&SnKww(HyG#lR3!%5nHqKHLiq!Uq%XT(ATAI~R!c+#u~ktD)W z#Z-lH42O%htTt3XpZZq_8E}9wb>zG-$Bf4}bwbGBM0e%#VflQ3>E%3$>n4SKSi0u< zER%m$TsEp5ifAh3ZBVWkB$KNF37662`3#lv#vffpN$8m zN~NsW&nsp9m$XI|Y?vkxR-@e#J2vfv={I9yD{8L>?bJ5jl{m^X>DgR>Pz4nzY55>9 zaJF$P4nM{r0N0v8sLEMw1+^QiLKN+(xQwxB!0bXrBv?Z{w${rqtoY4tO&Vk2ajs38ITfhY1|%rRV$pMf6PhuP>A~gb(by@6 zIYN?5j_g2E=LC?WXmn7m$gyJwVL_x)6E>WMna*0~7+ng6=am8TKe^U~eF_~XCRZkW z#PW{M(|AZY!jT)*wowa!XyA7C+-+hS%aO@_kcpK7$) zCWCD<@Kz>oC}@WX+hj0SGTJ5s9fT9I*)juIwVk>gO$LI&wIfvqDdYl5f{7)#xCTIF z2SI2-qp#%56T}6sGt3_+us`Vd;ONzB-y@~Ll>LlA@XZVW@(&R0YF diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase deleted file mode 100644 index 0fe66dd23fe94a8e451dfb1a84da38ed0984c1f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19469 zcmeHP%}&BV5UwW1c<}1c&|0d-m{hN9YYZMVF=z-E6E3Azz?Aa07`*ugp1gb37w}np z1J6Ey_J;^Y+hVrDb~+?vcLObSXLo15`M%w!71Cc4g4b8Y>@_=7*S$g~EsGkt2Bn={ zt2=1kXi~B5P|KmamD`Rb<;p=_zIm%4C&qy-Vu088oOsuGz>Kq!-D0_0%~Ls_F?gfesF!B~xlP=*UCbCH?n*-O%0 z!Q*F>?46hl=N3}p9^s$pfQ;#K?C}VRg&?#Cu4Gl`M+NhN`Lsc{A^94o$;0t3y>S870B{5&zz9DFt<}-BMx(8V;~9 zu^`3{e->4K<9oQkG(Mym>pheEPdQ^GK5fr%nc+{ydd)pa{!emW8I*DurdQ@~y8Kk4 zgV7-WU60=nl>ER&`8c&A8JzU^4}@gt+g^h^gT@rwKLtV<2l@NX63OYId;^?(0~P60 z?9W6QN1A0E6WR+_CBVe3&|S@XJ2R{CP{xr=dJz@rVH;L3n4Q9zrUy|Y_Y}rG!O4js mqyYzMPzM!p)C@wIG(#Cwq{BE*384&|DuI`yvfSgo2>k@d3|T1v diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase deleted file mode 100644 index fd411427d765e9b17e1e6a015485a70632bb9554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmY$eDbjbbRX@cb^ZOhC75W5K diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase deleted file mode 100644 index 6248b2c..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase +++ /dev/null @@ -1 +0,0 @@ -ÿ >tet>< \ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase deleted file mode 100644 index 107da539fc15bd1664e35287ace9feda21cb5820..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11502 zcmeHNy>HV%6gOf+VqhSEDxuawNKi#?;xtXg#SCTdK!q3y#cd3AnkG&P3ldWY7XAYy zCT0f2N_Q3{#Kh8pfq{iTAiQ_)?sEPrNt;$FI=4Ds&hO(s-o1P8XBP^E%c~a(bbUIR z>pt6&8VYYetR1|1@3DT}-suHUu57m=zZDhNUbKCCoqp6en~h@8f`8Us?*#40@z@;v zvWixx>qm8ug?`kSZAMZ199wmM)@|Fljl~QWU$J;93#i=Gnw~*BlHQ#|0?zbH*5 zb%|;A>ykT1x$T5V0o|~j6!-jKFyP&Q0fx?{e_SD_qO!^BSE=P1b3*t-8C14p{iSNc z2V3ItzI+T%ukbpRx(HH0EkaF-OQ}&>bS_;QQIeM5QcmbNA;V7VgCSi+Ka`)}b4~+u zIOf`Y|F-|bcGS`*xVc><+HeK=DuR7kbb;M|VG*n$UVC7lv5TH2TY-e=Ct3={xQ+R4 zwyZppvo(W_ZxdtZ*>Zz`2*oa8?n9GW;CglXx z<}63=pqMsNj5^H-eT8Y@E zP=-sP&U&-KBcEQhQFN;n4^K@xO-DQbCK=e7a4zp`HQ}5I=Oz-?nQ%^KGA3<_C5= zlRW%*ktfj|g`Fl))G`RHqfkU^=K$nAEVm4Oss1xm@?`cmF%gp;&h|LjDKbyFFvm(o zWHM`)cSw5|y>6c;zMKmSoRv`l zPeWS%fLuIZqeLOxJve;>FPgW-2pF5U#T0&+x5X53 zjQLv8ye*brDwwY#Fm>Y}L;QzdMc~-Z@auB}FN(+qLgC{?R>|o0jGKi4oeBP!uvKWO zmx{C@5I3Jxz--`-k(ePz3Jtudax^kV11};Vc?{4p4le@a3||N1H!?MkT}(oo#aihv D9d3o5 diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase deleted file mode 100644 index 367106c..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase +++ /dev/null @@ -1,2 +0,0 @@ - -t \ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase deleted file mode 100644 index a823d557b4bebed8a9cdb880d281c9de69a1aa0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3546 zcmdP2$xSTDup1>uLtr!nMnhmU1V%$(Gz3ONU^E0qLtw~uwSNNv*}xU^oQ!vv$DtbH{XnB<{4q&MBMIvxRFa&-_pUv zaZ?A@)wk1eCmnC=bU*Q=8+sfD%u9F-wunGF9Af5kU{XeIH<5gU7$((-f1t0?R%dI;Jq*Qch%_#M(x|K>?1-n+*fFB zm6{d^8#<{hj+7bdpv`Q#2CcfFkUioNUyXr5z+=fRP%u7K(G*r#6$M^Z_&u?|;XuBN z@N6(okxftZk53XI6>lL`P*y0e{H4&t=5>jM|{*N|q#^8%sAhqM+Y3%AITJ zj+ie=x^@H_p!D;o#ZMNvPoPiY!4dto?gr%>8ZfxWSt4CK@!+{gLI_zD^Y~@@!h9AT zhwtJ(69K8%&(5%E2fpgGkYsM!X=s?z8oHP}&TI@w9WRoXm;n8Ha{-ib=yrZ_~b; zLif2&eN24}r`0u!2Q^n!;Z(g+b!QW%0&VHg*@TwX)&r$x>#WdFWGZjuEVhzaKfVQc zE1wv%%}(9W_#3HHZI>9f_+=c57M9cCNo@`2bnw)yoeHG+-$q-W|1arjzM|GxoYGoC z;*bTH!DdtxtcOJ%%uC0=se>6mD|1!l76U4^eq4Nq!{I_ly+tmKJqqfTb*ceU6z362 ztyNgQGww04iSboml65FWdBXI!jzWnWgo#v19R>P(S{7XznX3V~Twq+Re44__&~>h> q43wHvMb7{ew`wA?1}AsyPlT5DF{Md(5}xqoqavh!LXgNIAN~adfn_KF diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase b/.venv/lib/python3.12/site-packages/bs4/tests/fuzz/crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase deleted file mode 100644 index 885711554056588a381fd9a251d48ce76a916a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103 zcma!IT*$!C&%p3|?)u|48N3V(Hi{|v$wno$1*wb-3(;hvkz^S9^*|aEj@#ts@G|Jx OROIF`00A~ppfmtd#~j4~ diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/test_builder.py b/.venv/lib/python3.12/site-packages/bs4/tests/test_builder.py deleted file mode 100644 index 87d6758..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/test_builder.py +++ /dev/null @@ -1,28 +0,0 @@ -import pytest -from unittest.mock import patch -from bs4.builder import DetectsXMLParsedAsHTML - - -class TestDetectsXMLParsedAsHTML: - @pytest.mark.parametrize( - "markup,looks_like_xml", - [ - ("No xml declaration", False), - ("obviously HTMLActually XHTML", False), - (" < html>Tricky XHTML", False), - ("", True), - ], - ) - def test_warn_if_markup_looks_like_xml(self, markup, looks_like_xml): - # Test of our ability to guess at whether markup looks XML-ish - # _and_ not HTML-ish. - with patch("bs4.builder.DetectsXMLParsedAsHTML._warn") as mock: - for data in markup, markup.encode("utf8"): - result = DetectsXMLParsedAsHTML.warn_if_markup_looks_like_xml(data) - assert result == looks_like_xml - if looks_like_xml: - assert mock.called - else: - assert not mock.called - mock.reset_mock() diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/test_builder_registry.py b/.venv/lib/python3.12/site-packages/bs4/tests/test_builder_registry.py deleted file mode 100644 index ad4b5a9..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/test_builder_registry.py +++ /dev/null @@ -1,139 +0,0 @@ -"""Tests of the builder registry.""" - -import pytest -import warnings -from typing import Type - -from bs4 import BeautifulSoup -from bs4.builder import ( - builder_registry as registry, - TreeBuilder, - TreeBuilderRegistry, -) -from bs4.builder._htmlparser import HTMLParserTreeBuilder - -from . import ( - HTML5LIB_PRESENT, - LXML_PRESENT, -) - -if HTML5LIB_PRESENT: - from bs4.builder._html5lib import HTML5TreeBuilder - -if LXML_PRESENT: - from bs4.builder._lxml import ( - LXMLTreeBuilderForXML, - LXMLTreeBuilder, - ) - - -# TODO: Split out the lxml and html5lib tests into their own classes -# and gate with pytest.mark.skipIf. -class TestBuiltInRegistry(object): - """Test the built-in registry with the default builders registered.""" - - def test_combination(self): - assert registry.lookup("strict", "html") == HTMLParserTreeBuilder - if LXML_PRESENT: - assert registry.lookup("fast", "html") == LXMLTreeBuilder - assert registry.lookup("permissive", "xml") == LXMLTreeBuilderForXML - if HTML5LIB_PRESENT: - assert registry.lookup("html5lib", "html") == HTML5TreeBuilder - - def test_lookup_by_markup_type(self): - if LXML_PRESENT: - assert registry.lookup("html") == LXMLTreeBuilder - assert registry.lookup("xml") == LXMLTreeBuilderForXML - else: - assert registry.lookup("xml") is None - if HTML5LIB_PRESENT: - assert registry.lookup("html") == HTML5TreeBuilder - else: - assert registry.lookup("html") == HTMLParserTreeBuilder - - def test_named_library(self): - if LXML_PRESENT: - assert registry.lookup("lxml", "xml") == LXMLTreeBuilderForXML - assert registry.lookup("lxml", "html") == LXMLTreeBuilder - if HTML5LIB_PRESENT: - assert registry.lookup("html5lib") == HTML5TreeBuilder - - assert registry.lookup("html.parser") == HTMLParserTreeBuilder - - def test_beautifulsoup_constructor_does_lookup(self): - with warnings.catch_warnings(record=True): - # This will create a warning about not explicitly - # specifying a parser, but we'll ignore it. - - # You can pass in a string. - BeautifulSoup("", features="html") - # Or a list of strings. - BeautifulSoup("", features=["html", "fast"]) - pass - - # You'll get an exception if BS can't find an appropriate - # builder. - with pytest.raises(ValueError): - BeautifulSoup("", features="no-such-feature") - - -class TestRegistry(object): - """Test the TreeBuilderRegistry class in general.""" - - def setup_method(self): - self.registry = TreeBuilderRegistry() - - def builder_for_features(self, *feature_list: str) -> Type[TreeBuilder]: - cls = type( - "Builder_" + "_".join(feature_list), (object,), {"features": feature_list} - ) - - self.registry.register(cls) - return cls - - def test_register_with_no_features(self): - builder = self.builder_for_features() - - # Since the builder advertises no features, you can't find it - # by looking up features. - assert self.registry.lookup("foo") is None - - # But you can find it by doing a lookup with no features, if - # this happens to be the only registered builder. - assert self.registry.lookup() == builder - - def test_register_with_features_makes_lookup_succeed(self): - builder = self.builder_for_features("foo", "bar") - assert self.registry.lookup("foo") is builder - assert self.registry.lookup("bar") is builder - - def test_lookup_fails_when_no_builder_implements_feature(self): - assert self.registry.lookup("baz") is None - - def test_lookup_gets_most_recent_registration_when_no_feature_specified(self): - self.builder_for_features("foo") - builder2 = self.builder_for_features("bar") - assert self.registry.lookup() == builder2 - - def test_lookup_fails_when_no_tree_builders_registered(self): - assert self.registry.lookup() is None - - def test_lookup_gets_most_recent_builder_supporting_all_features(self): - self.builder_for_features("foo") - self.builder_for_features("bar") - has_both_early = self.builder_for_features("foo", "bar", "baz") - has_both_late = self.builder_for_features("foo", "bar", "quux") - self.builder_for_features("bar") - self.builder_for_features("foo") - - # There are two builders featuring 'foo' and 'bar', but - # the one that also features 'quux' was registered later. - assert self.registry.lookup("foo", "bar") == has_both_late - - # There is only one builder featuring 'foo', 'bar', and 'baz'. - assert self.registry.lookup("foo", "bar", "baz") == has_both_early - - def test_lookup_fails_when_cannot_reconcile_requested_features(self): - self.builder_for_features("foo", "bar") - self.builder_for_features("foo", "baz") - assert self.registry.lookup("bar", "baz") is None diff --git a/.venv/lib/python3.12/site-packages/bs4/tests/test_css.py b/.venv/lib/python3.12/site-packages/bs4/tests/test_css.py deleted file mode 100644 index b1c4237..0000000 --- a/.venv/lib/python3.12/site-packages/bs4/tests/test_css.py +++ /dev/null @@ -1,536 +0,0 @@ -import pytest -import types - -from bs4 import ( - BeautifulSoup, - ResultSet, -) - -from typing import ( - Any, - List, - Tuple, - Type, -) - -from packaging.version import Version - -from . import ( - SoupTest, - SOUP_SIEVE_PRESENT, -) - -SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS: Type[Exception] -if SOUP_SIEVE_PRESENT: - from soupsieve import __version__, SelectorSyntaxError - - # Some behavior changes in soupsieve 2.6 that affects one of our - # tests. For the test to run under all versions of Python - # supported by Beautiful Soup (which includes versions of Python - # not supported by soupsieve 2.6) we need to check both behaviors. - SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS = SelectorSyntaxError - if Version(__version__) < Version("2.6"): - SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS = NotImplementedError - - -@pytest.mark.skipif(not SOUP_SIEVE_PRESENT, reason="Soup Sieve not installed") -class TestCSSSelectors(SoupTest): - """Test basic CSS selector functionality. - - This functionality is implemented in soupsieve, which has a much - more comprehensive test suite, so this is basically an extra check - that soupsieve works as expected. - """ - - HTML = """ - - - -The title - - - -Hello there. -
-
-

An H1

-

Some text

-

Some more text

-

An H2

-

Another

-Bob -

Another H2

-me - -span1a1 -span1a2 test - -span2a1 - - - -
- -
- - - - - - - - -

English

-

English UK

-

English US

-

French

-
- - -""" - - def setup_method(self): - self._soup = BeautifulSoup(self.HTML, "html.parser") - - def assert_css_selects( - self, selector: str, expected_ids: List[str], **kwargs: Any - ) -> None: - results = self._soup.select(selector, **kwargs) - assert isinstance(results, ResultSet) - el_ids = [el["id"] for el in results] - el_ids.sort() - expected_ids.sort() - assert expected_ids == el_ids, "Selector %s, expected [%s], got [%s]" % ( - selector, - ", ".join(expected_ids), - ", ".join(el_ids), - ) - - assertSelect = assert_css_selects - - def assert_css_select_multiple(self, *tests: Tuple[str, List[str]]): - for selector, expected_ids in tests: - self.assert_css_selects(selector, expected_ids) - - def test_precompiled(self): - sel = self._soup.css.compile("div") - - els = self._soup.select(sel) - assert len(els) == 4 - for div in els: - assert div.name == "div" - - el = self._soup.select_one(sel) - assert "main" == el["id"] - - def test_one_tag_one(self): - els = self._soup.select("title") - assert len(els) == 1 - assert els[0].name == "title" - assert els[0].contents == ["The title"] - - def test_one_tag_many(self): - els = self._soup.select("div") - assert len(els) == 4 - for div in els: - assert div.name == "div" - - el = self._soup.select_one("div") - assert "main" == el["id"] - - def test_select_one_returns_none_if_no_match(self): - match = self._soup.select_one("nonexistenttag") - assert None is match - - def test_tag_in_tag_one(self): - self.assert_css_selects("div div", ["inner", "data1"]) - - def test_tag_in_tag_many(self): - for selector in ("html div", "html body div", "body div"): - self.assert_css_selects(selector, ["data1", "main", "inner", "footer"]) - - def test_limit(self): - self.assert_css_selects("html div", ["main"], limit=1) - self.assert_css_selects("html body div", ["inner", "main"], limit=2) - self.assert_css_selects( - "body div", ["data1", "main", "inner", "footer"], limit=10 - ) - - def test_tag_no_match(self): - assert len(self._soup.select("del")) == 0 - - def test_invalid_tag(self): - with pytest.raises(SelectorSyntaxError): - self._soup.select("tag%t") - - def test_select_dashed_tag_ids(self): - self.assert_css_selects("custom-dashed-tag", ["dash1", "dash2"]) - - def test_select_dashed_by_id(self): - dashed = self._soup.select('custom-dashed-tag[id="dash2"]') - assert dashed[0].name == "custom-dashed-tag" - assert dashed[0]["id"] == "dash2" - - def test_dashed_tag_text(self): - assert self._soup.select("body > custom-dashed-tag")[0].text == "Hello there." - - def test_select_dashed_matches_find_all(self): - assert self._soup.select("custom-dashed-tag") == self._soup.find_all( - "custom-dashed-tag" - ) - - def test_header_tags(self): - self.assert_css_select_multiple( - ("h1", ["header1"]), - ("h2", ["header2", "header3"]), - ) - - def test_class_one(self): - for selector in (".onep", "p.onep", "html p.onep"): - els = self._soup.select(selector) - assert len(els) == 1 - assert els[0].name == "p" - assert els[0]["class"] == ["onep"] - - def test_class_mismatched_tag(self): - els = self._soup.select("div.onep") - assert len(els) == 0 - - def test_one_id(self): - for selector in ("div#inner", "#inner", "div div#inner"): - self.assert_css_selects(selector, ["inner"]) - - def test_bad_id(self): - els = self._soup.select("#doesnotexist") - assert len(els) == 0 - - def test_items_in_id(self): - els = self._soup.select("div#inner p") - assert len(els) == 3 - for el in els: - assert el.name == "p" - assert els[1]["class"] == ["onep"] - assert not els[0].has_attr("class") - - def test_a_bunch_of_emptys(self): - for selector in ("div#main del", "div#main div.oops", "div div#main"): - assert len(self._soup.select(selector)) == 0 - - def test_multi_class_support(self): - for selector in ( - ".class1", - "p.class1", - ".class2", - "p.class2", - ".class3", - "p.class3", - "html p.class2", - "div#inner .class2", - ): - self.assert_css_selects(selector, ["pmulti"]) - - def test_multi_class_selection(self): - for selector in (".class1.class3", ".class3.class2", ".class1.class2.class3"): - self.assert_css_selects(selector, ["pmulti"]) - - def test_child_selector(self): - self.assert_css_selects(".s1 > a", ["s1a1", "s1a2"]) - self.assert_css_selects(".s1 > a span", ["s1a2s1"]) - - def test_child_selector_id(self): - self.assert_css_selects(".s1 > a#s1a2 span", ["s1a2s1"]) - - def test_attribute_equals(self): - self.assert_css_select_multiple( - ('p[class="onep"]', ["p1"]), - ('p[id="p1"]', ["p1"]), - ('[class="onep"]', ["p1"]), - ('[id="p1"]', ["p1"]), - ('link[rel="stylesheet"]', ["l1"]), - ('link[type="text/css"]', ["l1"]), - ('link[href="blah.css"]', ["l1"]), - ('link[href="no-blah.css"]', []), - ('[rel="stylesheet"]', ["l1"]), - ('[type="text/css"]', ["l1"]), - ('[href="blah.css"]', ["l1"]), - ('[href="no-blah.css"]', []), - ('p[href="no-blah.css"]', []), - ('[href="no-blah.css"]', []), - ) - - def test_attribute_tilde(self): - self.assert_css_select_multiple( - ('p[class~="class1"]', ["pmulti"]), - ('p[class~="class2"]', ["pmulti"]), - ('p[class~="class3"]', ["pmulti"]), - ('[class~="class1"]', ["pmulti"]), - ('[class~="class2"]', ["pmulti"]), - ('[class~="class3"]', ["pmulti"]), - ('a[rel~="friend"]', ["bob"]), - ('a[rel~="met"]', ["bob"]), - ('[rel~="friend"]', ["bob"]), - ('[rel~="met"]', ["bob"]), - ) - - def test_attribute_startswith(self): - self.assert_css_select_multiple( - ('[rel^="style"]', ["l1"]), - ('link[rel^="style"]', ["l1"]), - ('notlink[rel^="notstyle"]', []), - ('[rel^="notstyle"]', []), - ('link[rel^="notstyle"]', []), - ('link[href^="bla"]', ["l1"]), - ('a[href^="http://"]', ["bob", "me"]), - ('[href^="http://"]', ["bob", "me"]), - ('[id^="p"]', ["pmulti", "p1"]), - ('[id^="m"]', ["me", "main"]), - ('div[id^="m"]', ["main"]), - ('a[id^="m"]', ["me"]), - ('div[data-tag^="dashed"]', ["data1"]), - ) - - def test_attribute_endswith(self): - self.assert_css_select_multiple( - ('[href$=".css"]', ["l1"]), - ('link[href$=".css"]', ["l1"]), - ('link[id$="1"]', ["l1"]), - ( - '[id$="1"]', - ["data1", "l1", "p1", "header1", "s1a1", "s2a1", "s1a2s1", "dash1"], - ), - ('div[id$="1"]', ["data1"]), - ('[id$="noending"]', []), - ) - - def test_attribute_contains(self): - self.assert_css_select_multiple( - # From test_attribute_startswith - ('[rel*="style"]', ["l1"]), - ('link[rel*="style"]', ["l1"]), - ('notlink[rel*="notstyle"]', []), - ('[rel*="notstyle"]', []), - ('link[rel*="notstyle"]', []), - ('link[href*="bla"]', ["l1"]), - ('[href*="http://"]', ["bob", "me"]), - ('[id*="p"]', ["pmulti", "p1"]), - ('div[id*="m"]', ["main"]), - ('a[id*="m"]', ["me"]), - # From test_attribute_endswith - ('[href*=".css"]', ["l1"]), - ('link[href*=".css"]', ["l1"]), - ('link[id*="1"]', ["l1"]), - ( - '[id*="1"]', - [ - "data1", - "l1", - "p1", - "header1", - "s1a1", - "s1a2", - "s2a1", - "s1a2s1", - "dash1", - ], - ), - ('div[id*="1"]', ["data1"]), - ('[id*="noending"]', []), - # New for this test - ('[href*="."]', ["bob", "me", "l1"]), - ('a[href*="."]', ["bob", "me"]), - ('link[href*="."]', ["l1"]), - ('div[id*="n"]', ["main", "inner"]), - ('div[id*="nn"]', ["inner"]), - ('div[data-tag*="edval"]', ["data1"]), - ) - - def test_attribute_exact_or_hypen(self): - self.assert_css_select_multiple( - ('p[lang|="en"]', ["lang-en", "lang-en-gb", "lang-en-us"]), - ('[lang|="en"]', ["lang-en", "lang-en-gb", "lang-en-us"]), - ('p[lang|="fr"]', ["lang-fr"]), - ('p[lang|="gb"]', []), - ) - - def test_attribute_exists(self): - self.assert_css_select_multiple( - ("[rel]", ["l1", "bob", "me"]), - ("link[rel]", ["l1"]), - ("a[rel]", ["bob", "me"]), - ("[lang]", ["lang-en", "lang-en-gb", "lang-en-us", "lang-fr"]), - ("p[class]", ["p1", "pmulti"]), - ("[blah]", []), - ("p[blah]", []), - ("div[data-tag]", ["data1"]), - ) - - def test_quoted_space_in_selector_name(self): - html = """
nope
-
yes
- """ - soup = BeautifulSoup(html, "html.parser") - [chosen] = soup.select('div[style="display: right"]') - assert "yes" == chosen.string - - def test_unsupported_pseudoclass(self): - with pytest.raises(SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS): - self._soup.select("a:no-such-pseudoclass") - - with pytest.raises(SelectorSyntaxError): - self._soup.select("a:nth-of-type(a)") - - def test_nth_of_type(self): - # Try to select first paragraph - els = self._soup.select("div#inner p:nth-of-type(1)") - assert len(els) == 1 - assert els[0].string == "Some text" - - # Try to select third paragraph - els = self._soup.select("div#inner p:nth-of-type(3)") - assert len(els) == 1 - assert els[0].string == "Another" - - # Try to select (non-existent!) fourth paragraph - els = self._soup.select("div#inner p:nth-of-type(4)") - assert len(els) == 0 - - # Zero will select no tags. - els = self._soup.select("div p:nth-of-type(0)") - assert len(els) == 0 - - def test_nth_of_type_direct_descendant(self): - els = self._soup.select("div#inner > p:nth-of-type(1)") - assert len(els) == 1 - assert els[0].string == "Some text" - - def test_id_child_selector_nth_of_type(self): - self.assert_css_selects("#inner > p:nth-of-type(2)", ["p1"]) - - def test_select_on_element(self): - # Other tests operate on the tree; this operates on an element - # within the tree. - inner = self._soup.find("div", id="main") - selected = inner.select("div") - # The
tag was selected. The