#
tokens: 49621/50000 16/808 files (page 8/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 8 of 168. Use http://codebase.md/romanshablio/mcp_server?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .DS_Store
├── .venv
│   ├── __pycache__
│   │   └── hello.cpython-312.pyc
│   ├── bin
│   │   ├── activate
│   │   ├── activate.csh
│   │   ├── activate.fish
│   │   ├── Activate.ps1
│   │   ├── flask
│   │   ├── normalizer
│   │   ├── pip
│   │   ├── pip3
│   │   ├── pip3.12
│   │   ├── python
│   │   ├── python3
│   │   └── python3.12
│   ├── hello.py
│   ├── lib
│   │   └── python3.12
│   │       └── site-packages
│   │           ├── beautifulsoup4-4.12.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   ├── AUTHORS
│   │           │   │   └── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   └── WHEEL
│   │           ├── blinker
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _utilities.cpython-312.pyc
│   │           │   │   └── base.cpython-312.pyc
│   │           │   ├── _utilities.py
│   │           │   ├── base.py
│   │           │   └── py.typed
│   │           ├── blinker-1.8.2.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── bs4
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── css.cpython-312.pyc
│   │           │   │   ├── dammit.cpython-312.pyc
│   │           │   │   ├── diagnose.cpython-312.pyc
│   │           │   │   ├── element.cpython-312.pyc
│   │           │   │   └── formatter.cpython-312.pyc
│   │           │   ├── builder
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── _html5lib.cpython-312.pyc
│   │           │   │   │   ├── _htmlparser.cpython-312.pyc
│   │           │   │   │   └── _lxml.cpython-312.pyc
│   │           │   │   ├── _html5lib.py
│   │           │   │   ├── _htmlparser.py
│   │           │   │   └── _lxml.py
│   │           │   ├── css.py
│   │           │   ├── dammit.py
│   │           │   ├── diagnose.py
│   │           │   ├── element.py
│   │           │   ├── formatter.py
│   │           │   └── tests
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   ├── __init__.cpython-312.pyc
│   │           │       │   ├── test_builder_registry.cpython-312.pyc
│   │           │       │   ├── test_builder.cpython-312.pyc
│   │           │       │   ├── test_css.cpython-312.pyc
│   │           │       │   ├── test_dammit.cpython-312.pyc
│   │           │       │   ├── test_docs.cpython-312.pyc
│   │           │       │   ├── test_element.cpython-312.pyc
│   │           │       │   ├── test_formatter.cpython-312.pyc
│   │           │       │   ├── test_fuzz.cpython-312.pyc
│   │           │       │   ├── test_html5lib.cpython-312.pyc
│   │           │       │   ├── test_htmlparser.cpython-312.pyc
│   │           │       │   ├── test_lxml.cpython-312.pyc
│   │           │       │   ├── test_navigablestring.cpython-312.pyc
│   │           │       │   ├── test_pageelement.cpython-312.pyc
│   │           │       │   ├── test_soup.cpython-312.pyc
│   │           │       │   ├── test_tag.cpython-312.pyc
│   │           │       │   └── test_tree.cpython-312.pyc
│   │           │       ├── fuzz
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase
│   │           │       │   ├── crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase
│   │           │       │   └── crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase
│   │           │       ├── test_builder_registry.py
│   │           │       ├── test_builder.py
│   │           │       ├── test_css.py
│   │           │       ├── test_dammit.py
│   │           │       ├── test_docs.py
│   │           │       ├── test_element.py
│   │           │       ├── test_formatter.py
│   │           │       ├── test_fuzz.py
│   │           │       ├── test_html5lib.py
│   │           │       ├── test_htmlparser.py
│   │           │       ├── test_lxml.py
│   │           │       ├── test_navigablestring.py
│   │           │       ├── test_pageelement.py
│   │           │       ├── test_soup.py
│   │           │       ├── test_tag.py
│   │           │       └── test_tree.py
│   │           ├── certifi
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   └── core.cpython-312.pyc
│   │           │   ├── cacert.pem
│   │           │   ├── core.py
│   │           │   └── py.typed
│   │           ├── certifi-2024.8.30.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── charset_normalizer
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   ├── api.cpython-312.pyc
│   │           │   │   ├── cd.cpython-312.pyc
│   │           │   │   ├── constant.cpython-312.pyc
│   │           │   │   ├── legacy.cpython-312.pyc
│   │           │   │   ├── md.cpython-312.pyc
│   │           │   │   ├── models.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── version.cpython-312.pyc
│   │           │   ├── api.py
│   │           │   ├── cd.py
│   │           │   ├── cli
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __main__.py
│   │           │   │   └── __pycache__
│   │           │   │       ├── __init__.cpython-312.pyc
│   │           │   │       └── __main__.cpython-312.pyc
│   │           │   ├── constant.py
│   │           │   ├── legacy.py
│   │           │   ├── md__mypyc.cpython-312-darwin.so
│   │           │   ├── md.cpython-312-darwin.so
│   │           │   ├── md.py
│   │           │   ├── models.py
│   │           │   ├── py.typed
│   │           │   ├── utils.py
│   │           │   └── version.py
│   │           ├── charset_normalizer-3.4.0.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── click
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _compat.cpython-312.pyc
│   │           │   │   ├── _termui_impl.cpython-312.pyc
│   │           │   │   ├── _textwrap.cpython-312.pyc
│   │           │   │   ├── _winconsole.cpython-312.pyc
│   │           │   │   ├── core.cpython-312.pyc
│   │           │   │   ├── decorators.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── formatting.cpython-312.pyc
│   │           │   │   ├── globals.cpython-312.pyc
│   │           │   │   ├── parser.cpython-312.pyc
│   │           │   │   ├── shell_completion.cpython-312.pyc
│   │           │   │   ├── termui.cpython-312.pyc
│   │           │   │   ├── testing.cpython-312.pyc
│   │           │   │   ├── types.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── _compat.py
│   │           │   ├── _termui_impl.py
│   │           │   ├── _textwrap.py
│   │           │   ├── _winconsole.py
│   │           │   ├── core.py
│   │           │   ├── decorators.py
│   │           │   ├── exceptions.py
│   │           │   ├── formatting.py
│   │           │   ├── globals.py
│   │           │   ├── parser.py
│   │           │   ├── py.typed
│   │           │   ├── shell_completion.py
│   │           │   ├── termui.py
│   │           │   ├── testing.py
│   │           │   ├── types.py
│   │           │   └── utils.py
│   │           ├── click-8.1.7.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.rst
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── fake_useragent
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── errors.cpython-312.pyc
│   │           │   │   ├── fake.cpython-312.pyc
│   │           │   │   ├── log.cpython-312.pyc
│   │           │   │   ├── settings.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── data
│   │           │   │   └── browsers.json
│   │           │   ├── errors.py
│   │           │   ├── fake.py
│   │           │   ├── log.py
│   │           │   ├── settings.py
│   │           │   └── utils.py
│   │           ├── fake_useragent-1.5.1.dist-info
│   │           │   ├── AUTHORS
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── flask
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   ├── app.cpython-312.pyc
│   │           │   │   ├── blueprints.cpython-312.pyc
│   │           │   │   ├── cli.cpython-312.pyc
│   │           │   │   ├── config.cpython-312.pyc
│   │           │   │   ├── ctx.cpython-312.pyc
│   │           │   │   ├── debughelpers.cpython-312.pyc
│   │           │   │   ├── globals.cpython-312.pyc
│   │           │   │   ├── helpers.cpython-312.pyc
│   │           │   │   ├── logging.cpython-312.pyc
│   │           │   │   ├── sessions.cpython-312.pyc
│   │           │   │   ├── signals.cpython-312.pyc
│   │           │   │   ├── templating.cpython-312.pyc
│   │           │   │   ├── testing.cpython-312.pyc
│   │           │   │   ├── typing.cpython-312.pyc
│   │           │   │   ├── views.cpython-312.pyc
│   │           │   │   └── wrappers.cpython-312.pyc
│   │           │   ├── app.py
│   │           │   ├── blueprints.py
│   │           │   ├── cli.py
│   │           │   ├── config.py
│   │           │   ├── ctx.py
│   │           │   ├── debughelpers.py
│   │           │   ├── globals.py
│   │           │   ├── helpers.py
│   │           │   ├── json
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── provider.cpython-312.pyc
│   │           │   │   │   └── tag.cpython-312.pyc
│   │           │   │   ├── provider.py
│   │           │   │   └── tag.py
│   │           │   ├── logging.py
│   │           │   ├── py.typed
│   │           │   ├── sansio
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── app.cpython-312.pyc
│   │           │   │   │   ├── blueprints.cpython-312.pyc
│   │           │   │   │   └── scaffold.cpython-312.pyc
│   │           │   │   ├── app.py
│   │           │   │   ├── blueprints.py
│   │           │   │   ├── README.md
│   │           │   │   └── scaffold.py
│   │           │   ├── sessions.py
│   │           │   ├── signals.py
│   │           │   ├── templating.py
│   │           │   ├── testing.py
│   │           │   ├── typing.py
│   │           │   ├── views.py
│   │           │   └── wrappers.py
│   │           ├── flask-3.0.3.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   └── WHEEL
│   │           ├── idna
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── codec.cpython-312.pyc
│   │           │   │   ├── compat.cpython-312.pyc
│   │           │   │   ├── core.cpython-312.pyc
│   │           │   │   ├── idnadata.cpython-312.pyc
│   │           │   │   ├── intranges.cpython-312.pyc
│   │           │   │   ├── package_data.cpython-312.pyc
│   │           │   │   └── uts46data.cpython-312.pyc
│   │           │   ├── codec.py
│   │           │   ├── compat.py
│   │           │   ├── core.py
│   │           │   ├── idnadata.py
│   │           │   ├── intranges.py
│   │           │   ├── package_data.py
│   │           │   ├── py.typed
│   │           │   └── uts46data.py
│   │           ├── idna-3.10.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.md
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── itsdangerous
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _json.cpython-312.pyc
│   │           │   │   ├── encoding.cpython-312.pyc
│   │           │   │   ├── exc.cpython-312.pyc
│   │           │   │   ├── serializer.cpython-312.pyc
│   │           │   │   ├── signer.cpython-312.pyc
│   │           │   │   ├── timed.cpython-312.pyc
│   │           │   │   └── url_safe.cpython-312.pyc
│   │           │   ├── _json.py
│   │           │   ├── encoding.py
│   │           │   ├── exc.py
│   │           │   ├── py.typed
│   │           │   ├── serializer.py
│   │           │   ├── signer.py
│   │           │   ├── timed.py
│   │           │   └── url_safe.py
│   │           ├── itsdangerous-2.2.0.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── jinja2
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _identifier.cpython-312.pyc
│   │           │   │   ├── async_utils.cpython-312.pyc
│   │           │   │   ├── bccache.cpython-312.pyc
│   │           │   │   ├── compiler.cpython-312.pyc
│   │           │   │   ├── constants.cpython-312.pyc
│   │           │   │   ├── debug.cpython-312.pyc
│   │           │   │   ├── defaults.cpython-312.pyc
│   │           │   │   ├── environment.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── ext.cpython-312.pyc
│   │           │   │   ├── filters.cpython-312.pyc
│   │           │   │   ├── idtracking.cpython-312.pyc
│   │           │   │   ├── lexer.cpython-312.pyc
│   │           │   │   ├── loaders.cpython-312.pyc
│   │           │   │   ├── meta.cpython-312.pyc
│   │           │   │   ├── nativetypes.cpython-312.pyc
│   │           │   │   ├── nodes.cpython-312.pyc
│   │           │   │   ├── optimizer.cpython-312.pyc
│   │           │   │   ├── parser.cpython-312.pyc
│   │           │   │   ├── runtime.cpython-312.pyc
│   │           │   │   ├── sandbox.cpython-312.pyc
│   │           │   │   ├── tests.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── visitor.cpython-312.pyc
│   │           │   ├── _identifier.py
│   │           │   ├── async_utils.py
│   │           │   ├── bccache.py
│   │           │   ├── compiler.py
│   │           │   ├── constants.py
│   │           │   ├── debug.py
│   │           │   ├── defaults.py
│   │           │   ├── environment.py
│   │           │   ├── exceptions.py
│   │           │   ├── ext.py
│   │           │   ├── filters.py
│   │           │   ├── idtracking.py
│   │           │   ├── lexer.py
│   │           │   ├── loaders.py
│   │           │   ├── meta.py
│   │           │   ├── nativetypes.py
│   │           │   ├── nodes.py
│   │           │   ├── optimizer.py
│   │           │   ├── parser.py
│   │           │   ├── py.typed
│   │           │   ├── runtime.py
│   │           │   ├── sandbox.py
│   │           │   ├── tests.py
│   │           │   ├── utils.py
│   │           │   └── visitor.py
│   │           ├── jinja2-3.1.4.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── lxml
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _elementpath.cpython-312.pyc
│   │           │   │   ├── builder.cpython-312.pyc
│   │           │   │   ├── cssselect.cpython-312.pyc
│   │           │   │   ├── doctestcompare.cpython-312.pyc
│   │           │   │   ├── ElementInclude.cpython-312.pyc
│   │           │   │   ├── pyclasslookup.cpython-312.pyc
│   │           │   │   ├── sax.cpython-312.pyc
│   │           │   │   └── usedoctest.cpython-312.pyc
│   │           │   ├── _elementpath.cpython-312-darwin.so
│   │           │   ├── _elementpath.py
│   │           │   ├── apihelpers.pxi
│   │           │   ├── builder.cpython-312-darwin.so
│   │           │   ├── builder.py
│   │           │   ├── classlookup.pxi
│   │           │   ├── cleanup.pxi
│   │           │   ├── cssselect.py
│   │           │   ├── debug.pxi
│   │           │   ├── docloader.pxi
│   │           │   ├── doctestcompare.py
│   │           │   ├── dtd.pxi
│   │           │   ├── ElementInclude.py
│   │           │   ├── etree_api.h
│   │           │   ├── etree.cpython-312-darwin.so
│   │           │   ├── etree.h
│   │           │   ├── etree.pyx
│   │           │   ├── extensions.pxi
│   │           │   ├── html
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── _diffcommand.cpython-312.pyc
│   │           │   │   │   ├── _html5builder.cpython-312.pyc
│   │           │   │   │   ├── _setmixin.cpython-312.pyc
│   │           │   │   │   ├── builder.cpython-312.pyc
│   │           │   │   │   ├── clean.cpython-312.pyc
│   │           │   │   │   ├── defs.cpython-312.pyc
│   │           │   │   │   ├── diff.cpython-312.pyc
│   │           │   │   │   ├── ElementSoup.cpython-312.pyc
│   │           │   │   │   ├── formfill.cpython-312.pyc
│   │           │   │   │   ├── html5parser.cpython-312.pyc
│   │           │   │   │   ├── soupparser.cpython-312.pyc
│   │           │   │   │   └── usedoctest.cpython-312.pyc
│   │           │   │   ├── _diffcommand.py
│   │           │   │   ├── _html5builder.py
│   │           │   │   ├── _setmixin.py
│   │           │   │   ├── builder.py
│   │           │   │   ├── clean.py
│   │           │   │   ├── defs.py
│   │           │   │   ├── diff.cpython-312-darwin.so
│   │           │   │   ├── diff.py
│   │           │   │   ├── ElementSoup.py
│   │           │   │   ├── formfill.py
│   │           │   │   ├── html5parser.py
│   │           │   │   ├── soupparser.py
│   │           │   │   └── usedoctest.py
│   │           │   ├── includes
│   │           │   │   ├── __init__.pxd
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   ├── c14n.pxd
│   │           │   │   ├── config.pxd
│   │           │   │   ├── dtdvalid.pxd
│   │           │   │   ├── etree_defs.h
│   │           │   │   ├── etreepublic.pxd
│   │           │   │   ├── extlibs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── libcharset.h
│   │           │   │   │   ├── localcharset.h
│   │           │   │   │   ├── zconf.h
│   │           │   │   │   └── zlib.h
│   │           │   │   ├── htmlparser.pxd
│   │           │   │   ├── libexslt
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── exslt.h
│   │           │   │   │   ├── exsltconfig.h
│   │           │   │   │   └── exsltexports.h
│   │           │   │   ├── libxml
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── c14n.h
│   │           │   │   │   ├── catalog.h
│   │           │   │   │   ├── chvalid.h
│   │           │   │   │   ├── debugXML.h
│   │           │   │   │   ├── dict.h
│   │           │   │   │   ├── encoding.h
│   │           │   │   │   ├── entities.h
│   │           │   │   │   ├── globals.h
│   │           │   │   │   ├── hash.h
│   │           │   │   │   ├── HTMLparser.h
│   │           │   │   │   ├── HTMLtree.h
│   │           │   │   │   ├── list.h
│   │           │   │   │   ├── nanoftp.h
│   │           │   │   │   ├── nanohttp.h
│   │           │   │   │   ├── parser.h
│   │           │   │   │   ├── parserInternals.h
│   │           │   │   │   ├── relaxng.h
│   │           │   │   │   ├── SAX.h
│   │           │   │   │   ├── SAX2.h
│   │           │   │   │   ├── schemasInternals.h
│   │           │   │   │   ├── schematron.h
│   │           │   │   │   ├── threads.h
│   │           │   │   │   ├── tree.h
│   │           │   │   │   ├── uri.h
│   │           │   │   │   ├── valid.h
│   │           │   │   │   ├── xinclude.h
│   │           │   │   │   ├── xlink.h
│   │           │   │   │   ├── xmlautomata.h
│   │           │   │   │   ├── xmlerror.h
│   │           │   │   │   ├── xmlexports.h
│   │           │   │   │   ├── xmlIO.h
│   │           │   │   │   ├── xmlmemory.h
│   │           │   │   │   ├── xmlmodule.h
│   │           │   │   │   ├── xmlreader.h
│   │           │   │   │   ├── xmlregexp.h
│   │           │   │   │   ├── xmlsave.h
│   │           │   │   │   ├── xmlschemas.h
│   │           │   │   │   ├── xmlschemastypes.h
│   │           │   │   │   ├── xmlstring.h
│   │           │   │   │   ├── xmlunicode.h
│   │           │   │   │   ├── xmlversion.h
│   │           │   │   │   ├── xmlwriter.h
│   │           │   │   │   ├── xpath.h
│   │           │   │   │   ├── xpathInternals.h
│   │           │   │   │   └── xpointer.h
│   │           │   │   ├── libxslt
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── attributes.h
│   │           │   │   │   ├── documents.h
│   │           │   │   │   ├── extensions.h
│   │           │   │   │   ├── extra.h
│   │           │   │   │   ├── functions.h
│   │           │   │   │   ├── imports.h
│   │           │   │   │   ├── keys.h
│   │           │   │   │   ├── namespaces.h
│   │           │   │   │   ├── numbersInternals.h
│   │           │   │   │   ├── pattern.h
│   │           │   │   │   ├── preproc.h
│   │           │   │   │   ├── security.h
│   │           │   │   │   ├── templates.h
│   │           │   │   │   ├── transform.h
│   │           │   │   │   ├── variables.h
│   │           │   │   │   ├── xslt.h
│   │           │   │   │   ├── xsltconfig.h
│   │           │   │   │   ├── xsltexports.h
│   │           │   │   │   ├── xsltInternals.h
│   │           │   │   │   ├── xsltlocale.h
│   │           │   │   │   └── xsltutils.h
│   │           │   │   ├── lxml-version.h
│   │           │   │   ├── relaxng.pxd
│   │           │   │   ├── schematron.pxd
│   │           │   │   ├── tree.pxd
│   │           │   │   ├── uri.pxd
│   │           │   │   ├── xinclude.pxd
│   │           │   │   ├── xmlerror.pxd
│   │           │   │   ├── xmlparser.pxd
│   │           │   │   ├── xmlschema.pxd
│   │           │   │   ├── xpath.pxd
│   │           │   │   └── xslt.pxd
│   │           │   ├── isoschematron
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   └── resources
│   │           │   │       ├── rng
│   │           │   │       │   └── iso-schematron.rng
│   │           │   │       └── xsl
│   │           │   │           ├── iso-schematron-xslt1
│   │           │   │           │   ├── iso_abstract_expand.xsl
│   │           │   │           │   ├── iso_dsdl_include.xsl
│   │           │   │           │   ├── iso_schematron_message.xsl
│   │           │   │           │   ├── iso_schematron_skeleton_for_xslt1.xsl
│   │           │   │           │   ├── iso_svrl_for_xslt1.xsl
│   │           │   │           │   └── readme.txt
│   │           │   │           ├── RNG2Schtrn.xsl
│   │           │   │           └── XSD2Schtrn.xsl
│   │           │   ├── iterparse.pxi
│   │           │   ├── lxml.etree_api.h
│   │           │   ├── lxml.etree.h
│   │           │   ├── nsclasses.pxi
│   │           │   ├── objectify.cpython-312-darwin.so
│   │           │   ├── objectify.pyx
│   │           │   ├── objectpath.pxi
│   │           │   ├── parser.pxi
│   │           │   ├── parsertarget.pxi
│   │           │   ├── proxy.pxi
│   │           │   ├── public-api.pxi
│   │           │   ├── pyclasslookup.py
│   │           │   ├── readonlytree.pxi
│   │           │   ├── relaxng.pxi
│   │           │   ├── sax.cpython-312-darwin.so
│   │           │   ├── sax.py
│   │           │   ├── saxparser.pxi
│   │           │   ├── schematron.pxi
│   │           │   ├── serializer.pxi
│   │           │   ├── usedoctest.py
│   │           │   ├── xinclude.pxi
│   │           │   ├── xmlerror.pxi
│   │           │   ├── xmlid.pxi
│   │           │   ├── xmlschema.pxi
│   │           │   ├── xpath.pxi
│   │           │   ├── xslt.pxi
│   │           │   └── xsltext.pxi
│   │           ├── lxml-5.3.0.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── LICENSES.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── markupsafe
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   └── _native.cpython-312.pyc
│   │           │   ├── _native.py
│   │           │   ├── _speedups.c
│   │           │   ├── _speedups.cpython-312-darwin.so
│   │           │   ├── _speedups.pyi
│   │           │   └── py.typed
│   │           ├── MarkupSafe-3.0.1.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── pip
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pip-runner__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   └── __pip-runner__.cpython-312.pyc
│   │           │   ├── _internal
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── build_env.cpython-312.pyc
│   │           │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   ├── configuration.cpython-312.pyc
│   │           │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   ├── main.cpython-312.pyc
│   │           │   │   │   ├── pyproject.cpython-312.pyc
│   │           │   │   │   ├── self_outdated_check.cpython-312.pyc
│   │           │   │   │   └── wheel_builder.cpython-312.pyc
│   │           │   │   ├── build_env.py
│   │           │   │   ├── cache.py
│   │           │   │   ├── cli
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── autocompletion.cpython-312.pyc
│   │           │   │   │   │   ├── base_command.cpython-312.pyc
│   │           │   │   │   │   ├── cmdoptions.cpython-312.pyc
│   │           │   │   │   │   ├── command_context.cpython-312.pyc
│   │           │   │   │   │   ├── index_command.cpython-312.pyc
│   │           │   │   │   │   ├── main_parser.cpython-312.pyc
│   │           │   │   │   │   ├── main.cpython-312.pyc
│   │           │   │   │   │   ├── parser.cpython-312.pyc
│   │           │   │   │   │   ├── progress_bars.cpython-312.pyc
│   │           │   │   │   │   ├── req_command.cpython-312.pyc
│   │           │   │   │   │   ├── spinners.cpython-312.pyc
│   │           │   │   │   │   └── status_codes.cpython-312.pyc
│   │           │   │   │   ├── autocompletion.py
│   │           │   │   │   ├── base_command.py
│   │           │   │   │   ├── cmdoptions.py
│   │           │   │   │   ├── command_context.py
│   │           │   │   │   ├── index_command.py
│   │           │   │   │   ├── main_parser.py
│   │           │   │   │   ├── main.py
│   │           │   │   │   ├── parser.py
│   │           │   │   │   ├── progress_bars.py
│   │           │   │   │   ├── req_command.py
│   │           │   │   │   ├── spinners.py
│   │           │   │   │   └── status_codes.py
│   │           │   │   ├── commands
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── check.cpython-312.pyc
│   │           │   │   │   │   ├── completion.cpython-312.pyc
│   │           │   │   │   │   ├── configuration.cpython-312.pyc
│   │           │   │   │   │   ├── debug.cpython-312.pyc
│   │           │   │   │   │   ├── download.cpython-312.pyc
│   │           │   │   │   │   ├── freeze.cpython-312.pyc
│   │           │   │   │   │   ├── hash.cpython-312.pyc
│   │           │   │   │   │   ├── help.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── inspect.cpython-312.pyc
│   │           │   │   │   │   ├── install.cpython-312.pyc
│   │           │   │   │   │   ├── list.cpython-312.pyc
│   │           │   │   │   │   ├── search.cpython-312.pyc
│   │           │   │   │   │   ├── show.cpython-312.pyc
│   │           │   │   │   │   ├── uninstall.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── check.py
│   │           │   │   │   ├── completion.py
│   │           │   │   │   ├── configuration.py
│   │           │   │   │   ├── debug.py
│   │           │   │   │   ├── download.py
│   │           │   │   │   ├── freeze.py
│   │           │   │   │   ├── hash.py
│   │           │   │   │   ├── help.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── inspect.py
│   │           │   │   │   ├── install.py
│   │           │   │   │   ├── list.py
│   │           │   │   │   ├── search.py
│   │           │   │   │   ├── show.py
│   │           │   │   │   ├── uninstall.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── configuration.py
│   │           │   │   ├── distributions
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── base.cpython-312.pyc
│   │           │   │   │   │   ├── installed.cpython-312.pyc
│   │           │   │   │   │   ├── sdist.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── installed.py
│   │           │   │   │   ├── sdist.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── exceptions.py
│   │           │   │   ├── index
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── collector.cpython-312.pyc
│   │           │   │   │   │   ├── package_finder.cpython-312.pyc
│   │           │   │   │   │   └── sources.cpython-312.pyc
│   │           │   │   │   ├── collector.py
│   │           │   │   │   ├── package_finder.py
│   │           │   │   │   └── sources.py
│   │           │   │   ├── locations
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _distutils.cpython-312.pyc
│   │           │   │   │   │   ├── _sysconfig.cpython-312.pyc
│   │           │   │   │   │   └── base.cpython-312.pyc
│   │           │   │   │   ├── _distutils.py
│   │           │   │   │   ├── _sysconfig.py
│   │           │   │   │   └── base.py
│   │           │   │   ├── main.py
│   │           │   │   ├── metadata
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _json.cpython-312.pyc
│   │           │   │   │   │   ├── base.cpython-312.pyc
│   │           │   │   │   │   └── pkg_resources.cpython-312.pyc
│   │           │   │   │   ├── _json.py
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── importlib
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _compat.cpython-312.pyc
│   │           │   │   │   │   │   ├── _dists.cpython-312.pyc
│   │           │   │   │   │   │   └── _envs.cpython-312.pyc
│   │           │   │   │   │   ├── _compat.py
│   │           │   │   │   │   ├── _dists.py
│   │           │   │   │   │   └── _envs.py
│   │           │   │   │   └── pkg_resources.py
│   │           │   │   ├── models
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── candidate.cpython-312.pyc
│   │           │   │   │   │   ├── direct_url.cpython-312.pyc
│   │           │   │   │   │   ├── format_control.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── installation_report.cpython-312.pyc
│   │           │   │   │   │   ├── link.cpython-312.pyc
│   │           │   │   │   │   ├── scheme.cpython-312.pyc
│   │           │   │   │   │   ├── search_scope.cpython-312.pyc
│   │           │   │   │   │   ├── selection_prefs.cpython-312.pyc
│   │           │   │   │   │   ├── target_python.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── candidate.py
│   │           │   │   │   ├── direct_url.py
│   │           │   │   │   ├── format_control.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── installation_report.py
│   │           │   │   │   ├── link.py
│   │           │   │   │   ├── scheme.py
│   │           │   │   │   ├── search_scope.py
│   │           │   │   │   ├── selection_prefs.py
│   │           │   │   │   ├── target_python.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── network
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── download.cpython-312.pyc
│   │           │   │   │   │   ├── lazy_wheel.cpython-312.pyc
│   │           │   │   │   │   ├── session.cpython-312.pyc
│   │           │   │   │   │   ├── utils.cpython-312.pyc
│   │           │   │   │   │   └── xmlrpc.cpython-312.pyc
│   │           │   │   │   ├── auth.py
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── download.py
│   │           │   │   │   ├── lazy_wheel.py
│   │           │   │   │   ├── session.py
│   │           │   │   │   ├── utils.py
│   │           │   │   │   └── xmlrpc.py
│   │           │   │   ├── operations
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── check.cpython-312.pyc
│   │           │   │   │   │   ├── freeze.cpython-312.pyc
│   │           │   │   │   │   └── prepare.cpython-312.pyc
│   │           │   │   │   ├── build
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── build_tracker.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata_editable.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata_legacy.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   │   ├── wheel_editable.cpython-312.pyc
│   │           │   │   │   │   │   ├── wheel_legacy.cpython-312.pyc
│   │           │   │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   │   ├── build_tracker.py
│   │           │   │   │   │   ├── metadata_editable.py
│   │           │   │   │   │   ├── metadata_legacy.py
│   │           │   │   │   │   ├── metadata.py
│   │           │   │   │   │   ├── wheel_editable.py
│   │           │   │   │   │   ├── wheel_legacy.py
│   │           │   │   │   │   └── wheel.py
│   │           │   │   │   ├── check.py
│   │           │   │   │   ├── freeze.py
│   │           │   │   │   ├── install
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── editable_legacy.cpython-312.pyc
│   │           │   │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   │   ├── editable_legacy.py
│   │           │   │   │   │   └── wheel.py
│   │           │   │   │   └── prepare.py
│   │           │   │   ├── pyproject.py
│   │           │   │   ├── req
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── constructors.cpython-312.pyc
│   │           │   │   │   │   ├── req_file.cpython-312.pyc
│   │           │   │   │   │   ├── req_install.cpython-312.pyc
│   │           │   │   │   │   ├── req_set.cpython-312.pyc
│   │           │   │   │   │   └── req_uninstall.cpython-312.pyc
│   │           │   │   │   ├── constructors.py
│   │           │   │   │   ├── req_file.py
│   │           │   │   │   ├── req_install.py
│   │           │   │   │   ├── req_set.py
│   │           │   │   │   └── req_uninstall.py
│   │           │   │   ├── resolution
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   └── base.cpython-312.pyc
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── legacy
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── resolver.cpython-312.pyc
│   │           │   │   │   │   └── resolver.py
│   │           │   │   │   └── resolvelib
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   ├── base.cpython-312.pyc
│   │           │   │   │       │   ├── candidates.cpython-312.pyc
│   │           │   │   │       │   ├── factory.cpython-312.pyc
│   │           │   │   │       │   ├── found_candidates.cpython-312.pyc
│   │           │   │   │       │   ├── provider.cpython-312.pyc
│   │           │   │   │       │   ├── reporter.cpython-312.pyc
│   │           │   │   │       │   ├── requirements.cpython-312.pyc
│   │           │   │   │       │   └── resolver.cpython-312.pyc
│   │           │   │   │       ├── base.py
│   │           │   │   │       ├── candidates.py
│   │           │   │   │       ├── factory.py
│   │           │   │   │       ├── found_candidates.py
│   │           │   │   │       ├── provider.py
│   │           │   │   │       ├── reporter.py
│   │           │   │   │       ├── requirements.py
│   │           │   │   │       └── resolver.py
│   │           │   │   ├── self_outdated_check.py
│   │           │   │   ├── utils
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _jaraco_text.cpython-312.pyc
│   │           │   │   │   │   ├── _log.cpython-312.pyc
│   │           │   │   │   │   ├── appdirs.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── compatibility_tags.cpython-312.pyc
│   │           │   │   │   │   ├── datetime.cpython-312.pyc
│   │           │   │   │   │   ├── deprecation.cpython-312.pyc
│   │           │   │   │   │   ├── direct_url_helpers.cpython-312.pyc
│   │           │   │   │   │   ├── egg_link.cpython-312.pyc
│   │           │   │   │   │   ├── encoding.cpython-312.pyc
│   │           │   │   │   │   ├── entrypoints.cpython-312.pyc
│   │           │   │   │   │   ├── filesystem.cpython-312.pyc
│   │           │   │   │   │   ├── filetypes.cpython-312.pyc
│   │           │   │   │   │   ├── glibc.cpython-312.pyc
│   │           │   │   │   │   ├── hashes.cpython-312.pyc
│   │           │   │   │   │   ├── logging.cpython-312.pyc
│   │           │   │   │   │   ├── misc.cpython-312.pyc
│   │           │   │   │   │   ├── packaging.cpython-312.pyc
│   │           │   │   │   │   ├── retry.cpython-312.pyc
│   │           │   │   │   │   ├── setuptools_build.cpython-312.pyc
│   │           │   │   │   │   ├── subprocess.cpython-312.pyc
│   │           │   │   │   │   ├── temp_dir.cpython-312.pyc
│   │           │   │   │   │   ├── unpacking.cpython-312.pyc
│   │           │   │   │   │   ├── urls.cpython-312.pyc
│   │           │   │   │   │   ├── virtualenv.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── _jaraco_text.py
│   │           │   │   │   ├── _log.py
│   │           │   │   │   ├── appdirs.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── compatibility_tags.py
│   │           │   │   │   ├── datetime.py
│   │           │   │   │   ├── deprecation.py
│   │           │   │   │   ├── direct_url_helpers.py
│   │           │   │   │   ├── egg_link.py
│   │           │   │   │   ├── encoding.py
│   │           │   │   │   ├── entrypoints.py
│   │           │   │   │   ├── filesystem.py
│   │           │   │   │   ├── filetypes.py
│   │           │   │   │   ├── glibc.py
│   │           │   │   │   ├── hashes.py
│   │           │   │   │   ├── logging.py
│   │           │   │   │   ├── misc.py
│   │           │   │   │   ├── packaging.py
│   │           │   │   │   ├── retry.py
│   │           │   │   │   ├── setuptools_build.py
│   │           │   │   │   ├── subprocess.py
│   │           │   │   │   ├── temp_dir.py
│   │           │   │   │   ├── unpacking.py
│   │           │   │   │   ├── urls.py
│   │           │   │   │   ├── virtualenv.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── vcs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── bazaar.cpython-312.pyc
│   │           │   │   │   │   ├── git.cpython-312.pyc
│   │           │   │   │   │   ├── mercurial.cpython-312.pyc
│   │           │   │   │   │   ├── subversion.cpython-312.pyc
│   │           │   │   │   │   └── versioncontrol.cpython-312.pyc
│   │           │   │   │   ├── bazaar.py
│   │           │   │   │   ├── git.py
│   │           │   │   │   ├── mercurial.py
│   │           │   │   │   ├── subversion.py
│   │           │   │   │   └── versioncontrol.py
│   │           │   │   └── wheel_builder.py
│   │           │   ├── _vendor
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   └── typing_extensions.cpython-312.pyc
│   │           │   │   ├── cachecontrol
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _cmd.cpython-312.pyc
│   │           │   │   │   │   ├── adapter.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── controller.cpython-312.pyc
│   │           │   │   │   │   ├── filewrapper.cpython-312.pyc
│   │           │   │   │   │   ├── heuristics.cpython-312.pyc
│   │           │   │   │   │   ├── serialize.cpython-312.pyc
│   │           │   │   │   │   └── wrapper.cpython-312.pyc
│   │           │   │   │   ├── _cmd.py
│   │           │   │   │   ├── adapter.py
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── caches
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── file_cache.cpython-312.pyc
│   │           │   │   │   │   │   └── redis_cache.cpython-312.pyc
│   │           │   │   │   │   ├── file_cache.py
│   │           │   │   │   │   └── redis_cache.py
│   │           │   │   │   ├── controller.py
│   │           │   │   │   ├── filewrapper.py
│   │           │   │   │   ├── heuristics.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── serialize.py
│   │           │   │   │   └── wrapper.py
│   │           │   │   ├── certifi
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   └── core.cpython-312.pyc
│   │           │   │   │   ├── cacert.pem
│   │           │   │   │   ├── core.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── distlib
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── database.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── locators.cpython-312.pyc
│   │           │   │   │   │   ├── manifest.cpython-312.pyc
│   │           │   │   │   │   ├── markers.cpython-312.pyc
│   │           │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   ├── resources.cpython-312.pyc
│   │           │   │   │   │   ├── scripts.cpython-312.pyc
│   │           │   │   │   │   ├── util.cpython-312.pyc
│   │           │   │   │   │   ├── version.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── database.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── locators.py
│   │           │   │   │   ├── manifest.py
│   │           │   │   │   ├── markers.py
│   │           │   │   │   ├── metadata.py
│   │           │   │   │   ├── resources.py
│   │           │   │   │   ├── scripts.py
│   │           │   │   │   ├── t32.exe
│   │           │   │   │   ├── t64-arm.exe
│   │           │   │   │   ├── t64.exe
│   │           │   │   │   ├── util.py
│   │           │   │   │   ├── version.py
│   │           │   │   │   ├── w32.exe
│   │           │   │   │   ├── w64-arm.exe
│   │           │   │   │   ├── w64.exe
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── distro
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   └── distro.cpython-312.pyc
│   │           │   │   │   ├── distro.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── idna
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── codec.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── core.cpython-312.pyc
│   │           │   │   │   │   ├── idnadata.cpython-312.pyc
│   │           │   │   │   │   ├── intranges.cpython-312.pyc
│   │           │   │   │   │   ├── package_data.cpython-312.pyc
│   │           │   │   │   │   └── uts46data.cpython-312.pyc
│   │           │   │   │   ├── codec.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── core.py
│   │           │   │   │   ├── idnadata.py
│   │           │   │   │   ├── intranges.py
│   │           │   │   │   ├── package_data.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   └── uts46data.py
│   │           │   │   ├── msgpack
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── ext.cpython-312.pyc
│   │           │   │   │   │   └── fallback.cpython-312.pyc
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── ext.py
│   │           │   │   │   └── fallback.py
│   │           │   │   ├── packaging
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _elffile.cpython-312.pyc
│   │           │   │   │   │   ├── _manylinux.cpython-312.pyc
│   │           │   │   │   │   ├── _musllinux.cpython-312.pyc
│   │           │   │   │   │   ├── _parser.cpython-312.pyc
│   │           │   │   │   │   ├── _structures.cpython-312.pyc
│   │           │   │   │   │   ├── _tokenizer.cpython-312.pyc
│   │           │   │   │   │   ├── markers.cpython-312.pyc
│   │           │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   ├── requirements.cpython-312.pyc
│   │           │   │   │   │   ├── specifiers.cpython-312.pyc
│   │           │   │   │   │   ├── tags.cpython-312.pyc
│   │           │   │   │   │   ├── utils.cpython-312.pyc
│   │           │   │   │   │   └── version.cpython-312.pyc
│   │           │   │   │   ├── _elffile.py
│   │           │   │   │   ├── _manylinux.py
│   │           │   │   │   ├── _musllinux.py
│   │           │   │   │   ├── _parser.py
│   │           │   │   │   ├── _structures.py
│   │           │   │   │   ├── _tokenizer.py
│   │           │   │   │   ├── markers.py
│   │           │   │   │   ├── metadata.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── requirements.py
│   │           │   │   │   ├── specifiers.py
│   │           │   │   │   ├── tags.py
│   │           │   │   │   ├── utils.py
│   │           │   │   │   └── version.py
│   │           │   │   ├── pkg_resources
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   └── __pycache__
│   │           │   │   │       └── __init__.cpython-312.pyc
│   │           │   │   ├── platformdirs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── android.cpython-312.pyc
│   │           │   │   │   │   ├── api.cpython-312.pyc
│   │           │   │   │   │   ├── macos.cpython-312.pyc
│   │           │   │   │   │   ├── unix.cpython-312.pyc
│   │           │   │   │   │   ├── version.cpython-312.pyc
│   │           │   │   │   │   └── windows.cpython-312.pyc
│   │           │   │   │   ├── android.py
│   │           │   │   │   ├── api.py
│   │           │   │   │   ├── macos.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── unix.py
│   │           │   │   │   ├── version.py
│   │           │   │   │   └── windows.py
│   │           │   │   ├── pygments
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── cmdline.cpython-312.pyc
│   │           │   │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   │   ├── filter.cpython-312.pyc
│   │           │   │   │   │   ├── formatter.cpython-312.pyc
│   │           │   │   │   │   ├── lexer.cpython-312.pyc
│   │           │   │   │   │   ├── modeline.cpython-312.pyc
│   │           │   │   │   │   ├── plugin.cpython-312.pyc
│   │           │   │   │   │   ├── regexopt.cpython-312.pyc
│   │           │   │   │   │   ├── scanner.cpython-312.pyc
│   │           │   │   │   │   ├── sphinxext.cpython-312.pyc
│   │           │   │   │   │   ├── style.cpython-312.pyc
│   │           │   │   │   │   ├── token.cpython-312.pyc
│   │           │   │   │   │   ├── unistring.cpython-312.pyc
│   │           │   │   │   │   └── util.cpython-312.pyc
│   │           │   │   │   ├── cmdline.py
│   │           │   │   │   ├── console.py
│   │           │   │   │   ├── filter.py
│   │           │   │   │   ├── filters
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   └── __pycache__
│   │           │   │   │   │       └── __init__.cpython-312.pyc
│   │           │   │   │   ├── formatter.py
│   │           │   │   │   ├── formatters
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _mapping.cpython-312.pyc
│   │           │   │   │   │   │   ├── bbcode.cpython-312.pyc
│   │           │   │   │   │   │   ├── groff.cpython-312.pyc
│   │           │   │   │   │   │   ├── html.cpython-312.pyc
│   │           │   │   │   │   │   ├── img.cpython-312.pyc
│   │           │   │   │   │   │   ├── irc.cpython-312.pyc
│   │           │   │   │   │   │   ├── latex.cpython-312.pyc
│   │           │   │   │   │   │   ├── other.cpython-312.pyc
│   │           │   │   │   │   │   ├── pangomarkup.cpython-312.pyc
│   │           │   │   │   │   │   ├── rtf.cpython-312.pyc
│   │           │   │   │   │   │   ├── svg.cpython-312.pyc
│   │           │   │   │   │   │   ├── terminal.cpython-312.pyc
│   │           │   │   │   │   │   └── terminal256.cpython-312.pyc
│   │           │   │   │   │   ├── _mapping.py
│   │           │   │   │   │   ├── bbcode.py
│   │           │   │   │   │   ├── groff.py
│   │           │   │   │   │   ├── html.py
│   │           │   │   │   │   ├── img.py
│   │           │   │   │   │   ├── irc.py
│   │           │   │   │   │   ├── latex.py
│   │           │   │   │   │   ├── other.py
│   │           │   │   │   │   ├── pangomarkup.py
│   │           │   │   │   │   ├── rtf.py
│   │           │   │   │   │   ├── svg.py
│   │           │   │   │   │   ├── terminal.py
│   │           │   │   │   │   └── terminal256.py
│   │           │   │   │   ├── lexer.py
│   │           │   │   │   ├── lexers
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _mapping.cpython-312.pyc
│   │           │   │   │   │   │   └── python.cpython-312.pyc
│   │           │   │   │   │   ├── _mapping.py
│   │           │   │   │   │   └── python.py
│   │           │   │   │   ├── modeline.py
│   │           │   │   │   ├── plugin.py
│   │           │   │   │   ├── regexopt.py
│   │           │   │   │   ├── scanner.py
│   │           │   │   │   ├── sphinxext.py
│   │           │   │   │   ├── style.py
│   │           │   │   │   ├── styles
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── _mapping.cpython-312.pyc
│   │           │   │   │   │   └── _mapping.py
│   │           │   │   │   ├── token.py
│   │           │   │   │   ├── unistring.py
│   │           │   │   │   └── util.py
│   │           │   │   ├── pyproject_hooks
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _compat.cpython-312.pyc
│   │           │   │   │   │   └── _impl.cpython-312.pyc
│   │           │   │   │   ├── _compat.py
│   │           │   │   │   ├── _impl.py
│   │           │   │   │   └── _in_process
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   └── _in_process.cpython-312.pyc
│   │           │   │   │       └── _in_process.py
│   │           │   │   ├── requests
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __version__.cpython-312.pyc
│   │           │   │   │   │   ├── _internal_utils.cpython-312.pyc
│   │           │   │   │   │   ├── adapters.cpython-312.pyc
│   │           │   │   │   │   ├── api.cpython-312.pyc
│   │           │   │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   │   ├── certs.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── cookies.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── help.cpython-312.pyc
│   │           │   │   │   │   ├── hooks.cpython-312.pyc
│   │           │   │   │   │   ├── models.cpython-312.pyc
│   │           │   │   │   │   ├── packages.cpython-312.pyc
│   │           │   │   │   │   ├── sessions.cpython-312.pyc
│   │           │   │   │   │   ├── status_codes.cpython-312.pyc
│   │           │   │   │   │   ├── structures.cpython-312.pyc
│   │           │   │   │   │   └── utils.cpython-312.pyc
│   │           │   │   │   ├── __version__.py
│   │           │   │   │   ├── _internal_utils.py
│   │           │   │   │   ├── adapters.py
│   │           │   │   │   ├── api.py
│   │           │   │   │   ├── auth.py
│   │           │   │   │   ├── certs.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── cookies.py
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── help.py
│   │           │   │   │   ├── hooks.py
│   │           │   │   │   ├── models.py
│   │           │   │   │   ├── packages.py
│   │           │   │   │   ├── sessions.py
│   │           │   │   │   ├── status_codes.py
│   │           │   │   │   ├── structures.py
│   │           │   │   │   └── utils.py
│   │           │   │   ├── resolvelib
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── providers.cpython-312.pyc
│   │           │   │   │   │   ├── reporters.cpython-312.pyc
│   │           │   │   │   │   ├── resolvers.cpython-312.pyc
│   │           │   │   │   │   └── structs.cpython-312.pyc
│   │           │   │   │   ├── compat
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── collections_abc.cpython-312.pyc
│   │           │   │   │   │   └── collections_abc.py
│   │           │   │   │   ├── providers.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── reporters.py
│   │           │   │   │   ├── resolvers.py
│   │           │   │   │   └── structs.py
│   │           │   │   ├── rich
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── _cell_widths.cpython-312.pyc
│   │           │   │   │   │   ├── _emoji_codes.cpython-312.pyc
│   │           │   │   │   │   ├── _emoji_replace.cpython-312.pyc
│   │           │   │   │   │   ├── _export_format.cpython-312.pyc
│   │           │   │   │   │   ├── _extension.cpython-312.pyc
│   │           │   │   │   │   ├── _fileno.cpython-312.pyc
│   │           │   │   │   │   ├── _inspect.cpython-312.pyc
│   │           │   │   │   │   ├── _log_render.cpython-312.pyc
│   │           │   │   │   │   ├── _loop.cpython-312.pyc
│   │           │   │   │   │   ├── _null_file.cpython-312.pyc
│   │           │   │   │   │   ├── _palettes.cpython-312.pyc
│   │           │   │   │   │   ├── _pick.cpython-312.pyc
│   │           │   │   │   │   ├── _ratio.cpython-312.pyc
│   │           │   │   │   │   ├── _spinners.cpython-312.pyc
│   │           │   │   │   │   ├── _stack.cpython-312.pyc
│   │           │   │   │   │   ├── _timer.cpython-312.pyc
│   │           │   │   │   │   ├── _win32_console.cpython-312.pyc
│   │           │   │   │   │   ├── _windows_renderer.cpython-312.pyc
│   │           │   │   │   │   ├── _windows.cpython-312.pyc
│   │           │   │   │   │   ├── _wrap.cpython-312.pyc
│   │           │   │   │   │   ├── abc.cpython-312.pyc
│   │           │   │   │   │   ├── align.cpython-312.pyc
│   │           │   │   │   │   ├── ansi.cpython-312.pyc
│   │           │   │   │   │   ├── bar.cpython-312.pyc
│   │           │   │   │   │   ├── box.cpython-312.pyc
│   │           │   │   │   │   ├── cells.cpython-312.pyc
│   │           │   │   │   │   ├── color_triplet.cpython-312.pyc
│   │           │   │   │   │   ├── color.cpython-312.pyc
│   │           │   │   │   │   ├── columns.cpython-312.pyc
│   │           │   │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   │   ├── constrain.cpython-312.pyc
│   │           │   │   │   │   ├── containers.cpython-312.pyc
│   │           │   │   │   │   ├── control.cpython-312.pyc
│   │           │   │   │   │   ├── default_styles.cpython-312.pyc
│   │           │   │   │   │   ├── diagnose.cpython-312.pyc
│   │           │   │   │   │   ├── emoji.cpython-312.pyc
│   │           │   │   │   │   ├── errors.cpython-312.pyc
│   │           │   │   │   │   ├── file_proxy.cpython-312.pyc
│   │           │   │   │   │   ├── filesize.cpython-312.pyc
│   │           │   │   │   │   ├── highlighter.cpython-312.pyc
│   │           │   │   │   │   ├── json.cpython-312.pyc
│   │           │   │   │   │   ├── jupyter.cpython-312.pyc
│   │           │   │   │   │   ├── layout.cpython-312.pyc
│   │           │   │   │   │   ├── live_render.cpython-312.pyc
│   │           │   │   │   │   ├── live.cpython-312.pyc
│   │           │   │   │   │   ├── logging.cpython-312.pyc
│   │           │   │   │   │   ├── markup.cpython-312.pyc
│   │           │   │   │   │   ├── measure.cpython-312.pyc
│   │           │   │   │   │   ├── padding.cpython-312.pyc
│   │           │   │   │   │   ├── pager.cpython-312.pyc
│   │           │   │   │   │   ├── palette.cpython-312.pyc
│   │           │   │   │   │   ├── panel.cpython-312.pyc
│   │           │   │   │   │   ├── pretty.cpython-312.pyc
│   │           │   │   │   │   ├── progress_bar.cpython-312.pyc
│   │           │   │   │   │   ├── progress.cpython-312.pyc
│   │           │   │   │   │   ├── prompt.cpython-312.pyc
│   │           │   │   │   │   ├── protocol.cpython-312.pyc
│   │           │   │   │   │   ├── region.cpython-312.pyc
│   │           │   │   │   │   ├── repr.cpython-312.pyc
│   │           │   │   │   │   ├── rule.cpython-312.pyc
│   │           │   │   │   │   ├── scope.cpython-312.pyc
│   │           │   │   │   │   ├── screen.cpython-312.pyc
│   │           │   │   │   │   ├── segment.cpython-312.pyc
│   │           │   │   │   │   ├── spinner.cpython-312.pyc
│   │           │   │   │   │   ├── status.cpython-312.pyc
│   │           │   │   │   │   ├── style.cpython-312.pyc
│   │           │   │   │   │   ├── styled.cpython-312.pyc
│   │           │   │   │   │   ├── syntax.cpython-312.pyc
│   │           │   │   │   │   ├── table.cpython-312.pyc
│   │           │   │   │   │   ├── terminal_theme.cpython-312.pyc
│   │           │   │   │   │   ├── text.cpython-312.pyc
│   │           │   │   │   │   ├── theme.cpython-312.pyc
│   │           │   │   │   │   ├── themes.cpython-312.pyc
│   │           │   │   │   │   ├── traceback.cpython-312.pyc
│   │           │   │   │   │   └── tree.cpython-312.pyc
│   │           │   │   │   ├── _cell_widths.py
│   │           │   │   │   ├── _emoji_codes.py
│   │           │   │   │   ├── _emoji_replace.py
│   │           │   │   │   ├── _export_format.py
│   │           │   │   │   ├── _extension.py
│   │           │   │   │   ├── _fileno.py
│   │           │   │   │   ├── _inspect.py
│   │           │   │   │   ├── _log_render.py
│   │           │   │   │   ├── _loop.py
│   │           │   │   │   ├── _null_file.py
│   │           │   │   │   ├── _palettes.py
│   │           │   │   │   ├── _pick.py
│   │           │   │   │   ├── _ratio.py
│   │           │   │   │   ├── _spinners.py
│   │           │   │   │   ├── _stack.py
│   │           │   │   │   ├── _timer.py
│   │           │   │   │   ├── _win32_console.py
│   │           │   │   │   ├── _windows_renderer.py
│   │           │   │   │   ├── _windows.py
│   │           │   │   │   ├── _wrap.py
│   │           │   │   │   ├── abc.py
│   │           │   │   │   ├── align.py
│   │           │   │   │   ├── ansi.py
│   │           │   │   │   ├── bar.py
│   │           │   │   │   ├── box.py
│   │           │   │   │   ├── cells.py
│   │           │   │   │   ├── color_triplet.py
│   │           │   │   │   ├── color.py
│   │           │   │   │   ├── columns.py
│   │           │   │   │   ├── console.py
│   │           │   │   │   ├── constrain.py
│   │           │   │   │   ├── containers.py
│   │           │   │   │   ├── control.py
│   │           │   │   │   ├── default_styles.py
│   │           │   │   │   ├── diagnose.py
│   │           │   │   │   ├── emoji.py
│   │           │   │   │   ├── errors.py
│   │           │   │   │   ├── file_proxy.py
│   │           │   │   │   ├── filesize.py
│   │           │   │   │   ├── highlighter.py
│   │           │   │   │   ├── json.py
│   │           │   │   │   ├── jupyter.py
│   │           │   │   │   ├── layout.py
│   │           │   │   │   ├── live_render.py
│   │           │   │   │   ├── live.py
│   │           │   │   │   ├── logging.py
│   │           │   │   │   ├── markup.py
│   │           │   │   │   ├── measure.py
│   │           │   │   │   ├── padding.py
│   │           │   │   │   ├── pager.py
│   │           │   │   │   ├── palette.py
│   │           │   │   │   ├── panel.py
│   │           │   │   │   ├── pretty.py
│   │           │   │   │   ├── progress_bar.py
│   │           │   │   │   ├── progress.py
│   │           │   │   │   ├── prompt.py
│   │           │   │   │   ├── protocol.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── region.py
│   │           │   │   │   ├── repr.py
│   │           │   │   │   ├── rule.py
│   │           │   │   │   ├── scope.py
│   │           │   │   │   ├── screen.py
│   │           │   │   │   ├── segment.py
│   │           │   │   │   ├── spinner.py
│   │           │   │   │   ├── status.py
│   │           │   │   │   ├── style.py
│   │           │   │   │   ├── styled.py
│   │           │   │   │   ├── syntax.py
│   │           │   │   │   ├── table.py
│   │           │   │   │   ├── terminal_theme.py
│   │           │   │   │   ├── text.py
│   │           │   │   │   ├── theme.py
│   │           │   │   │   ├── themes.py
│   │           │   │   │   ├── traceback.py
│   │           │   │   │   └── tree.py
│   │           │   │   ├── tomli
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _parser.cpython-312.pyc
│   │           │   │   │   │   ├── _re.cpython-312.pyc
│   │           │   │   │   │   └── _types.cpython-312.pyc
│   │           │   │   │   ├── _parser.py
│   │           │   │   │   ├── _re.py
│   │           │   │   │   ├── _types.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── truststore
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _api.cpython-312.pyc
│   │           │   │   │   │   ├── _macos.cpython-312.pyc
│   │           │   │   │   │   ├── _openssl.cpython-312.pyc
│   │           │   │   │   │   ├── _ssl_constants.cpython-312.pyc
│   │           │   │   │   │   └── _windows.cpython-312.pyc
│   │           │   │   │   ├── _api.py
│   │           │   │   │   ├── _macos.py
│   │           │   │   │   ├── _openssl.py
│   │           │   │   │   ├── _ssl_constants.py
│   │           │   │   │   ├── _windows.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── typing_extensions.py
│   │           │   │   ├── urllib3
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _collections.cpython-312.pyc
│   │           │   │   │   │   ├── _version.cpython-312.pyc
│   │           │   │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   │   ├── connectionpool.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── fields.cpython-312.pyc
│   │           │   │   │   │   ├── filepost.cpython-312.pyc
│   │           │   │   │   │   ├── poolmanager.cpython-312.pyc
│   │           │   │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   │   └── response.cpython-312.pyc
│   │           │   │   │   ├── _collections.py
│   │           │   │   │   ├── _version.py
│   │           │   │   │   ├── connection.py
│   │           │   │   │   ├── connectionpool.py
│   │           │   │   │   ├── contrib
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _appengine_environ.cpython-312.pyc
│   │           │   │   │   │   │   ├── appengine.cpython-312.pyc
│   │           │   │   │   │   │   ├── ntlmpool.cpython-312.pyc
│   │           │   │   │   │   │   ├── pyopenssl.cpython-312.pyc
│   │           │   │   │   │   │   ├── securetransport.cpython-312.pyc
│   │           │   │   │   │   │   └── socks.cpython-312.pyc
│   │           │   │   │   │   ├── _appengine_environ.py
│   │           │   │   │   │   ├── _securetransport
│   │           │   │   │   │   │   ├── __init__.py
│   │           │   │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   │   ├── bindings.cpython-312.pyc
│   │           │   │   │   │   │   │   └── low_level.cpython-312.pyc
│   │           │   │   │   │   │   ├── bindings.py
│   │           │   │   │   │   │   └── low_level.py
│   │           │   │   │   │   ├── appengine.py
│   │           │   │   │   │   ├── ntlmpool.py
│   │           │   │   │   │   ├── pyopenssl.py
│   │           │   │   │   │   ├── securetransport.py
│   │           │   │   │   │   └── socks.py
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── fields.py
│   │           │   │   │   ├── filepost.py
│   │           │   │   │   ├── packages
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── six.cpython-312.pyc
│   │           │   │   │   │   ├── backports
│   │           │   │   │   │   │   ├── __init__.py
│   │           │   │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   │   ├── makefile.cpython-312.pyc
│   │           │   │   │   │   │   │   └── weakref_finalize.cpython-312.pyc
│   │           │   │   │   │   │   ├── makefile.py
│   │           │   │   │   │   │   └── weakref_finalize.py
│   │           │   │   │   │   └── six.py
│   │           │   │   │   ├── poolmanager.py
│   │           │   │   │   ├── request.py
│   │           │   │   │   ├── response.py
│   │           │   │   │   └── util
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   ├── connection.cpython-312.pyc
│   │           │   │   │       │   ├── proxy.cpython-312.pyc
│   │           │   │   │       │   ├── queue.cpython-312.pyc
│   │           │   │   │       │   ├── request.cpython-312.pyc
│   │           │   │   │       │   ├── response.cpython-312.pyc
│   │           │   │   │       │   ├── retry.cpython-312.pyc
│   │           │   │   │       │   ├── ssl_.cpython-312.pyc
│   │           │   │   │       │   ├── ssl_match_hostname.cpython-312.pyc
│   │           │   │   │       │   ├── ssltransport.cpython-312.pyc
│   │           │   │   │       │   ├── timeout.cpython-312.pyc
│   │           │   │   │       │   ├── url.cpython-312.pyc
│   │           │   │   │       │   └── wait.cpython-312.pyc
│   │           │   │   │       ├── connection.py
│   │           │   │   │       ├── proxy.py
│   │           │   │   │       ├── queue.py
│   │           │   │   │       ├── request.py
│   │           │   │   │       ├── response.py
│   │           │   │   │       ├── retry.py
│   │           │   │   │       ├── ssl_.py
│   │           │   │   │       ├── ssl_match_hostname.py
│   │           │   │   │       ├── ssltransport.py
│   │           │   │   │       ├── timeout.py
│   │           │   │   │       ├── url.py
│   │           │   │   │       └── wait.py
│   │           │   │   └── vendor.txt
│   │           │   └── py.typed
│   │           ├── pip-24.2.dist-info
│   │           │   ├── AUTHORS.txt
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── requests
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __version__.cpython-312.pyc
│   │           │   │   ├── _internal_utils.cpython-312.pyc
│   │           │   │   ├── adapters.cpython-312.pyc
│   │           │   │   ├── api.cpython-312.pyc
│   │           │   │   ├── auth.cpython-312.pyc
│   │           │   │   ├── certs.cpython-312.pyc
│   │           │   │   ├── compat.cpython-312.pyc
│   │           │   │   ├── cookies.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── help.cpython-312.pyc
│   │           │   │   ├── hooks.cpython-312.pyc
│   │           │   │   ├── models.cpython-312.pyc
│   │           │   │   ├── packages.cpython-312.pyc
│   │           │   │   ├── sessions.cpython-312.pyc
│   │           │   │   ├── status_codes.cpython-312.pyc
│   │           │   │   ├── structures.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── __version__.py
│   │           │   ├── _internal_utils.py
│   │           │   ├── adapters.py
│   │           │   ├── api.py
│   │           │   ├── auth.py
│   │           │   ├── certs.py
│   │           │   ├── compat.py
│   │           │   ├── cookies.py
│   │           │   ├── exceptions.py
│   │           │   ├── help.py
│   │           │   ├── hooks.py
│   │           │   ├── models.py
│   │           │   ├── packages.py
│   │           │   ├── sessions.py
│   │           │   ├── status_codes.py
│   │           │   ├── structures.py
│   │           │   └── utils.py
│   │           ├── requests-2.32.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── soupsieve
│   │           │   ├── __init__.py
│   │           │   ├── __meta__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __meta__.cpython-312.pyc
│   │           │   │   ├── css_match.cpython-312.pyc
│   │           │   │   ├── css_parser.cpython-312.pyc
│   │           │   │   ├── css_types.cpython-312.pyc
│   │           │   │   ├── pretty.cpython-312.pyc
│   │           │   │   └── util.cpython-312.pyc
│   │           │   ├── css_match.py
│   │           │   ├── css_parser.py
│   │           │   ├── css_types.py
│   │           │   ├── pretty.py
│   │           │   ├── py.typed
│   │           │   └── util.py
│   │           ├── soupsieve-2.6.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   └── LICENSE.md
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── urllib3
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _base_connection.cpython-312.pyc
│   │           │   │   ├── _collections.cpython-312.pyc
│   │           │   │   ├── _request_methods.cpython-312.pyc
│   │           │   │   ├── _version.cpython-312.pyc
│   │           │   │   ├── connection.cpython-312.pyc
│   │           │   │   ├── connectionpool.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── fields.cpython-312.pyc
│   │           │   │   ├── filepost.cpython-312.pyc
│   │           │   │   ├── poolmanager.cpython-312.pyc
│   │           │   │   └── response.cpython-312.pyc
│   │           │   ├── _base_connection.py
│   │           │   ├── _collections.py
│   │           │   ├── _request_methods.py
│   │           │   ├── _version.py
│   │           │   ├── connection.py
│   │           │   ├── connectionpool.py
│   │           │   ├── contrib
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── pyopenssl.cpython-312.pyc
│   │           │   │   │   └── socks.cpython-312.pyc
│   │           │   │   ├── emscripten
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   │   ├── fetch.cpython-312.pyc
│   │           │   │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   │   └── response.cpython-312.pyc
│   │           │   │   │   ├── connection.py
│   │           │   │   │   ├── emscripten_fetch_worker.js
│   │           │   │   │   ├── fetch.py
│   │           │   │   │   ├── request.py
│   │           │   │   │   └── response.py
│   │           │   │   ├── pyopenssl.py
│   │           │   │   └── socks.py
│   │           │   ├── exceptions.py
│   │           │   ├── fields.py
│   │           │   ├── filepost.py
│   │           │   ├── http2
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   └── probe.cpython-312.pyc
│   │           │   │   ├── connection.py
│   │           │   │   └── probe.py
│   │           │   ├── poolmanager.py
│   │           │   ├── py.typed
│   │           │   ├── response.py
│   │           │   └── util
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   ├── __init__.cpython-312.pyc
│   │           │       │   ├── connection.cpython-312.pyc
│   │           │       │   ├── proxy.cpython-312.pyc
│   │           │       │   ├── request.cpython-312.pyc
│   │           │       │   ├── response.cpython-312.pyc
│   │           │       │   ├── retry.cpython-312.pyc
│   │           │       │   ├── ssl_.cpython-312.pyc
│   │           │       │   ├── ssl_match_hostname.cpython-312.pyc
│   │           │       │   ├── ssltransport.cpython-312.pyc
│   │           │       │   ├── timeout.cpython-312.pyc
│   │           │       │   ├── url.cpython-312.pyc
│   │           │       │   ├── util.cpython-312.pyc
│   │           │       │   └── wait.cpython-312.pyc
│   │           │       ├── connection.py
│   │           │       ├── proxy.py
│   │           │       ├── request.py
│   │           │       ├── response.py
│   │           │       ├── retry.py
│   │           │       ├── ssl_.py
│   │           │       ├── ssl_match_hostname.py
│   │           │       ├── ssltransport.py
│   │           │       ├── timeout.py
│   │           │       ├── url.py
│   │           │       ├── util.py
│   │           │       └── wait.py
│   │           ├── urllib3-2.2.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   └── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── useragent
│   │           │   ├── __init__.py
│   │           │   ├── __init__.pyc
│   │           │   ├── __pycache__
│   │           │   │   └── __init__.cpython-312.pyc
│   │           │   ├── resources
│   │           │   │   └── user_agent_data.json
│   │           │   └── test
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   └── __init__.cpython-312.pyc
│   │           │       ├── test_additional_os.json
│   │           │       ├── test_browser.json
│   │           │       ├── test_device.json
│   │           │       ├── test_firefox.json
│   │           │       ├── test_os.json
│   │           │       └── test_pgts_browser.json
│   │           ├── useragent-0.1.1.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── werkzeug
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _internal.cpython-312.pyc
│   │           │   │   ├── _reloader.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── formparser.cpython-312.pyc
│   │           │   │   ├── http.cpython-312.pyc
│   │           │   │   ├── local.cpython-312.pyc
│   │           │   │   ├── security.cpython-312.pyc
│   │           │   │   ├── serving.cpython-312.pyc
│   │           │   │   ├── test.cpython-312.pyc
│   │           │   │   ├── testapp.cpython-312.pyc
│   │           │   │   ├── urls.cpython-312.pyc
│   │           │   │   ├── user_agent.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── wsgi.cpython-312.pyc
│   │           │   ├── _internal.py
│   │           │   ├── _reloader.py
│   │           │   ├── datastructures
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── accept.cpython-312.pyc
│   │           │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   ├── cache_control.cpython-312.pyc
│   │           │   │   │   ├── csp.cpython-312.pyc
│   │           │   │   │   ├── etag.cpython-312.pyc
│   │           │   │   │   ├── file_storage.cpython-312.pyc
│   │           │   │   │   ├── headers.cpython-312.pyc
│   │           │   │   │   ├── mixins.cpython-312.pyc
│   │           │   │   │   ├── range.cpython-312.pyc
│   │           │   │   │   └── structures.cpython-312.pyc
│   │           │   │   ├── accept.py
│   │           │   │   ├── accept.pyi
│   │           │   │   ├── auth.py
│   │           │   │   ├── cache_control.py
│   │           │   │   ├── cache_control.pyi
│   │           │   │   ├── csp.py
│   │           │   │   ├── csp.pyi
│   │           │   │   ├── etag.py
│   │           │   │   ├── etag.pyi
│   │           │   │   ├── file_storage.py
│   │           │   │   ├── file_storage.pyi
│   │           │   │   ├── headers.py
│   │           │   │   ├── headers.pyi
│   │           │   │   ├── mixins.py
│   │           │   │   ├── mixins.pyi
│   │           │   │   ├── range.py
│   │           │   │   ├── range.pyi
│   │           │   │   ├── structures.py
│   │           │   │   └── structures.pyi
│   │           │   ├── debug
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   ├── repr.cpython-312.pyc
│   │           │   │   │   └── tbtools.cpython-312.pyc
│   │           │   │   ├── console.py
│   │           │   │   ├── repr.py
│   │           │   │   ├── shared
│   │           │   │   │   ├── console.png
│   │           │   │   │   ├── debugger.js
│   │           │   │   │   ├── ICON_LICENSE.md
│   │           │   │   │   ├── less.png
│   │           │   │   │   ├── more.png
│   │           │   │   │   └── style.css
│   │           │   │   └── tbtools.py
│   │           │   ├── exceptions.py
│   │           │   ├── formparser.py
│   │           │   ├── http.py
│   │           │   ├── local.py
│   │           │   ├── middleware
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── dispatcher.cpython-312.pyc
│   │           │   │   │   ├── http_proxy.cpython-312.pyc
│   │           │   │   │   ├── lint.cpython-312.pyc
│   │           │   │   │   ├── profiler.cpython-312.pyc
│   │           │   │   │   ├── proxy_fix.cpython-312.pyc
│   │           │   │   │   └── shared_data.cpython-312.pyc
│   │           │   │   ├── dispatcher.py
│   │           │   │   ├── http_proxy.py
│   │           │   │   ├── lint.py
│   │           │   │   ├── profiler.py
│   │           │   │   ├── proxy_fix.py
│   │           │   │   └── shared_data.py
│   │           │   ├── py.typed
│   │           │   ├── routing
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── converters.cpython-312.pyc
│   │           │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   ├── map.cpython-312.pyc
│   │           │   │   │   ├── matcher.cpython-312.pyc
│   │           │   │   │   └── rules.cpython-312.pyc
│   │           │   │   ├── converters.py
│   │           │   │   ├── exceptions.py
│   │           │   │   ├── map.py
│   │           │   │   ├── matcher.py
│   │           │   │   └── rules.py
│   │           │   ├── sansio
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── http.cpython-312.pyc
│   │           │   │   │   ├── multipart.cpython-312.pyc
│   │           │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   ├── response.cpython-312.pyc
│   │           │   │   │   └── utils.cpython-312.pyc
│   │           │   │   ├── http.py
│   │           │   │   ├── multipart.py
│   │           │   │   ├── request.py
│   │           │   │   ├── response.py
│   │           │   │   └── utils.py
│   │           │   ├── security.py
│   │           │   ├── serving.py
│   │           │   ├── test.py
│   │           │   ├── testapp.py
│   │           │   ├── urls.py
│   │           │   ├── user_agent.py
│   │           │   ├── utils.py
│   │           │   ├── wrappers
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   └── response.cpython-312.pyc
│   │           │   │   ├── request.py
│   │           │   │   └── response.py
│   │           │   └── wsgi.py
│   │           └── werkzeug-3.0.4.dist-info
│   │               ├── INSTALLER
│   │               ├── LICENSE.txt
│   │               ├── METADATA
│   │               ├── RECORD
│   │               └── WHEEL
│   ├── pyvenv.cfg
│   ├── static
│   │   └── styles.css
│   ├── templates
│   │   └── index.html
│   └── test.py
├── cline_config.json
├── mcp_server.py
├── README.md
├── search_results.json
├── settings.json
└── test_files
    ├── text1.txt
    └── text2.txt
```

# Files

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py:
--------------------------------------------------------------------------------

```python
  1 | import sys
  2 | from optparse import Values
  3 | from typing import AbstractSet, List
  4 | 
  5 | from pip._internal.cli import cmdoptions
  6 | from pip._internal.cli.base_command import Command
  7 | from pip._internal.cli.status_codes import SUCCESS
  8 | from pip._internal.operations.freeze import freeze
  9 | from pip._internal.utils.compat import stdlib_pkgs
 10 | 
 11 | 
 12 | def _should_suppress_build_backends() -> bool:
 13 |     return sys.version_info < (3, 12)
 14 | 
 15 | 
 16 | def _dev_pkgs() -> AbstractSet[str]:
 17 |     pkgs = {"pip"}
 18 | 
 19 |     if _should_suppress_build_backends():
 20 |         pkgs |= {"setuptools", "distribute", "wheel"}
 21 | 
 22 |     return pkgs
 23 | 
 24 | 
 25 | class FreezeCommand(Command):
 26 |     """
 27 |     Output installed packages in requirements format.
 28 | 
 29 |     packages are listed in a case-insensitive sorted order.
 30 |     """
 31 | 
 32 |     ignore_require_venv = True
 33 |     usage = """
 34 |       %prog [options]"""
 35 |     log_streams = ("ext://sys.stderr", "ext://sys.stderr")
 36 | 
 37 |     def add_options(self) -> None:
 38 |         self.cmd_opts.add_option(
 39 |             "-r",
 40 |             "--requirement",
 41 |             dest="requirements",
 42 |             action="append",
 43 |             default=[],
 44 |             metavar="file",
 45 |             help=(
 46 |                 "Use the order in the given requirements file and its "
 47 |                 "comments when generating output. This option can be "
 48 |                 "used multiple times."
 49 |             ),
 50 |         )
 51 |         self.cmd_opts.add_option(
 52 |             "-l",
 53 |             "--local",
 54 |             dest="local",
 55 |             action="store_true",
 56 |             default=False,
 57 |             help=(
 58 |                 "If in a virtualenv that has global access, do not output "
 59 |                 "globally-installed packages."
 60 |             ),
 61 |         )
 62 |         self.cmd_opts.add_option(
 63 |             "--user",
 64 |             dest="user",
 65 |             action="store_true",
 66 |             default=False,
 67 |             help="Only output packages installed in user-site.",
 68 |         )
 69 |         self.cmd_opts.add_option(cmdoptions.list_path())
 70 |         self.cmd_opts.add_option(
 71 |             "--all",
 72 |             dest="freeze_all",
 73 |             action="store_true",
 74 |             help=(
 75 |                 "Do not skip these packages in the output:"
 76 |                 " {}".format(", ".join(_dev_pkgs()))
 77 |             ),
 78 |         )
 79 |         self.cmd_opts.add_option(
 80 |             "--exclude-editable",
 81 |             dest="exclude_editable",
 82 |             action="store_true",
 83 |             help="Exclude editable package from output.",
 84 |         )
 85 |         self.cmd_opts.add_option(cmdoptions.list_exclude())
 86 | 
 87 |         self.parser.insert_option_group(0, self.cmd_opts)
 88 | 
 89 |     def run(self, options: Values, args: List[str]) -> int:
 90 |         skip = set(stdlib_pkgs)
 91 |         if not options.freeze_all:
 92 |             skip.update(_dev_pkgs())
 93 | 
 94 |         if options.excludes:
 95 |             skip.update(options.excludes)
 96 | 
 97 |         cmdoptions.check_list_path_option(options)
 98 | 
 99 |         for line in freeze(
100 |             requirement=options.requirements,
101 |             local_only=options.local,
102 |             user_only=options.user,
103 |             paths=options.path,
104 |             isolated=options.isolated_mode,
105 |             skip=skip,
106 |             exclude_editable=options.exclude_editable,
107 |         ):
108 |             sys.stdout.write(line + "\n")
109 |         return SUCCESS
110 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py:
--------------------------------------------------------------------------------

```python
 1 | from datetime import datetime
 2 | from typing import Iterable, List, Optional, TYPE_CHECKING, Union, Callable
 3 | 
 4 | 
 5 | from .text import Text, TextType
 6 | 
 7 | if TYPE_CHECKING:
 8 |     from .console import Console, ConsoleRenderable, RenderableType
 9 |     from .table import Table
10 | 
11 | FormatTimeCallable = Callable[[datetime], Text]
12 | 
13 | 
14 | class LogRender:
15 |     def __init__(
16 |         self,
17 |         show_time: bool = True,
18 |         show_level: bool = False,
19 |         show_path: bool = True,
20 |         time_format: Union[str, FormatTimeCallable] = "[%x %X]",
21 |         omit_repeated_times: bool = True,
22 |         level_width: Optional[int] = 8,
23 |     ) -> None:
24 |         self.show_time = show_time
25 |         self.show_level = show_level
26 |         self.show_path = show_path
27 |         self.time_format = time_format
28 |         self.omit_repeated_times = omit_repeated_times
29 |         self.level_width = level_width
30 |         self._last_time: Optional[Text] = None
31 | 
32 |     def __call__(
33 |         self,
34 |         console: "Console",
35 |         renderables: Iterable["ConsoleRenderable"],
36 |         log_time: Optional[datetime] = None,
37 |         time_format: Optional[Union[str, FormatTimeCallable]] = None,
38 |         level: TextType = "",
39 |         path: Optional[str] = None,
40 |         line_no: Optional[int] = None,
41 |         link_path: Optional[str] = None,
42 |     ) -> "Table":
43 |         from .containers import Renderables
44 |         from .table import Table
45 | 
46 |         output = Table.grid(padding=(0, 1))
47 |         output.expand = True
48 |         if self.show_time:
49 |             output.add_column(style="log.time")
50 |         if self.show_level:
51 |             output.add_column(style="log.level", width=self.level_width)
52 |         output.add_column(ratio=1, style="log.message", overflow="fold")
53 |         if self.show_path and path:
54 |             output.add_column(style="log.path")
55 |         row: List["RenderableType"] = []
56 |         if self.show_time:
57 |             log_time = log_time or console.get_datetime()
58 |             time_format = time_format or self.time_format
59 |             if callable(time_format):
60 |                 log_time_display = time_format(log_time)
61 |             else:
62 |                 log_time_display = Text(log_time.strftime(time_format))
63 |             if log_time_display == self._last_time and self.omit_repeated_times:
64 |                 row.append(Text(" " * len(log_time_display)))
65 |             else:
66 |                 row.append(log_time_display)
67 |                 self._last_time = log_time_display
68 |         if self.show_level:
69 |             row.append(level)
70 | 
71 |         row.append(Renderables(renderables))
72 |         if self.show_path and path:
73 |             path_text = Text()
74 |             path_text.append(
75 |                 path, style=f"link file://{link_path}" if link_path else ""
76 |             )
77 |             if line_no:
78 |                 path_text.append(":")
79 |                 path_text.append(
80 |                     f"{line_no}",
81 |                     style=f"link file://{link_path}#{line_no}" if link_path else "",
82 |                 )
83 |             row.append(path_text)
84 | 
85 |         output.add_row(*row)
86 |         return output
87 | 
88 | 
89 | if __name__ == "__main__":  # pragma: no cover
90 |     from pip._vendor.rich.console import Console
91 | 
92 |     c = Console()
93 |     c.print("[on blue]Hello", justify="right")
94 |     c.log("[on blue]hello", justify="right")
95 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/html/_html5builder.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 | Legacy module - don't use in new code!
  3 | 
  4 | html5lib now has its own proper implementation.
  5 | 
  6 | This module implements a tree builder for html5lib that generates lxml
  7 | html element trees.  This module uses camelCase as it follows the
  8 | html5lib style guide.
  9 | """
 10 | 
 11 | from html5lib.treebuilders import _base, etree as etree_builders
 12 | from lxml import html, etree
 13 | 
 14 | 
 15 | class DocumentType:
 16 | 
 17 |     def __init__(self, name, publicId, systemId):
 18 |         self.name = name
 19 |         self.publicId = publicId
 20 |         self.systemId = systemId
 21 | 
 22 | class Document:
 23 | 
 24 |     def __init__(self):
 25 |         self._elementTree = None
 26 |         self.childNodes = []
 27 | 
 28 |     def appendChild(self, element):
 29 |         self._elementTree.getroot().addnext(element._element)
 30 | 
 31 | 
 32 | class TreeBuilder(_base.TreeBuilder):
 33 |     documentClass = Document
 34 |     doctypeClass = DocumentType
 35 |     elementClass = None
 36 |     commentClass = None
 37 |     fragmentClass = Document
 38 | 
 39 |     def __init__(self, *args, **kwargs):
 40 |         html_builder = etree_builders.getETreeModule(html, fullTree=False)
 41 |         etree_builder = etree_builders.getETreeModule(etree, fullTree=False)
 42 |         self.elementClass = html_builder.Element
 43 |         self.commentClass = etree_builder.Comment
 44 |         _base.TreeBuilder.__init__(self, *args, **kwargs)
 45 | 
 46 |     def reset(self):
 47 |         _base.TreeBuilder.reset(self)
 48 |         self.rootInserted = False
 49 |         self.initialComments = []
 50 |         self.doctype = None
 51 | 
 52 |     def getDocument(self):
 53 |         return self.document._elementTree
 54 | 
 55 |     def getFragment(self):
 56 |         fragment = []
 57 |         element = self.openElements[0]._element
 58 |         if element.text:
 59 |             fragment.append(element.text)
 60 |         fragment.extend(element.getchildren())
 61 |         if element.tail:
 62 |             fragment.append(element.tail)
 63 |         return fragment
 64 | 
 65 |     def insertDoctype(self, name, publicId, systemId):
 66 |         doctype = self.doctypeClass(name, publicId, systemId)
 67 |         self.doctype = doctype
 68 | 
 69 |     def insertComment(self, data, parent=None):
 70 |         if not self.rootInserted:
 71 |             self.initialComments.append(data)
 72 |         else:
 73 |             _base.TreeBuilder.insertComment(self, data, parent)
 74 | 
 75 |     def insertRoot(self, name):
 76 |         buf = []
 77 |         if self.doctype and self.doctype.name:
 78 |             buf.append('<!DOCTYPE %s' % self.doctype.name)
 79 |             if self.doctype.publicId is not None or self.doctype.systemId is not None:
 80 |                 buf.append(' PUBLIC "%s" "%s"' % (self.doctype.publicId,
 81 |                                                   self.doctype.systemId))
 82 |             buf.append('>')
 83 |         buf.append('<html></html>')
 84 |         root = html.fromstring(''.join(buf))
 85 | 
 86 |         # Append the initial comments:
 87 |         for comment in self.initialComments:
 88 |             root.addprevious(etree.Comment(comment))
 89 | 
 90 |         # Create the root document and add the ElementTree to it
 91 |         self.document = self.documentClass()
 92 |         self.document._elementTree = root.getroottree()
 93 | 
 94 |         # Add the root element to the internal child/open data structures
 95 |         root_element = self.elementClass(name)
 96 |         root_element._element = root
 97 |         self.document.childNodes.append(root_element)
 98 |         self.openElements.append(root_element)
 99 | 
100 |         self.rootInserted = True
101 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Optional, Union
 2 | 
 3 | from .color import Color
 4 | from .console import Console, ConsoleOptions, RenderResult
 5 | from .jupyter import JupyterMixin
 6 | from .measure import Measurement
 7 | from .segment import Segment
 8 | from .style import Style
 9 | 
10 | # There are left-aligned characters for 1/8 to 7/8, but
11 | # the right-aligned characters exist only for 1/8 and 4/8.
12 | BEGIN_BLOCK_ELEMENTS = ["█", "█", "█", "▐", "▐", "▐", "▕", "▕"]
13 | END_BLOCK_ELEMENTS = [" ", "▏", "▎", "▍", "▌", "▋", "▊", "▉"]
14 | FULL_BLOCK = "█"
15 | 
16 | 
17 | class Bar(JupyterMixin):
18 |     """Renders a solid block bar.
19 | 
20 |     Args:
21 |         size (float): Value for the end of the bar.
22 |         begin (float): Begin point (between 0 and size, inclusive).
23 |         end (float): End point (between 0 and size, inclusive).
24 |         width (int, optional): Width of the bar, or ``None`` for maximum width. Defaults to None.
25 |         color (Union[Color, str], optional): Color of the bar. Defaults to "default".
26 |         bgcolor (Union[Color, str], optional): Color of bar background. Defaults to "default".
27 |     """
28 | 
29 |     def __init__(
30 |         self,
31 |         size: float,
32 |         begin: float,
33 |         end: float,
34 |         *,
35 |         width: Optional[int] = None,
36 |         color: Union[Color, str] = "default",
37 |         bgcolor: Union[Color, str] = "default",
38 |     ):
39 |         self.size = size
40 |         self.begin = max(begin, 0)
41 |         self.end = min(end, size)
42 |         self.width = width
43 |         self.style = Style(color=color, bgcolor=bgcolor)
44 | 
45 |     def __repr__(self) -> str:
46 |         return f"Bar({self.size}, {self.begin}, {self.end})"
47 | 
48 |     def __rich_console__(
49 |         self, console: Console, options: ConsoleOptions
50 |     ) -> RenderResult:
51 |         width = min(
52 |             self.width if self.width is not None else options.max_width,
53 |             options.max_width,
54 |         )
55 | 
56 |         if self.begin >= self.end:
57 |             yield Segment(" " * width, self.style)
58 |             yield Segment.line()
59 |             return
60 | 
61 |         prefix_complete_eights = int(width * 8 * self.begin / self.size)
62 |         prefix_bar_count = prefix_complete_eights // 8
63 |         prefix_eights_count = prefix_complete_eights % 8
64 | 
65 |         body_complete_eights = int(width * 8 * self.end / self.size)
66 |         body_bar_count = body_complete_eights // 8
67 |         body_eights_count = body_complete_eights % 8
68 | 
69 |         # When start and end fall into the same cell, we ideally should render
70 |         # a symbol that's "center-aligned", but there is no good symbol in Unicode.
71 |         # In this case, we fall back to right-aligned block symbol for simplicity.
72 | 
73 |         prefix = " " * prefix_bar_count
74 |         if prefix_eights_count:
75 |             prefix += BEGIN_BLOCK_ELEMENTS[prefix_eights_count]
76 | 
77 |         body = FULL_BLOCK * body_bar_count
78 |         if body_eights_count:
79 |             body += END_BLOCK_ELEMENTS[body_eights_count]
80 | 
81 |         suffix = " " * (width - len(body))
82 | 
83 |         yield Segment(prefix + body[len(prefix) :] + suffix, self.style)
84 |         yield Segment.line()
85 | 
86 |     def __rich_measure__(
87 |         self, console: Console, options: ConsoleOptions
88 |     ) -> Measurement:
89 |         return (
90 |             Measurement(self.width, self.width)
91 |             if self.width is not None
92 |             else Measurement(4, options.max_width)
93 |         )
94 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/werkzeug/datastructures/csp.py:
--------------------------------------------------------------------------------

```python
 1 | from __future__ import annotations
 2 | 
 3 | from .mixins import UpdateDictMixin
 4 | 
 5 | 
 6 | def csp_property(key):
 7 |     """Return a new property object for a content security policy header.
 8 |     Useful if you want to add support for a csp extension in a
 9 |     subclass.
10 |     """
11 |     return property(
12 |         lambda x: x._get_value(key),
13 |         lambda x, v: x._set_value(key, v),
14 |         lambda x: x._del_value(key),
15 |         f"accessor for {key!r}",
16 |     )
17 | 
18 | 
19 | class ContentSecurityPolicy(UpdateDictMixin, dict):
20 |     """Subclass of a dict that stores values for a Content Security Policy
21 |     header. It has accessors for all the level 3 policies.
22 | 
23 |     Because the csp directives in the HTTP header use dashes the
24 |     python descriptors use underscores for that.
25 | 
26 |     To get a header of the :class:`ContentSecuirtyPolicy` object again
27 |     you can convert the object into a string or call the
28 |     :meth:`to_header` method.  If you plan to subclass it and add your
29 |     own items have a look at the sourcecode for that class.
30 | 
31 |     .. versionadded:: 1.0.0
32 |        Support for Content Security Policy headers was added.
33 | 
34 |     """
35 | 
36 |     base_uri = csp_property("base-uri")
37 |     child_src = csp_property("child-src")
38 |     connect_src = csp_property("connect-src")
39 |     default_src = csp_property("default-src")
40 |     font_src = csp_property("font-src")
41 |     form_action = csp_property("form-action")
42 |     frame_ancestors = csp_property("frame-ancestors")
43 |     frame_src = csp_property("frame-src")
44 |     img_src = csp_property("img-src")
45 |     manifest_src = csp_property("manifest-src")
46 |     media_src = csp_property("media-src")
47 |     navigate_to = csp_property("navigate-to")
48 |     object_src = csp_property("object-src")
49 |     prefetch_src = csp_property("prefetch-src")
50 |     plugin_types = csp_property("plugin-types")
51 |     report_to = csp_property("report-to")
52 |     report_uri = csp_property("report-uri")
53 |     sandbox = csp_property("sandbox")
54 |     script_src = csp_property("script-src")
55 |     script_src_attr = csp_property("script-src-attr")
56 |     script_src_elem = csp_property("script-src-elem")
57 |     style_src = csp_property("style-src")
58 |     style_src_attr = csp_property("style-src-attr")
59 |     style_src_elem = csp_property("style-src-elem")
60 |     worker_src = csp_property("worker-src")
61 | 
62 |     def __init__(self, values=(), on_update=None):
63 |         dict.__init__(self, values or ())
64 |         self.on_update = on_update
65 |         self.provided = values is not None
66 | 
67 |     def _get_value(self, key):
68 |         """Used internally by the accessor properties."""
69 |         return self.get(key)
70 | 
71 |     def _set_value(self, key, value):
72 |         """Used internally by the accessor properties."""
73 |         if value is None:
74 |             self.pop(key, None)
75 |         else:
76 |             self[key] = value
77 | 
78 |     def _del_value(self, key):
79 |         """Used internally by the accessor properties."""
80 |         if key in self:
81 |             del self[key]
82 | 
83 |     def to_header(self):
84 |         """Convert the stored values into a cache control header."""
85 |         from ..http import dump_csp_header
86 | 
87 |         return dump_csp_header(self)
88 | 
89 |     def __str__(self):
90 |         return self.to_header()
91 | 
92 |     def __repr__(self):
93 |         kv_str = " ".join(f"{k}={v!r}" for k, v in sorted(self.items()))
94 |         return f"<{type(self).__name__} {kv_str}>"
95 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py:
--------------------------------------------------------------------------------

```python
  1 | from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence
  2 | 
  3 | if TYPE_CHECKING:
  4 |     from pip._vendor.rich.console import ConsoleRenderable
  5 | 
  6 | from . import get_console
  7 | from .segment import Segment
  8 | from .terminal_theme import DEFAULT_TERMINAL_THEME
  9 | 
 10 | if TYPE_CHECKING:
 11 |     from pip._vendor.rich.console import ConsoleRenderable
 12 | 
 13 | JUPYTER_HTML_FORMAT = """\
 14 | <pre style="white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace">{code}</pre>
 15 | """
 16 | 
 17 | 
 18 | class JupyterRenderable:
 19 |     """A shim to write html to Jupyter notebook."""
 20 | 
 21 |     def __init__(self, html: str, text: str) -> None:
 22 |         self.html = html
 23 |         self.text = text
 24 | 
 25 |     def _repr_mimebundle_(
 26 |         self, include: Sequence[str], exclude: Sequence[str], **kwargs: Any
 27 |     ) -> Dict[str, str]:
 28 |         data = {"text/plain": self.text, "text/html": self.html}
 29 |         if include:
 30 |             data = {k: v for (k, v) in data.items() if k in include}
 31 |         if exclude:
 32 |             data = {k: v for (k, v) in data.items() if k not in exclude}
 33 |         return data
 34 | 
 35 | 
 36 | class JupyterMixin:
 37 |     """Add to an Rich renderable to make it render in Jupyter notebook."""
 38 | 
 39 |     __slots__ = ()
 40 | 
 41 |     def _repr_mimebundle_(
 42 |         self: "ConsoleRenderable",
 43 |         include: Sequence[str],
 44 |         exclude: Sequence[str],
 45 |         **kwargs: Any,
 46 |     ) -> Dict[str, str]:
 47 |         console = get_console()
 48 |         segments = list(console.render(self, console.options))
 49 |         html = _render_segments(segments)
 50 |         text = console._render_buffer(segments)
 51 |         data = {"text/plain": text, "text/html": html}
 52 |         if include:
 53 |             data = {k: v for (k, v) in data.items() if k in include}
 54 |         if exclude:
 55 |             data = {k: v for (k, v) in data.items() if k not in exclude}
 56 |         return data
 57 | 
 58 | 
 59 | def _render_segments(segments: Iterable[Segment]) -> str:
 60 |     def escape(text: str) -> str:
 61 |         """Escape html."""
 62 |         return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
 63 | 
 64 |     fragments: List[str] = []
 65 |     append_fragment = fragments.append
 66 |     theme = DEFAULT_TERMINAL_THEME
 67 |     for text, style, control in Segment.simplify(segments):
 68 |         if control:
 69 |             continue
 70 |         text = escape(text)
 71 |         if style:
 72 |             rule = style.get_html_style(theme)
 73 |             text = f'<span style="{rule}">{text}</span>' if rule else text
 74 |             if style.link:
 75 |                 text = f'<a href="{style.link}" target="_blank">{text}</a>'
 76 |         append_fragment(text)
 77 | 
 78 |     code = "".join(fragments)
 79 |     html = JUPYTER_HTML_FORMAT.format(code=code)
 80 | 
 81 |     return html
 82 | 
 83 | 
 84 | def display(segments: Iterable[Segment], text: str) -> None:
 85 |     """Render segments to Jupyter."""
 86 |     html = _render_segments(segments)
 87 |     jupyter_renderable = JupyterRenderable(html, text)
 88 |     try:
 89 |         from IPython.display import display as ipython_display
 90 | 
 91 |         ipython_display(jupyter_renderable)
 92 |     except ModuleNotFoundError:
 93 |         # Handle the case where the Console has force_jupyter=True,
 94 |         # but IPython is not installed.
 95 |         pass
 96 | 
 97 | 
 98 | def print(*args: Any, **kwargs: Any) -> None:
 99 |     """Proxy for Console print."""
100 |     console = get_console()
101 |     return console.print(*args, **kwargs)
102 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/_elffile.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 | ELF file parser.
  3 | 
  4 | This provides a class ``ELFFile`` that parses an ELF executable in a similar
  5 | interface to ``ZipFile``. Only the read interface is implemented.
  6 | 
  7 | Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
  8 | ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
  9 | """
 10 | 
 11 | from __future__ import annotations
 12 | 
 13 | import enum
 14 | import os
 15 | import struct
 16 | from typing import IO
 17 | 
 18 | 
 19 | class ELFInvalid(ValueError):
 20 |     pass
 21 | 
 22 | 
 23 | class EIClass(enum.IntEnum):
 24 |     C32 = 1
 25 |     C64 = 2
 26 | 
 27 | 
 28 | class EIData(enum.IntEnum):
 29 |     Lsb = 1
 30 |     Msb = 2
 31 | 
 32 | 
 33 | class EMachine(enum.IntEnum):
 34 |     I386 = 3
 35 |     S390 = 22
 36 |     Arm = 40
 37 |     X8664 = 62
 38 |     AArc64 = 183
 39 | 
 40 | 
 41 | class ELFFile:
 42 |     """
 43 |     Representation of an ELF executable.
 44 |     """
 45 | 
 46 |     def __init__(self, f: IO[bytes]) -> None:
 47 |         self._f = f
 48 | 
 49 |         try:
 50 |             ident = self._read("16B")
 51 |         except struct.error:
 52 |             raise ELFInvalid("unable to parse identification")
 53 |         magic = bytes(ident[:4])
 54 |         if magic != b"\x7fELF":
 55 |             raise ELFInvalid(f"invalid magic: {magic!r}")
 56 | 
 57 |         self.capacity = ident[4]  # Format for program header (bitness).
 58 |         self.encoding = ident[5]  # Data structure encoding (endianness).
 59 | 
 60 |         try:
 61 |             # e_fmt: Format for program header.
 62 |             # p_fmt: Format for section header.
 63 |             # p_idx: Indexes to find p_type, p_offset, and p_filesz.
 64 |             e_fmt, self._p_fmt, self._p_idx = {
 65 |                 (1, 1): ("<HHIIIIIHHH", "<IIIIIIII", (0, 1, 4)),  # 32-bit LSB.
 66 |                 (1, 2): (">HHIIIIIHHH", ">IIIIIIII", (0, 1, 4)),  # 32-bit MSB.
 67 |                 (2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)),  # 64-bit LSB.
 68 |                 (2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)),  # 64-bit MSB.
 69 |             }[(self.capacity, self.encoding)]
 70 |         except KeyError:
 71 |             raise ELFInvalid(
 72 |                 f"unrecognized capacity ({self.capacity}) or "
 73 |                 f"encoding ({self.encoding})"
 74 |             )
 75 | 
 76 |         try:
 77 |             (
 78 |                 _,
 79 |                 self.machine,  # Architecture type.
 80 |                 _,
 81 |                 _,
 82 |                 self._e_phoff,  # Offset of program header.
 83 |                 _,
 84 |                 self.flags,  # Processor-specific flags.
 85 |                 _,
 86 |                 self._e_phentsize,  # Size of section.
 87 |                 self._e_phnum,  # Number of sections.
 88 |             ) = self._read(e_fmt)
 89 |         except struct.error as e:
 90 |             raise ELFInvalid("unable to parse machine and section information") from e
 91 | 
 92 |     def _read(self, fmt: str) -> tuple[int, ...]:
 93 |         return struct.unpack(fmt, self._f.read(struct.calcsize(fmt)))
 94 | 
 95 |     @property
 96 |     def interpreter(self) -> str | None:
 97 |         """
 98 |         The path recorded in the ``PT_INTERP`` section header.
 99 |         """
100 |         for index in range(self._e_phnum):
101 |             self._f.seek(self._e_phoff + self._e_phentsize * index)
102 |             try:
103 |                 data = self._read(self._p_fmt)
104 |             except struct.error:
105 |                 continue
106 |             if data[self._p_idx[0]] != 3:  # Not PT_INTERP.
107 |                 continue
108 |             self._f.seek(data[self._p_idx[1]])
109 |             return os.fsdecode(self._f.read(data[self._p_idx[2]])).strip("\0")
110 |         return None
111 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/cssselect.py:
--------------------------------------------------------------------------------

```python
  1 | """CSS Selectors based on XPath.
  2 | 
  3 | This module supports selecting XML/HTML tags based on CSS selectors.
  4 | See the `CSSSelector` class for details.
  5 | 
  6 | This is a thin wrapper around cssselect 0.7 or later.
  7 | """
  8 | 
  9 | 
 10 | from . import etree
 11 | try:
 12 |     import cssselect as external_cssselect
 13 | except ImportError:
 14 |     raise ImportError(
 15 |         'cssselect does not seem to be installed. '
 16 |         'See https://pypi.org/project/cssselect/')
 17 | 
 18 | 
 19 | SelectorSyntaxError = external_cssselect.SelectorSyntaxError
 20 | ExpressionError = external_cssselect.ExpressionError
 21 | SelectorError = external_cssselect.SelectorError
 22 | 
 23 | 
 24 | __all__ = ['SelectorSyntaxError', 'ExpressionError', 'SelectorError',
 25 |            'CSSSelector']
 26 | 
 27 | 
 28 | class LxmlTranslator(external_cssselect.GenericTranslator):
 29 |     """
 30 |     A custom CSS selector to XPath translator with lxml-specific extensions.
 31 |     """
 32 |     def xpath_contains_function(self, xpath, function):
 33 |         # Defined there, removed in later drafts:
 34 |         # http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#content-selectors
 35 |         if function.argument_types() not in (['STRING'], ['IDENT']):
 36 |             raise ExpressionError(
 37 |                 "Expected a single string or ident for :contains(), got %r"
 38 |                 % function.arguments)
 39 |         value = function.arguments[0].value
 40 |         return xpath.add_condition(
 41 |             'contains(__lxml_internal_css:lower-case(string(.)), %s)'
 42 |             % self.xpath_literal(value.lower()))
 43 | 
 44 | 
 45 | class LxmlHTMLTranslator(LxmlTranslator, external_cssselect.HTMLTranslator):
 46 |     """
 47 |     lxml extensions + HTML support.
 48 |     """
 49 | 
 50 | 
 51 | def _make_lower_case(context, s):
 52 |     return s.lower()
 53 | 
 54 | ns = etree.FunctionNamespace('http://codespeak.net/lxml/css/')
 55 | ns.prefix = '__lxml_internal_css'
 56 | ns['lower-case'] = _make_lower_case
 57 | 
 58 | 
 59 | class CSSSelector(etree.XPath):
 60 |     """A CSS selector.
 61 | 
 62 |     Usage::
 63 | 
 64 |         >>> from lxml import etree, cssselect
 65 |         >>> select = cssselect.CSSSelector("a tag > child")
 66 | 
 67 |         >>> root = etree.XML("<a><b><c/><tag><child>TEXT</child></tag></b></a>")
 68 |         >>> [ el.tag for el in select(root) ]
 69 |         ['child']
 70 | 
 71 |     To use CSS namespaces, you need to pass a prefix-to-namespace
 72 |     mapping as ``namespaces`` keyword argument::
 73 | 
 74 |         >>> rdfns = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
 75 |         >>> select_ns = cssselect.CSSSelector('root > rdf|Description',
 76 |         ...                                   namespaces={'rdf': rdfns})
 77 | 
 78 |         >>> rdf = etree.XML((
 79 |         ...     '<root xmlns:rdf="%s">'
 80 |         ...       '<rdf:Description>blah</rdf:Description>'
 81 |         ...     '</root>') % rdfns)
 82 |         >>> [(el.tag, el.text) for el in select_ns(rdf)]
 83 |         [('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description', 'blah')]
 84 | 
 85 |     """
 86 |     def __init__(self, css, namespaces=None, translator='xml'):
 87 |         if translator == 'xml':
 88 |             translator = LxmlTranslator()
 89 |         elif translator == 'html':
 90 |             translator = LxmlHTMLTranslator()
 91 |         elif translator == 'xhtml':
 92 |             translator = LxmlHTMLTranslator(xhtml=True)
 93 |         path = translator.css_to_xpath(css)
 94 |         super().__init__(path, namespaces=namespaces)
 95 |         self.css = css
 96 | 
 97 |     def __repr__(self):
 98 |         return '<%s %x for %r>' % (
 99 |             self.__class__.__name__,
100 |             abs(id(self)),
101 |             self.css)
102 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py:
--------------------------------------------------------------------------------

```python
 1 | # Automatically generated by scripts/gen_mapfiles.py.
 2 | # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead.
 3 | 
 4 | STYLES = {
 5 |     'AbapStyle': ('pygments.styles.abap', 'abap', ()),
 6 |     'AlgolStyle': ('pygments.styles.algol', 'algol', ()),
 7 |     'Algol_NuStyle': ('pygments.styles.algol_nu', 'algol_nu', ()),
 8 |     'ArduinoStyle': ('pygments.styles.arduino', 'arduino', ()),
 9 |     'AutumnStyle': ('pygments.styles.autumn', 'autumn', ()),
10 |     'BlackWhiteStyle': ('pygments.styles.bw', 'bw', ()),
11 |     'BorlandStyle': ('pygments.styles.borland', 'borland', ()),
12 |     'CoffeeStyle': ('pygments.styles.coffee', 'coffee', ()),
13 |     'ColorfulStyle': ('pygments.styles.colorful', 'colorful', ()),
14 |     'DefaultStyle': ('pygments.styles.default', 'default', ()),
15 |     'DraculaStyle': ('pygments.styles.dracula', 'dracula', ()),
16 |     'EmacsStyle': ('pygments.styles.emacs', 'emacs', ()),
17 |     'FriendlyGrayscaleStyle': ('pygments.styles.friendly_grayscale', 'friendly_grayscale', ()),
18 |     'FriendlyStyle': ('pygments.styles.friendly', 'friendly', ()),
19 |     'FruityStyle': ('pygments.styles.fruity', 'fruity', ()),
20 |     'GhDarkStyle': ('pygments.styles.gh_dark', 'github-dark', ()),
21 |     'GruvboxDarkStyle': ('pygments.styles.gruvbox', 'gruvbox-dark', ()),
22 |     'GruvboxLightStyle': ('pygments.styles.gruvbox', 'gruvbox-light', ()),
23 |     'IgorStyle': ('pygments.styles.igor', 'igor', ()),
24 |     'InkPotStyle': ('pygments.styles.inkpot', 'inkpot', ()),
25 |     'LightbulbStyle': ('pygments.styles.lightbulb', 'lightbulb', ()),
26 |     'LilyPondStyle': ('pygments.styles.lilypond', 'lilypond', ()),
27 |     'LovelaceStyle': ('pygments.styles.lovelace', 'lovelace', ()),
28 |     'ManniStyle': ('pygments.styles.manni', 'manni', ()),
29 |     'MaterialStyle': ('pygments.styles.material', 'material', ()),
30 |     'MonokaiStyle': ('pygments.styles.monokai', 'monokai', ()),
31 |     'MurphyStyle': ('pygments.styles.murphy', 'murphy', ()),
32 |     'NativeStyle': ('pygments.styles.native', 'native', ()),
33 |     'NordDarkerStyle': ('pygments.styles.nord', 'nord-darker', ()),
34 |     'NordStyle': ('pygments.styles.nord', 'nord', ()),
35 |     'OneDarkStyle': ('pygments.styles.onedark', 'one-dark', ()),
36 |     'ParaisoDarkStyle': ('pygments.styles.paraiso_dark', 'paraiso-dark', ()),
37 |     'ParaisoLightStyle': ('pygments.styles.paraiso_light', 'paraiso-light', ()),
38 |     'PastieStyle': ('pygments.styles.pastie', 'pastie', ()),
39 |     'PerldocStyle': ('pygments.styles.perldoc', 'perldoc', ()),
40 |     'RainbowDashStyle': ('pygments.styles.rainbow_dash', 'rainbow_dash', ()),
41 |     'RrtStyle': ('pygments.styles.rrt', 'rrt', ()),
42 |     'SasStyle': ('pygments.styles.sas', 'sas', ()),
43 |     'SolarizedDarkStyle': ('pygments.styles.solarized', 'solarized-dark', ()),
44 |     'SolarizedLightStyle': ('pygments.styles.solarized', 'solarized-light', ()),
45 |     'StarofficeStyle': ('pygments.styles.staroffice', 'staroffice', ()),
46 |     'StataDarkStyle': ('pygments.styles.stata_dark', 'stata-dark', ()),
47 |     'StataLightStyle': ('pygments.styles.stata_light', 'stata-light', ()),
48 |     'TangoStyle': ('pygments.styles.tango', 'tango', ()),
49 |     'TracStyle': ('pygments.styles.trac', 'trac', ()),
50 |     'VimStyle': ('pygments.styles.vim', 'vim', ()),
51 |     'VisualStudioStyle': ('pygments.styles.vs', 'vs', ()),
52 |     'XcodeStyle': ('pygments.styles.xcode', 'xcode', ()),
53 |     'ZenburnStyle': ('pygments.styles.zenburn', 'zenburn', ()),
54 | }
55 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 |     pygments.formatters.bbcode
  3 |     ~~~~~~~~~~~~~~~~~~~~~~~~~~
  4 | 
  5 |     BBcode formatter.
  6 | 
  7 |     :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
  8 |     :license: BSD, see LICENSE for details.
  9 | """
 10 | 
 11 | 
 12 | from pip._vendor.pygments.formatter import Formatter
 13 | from pip._vendor.pygments.util import get_bool_opt
 14 | 
 15 | __all__ = ['BBCodeFormatter']
 16 | 
 17 | 
 18 | class BBCodeFormatter(Formatter):
 19 |     """
 20 |     Format tokens with BBcodes. These formatting codes are used by many
 21 |     bulletin boards, so you can highlight your sourcecode with pygments before
 22 |     posting it there.
 23 | 
 24 |     This formatter has no support for background colors and borders, as there
 25 |     are no common BBcode tags for that.
 26 | 
 27 |     Some board systems (e.g. phpBB) don't support colors in their [code] tag,
 28 |     so you can't use the highlighting together with that tag.
 29 |     Text in a [code] tag usually is shown with a monospace font (which this
 30 |     formatter can do with the ``monofont`` option) and no spaces (which you
 31 |     need for indentation) are removed.
 32 | 
 33 |     Additional options accepted:
 34 | 
 35 |     `style`
 36 |         The style to use, can be a string or a Style subclass (default:
 37 |         ``'default'``).
 38 | 
 39 |     `codetag`
 40 |         If set to true, put the output into ``[code]`` tags (default:
 41 |         ``false``)
 42 | 
 43 |     `monofont`
 44 |         If set to true, add a tag to show the code with a monospace font
 45 |         (default: ``false``).
 46 |     """
 47 |     name = 'BBCode'
 48 |     aliases = ['bbcode', 'bb']
 49 |     filenames = []
 50 | 
 51 |     def __init__(self, **options):
 52 |         Formatter.__init__(self, **options)
 53 |         self._code = get_bool_opt(options, 'codetag', False)
 54 |         self._mono = get_bool_opt(options, 'monofont', False)
 55 | 
 56 |         self.styles = {}
 57 |         self._make_styles()
 58 | 
 59 |     def _make_styles(self):
 60 |         for ttype, ndef in self.style:
 61 |             start = end = ''
 62 |             if ndef['color']:
 63 |                 start += '[color=#{}]'.format(ndef['color'])
 64 |                 end = '[/color]' + end
 65 |             if ndef['bold']:
 66 |                 start += '[b]'
 67 |                 end = '[/b]' + end
 68 |             if ndef['italic']:
 69 |                 start += '[i]'
 70 |                 end = '[/i]' + end
 71 |             if ndef['underline']:
 72 |                 start += '[u]'
 73 |                 end = '[/u]' + end
 74 |             # there are no common BBcodes for background-color and border
 75 | 
 76 |             self.styles[ttype] = start, end
 77 | 
 78 |     def format_unencoded(self, tokensource, outfile):
 79 |         if self._code:
 80 |             outfile.write('[code]')
 81 |         if self._mono:
 82 |             outfile.write('[font=monospace]')
 83 | 
 84 |         lastval = ''
 85 |         lasttype = None
 86 | 
 87 |         for ttype, value in tokensource:
 88 |             while ttype not in self.styles:
 89 |                 ttype = ttype.parent
 90 |             if ttype == lasttype:
 91 |                 lastval += value
 92 |             else:
 93 |                 if lastval:
 94 |                     start, end = self.styles[lasttype]
 95 |                     outfile.write(''.join((start, lastval, end)))
 96 |                 lastval = value
 97 |                 lasttype = ttype
 98 | 
 99 |         if lastval:
100 |             start, end = self.styles[lasttype]
101 |             outfile.write(''.join((start, lastval, end)))
102 | 
103 |         if self._mono:
104 |             outfile.write('[/font]')
105 |         if self._code:
106 |             outfile.write('[/code]')
107 |         if self._code or self._mono:
108 |             outfile.write('\n')
109 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py:
--------------------------------------------------------------------------------

```python
 1 | from __future__ import annotations
 2 | 
 3 | import re
 4 | from typing import Iterable
 5 | 
 6 | from ._loop import loop_last
 7 | from .cells import cell_len, chop_cells
 8 | 
 9 | re_word = re.compile(r"\s*\S+\s*")
10 | 
11 | 
12 | def words(text: str) -> Iterable[tuple[int, int, str]]:
13 |     """Yields each word from the text as a tuple
14 |     containing (start_index, end_index, word). A "word" in this context may
15 |     include the actual word and any whitespace to the right.
16 |     """
17 |     position = 0
18 |     word_match = re_word.match(text, position)
19 |     while word_match is not None:
20 |         start, end = word_match.span()
21 |         word = word_match.group(0)
22 |         yield start, end, word
23 |         word_match = re_word.match(text, end)
24 | 
25 | 
26 | def divide_line(text: str, width: int, fold: bool = True) -> list[int]:
27 |     """Given a string of text, and a width (measured in cells), return a list
28 |     of cell offsets which the string should be split at in order for it to fit
29 |     within the given width.
30 | 
31 |     Args:
32 |         text: The text to examine.
33 |         width: The available cell width.
34 |         fold: If True, words longer than `width` will be folded onto a new line.
35 | 
36 |     Returns:
37 |         A list of indices to break the line at.
38 |     """
39 |     break_positions: list[int] = []  # offsets to insert the breaks at
40 |     append = break_positions.append
41 |     cell_offset = 0
42 |     _cell_len = cell_len
43 | 
44 |     for start, _end, word in words(text):
45 |         word_length = _cell_len(word.rstrip())
46 |         remaining_space = width - cell_offset
47 |         word_fits_remaining_space = remaining_space >= word_length
48 | 
49 |         if word_fits_remaining_space:
50 |             # Simplest case - the word fits within the remaining width for this line.
51 |             cell_offset += _cell_len(word)
52 |         else:
53 |             # Not enough space remaining for this word on the current line.
54 |             if word_length > width:
55 |                 # The word doesn't fit on any line, so we can't simply
56 |                 # place it on the next line...
57 |                 if fold:
58 |                     # Fold the word across multiple lines.
59 |                     folded_word = chop_cells(word, width=width)
60 |                     for last, line in loop_last(folded_word):
61 |                         if start:
62 |                             append(start)
63 |                         if last:
64 |                             cell_offset = _cell_len(line)
65 |                         else:
66 |                             start += len(line)
67 |                 else:
68 |                     # Folding isn't allowed, so crop the word.
69 |                     if start:
70 |                         append(start)
71 |                     cell_offset = _cell_len(word)
72 |             elif cell_offset and start:
73 |                 # The word doesn't fit within the remaining space on the current
74 |                 # line, but it *can* fit on to the next (empty) line.
75 |                 append(start)
76 |                 cell_offset = _cell_len(word)
77 | 
78 |     return break_positions
79 | 
80 | 
81 | if __name__ == "__main__":  # pragma: no cover
82 |     from .console import Console
83 | 
84 |     console = Console(width=10)
85 |     console.print("12345 abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ 12345")
86 |     print(chop_cells("abcdefghijklmnopqrstuvwxyz", 10))
87 | 
88 |     console = Console(width=20)
89 |     console.rule()
90 |     console.print("TextualはPythonの高速アプリケーション開発フレームワークです")
91 | 
92 |     console.rule()
93 |     console.print("アプリケーションは1670万色を使用でき")
94 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 | Python HTTP library with thread-safe connection pooling, file post support, user friendly, and more
  3 | """
  4 | from __future__ import absolute_import
  5 | 
  6 | # Set default logging handler to avoid "No handler found" warnings.
  7 | import logging
  8 | import warnings
  9 | from logging import NullHandler
 10 | 
 11 | from . import exceptions
 12 | from ._version import __version__
 13 | from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
 14 | from .filepost import encode_multipart_formdata
 15 | from .poolmanager import PoolManager, ProxyManager, proxy_from_url
 16 | from .response import HTTPResponse
 17 | from .util.request import make_headers
 18 | from .util.retry import Retry
 19 | from .util.timeout import Timeout
 20 | from .util.url import get_host
 21 | 
 22 | # === NOTE TO REPACKAGERS AND VENDORS ===
 23 | # Please delete this block, this logic is only
 24 | # for urllib3 being distributed via PyPI.
 25 | # See: https://github.com/urllib3/urllib3/issues/2680
 26 | try:
 27 |     import urllib3_secure_extra  # type: ignore # noqa: F401
 28 | except ImportError:
 29 |     pass
 30 | else:
 31 |     warnings.warn(
 32 |         "'urllib3[secure]' extra is deprecated and will be removed "
 33 |         "in a future release of urllib3 2.x. Read more in this issue: "
 34 |         "https://github.com/urllib3/urllib3/issues/2680",
 35 |         category=DeprecationWarning,
 36 |         stacklevel=2,
 37 |     )
 38 | 
 39 | __author__ = "Andrey Petrov ([email protected])"
 40 | __license__ = "MIT"
 41 | __version__ = __version__
 42 | 
 43 | __all__ = (
 44 |     "HTTPConnectionPool",
 45 |     "HTTPSConnectionPool",
 46 |     "PoolManager",
 47 |     "ProxyManager",
 48 |     "HTTPResponse",
 49 |     "Retry",
 50 |     "Timeout",
 51 |     "add_stderr_logger",
 52 |     "connection_from_url",
 53 |     "disable_warnings",
 54 |     "encode_multipart_formdata",
 55 |     "get_host",
 56 |     "make_headers",
 57 |     "proxy_from_url",
 58 | )
 59 | 
 60 | logging.getLogger(__name__).addHandler(NullHandler())
 61 | 
 62 | 
 63 | def add_stderr_logger(level=logging.DEBUG):
 64 |     """
 65 |     Helper for quickly adding a StreamHandler to the logger. Useful for
 66 |     debugging.
 67 | 
 68 |     Returns the handler after adding it.
 69 |     """
 70 |     # This method needs to be in this __init__.py to get the __name__ correct
 71 |     # even if urllib3 is vendored within another package.
 72 |     logger = logging.getLogger(__name__)
 73 |     handler = logging.StreamHandler()
 74 |     handler.setFormatter(logging.Formatter("%(asctime)s %(levelname)s %(message)s"))
 75 |     logger.addHandler(handler)
 76 |     logger.setLevel(level)
 77 |     logger.debug("Added a stderr logging handler to logger: %s", __name__)
 78 |     return handler
 79 | 
 80 | 
 81 | # ... Clean up.
 82 | del NullHandler
 83 | 
 84 | 
 85 | # All warning filters *must* be appended unless you're really certain that they
 86 | # shouldn't be: otherwise, it's very hard for users to use most Python
 87 | # mechanisms to silence them.
 88 | # SecurityWarning's always go off by default.
 89 | warnings.simplefilter("always", exceptions.SecurityWarning, append=True)
 90 | # SubjectAltNameWarning's should go off once per host
 91 | warnings.simplefilter("default", exceptions.SubjectAltNameWarning, append=True)
 92 | # InsecurePlatformWarning's don't vary between requests, so we keep it default.
 93 | warnings.simplefilter("default", exceptions.InsecurePlatformWarning, append=True)
 94 | # SNIMissingWarnings should go off only once.
 95 | warnings.simplefilter("default", exceptions.SNIMissingWarning, append=True)
 96 | 
 97 | 
 98 | def disable_warnings(category=exceptions.HTTPWarning):
 99 |     """
100 |     Helper for quickly disabling all urllib3 warnings.
101 |     """
102 |     warnings.simplefilter("ignore", category)
103 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py:
--------------------------------------------------------------------------------

```python
  1 | """Functions brought over from jaraco.text.
  2 | 
  3 | These functions are not supposed to be used within `pip._internal`. These are
  4 | helper functions brought over from `jaraco.text` to enable vendoring newer
  5 | copies of `pkg_resources` without having to vendor `jaraco.text` and its entire
  6 | dependency cone; something that our vendoring setup is not currently capable of
  7 | handling.
  8 | 
  9 | License reproduced from original source below:
 10 | 
 11 | Copyright Jason R. Coombs
 12 | 
 13 | Permission is hereby granted, free of charge, to any person obtaining a copy
 14 | of this software and associated documentation files (the "Software"), to
 15 | deal in the Software without restriction, including without limitation the
 16 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 17 | sell copies of the Software, and to permit persons to whom the Software is
 18 | furnished to do so, subject to the following conditions:
 19 | 
 20 | The above copyright notice and this permission notice shall be included in
 21 | all copies or substantial portions of the Software.
 22 | 
 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 29 | IN THE SOFTWARE.
 30 | """
 31 | 
 32 | import functools
 33 | import itertools
 34 | 
 35 | 
 36 | def _nonblank(str):
 37 |     return str and not str.startswith("#")
 38 | 
 39 | 
 40 | @functools.singledispatch
 41 | def yield_lines(iterable):
 42 |     r"""
 43 |     Yield valid lines of a string or iterable.
 44 | 
 45 |     >>> list(yield_lines(''))
 46 |     []
 47 |     >>> list(yield_lines(['foo', 'bar']))
 48 |     ['foo', 'bar']
 49 |     >>> list(yield_lines('foo\nbar'))
 50 |     ['foo', 'bar']
 51 |     >>> list(yield_lines('\nfoo\n#bar\nbaz #comment'))
 52 |     ['foo', 'baz #comment']
 53 |     >>> list(yield_lines(['foo\nbar', 'baz', 'bing\n\n\n']))
 54 |     ['foo', 'bar', 'baz', 'bing']
 55 |     """
 56 |     return itertools.chain.from_iterable(map(yield_lines, iterable))
 57 | 
 58 | 
 59 | @yield_lines.register(str)
 60 | def _(text):
 61 |     return filter(_nonblank, map(str.strip, text.splitlines()))
 62 | 
 63 | 
 64 | def drop_comment(line):
 65 |     """
 66 |     Drop comments.
 67 | 
 68 |     >>> drop_comment('foo # bar')
 69 |     'foo'
 70 | 
 71 |     A hash without a space may be in a URL.
 72 | 
 73 |     >>> drop_comment('http://example.com/foo#bar')
 74 |     'http://example.com/foo#bar'
 75 |     """
 76 |     return line.partition(" #")[0]
 77 | 
 78 | 
 79 | def join_continuation(lines):
 80 |     r"""
 81 |     Join lines continued by a trailing backslash.
 82 | 
 83 |     >>> list(join_continuation(['foo \\', 'bar', 'baz']))
 84 |     ['foobar', 'baz']
 85 |     >>> list(join_continuation(['foo \\', 'bar', 'baz']))
 86 |     ['foobar', 'baz']
 87 |     >>> list(join_continuation(['foo \\', 'bar \\', 'baz']))
 88 |     ['foobarbaz']
 89 | 
 90 |     Not sure why, but...
 91 |     The character preceding the backslash is also elided.
 92 | 
 93 |     >>> list(join_continuation(['goo\\', 'dly']))
 94 |     ['godly']
 95 | 
 96 |     A terrible idea, but...
 97 |     If no line is available to continue, suppress the lines.
 98 | 
 99 |     >>> list(join_continuation(['foo', 'bar\\', 'baz\\']))
100 |     ['foo']
101 |     """
102 |     lines = iter(lines)
103 |     for item in lines:
104 |         while item.endswith("\\"):
105 |             try:
106 |                 item = item[:-2].strip() + next(lines)
107 |             except StopIteration:
108 |                 return
109 |         yield item
110 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/soupsieve/util.py:
--------------------------------------------------------------------------------

```python
  1 | """Utility."""
  2 | from __future__ import annotations
  3 | from functools import wraps, lru_cache
  4 | import warnings
  5 | import re
  6 | from typing import Callable, Any
  7 | 
  8 | DEBUG = 0x00001
  9 | 
 10 | RE_PATTERN_LINE_SPLIT = re.compile(r'(?:\r\n|(?!\r\n)[\n\r])|$')
 11 | 
 12 | UC_A = ord('A')
 13 | UC_Z = ord('Z')
 14 | 
 15 | 
 16 | @lru_cache(maxsize=512)
 17 | def lower(string: str) -> str:
 18 |     """Lower."""
 19 | 
 20 |     new_string = []
 21 |     for c in string:
 22 |         o = ord(c)
 23 |         new_string.append(chr(o + 32) if UC_A <= o <= UC_Z else c)
 24 |     return ''.join(new_string)
 25 | 
 26 | 
 27 | class SelectorSyntaxError(Exception):
 28 |     """Syntax error in a CSS selector."""
 29 | 
 30 |     def __init__(self, msg: str, pattern: str | None = None, index: int | None = None) -> None:
 31 |         """Initialize."""
 32 | 
 33 |         self.line = None
 34 |         self.col = None
 35 |         self.context = None
 36 | 
 37 |         if pattern is not None and index is not None:
 38 |             # Format pattern to show line and column position
 39 |             self.context, self.line, self.col = get_pattern_context(pattern, index)
 40 |             msg = f'{msg}\n  line {self.line}:\n{self.context}'
 41 | 
 42 |         super().__init__(msg)
 43 | 
 44 | 
 45 | def deprecated(message: str, stacklevel: int = 2) -> Callable[..., Any]:  # pragma: no cover
 46 |     """
 47 |     Raise a `DeprecationWarning` when wrapped function/method is called.
 48 | 
 49 |     Usage:
 50 | 
 51 |         @deprecated("This method will be removed in version X; use Y instead.")
 52 |         def some_method()"
 53 |             pass
 54 |     """
 55 | 
 56 |     def _wrapper(func: Callable[..., Any]) -> Callable[..., Any]:
 57 |         @wraps(func)
 58 |         def _deprecated_func(*args: Any, **kwargs: Any) -> Any:
 59 |             warnings.warn(
 60 |                 f"'{func.__name__}' is deprecated. {message}",
 61 |                 category=DeprecationWarning,
 62 |                 stacklevel=stacklevel
 63 |             )
 64 |             return func(*args, **kwargs)
 65 |         return _deprecated_func
 66 |     return _wrapper
 67 | 
 68 | 
 69 | def warn_deprecated(message: str, stacklevel: int = 2) -> None:  # pragma: no cover
 70 |     """Warn deprecated."""
 71 | 
 72 |     warnings.warn(
 73 |         message,
 74 |         category=DeprecationWarning,
 75 |         stacklevel=stacklevel
 76 |     )
 77 | 
 78 | 
 79 | def get_pattern_context(pattern: str, index: int) -> tuple[str, int, int]:
 80 |     """Get the pattern context."""
 81 | 
 82 |     last = 0
 83 |     current_line = 1
 84 |     col = 1
 85 |     text = []  # type: list[str]
 86 |     line = 1
 87 |     offset = None  # type: int | None
 88 | 
 89 |     # Split pattern by newline and handle the text before the newline
 90 |     for m in RE_PATTERN_LINE_SPLIT.finditer(pattern):
 91 |         linetext = pattern[last:m.start(0)]
 92 |         if not len(m.group(0)) and not len(text):
 93 |             indent = ''
 94 |             offset = -1
 95 |             col = index - last + 1
 96 |         elif last <= index < m.end(0):
 97 |             indent = '--> '
 98 |             offset = (-1 if index > m.start(0) else 0) + 3
 99 |             col = index - last + 1
100 |         else:
101 |             indent = '    '
102 |             offset = None
103 |         if len(text):
104 |             # Regardless of whether we are presented with `\r\n`, `\r`, or `\n`,
105 |             # we will render the output with just `\n`. We will still log the column
106 |             # correctly though.
107 |             text.append('\n')
108 |         text.append(f'{indent}{linetext}')
109 |         if offset is not None:
110 |             text.append('\n')
111 |             text.append(' ' * (col + offset) + '^')
112 |             line = current_line
113 | 
114 |         current_line += 1
115 |         last = m.end(0)
116 | 
117 |     return ''.join(text), line, col
118 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py:
--------------------------------------------------------------------------------

```python
  1 | from typing import List, Optional, Tuple
  2 | 
  3 | from .color_triplet import ColorTriplet
  4 | from .palette import Palette
  5 | 
  6 | _ColorTuple = Tuple[int, int, int]
  7 | 
  8 | 
  9 | class TerminalTheme:
 10 |     """A color theme used when exporting console content.
 11 | 
 12 |     Args:
 13 |         background (Tuple[int, int, int]): The background color.
 14 |         foreground (Tuple[int, int, int]): The foreground (text) color.
 15 |         normal (List[Tuple[int, int, int]]): A list of 8 normal intensity colors.
 16 |         bright (List[Tuple[int, int, int]], optional): A list of 8 bright colors, or None
 17 |             to repeat normal intensity. Defaults to None.
 18 |     """
 19 | 
 20 |     def __init__(
 21 |         self,
 22 |         background: _ColorTuple,
 23 |         foreground: _ColorTuple,
 24 |         normal: List[_ColorTuple],
 25 |         bright: Optional[List[_ColorTuple]] = None,
 26 |     ) -> None:
 27 |         self.background_color = ColorTriplet(*background)
 28 |         self.foreground_color = ColorTriplet(*foreground)
 29 |         self.ansi_colors = Palette(normal + (bright or normal))
 30 | 
 31 | 
 32 | DEFAULT_TERMINAL_THEME = TerminalTheme(
 33 |     (255, 255, 255),
 34 |     (0, 0, 0),
 35 |     [
 36 |         (0, 0, 0),
 37 |         (128, 0, 0),
 38 |         (0, 128, 0),
 39 |         (128, 128, 0),
 40 |         (0, 0, 128),
 41 |         (128, 0, 128),
 42 |         (0, 128, 128),
 43 |         (192, 192, 192),
 44 |     ],
 45 |     [
 46 |         (128, 128, 128),
 47 |         (255, 0, 0),
 48 |         (0, 255, 0),
 49 |         (255, 255, 0),
 50 |         (0, 0, 255),
 51 |         (255, 0, 255),
 52 |         (0, 255, 255),
 53 |         (255, 255, 255),
 54 |     ],
 55 | )
 56 | 
 57 | MONOKAI = TerminalTheme(
 58 |     (12, 12, 12),
 59 |     (217, 217, 217),
 60 |     [
 61 |         (26, 26, 26),
 62 |         (244, 0, 95),
 63 |         (152, 224, 36),
 64 |         (253, 151, 31),
 65 |         (157, 101, 255),
 66 |         (244, 0, 95),
 67 |         (88, 209, 235),
 68 |         (196, 197, 181),
 69 |         (98, 94, 76),
 70 |     ],
 71 |     [
 72 |         (244, 0, 95),
 73 |         (152, 224, 36),
 74 |         (224, 213, 97),
 75 |         (157, 101, 255),
 76 |         (244, 0, 95),
 77 |         (88, 209, 235),
 78 |         (246, 246, 239),
 79 |     ],
 80 | )
 81 | DIMMED_MONOKAI = TerminalTheme(
 82 |     (25, 25, 25),
 83 |     (185, 188, 186),
 84 |     [
 85 |         (58, 61, 67),
 86 |         (190, 63, 72),
 87 |         (135, 154, 59),
 88 |         (197, 166, 53),
 89 |         (79, 118, 161),
 90 |         (133, 92, 141),
 91 |         (87, 143, 164),
 92 |         (185, 188, 186),
 93 |         (136, 137, 135),
 94 |     ],
 95 |     [
 96 |         (251, 0, 31),
 97 |         (15, 114, 47),
 98 |         (196, 112, 51),
 99 |         (24, 109, 227),
100 |         (251, 0, 103),
101 |         (46, 112, 109),
102 |         (253, 255, 185),
103 |     ],
104 | )
105 | NIGHT_OWLISH = TerminalTheme(
106 |     (255, 255, 255),
107 |     (64, 63, 83),
108 |     [
109 |         (1, 22, 39),
110 |         (211, 66, 62),
111 |         (42, 162, 152),
112 |         (218, 170, 1),
113 |         (72, 118, 214),
114 |         (64, 63, 83),
115 |         (8, 145, 106),
116 |         (122, 129, 129),
117 |         (122, 129, 129),
118 |     ],
119 |     [
120 |         (247, 110, 110),
121 |         (73, 208, 197),
122 |         (218, 194, 107),
123 |         (92, 167, 228),
124 |         (105, 112, 152),
125 |         (0, 201, 144),
126 |         (152, 159, 177),
127 |     ],
128 | )
129 | 
130 | SVG_EXPORT_THEME = TerminalTheme(
131 |     (41, 41, 41),
132 |     (197, 200, 198),
133 |     [
134 |         (75, 78, 85),
135 |         (204, 85, 90),
136 |         (152, 168, 75),
137 |         (208, 179, 68),
138 |         (96, 138, 177),
139 |         (152, 114, 159),
140 |         (104, 160, 179),
141 |         (197, 200, 198),
142 |         (154, 155, 153),
143 |     ],
144 |     [
145 |         (255, 38, 39),
146 |         (0, 130, 61),
147 |         (208, 132, 66),
148 |         (25, 132, 233),
149 |         (255, 44, 122),
150 |         (57, 130, 128),
151 |         (253, 253, 197),
152 |     ],
153 | )
154 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/urllib3/util/response.py:
--------------------------------------------------------------------------------

```python
  1 | from __future__ import annotations
  2 | 
  3 | import http.client as httplib
  4 | from email.errors import MultipartInvariantViolationDefect, StartBoundaryNotFoundDefect
  5 | 
  6 | from ..exceptions import HeaderParsingError
  7 | 
  8 | 
  9 | def is_fp_closed(obj: object) -> bool:
 10 |     """
 11 |     Checks whether a given file-like object is closed.
 12 | 
 13 |     :param obj:
 14 |         The file-like object to check.
 15 |     """
 16 | 
 17 |     try:
 18 |         # Check `isclosed()` first, in case Python3 doesn't set `closed`.
 19 |         # GH Issue #928
 20 |         return obj.isclosed()  # type: ignore[no-any-return, attr-defined]
 21 |     except AttributeError:
 22 |         pass
 23 | 
 24 |     try:
 25 |         # Check via the official file-like-object way.
 26 |         return obj.closed  # type: ignore[no-any-return, attr-defined]
 27 |     except AttributeError:
 28 |         pass
 29 | 
 30 |     try:
 31 |         # Check if the object is a container for another file-like object that
 32 |         # gets released on exhaustion (e.g. HTTPResponse).
 33 |         return obj.fp is None  # type: ignore[attr-defined]
 34 |     except AttributeError:
 35 |         pass
 36 | 
 37 |     raise ValueError("Unable to determine whether fp is closed.")
 38 | 
 39 | 
 40 | def assert_header_parsing(headers: httplib.HTTPMessage) -> None:
 41 |     """
 42 |     Asserts whether all headers have been successfully parsed.
 43 |     Extracts encountered errors from the result of parsing headers.
 44 | 
 45 |     Only works on Python 3.
 46 | 
 47 |     :param http.client.HTTPMessage headers: Headers to verify.
 48 | 
 49 |     :raises urllib3.exceptions.HeaderParsingError:
 50 |         If parsing errors are found.
 51 |     """
 52 | 
 53 |     # This will fail silently if we pass in the wrong kind of parameter.
 54 |     # To make debugging easier add an explicit check.
 55 |     if not isinstance(headers, httplib.HTTPMessage):
 56 |         raise TypeError(f"expected httplib.Message, got {type(headers)}.")
 57 | 
 58 |     unparsed_data = None
 59 | 
 60 |     # get_payload is actually email.message.Message.get_payload;
 61 |     # we're only interested in the result if it's not a multipart message
 62 |     if not headers.is_multipart():
 63 |         payload = headers.get_payload()
 64 | 
 65 |         if isinstance(payload, (bytes, str)):
 66 |             unparsed_data = payload
 67 | 
 68 |     # httplib is assuming a response body is available
 69 |     # when parsing headers even when httplib only sends
 70 |     # header data to parse_headers() This results in
 71 |     # defects on multipart responses in particular.
 72 |     # See: https://github.com/urllib3/urllib3/issues/800
 73 | 
 74 |     # So we ignore the following defects:
 75 |     # - StartBoundaryNotFoundDefect:
 76 |     #     The claimed start boundary was never found.
 77 |     # - MultipartInvariantViolationDefect:
 78 |     #     A message claimed to be a multipart but no subparts were found.
 79 |     defects = [
 80 |         defect
 81 |         for defect in headers.defects
 82 |         if not isinstance(
 83 |             defect, (StartBoundaryNotFoundDefect, MultipartInvariantViolationDefect)
 84 |         )
 85 |     ]
 86 | 
 87 |     if defects or unparsed_data:
 88 |         raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data)
 89 | 
 90 | 
 91 | def is_response_to_head(response: httplib.HTTPResponse) -> bool:
 92 |     """
 93 |     Checks whether the request of a response has been a HEAD-request.
 94 | 
 95 |     :param http.client.HTTPResponse response:
 96 |         Response to check if the originating request
 97 |         used 'HEAD' as a method.
 98 |     """
 99 |     # FIXME: Can we do this somehow without accessing private httplib _method?
100 |     method_str = response._method  # type: str  # type: ignore[attr-defined]
101 |     return method_str.upper() == "HEAD"
102 | 
```
Page 8/168FirstPrevNextLast