#
tokens: 49871/50000 45/808 files (page 2/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 2 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/_vendor/rich/abc.py:
--------------------------------------------------------------------------------

```python
 1 | from abc import ABC
 2 | 
 3 | 
 4 | class RichRenderable(ABC):
 5 |     """An abstract base class for Rich renderables.
 6 | 
 7 |     Note that there is no need to extend this class, the intended use is to check if an
 8 |     object supports the Rich renderable protocol. For example::
 9 | 
10 |         if isinstance(my_object, RichRenderable):
11 |             console.print(my_object)
12 | 
13 |     """
14 | 
15 |     @classmethod
16 |     def __subclasshook__(cls, other: type) -> bool:
17 |         """Check if this class supports the rich render protocol."""
18 |         return hasattr(other, "__rich_console__") or hasattr(other, "__rich__")
19 | 
20 | 
21 | if __name__ == "__main__":  # pragma: no cover
22 |     from pip._vendor.rich.text import Text
23 | 
24 |     t = Text()
25 |     print(isinstance(Text, RichRenderable))
26 |     print(isinstance(t, RichRenderable))
27 | 
28 |     class Foo:
29 |         pass
30 | 
31 |     f = Foo()
32 |     print(isinstance(f, RichRenderable))
33 |     print(isinstance("", RichRenderable))
34 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/preproc.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: precomputing stylesheets
 3 |  * Description: this is the compilation phase, where most of the
 4 |  *              stylesheet is "compiled" into faster to use data.
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Daniel Veillard
 9 |  */
10 | 
11 | #ifndef __XML_XSLT_PRECOMP_H__
12 | #define __XML_XSLT_PRECOMP_H__
13 | 
14 | #include <libxml/tree.h>
15 | #include "xsltexports.h"
16 | #include "xsltInternals.h"
17 | 
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 | 
22 | /*
23 |  * Interfaces
24 |  */
25 | XSLTPUBVAR const xmlChar *xsltExtMarker;
26 | 
27 | XSLTPUBFUN xsltElemPreCompPtr XSLTCALL
28 | 		xsltDocumentComp	(xsltStylesheetPtr style,
29 | 					 xmlNodePtr inst,
30 | 					 xsltTransformFunction function);
31 | 
32 | XSLTPUBFUN void XSLTCALL
33 | 		xsltStylePreCompute	(xsltStylesheetPtr style,
34 | 					 xmlNodePtr inst);
35 | XSLTPUBFUN void XSLTCALL
36 | 		xsltFreeStylePreComps	(xsltStylesheetPtr style);
37 | 
38 | #ifdef __cplusplus
39 | }
40 | #endif
41 | 
42 | #endif /* __XML_XSLT_PRECOMP_H__ */
43 | 
44 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/requests/packages.py:
--------------------------------------------------------------------------------

```python
 1 | import sys
 2 | 
 3 | from .compat import chardet
 4 | 
 5 | # This code exists for backwards compatibility reasons.
 6 | # I don't like it either. Just look the other way. :)
 7 | 
 8 | for package in ("urllib3", "idna"):
 9 |     locals()[package] = __import__(package)
10 |     # This traversal is apparently necessary such that the identities are
11 |     # preserved (requests.packages.urllib3.* is urllib3.*)
12 |     for mod in list(sys.modules):
13 |         if mod == package or mod.startswith(f"{package}."):
14 |             sys.modules[f"requests.packages.{mod}"] = sys.modules[mod]
15 | 
16 | if chardet is not None:
17 |     target = chardet.__name__
18 |     for mod in list(sys.modules):
19 |         if mod == target or mod.startswith(f"{target}."):
20 |             imported_mod = sys.modules[mod]
21 |             sys.modules[f"requests.packages.{mod}"] = imported_mod
22 |             mod = mod.replace(target, "chardet")
23 |             sys.modules[f"requests.packages.{mod}"] = imported_mod
24 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/xsltlocale.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: Locale handling
 3 |  * Description: Interfaces for locale handling. Needed for language dependent
 4 |  *              sorting.
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Nick Wellnhofer
 9 |  */
10 | 
11 | #ifndef __XML_XSLTLOCALE_H__
12 | #define __XML_XSLTLOCALE_H__
13 | 
14 | #include <libxml/xmlstring.h>
15 | #include "xsltexports.h"
16 | 
17 | #ifdef __cplusplus
18 | extern "C" {
19 | #endif
20 | 
21 | XSLTPUBFUN void * XSLTCALL
22 | 	xsltNewLocale			(const xmlChar *langName,
23 | 					 int lowerFirst);
24 | XSLTPUBFUN void XSLTCALL
25 | 	xsltFreeLocale			(void *locale);
26 | XSLTPUBFUN xmlChar * XSLTCALL
27 | 	xsltStrxfrm			(void *locale,
28 | 					 const xmlChar *string);
29 | XSLTPUBFUN void XSLTCALL
30 | 	xsltFreeLocales			(void);
31 | 
32 | /* Backward compatibility */
33 | typedef void *xsltLocale;
34 | typedef xmlChar xsltLocaleChar;
35 | XSLTPUBFUN int XSLTCALL
36 | 	xsltLocaleStrcmp		(void *locale,
37 | 					 const xmlChar *str1,
38 | 					 const xmlChar *str2);
39 | 
40 | #ifdef __cplusplus
41 | }
42 | #endif
43 | 
44 | #endif /* __XML_XSLTLOCALE_H__ */
45 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/attributes.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: interface for the XSLT attribute handling
 3 |  * Description: this module handles the specificities of attribute
 4 |  *              and attribute groups processing.
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Daniel Veillard
 9 |  */
10 | 
11 | #ifndef __XML_XSLT_ATTRIBUTES_H__
12 | #define __XML_XSLT_ATTRIBUTES_H__
13 | 
14 | #include <libxml/tree.h>
15 | #include "xsltexports.h"
16 | #include "xsltInternals.h"
17 | 
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 | 
22 | XSLTPUBFUN void XSLTCALL
23 | 	xsltParseStylesheetAttributeSet	(xsltStylesheetPtr style,
24 | 					 xmlNodePtr cur);
25 | XSLTPUBFUN void XSLTCALL
26 | 	xsltFreeAttributeSetsHashes	(xsltStylesheetPtr style);
27 | XSLTPUBFUN void XSLTCALL
28 | 	xsltApplyAttributeSet		(xsltTransformContextPtr ctxt,
29 | 					 xmlNodePtr node,
30 | 					 xmlNodePtr inst,
31 | 					 const xmlChar *attributes);
32 | XSLTPUBFUN void XSLTCALL
33 | 	xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style);
34 | #ifdef __cplusplus
35 | }
36 | #endif
37 | 
38 | #endif /* __XML_XSLT_ATTRIBUTES_H__ */
39 | 
40 | 
```

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

```python
 1 | """
 2 | This module provides means to detect the App Engine environment.
 3 | """
 4 | 
 5 | import os
 6 | 
 7 | 
 8 | def is_appengine():
 9 |     return is_local_appengine() or is_prod_appengine()
10 | 
11 | 
12 | def is_appengine_sandbox():
13 |     """Reports if the app is running in the first generation sandbox.
14 | 
15 |     The second generation runtimes are technically still in a sandbox, but it
16 |     is much less restrictive, so generally you shouldn't need to check for it.
17 |     see https://cloud.google.com/appengine/docs/standard/runtimes
18 |     """
19 |     return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27"
20 | 
21 | 
22 | def is_local_appengine():
23 |     return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
24 |         "SERVER_SOFTWARE", ""
25 |     ).startswith("Development/")
26 | 
27 | 
28 | def is_prod_appengine():
29 |     return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
30 |         "SERVER_SOFTWARE", ""
31 |     ).startswith("Google App Engine/")
32 | 
33 | 
34 | def is_prod_appengine_mvms():
35 |     """Deprecated."""
36 |     return False
37 | 
```

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

```python
 1 | import os
 2 | import platform
 3 | 
 4 | from pip._vendor.rich import inspect
 5 | from pip._vendor.rich.console import Console, get_windows_console_features
 6 | from pip._vendor.rich.panel import Panel
 7 | from pip._vendor.rich.pretty import Pretty
 8 | 
 9 | 
10 | def report() -> None:  # pragma: no cover
11 |     """Print a report to the terminal with debugging information"""
12 |     console = Console()
13 |     inspect(console)
14 |     features = get_windows_console_features()
15 |     inspect(features)
16 | 
17 |     env_names = (
18 |         "TERM",
19 |         "COLORTERM",
20 |         "CLICOLOR",
21 |         "NO_COLOR",
22 |         "TERM_PROGRAM",
23 |         "COLUMNS",
24 |         "LINES",
25 |         "JUPYTER_COLUMNS",
26 |         "JUPYTER_LINES",
27 |         "JPY_PARENT_PID",
28 |         "VSCODE_VERBOSE_LOGGING",
29 |     )
30 |     env = {name: os.getenv(name) for name in env_names}
31 |     console.print(Panel.fit((Pretty(env)), title="[b]Environment Variables"))
32 | 
33 |     console.print(f'platform="{platform.system()}"')
34 | 
35 | 
36 | if __name__ == "__main__":  # pragma: no cover
37 |     report()
38 | 
```

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

```python
 1 | from .distro import (
 2 |     NORMALIZED_DISTRO_ID,
 3 |     NORMALIZED_LSB_ID,
 4 |     NORMALIZED_OS_ID,
 5 |     LinuxDistribution,
 6 |     __version__,
 7 |     build_number,
 8 |     codename,
 9 |     distro_release_attr,
10 |     distro_release_info,
11 |     id,
12 |     info,
13 |     like,
14 |     linux_distribution,
15 |     lsb_release_attr,
16 |     lsb_release_info,
17 |     major_version,
18 |     minor_version,
19 |     name,
20 |     os_release_attr,
21 |     os_release_info,
22 |     uname_attr,
23 |     uname_info,
24 |     version,
25 |     version_parts,
26 | )
27 | 
28 | __all__ = [
29 |     "NORMALIZED_DISTRO_ID",
30 |     "NORMALIZED_LSB_ID",
31 |     "NORMALIZED_OS_ID",
32 |     "LinuxDistribution",
33 |     "build_number",
34 |     "codename",
35 |     "distro_release_attr",
36 |     "distro_release_info",
37 |     "id",
38 |     "info",
39 |     "like",
40 |     "linux_distribution",
41 |     "lsb_release_attr",
42 |     "lsb_release_info",
43 |     "major_version",
44 |     "minor_version",
45 |     "name",
46 |     "os_release_attr",
47 |     "os_release_info",
48 |     "uname_attr",
49 |     "uname_info",
50 |     "version",
51 |     "version_parts",
52 | ]
53 | 
54 | __version__ = __version__
55 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/xmlexports.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: macros for marking symbols as exportable/importable.
 3 |  * Description: macros for marking symbols as exportable/importable.
 4 |  *
 5 |  * Copy: See Copyright for the status of this software.
 6 |  */
 7 | 
 8 | #ifndef __XML_EXPORTS_H__
 9 | #define __XML_EXPORTS_H__
10 | 
11 | /** DOC_DISABLE */
12 | #if defined(_WIN32) || defined(__CYGWIN__)
13 |   #ifdef LIBXML_STATIC
14 |     #define XMLPUBLIC
15 |   #elif defined(IN_LIBXML)
16 |     #define XMLPUBLIC __declspec(dllexport)
17 |   #else
18 |     #define XMLPUBLIC __declspec(dllimport)
19 |   #endif
20 | #else /* not Windows */
21 |   #define XMLPUBLIC
22 | #endif /* platform switch */
23 | /** DOC_ENABLE */
24 | 
25 | /*
26 |  * XMLPUBFUN:
27 |  *
28 |  * Macro which declares an exportable function
29 |  */
30 | #define XMLPUBFUN XMLPUBLIC
31 | 
32 | /**
33 |  * XMLPUBVAR:
34 |  *
35 |  * Macro which declares an exportable variable
36 |  */
37 | #define XMLPUBVAR XMLPUBLIC extern
38 | 
39 | /** DOC_DISABLE */
40 | /* Compatibility */
41 | #define XMLCALL
42 | #define XMLCDECL
43 | #if !defined(LIBXML_DLL_IMPORT)
44 | #define LIBXML_DLL_IMPORT XMLPUBVAR
45 | #endif
46 | /** DOC_ENABLE */
47 | 
48 | #endif /* __XML_EXPORTS_H__ */
49 | 
50 | 
51 | 
```

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

```python
 1 | # For backwards compatibility, provide imports that used to be here.
 2 | from __future__ import annotations
 3 | 
 4 | from .connection import is_connection_dropped
 5 | from .request import SKIP_HEADER, SKIPPABLE_HEADERS, make_headers
 6 | from .response import is_fp_closed
 7 | from .retry import Retry
 8 | from .ssl_ import (
 9 |     ALPN_PROTOCOLS,
10 |     IS_PYOPENSSL,
11 |     SSLContext,
12 |     assert_fingerprint,
13 |     create_urllib3_context,
14 |     resolve_cert_reqs,
15 |     resolve_ssl_version,
16 |     ssl_wrap_socket,
17 | )
18 | from .timeout import Timeout
19 | from .url import Url, parse_url
20 | from .wait import wait_for_read, wait_for_write
21 | 
22 | __all__ = (
23 |     "IS_PYOPENSSL",
24 |     "SSLContext",
25 |     "ALPN_PROTOCOLS",
26 |     "Retry",
27 |     "Timeout",
28 |     "Url",
29 |     "assert_fingerprint",
30 |     "create_urllib3_context",
31 |     "is_connection_dropped",
32 |     "is_fp_closed",
33 |     "parse_url",
34 |     "make_headers",
35 |     "resolve_cert_reqs",
36 |     "resolve_ssl_version",
37 |     "ssl_wrap_socket",
38 |     "wait_for_read",
39 |     "wait_for_write",
40 |     "SKIP_HEADER",
41 |     "SKIPPABLE_HEADERS",
42 | )
43 | 
```

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

```python
 1 | """
 2 |     pygments.modeline
 3 |     ~~~~~~~~~~~~~~~~~
 4 | 
 5 |     A simple modeline parser (based on pymodeline).
 6 | 
 7 |     :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
 8 |     :license: BSD, see LICENSE for details.
 9 | """
10 | 
11 | import re
12 | 
13 | __all__ = ['get_filetype_from_buffer']
14 | 
15 | 
16 | modeline_re = re.compile(r'''
17 |     (?: vi | vim | ex ) (?: [<=>]? \d* )? :
18 |     .* (?: ft | filetype | syn | syntax ) = ( [^:\s]+ )
19 | ''', re.VERBOSE)
20 | 
21 | 
22 | def get_filetype_from_line(l): # noqa: E741
23 |     m = modeline_re.search(l)
24 |     if m:
25 |         return m.group(1)
26 | 
27 | 
28 | def get_filetype_from_buffer(buf, max_lines=5):
29 |     """
30 |     Scan the buffer for modelines and return filetype if one is found.
31 |     """
32 |     lines = buf.splitlines()
33 |     for line in lines[-1:-max_lines-1:-1]:
34 |         ret = get_filetype_from_line(line)
35 |         if ret:
36 |             return ret
37 |     for i in range(max_lines, -1, -1):
38 |         if i < len(lines):
39 |             ret = get_filetype_from_line(lines[i])
40 |             if ret:
41 |                 return ret
42 | 
43 |     return None
44 | 
```

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

```python
 1 | """Customize logging
 2 | 
 3 | Defines custom logger class for the `logger.verbose(...)` method.
 4 | 
 5 | init_logging() must be called before any other modules that call logging.getLogger.
 6 | """
 7 | 
 8 | import logging
 9 | from typing import Any, cast
10 | 
11 | # custom log level for `--verbose` output
12 | # between DEBUG and INFO
13 | VERBOSE = 15
14 | 
15 | 
16 | class VerboseLogger(logging.Logger):
17 |     """Custom Logger, defining a verbose log-level
18 | 
19 |     VERBOSE is between INFO and DEBUG.
20 |     """
21 | 
22 |     def verbose(self, msg: str, *args: Any, **kwargs: Any) -> None:
23 |         return self.log(VERBOSE, msg, *args, **kwargs)
24 | 
25 | 
26 | def getLogger(name: str) -> VerboseLogger:
27 |     """logging.getLogger, but ensures our VerboseLogger class is returned"""
28 |     return cast(VerboseLogger, logging.getLogger(name))
29 | 
30 | 
31 | def init_logging() -> None:
32 |     """Register our VerboseLogger and VERBOSE log level.
33 | 
34 |     Should be called before any calls to getLogger(),
35 |     i.e. in pip._internal.__init__
36 |     """
37 |     logging.setLoggerClass(VerboseLogger)
38 |     logging.addLevelName(VERBOSE, "VERBOSE")
39 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/models/index.py:
--------------------------------------------------------------------------------

```python
 1 | import urllib.parse
 2 | 
 3 | 
 4 | class PackageIndex:
 5 |     """Represents a Package Index and provides easier access to endpoints"""
 6 | 
 7 |     __slots__ = ["url", "netloc", "simple_url", "pypi_url", "file_storage_domain"]
 8 | 
 9 |     def __init__(self, url: str, file_storage_domain: str) -> None:
10 |         super().__init__()
11 |         self.url = url
12 |         self.netloc = urllib.parse.urlsplit(url).netloc
13 |         self.simple_url = self._url_for_path("simple")
14 |         self.pypi_url = self._url_for_path("pypi")
15 | 
16 |         # This is part of a temporary hack used to block installs of PyPI
17 |         # packages which depend on external urls only necessary until PyPI can
18 |         # block such packages themselves
19 |         self.file_storage_domain = file_storage_domain
20 | 
21 |     def _url_for_path(self, path: str) -> str:
22 |         return urllib.parse.urljoin(self.url, path)
23 | 
24 | 
25 | PyPI = PackageIndex("https://pypi.org/", file_storage_domain="files.pythonhosted.org")
26 | TestPyPI = PackageIndex(
27 |     "https://test.pypi.org/", file_storage_domain="test-files.pythonhosted.org"
28 | )
29 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/blinker-1.8.2.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2010 Jason Kirtland
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining a
 4 | copy of this software and associated documentation files (the
 5 | "Software"), to deal in the Software without restriction, including
 6 | without limitation the rights to use, copy, modify, merge, publish,
 7 | distribute, sublicense, and/or sell copies of the Software, and to
 8 | permit persons to whom the Software is furnished to do so, subject to
 9 | the following conditions:
10 | 
11 | The above copyright notice and this permission notice shall be included
12 | in all copies or substantial portions of the Software.
13 | 
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 | 
```

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

```python
 1 | from typing import NamedTuple, Tuple
 2 | 
 3 | 
 4 | class ColorTriplet(NamedTuple):
 5 |     """The red, green, and blue components of a color."""
 6 | 
 7 |     red: int
 8 |     """Red component in 0 to 255 range."""
 9 |     green: int
10 |     """Green component in 0 to 255 range."""
11 |     blue: int
12 |     """Blue component in 0 to 255 range."""
13 | 
14 |     @property
15 |     def hex(self) -> str:
16 |         """get the color triplet in CSS style."""
17 |         red, green, blue = self
18 |         return f"#{red:02x}{green:02x}{blue:02x}"
19 | 
20 |     @property
21 |     def rgb(self) -> str:
22 |         """The color in RGB format.
23 | 
24 |         Returns:
25 |             str: An rgb color, e.g. ``"rgb(100,23,255)"``.
26 |         """
27 |         red, green, blue = self
28 |         return f"rgb({red},{green},{blue})"
29 | 
30 |     @property
31 |     def normalized(self) -> Tuple[float, float, float]:
32 |         """Convert components into floats between 0 and 1.
33 | 
34 |         Returns:
35 |             Tuple[float, float, float]: A tuple of three normalized colour components.
36 |         """
37 |         red, green, blue = self
38 |         return red / 255.0, green / 255.0, blue / 255.0
39 | 
```

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

```python
 1 | import sys
 2 | 
 3 | from .compat import chardet
 4 | 
 5 | # This code exists for backwards compatibility reasons.
 6 | # I don't like it either. Just look the other way. :)
 7 | 
 8 | for package in ("urllib3", "idna"):
 9 |     vendored_package = "pip._vendor." + package
10 |     locals()[package] = __import__(vendored_package)
11 |     # This traversal is apparently necessary such that the identities are
12 |     # preserved (requests.packages.urllib3.* is urllib3.*)
13 |     for mod in list(sys.modules):
14 |         if mod == vendored_package or mod.startswith(vendored_package + '.'):
15 |             unprefixed_mod = mod[len("pip._vendor."):]
16 |             sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod]
17 | 
18 | if chardet is not None:
19 |     target = chardet.__name__
20 |     for mod in list(sys.modules):
21 |         if mod == target or mod.startswith(f"{target}."):
22 |             imported_mod = sys.modules[mod]
23 |             sys.modules[f"requests.packages.{mod}"] = imported_mod
24 |             mod = mod.replace(target, "chardet")
25 |             sys.modules[f"requests.packages.{mod}"] = imported_mod
26 | 
```

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

```python
 1 | from typing import Callable, Match, Optional
 2 | import re
 3 | 
 4 | from ._emoji_codes import EMOJI
 5 | 
 6 | 
 7 | _ReStringMatch = Match[str]  # regex match object
 8 | _ReSubCallable = Callable[[_ReStringMatch], str]  # Callable invoked by re.sub
 9 | _EmojiSubMethod = Callable[[_ReSubCallable, str], str]  # Sub method of a compiled re
10 | 
11 | 
12 | def _emoji_replace(
13 |     text: str,
14 |     default_variant: Optional[str] = None,
15 |     _emoji_sub: _EmojiSubMethod = re.compile(r"(:(\S*?)(?:(?:\-)(emoji|text))?:)").sub,
16 | ) -> str:
17 |     """Replace emoji code in text."""
18 |     get_emoji = EMOJI.__getitem__
19 |     variants = {"text": "\uFE0E", "emoji": "\uFE0F"}
20 |     get_variant = variants.get
21 |     default_variant_code = variants.get(default_variant, "") if default_variant else ""
22 | 
23 |     def do_replace(match: Match[str]) -> str:
24 |         emoji_code, emoji_name, variant = match.groups()
25 |         try:
26 |             return get_emoji(emoji_name.lower()) + get_variant(
27 |                 variant, default_variant_code
28 |             )
29 |         except KeyError:
30 |             return emoji_code
31 | 
32 |     return _emoji_sub(do_replace, text)
33 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libexslt/exsltexports.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: macros for marking symbols as exportable/importable.
 3 |  *
 4 |  * Copy: See Copyright for the status of this software.
 5 |  */
 6 | 
 7 | #ifndef __EXSLT_EXPORTS_H__
 8 | #define __EXSLT_EXPORTS_H__
 9 | 
10 | #if defined(_WIN32) || defined(__CYGWIN__)
11 | /** DOC_DISABLE */
12 | 
13 | #ifdef LIBEXSLT_STATIC
14 |   #define EXSLTPUBLIC
15 | #elif defined(IN_LIBEXSLT)
16 |   #define EXSLTPUBLIC __declspec(dllexport)
17 | #else
18 |   #define EXSLTPUBLIC __declspec(dllimport)
19 | #endif
20 | 
21 | #define EXSLTCALL __cdecl
22 | 
23 | /** DOC_ENABLE */
24 | #else /* not Windows */
25 | 
26 | /**
27 |  * EXSLTPUBLIC:
28 |  *
29 |  * Macro which declares a public symbol
30 |  */
31 | #define EXSLTPUBLIC
32 | 
33 | /**
34 |  * EXSLTCALL:
35 |  *
36 |  * Macro which declares the calling convention for exported functions
37 |  */
38 | #define EXSLTCALL
39 | 
40 | #endif /* platform switch */
41 | 
42 | /*
43 |  * EXSLTPUBFUN:
44 |  *
45 |  * Macro which declares an exportable function
46 |  */
47 | #define EXSLTPUBFUN EXSLTPUBLIC
48 | 
49 | /**
50 |  * EXSLTPUBVAR:
51 |  *
52 |  * Macro which declares an exportable variable
53 |  */
54 | #define EXSLTPUBVAR EXSLTPUBLIC extern
55 | 
56 | /* Compatibility */
57 | #if !defined(LIBEXSLT_PUBLIC)
58 | #define LIBEXSLT_PUBLIC EXSLTPUBVAR
59 | #endif
60 | 
61 | #endif /* __EXSLT_EXPORTS_H__ */
62 | 
63 | 
64 | 
```

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

```python
 1 | from .exceptions import *
 2 | from .ext import ExtType, Timestamp
 3 | 
 4 | import os
 5 | 
 6 | 
 7 | version = (1, 0, 8)
 8 | __version__ = "1.0.8"
 9 | 
10 | 
11 | if os.environ.get("MSGPACK_PUREPYTHON"):
12 |     from .fallback import Packer, unpackb, Unpacker
13 | else:
14 |     try:
15 |         from ._cmsgpack import Packer, unpackb, Unpacker
16 |     except ImportError:
17 |         from .fallback import Packer, unpackb, Unpacker
18 | 
19 | 
20 | def pack(o, stream, **kwargs):
21 |     """
22 |     Pack object `o` and write it to `stream`
23 | 
24 |     See :class:`Packer` for options.
25 |     """
26 |     packer = Packer(**kwargs)
27 |     stream.write(packer.pack(o))
28 | 
29 | 
30 | def packb(o, **kwargs):
31 |     """
32 |     Pack object `o` and return packed bytes
33 | 
34 |     See :class:`Packer` for options.
35 |     """
36 |     return Packer(**kwargs).pack(o)
37 | 
38 | 
39 | def unpack(stream, **kwargs):
40 |     """
41 |     Unpack an object from `stream`.
42 | 
43 |     Raises `ExtraData` when `stream` contains extra bytes.
44 |     See :class:`Unpacker` for options.
45 |     """
46 |     data = stream.read()
47 |     return unpackb(data, **kwargs)
48 | 
49 | 
50 | # alias for compatibility to simplejson/marshal/pickle.
51 | load = unpack
52 | loads = unpackb
53 | 
54 | dump = pack
55 | dumps = packb
56 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py:
--------------------------------------------------------------------------------

```python
 1 | class UnpackException(Exception):
 2 |     """Base class for some exceptions raised while unpacking.
 3 | 
 4 |     NOTE: unpack may raise exception other than subclass of
 5 |     UnpackException.  If you want to catch all error, catch
 6 |     Exception instead.
 7 |     """
 8 | 
 9 | 
10 | class BufferFull(UnpackException):
11 |     pass
12 | 
13 | 
14 | class OutOfData(UnpackException):
15 |     pass
16 | 
17 | 
18 | class FormatError(ValueError, UnpackException):
19 |     """Invalid msgpack format"""
20 | 
21 | 
22 | class StackError(ValueError, UnpackException):
23 |     """Too nested"""
24 | 
25 | 
26 | # Deprecated.  Use ValueError instead
27 | UnpackValueError = ValueError
28 | 
29 | 
30 | class ExtraData(UnpackValueError):
31 |     """ExtraData is raised when there is trailing data.
32 | 
33 |     This exception is raised while only one-shot (not streaming)
34 |     unpack.
35 |     """
36 | 
37 |     def __init__(self, unpacked, extra):
38 |         self.unpacked = unpacked
39 |         self.extra = extra
40 | 
41 |     def __str__(self):
42 |         return "unpack(b) received extra data."
43 | 
44 | 
45 | # Deprecated.  Use Exception instead to catch all exception during packing.
46 | PackException = Exception
47 | PackValueError = ValueError
48 | PackOverflowError = OverflowError
49 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip-24.2.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright (c) 2008-present The pip developers (see AUTHORS.txt file)
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining
 4 | a copy of this software and associated documentation files (the
 5 | "Software"), to deal in the Software without restriction, including
 6 | without limitation the rights to use, copy, modify, merge, publish,
 7 | distribute, sublicense, and/or sell copies of the Software, and to
 8 | permit persons to whom the Software is furnished to do so, subject to
 9 | the following conditions:
10 | 
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 | 
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/urllib3-2.2.3.dist-info/licenses/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | MIT License
 2 | 
 3 | Copyright (c) 2008-2020 Andrey Petrov and contributors.
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy
 6 | of this software and associated documentation files (the "Software"), to deal
 7 | in the Software without restriction, including without limitation the rights
 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 | 
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 | 
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/bs4/tests/test_builder.py:
--------------------------------------------------------------------------------

```python
 1 | import pytest
 2 | from unittest.mock import patch
 3 | from bs4.builder import DetectsXMLParsedAsHTML
 4 | 
 5 | class TestDetectsXMLParsedAsHTML(object):
 6 | 
 7 |     @pytest.mark.parametrize(
 8 |         "markup,looks_like_xml",
 9 |         [("No xml declaration", False),
10 |          ("<html>obviously HTML</html", False),
11 |          ("<?xml ><html>Actually XHTML</html>", False),
12 |          ("<?xml>            <    html>Tricky XHTML</html>", False),
13 |          ("<?xml ><no-html-tag>", True),
14 |         ]
15 |     )
16 |     def test_warn_if_markup_looks_like_xml(self, markup, looks_like_xml):
17 |         # Test of our ability to guess at whether markup looks XML-ish
18 |         # _and_ not HTML-ish.
19 |         with patch('bs4.builder.DetectsXMLParsedAsHTML._warn') as mock:
20 |             for data in markup, markup.encode('utf8'):
21 |                 result = DetectsXMLParsedAsHTML.warn_if_markup_looks_like_xml(
22 |                     data
23 |                 )
24 |                 assert result == looks_like_xml
25 |                 if looks_like_xml:
26 |                     assert mock.called
27 |                 else:
28 |                     assert not mock.called
29 |                 mock.reset_mock()
30 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/xsltexports.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: macros for marking symbols as exportable/importable.
 3 |  * Description: macros for marking symbols as exportable/importable.
 4 |  *
 5 |  * Copy: See Copyright for the status of this software.
 6 |  */
 7 | 
 8 | #ifndef __XSLT_EXPORTS_H__
 9 | #define __XSLT_EXPORTS_H__
10 | 
11 | #if defined(_WIN32) || defined(__CYGWIN__)
12 | /** DOC_DISABLE */
13 | 
14 | #ifdef LIBXSLT_STATIC
15 |   #define XSLTPUBLIC
16 | #elif defined(IN_LIBXSLT)
17 |   #define XSLTPUBLIC __declspec(dllexport)
18 | #else
19 |   #define XSLTPUBLIC __declspec(dllimport)
20 | #endif
21 | 
22 | #define XSLTCALL __cdecl
23 | 
24 | /** DOC_ENABLE */
25 | #else /* not Windows */
26 | 
27 | /**
28 |  * XSLTPUBLIC:
29 |  *
30 |  * Macro which declares a public symbol
31 |  */
32 | #define XSLTPUBLIC
33 | 
34 | /**
35 |  * XSLTCALL:
36 |  *
37 |  * Macro which declares the calling convention for exported functions
38 |  */
39 | #define XSLTCALL
40 | 
41 | #endif /* platform switch */
42 | 
43 | /*
44 |  * XSLTPUBFUN:
45 |  *
46 |  * Macro which declares an exportable function
47 |  */
48 | #define XSLTPUBFUN XSLTPUBLIC
49 | 
50 | /**
51 |  * XSLTPUBVAR:
52 |  *
53 |  * Macro which declares an exportable variable
54 |  */
55 | #define XSLTPUBVAR XSLTPUBLIC extern
56 | 
57 | /* Compatibility */
58 | #if !defined(LIBXSLT_PUBLIC)
59 | #define LIBXSLT_PUBLIC XSLTPUBVAR
60 | #endif
61 | 
62 | #endif /* __XSLT_EXPORTS_H__ */
63 | 
64 | 
65 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/bs4/tests/test_docs.py:
--------------------------------------------------------------------------------

```python
 1 | "Test harness for doctests."
 2 | 
 3 | # TODO: Pretty sure this isn't used and should be deleted.
 4 | 
 5 | # pylint: disable-msg=E0611,W0142
 6 | 
 7 | __metaclass__ = type
 8 | __all__ = [
 9 |     'additional_tests',
10 |     ]
11 | 
12 | import atexit
13 | import doctest
14 | import os
15 | #from pkg_resources import (
16 | #    resource_filename, resource_exists, resource_listdir, cleanup_resources)
17 | import unittest
18 | 
19 | DOCTEST_FLAGS = (
20 |     doctest.ELLIPSIS |
21 |     doctest.NORMALIZE_WHITESPACE |
22 |     doctest.REPORT_NDIFF)
23 | 
24 | 
25 | # def additional_tests():
26 | #     "Run the doc tests (README.txt and docs/*, if any exist)"
27 | #     doctest_files = [
28 | #         os.path.abspath(resource_filename('bs4', 'README.txt'))]
29 | #     if resource_exists('bs4', 'docs'):
30 | #         for name in resource_listdir('bs4', 'docs'):
31 | #             if name.endswith('.txt'):
32 | #                 doctest_files.append(
33 | #                     os.path.abspath(
34 | #                         resource_filename('bs4', 'docs/%s' % name)))
35 | #     kwargs = dict(module_relative=False, optionflags=DOCTEST_FLAGS)
36 | #     atexit.register(cleanup_resources)
37 | #     return unittest.TestSuite((
38 | #         doctest.DocFileSuite(*doctest_files, **kwargs)))
39 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py:
--------------------------------------------------------------------------------

```python
 1 | import ssl
 2 | import sys
 3 | import typing
 4 | 
 5 | # Hold on to the original class so we can create it consistently
 6 | # even if we inject our own SSLContext into the ssl module.
 7 | _original_SSLContext = ssl.SSLContext
 8 | _original_super_SSLContext = super(_original_SSLContext, _original_SSLContext)
 9 | 
10 | # CPython is known to be good, but non-CPython implementations
11 | # may implement SSLContext differently so to be safe we don't
12 | # subclass the SSLContext.
13 | 
14 | # This is returned by truststore.SSLContext.__class__()
15 | _truststore_SSLContext_dunder_class: typing.Optional[type]
16 | 
17 | # This value is the superclass of truststore.SSLContext.
18 | _truststore_SSLContext_super_class: type
19 | 
20 | if sys.implementation.name == "cpython":
21 |     _truststore_SSLContext_super_class = _original_SSLContext
22 |     _truststore_SSLContext_dunder_class = None
23 | else:
24 |     _truststore_SSLContext_super_class = object
25 |     _truststore_SSLContext_dunder_class = _original_SSLContext
26 | 
27 | 
28 | def _set_ssl_context_verify_mode(
29 |     ssl_context: ssl.SSLContext, verify_mode: ssl.VerifyMode
30 | ) -> None:
31 |     _original_super_SSLContext.verify_mode.__set__(ssl_context, verify_mode)  # type: ignore[attr-defined]
32 | 
```

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

```python
 1 | from optparse import Values
 2 | from typing import List
 3 | 
 4 | from pip._internal.cli.base_command import Command
 5 | from pip._internal.cli.status_codes import SUCCESS
 6 | from pip._internal.exceptions import CommandError
 7 | 
 8 | 
 9 | class HelpCommand(Command):
10 |     """Show help for commands"""
11 | 
12 |     usage = """
13 |       %prog <command>"""
14 |     ignore_require_venv = True
15 | 
16 |     def run(self, options: Values, args: List[str]) -> int:
17 |         from pip._internal.commands import (
18 |             commands_dict,
19 |             create_command,
20 |             get_similar_commands,
21 |         )
22 | 
23 |         try:
24 |             # 'pip help' with no args is handled by pip.__init__.parseopt()
25 |             cmd_name = args[0]  # the command we need help for
26 |         except IndexError:
27 |             return SUCCESS
28 | 
29 |         if cmd_name not in commands_dict:
30 |             guess = get_similar_commands(cmd_name)
31 | 
32 |             msg = [f'unknown command "{cmd_name}"']
33 |             if guess:
34 |                 msg.append(f'maybe you meant "{guess}"')
35 | 
36 |             raise CommandError(" - ".join(msg))
37 | 
38 |         command = create_command(cmd_name)
39 |         command.parser.print_help()
40 | 
41 |         return SUCCESS
42 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/xmlmodule.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary: dynamic module loading
 3 |  * Description: basic API for dynamic module loading, used by
 4 |  *              libexslt added in 2.6.17
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Joel W. Reed
 9 |  */
10 | 
11 | #ifndef __XML_MODULE_H__
12 | #define __XML_MODULE_H__
13 | 
14 | #include <libxml/xmlversion.h>
15 | 
16 | #ifdef LIBXML_MODULES_ENABLED
17 | 
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 | 
22 | /**
23 |  * xmlModulePtr:
24 |  *
25 |  * A handle to a dynamically loaded module
26 |  */
27 | typedef struct _xmlModule xmlModule;
28 | typedef xmlModule *xmlModulePtr;
29 | 
30 | /**
31 |  * xmlModuleOption:
32 |  *
33 |  * enumeration of options that can be passed down to xmlModuleOpen()
34 |  */
35 | typedef enum {
36 |     XML_MODULE_LAZY = 1,	/* lazy binding */
37 |     XML_MODULE_LOCAL= 2		/* local binding */
38 | } xmlModuleOption;
39 | 
40 | XMLPUBFUN xmlModulePtr xmlModuleOpen	(const char *filename,
41 | 						 int options);
42 | 
43 | XMLPUBFUN int xmlModuleSymbol		(xmlModulePtr module,
44 | 						 const char* name,
45 | 						 void **result);
46 | 
47 | XMLPUBFUN int xmlModuleClose		(xmlModulePtr module);
48 | 
49 | XMLPUBFUN int xmlModuleFree		(xmlModulePtr module);
50 | 
51 | #ifdef __cplusplus
52 | }
53 | #endif
54 | 
55 | #endif /* LIBXML_MODULES_ENABLED */
56 | 
57 | #endif /*__XML_MODULE_H__ */
58 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | import typing
 4 | from types import TracebackType
 5 | 
 6 | 
 7 | def to_bytes(
 8 |     x: str | bytes, encoding: str | None = None, errors: str | None = None
 9 | ) -> bytes:
10 |     if isinstance(x, bytes):
11 |         return x
12 |     elif not isinstance(x, str):
13 |         raise TypeError(f"not expecting type {type(x).__name__}")
14 |     if encoding or errors:
15 |         return x.encode(encoding or "utf-8", errors=errors or "strict")
16 |     return x.encode()
17 | 
18 | 
19 | def to_str(
20 |     x: str | bytes, encoding: str | None = None, errors: str | None = None
21 | ) -> str:
22 |     if isinstance(x, str):
23 |         return x
24 |     elif not isinstance(x, bytes):
25 |         raise TypeError(f"not expecting type {type(x).__name__}")
26 |     if encoding or errors:
27 |         return x.decode(encoding or "utf-8", errors=errors or "strict")
28 |     return x.decode()
29 | 
30 | 
31 | def reraise(
32 |     tp: type[BaseException] | None,
33 |     value: BaseException,
34 |     tb: TracebackType | None = None,
35 | ) -> typing.NoReturn:
36 |     try:
37 |         if value.__traceback__ is not tb:
38 |             raise value.with_traceback(tb)
39 |         raise value
40 |     finally:
41 |         value = None  # type: ignore[assignment]
42 |         tb = None
43 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | import typing
 4 | 
 5 | from .url import Url
 6 | 
 7 | if typing.TYPE_CHECKING:
 8 |     from ..connection import ProxyConfig
 9 | 
10 | 
11 | def connection_requires_http_tunnel(
12 |     proxy_url: Url | None = None,
13 |     proxy_config: ProxyConfig | None = None,
14 |     destination_scheme: str | None = None,
15 | ) -> bool:
16 |     """
17 |     Returns True if the connection requires an HTTP CONNECT through the proxy.
18 | 
19 |     :param URL proxy_url:
20 |         URL of the proxy.
21 |     :param ProxyConfig proxy_config:
22 |         Proxy configuration from poolmanager.py
23 |     :param str destination_scheme:
24 |         The scheme of the destination. (i.e https, http, etc)
25 |     """
26 |     # If we're not using a proxy, no way to use a tunnel.
27 |     if proxy_url is None:
28 |         return False
29 | 
30 |     # HTTP destinations never require tunneling, we always forward.
31 |     if destination_scheme == "http":
32 |         return False
33 | 
34 |     # Support for forwarding with HTTPS proxies and HTTPS destinations.
35 |     if (
36 |         proxy_url.scheme == "https"
37 |         and proxy_config
38 |         and proxy_config.use_forwarding_for_https
39 |     ):
40 |         return False
41 | 
42 |     # Otherwise always use a tunnel.
43 |     return True
44 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/keys.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * Summary:  interface for the key matching used in key() and template matches.
 3 |  * Description: implementation of the key mechanims.
 4 |  *
 5 |  * Copy: See Copyright for the status of this software.
 6 |  *
 7 |  * Author: Daniel Veillard
 8 |  */
 9 | 
10 | #ifndef __XML_XSLT_KEY_H__
11 | #define __XML_XSLT_KEY_H__
12 | 
13 | #include <libxml/xpath.h>
14 | #include "xsltexports.h"
15 | #include "xsltInternals.h"
16 | 
17 | #ifdef __cplusplus
18 | extern "C" {
19 | #endif
20 | 
21 | /**
22 |  * NODE_IS_KEYED:
23 |  *
24 |  * check for bit 15 set
25 |  */
26 | #define NODE_IS_KEYED (1 >> 15)
27 | 
28 | XSLTPUBFUN int XSLTCALL
29 | 		xsltAddKey		(xsltStylesheetPtr style,
30 | 					 const xmlChar *name,
31 | 					 const xmlChar *nameURI,
32 | 					 const xmlChar *match,
33 | 					 const xmlChar *use,
34 | 					 xmlNodePtr inst);
35 | XSLTPUBFUN xmlNodeSetPtr XSLTCALL
36 | 		xsltGetKey		(xsltTransformContextPtr ctxt,
37 | 					 const xmlChar *name,
38 | 					 const xmlChar *nameURI,
39 | 					 const xmlChar *value);
40 | XSLTPUBFUN void XSLTCALL
41 | 		xsltInitCtxtKeys	(xsltTransformContextPtr ctxt,
42 | 					 xsltDocumentPtr doc);
43 | XSLTPUBFUN void XSLTCALL
44 | 		xsltFreeKeys		(xsltStylesheetPtr style);
45 | XSLTPUBFUN void XSLTCALL
46 | 		xsltFreeDocumentKeys	(xsltDocumentPtr doc);
47 | 
48 | #ifdef __cplusplus
49 | }
50 | #endif
51 | 
52 | #endif /* __XML_XSLT_H__ */
53 | 
54 | 
```

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

```python
 1 | from __future__ import absolute_import
 2 | 
 3 | # For backwards compatibility, provide imports that used to be here.
 4 | from .connection import is_connection_dropped
 5 | from .request import SKIP_HEADER, SKIPPABLE_HEADERS, make_headers
 6 | from .response import is_fp_closed
 7 | from .retry import Retry
 8 | from .ssl_ import (
 9 |     ALPN_PROTOCOLS,
10 |     HAS_SNI,
11 |     IS_PYOPENSSL,
12 |     IS_SECURETRANSPORT,
13 |     PROTOCOL_TLS,
14 |     SSLContext,
15 |     assert_fingerprint,
16 |     resolve_cert_reqs,
17 |     resolve_ssl_version,
18 |     ssl_wrap_socket,
19 | )
20 | from .timeout import Timeout, current_time
21 | from .url import Url, get_host, parse_url, split_first
22 | from .wait import wait_for_read, wait_for_write
23 | 
24 | __all__ = (
25 |     "HAS_SNI",
26 |     "IS_PYOPENSSL",
27 |     "IS_SECURETRANSPORT",
28 |     "SSLContext",
29 |     "PROTOCOL_TLS",
30 |     "ALPN_PROTOCOLS",
31 |     "Retry",
32 |     "Timeout",
33 |     "Url",
34 |     "assert_fingerprint",
35 |     "current_time",
36 |     "is_connection_dropped",
37 |     "is_fp_closed",
38 |     "get_host",
39 |     "parse_url",
40 |     "make_headers",
41 |     "resolve_cert_reqs",
42 |     "resolve_ssl_version",
43 |     "split_first",
44 |     "ssl_wrap_socket",
45 |     "wait_for_read",
46 |     "wait_for_write",
47 |     "SKIP_HEADER",
48 |     "SKIPPABLE_HEADERS",
49 | )
50 | 
```

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

```python
 1 | import codecs
 2 | import locale
 3 | import re
 4 | import sys
 5 | from typing import List, Tuple
 6 | 
 7 | BOMS: List[Tuple[bytes, str]] = [
 8 |     (codecs.BOM_UTF8, "utf-8"),
 9 |     (codecs.BOM_UTF16, "utf-16"),
10 |     (codecs.BOM_UTF16_BE, "utf-16-be"),
11 |     (codecs.BOM_UTF16_LE, "utf-16-le"),
12 |     (codecs.BOM_UTF32, "utf-32"),
13 |     (codecs.BOM_UTF32_BE, "utf-32-be"),
14 |     (codecs.BOM_UTF32_LE, "utf-32-le"),
15 | ]
16 | 
17 | ENCODING_RE = re.compile(rb"coding[:=]\s*([-\w.]+)")
18 | 
19 | 
20 | def auto_decode(data: bytes) -> str:
21 |     """Check a bytes string for a BOM to correctly detect the encoding
22 | 
23 |     Fallback to locale.getpreferredencoding(False) like open() on Python3"""
24 |     for bom, encoding in BOMS:
25 |         if data.startswith(bom):
26 |             return data[len(bom) :].decode(encoding)
27 |     # Lets check the first two lines as in PEP263
28 |     for line in data.split(b"\n")[:2]:
29 |         if line[0:1] == b"#" and ENCODING_RE.search(line):
30 |             result = ENCODING_RE.search(line)
31 |             assert result is not None
32 |             encoding = result.groups()[0].decode("ascii")
33 |             return data.decode(encoding)
34 |     return data.decode(
35 |         locale.getpreferredencoding(False) or sys.getdefaultencoding(),
36 |     )
37 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libexslt/exsltconfig.h:
--------------------------------------------------------------------------------

```
 1 | /*
 2 |  * exsltconfig.h: compile-time version information for the EXSLT library
 3 |  *
 4 |  * See Copyright for the status of this software.
 5 |  *
 6 |  * [email protected]
 7 |  */
 8 | 
 9 | #ifndef __XML_EXSLTCONFIG_H__
10 | #define __XML_EXSLTCONFIG_H__
11 | 
12 | #ifdef __cplusplus
13 | extern "C" {
14 | #endif
15 | 
16 | /**
17 |  * LIBEXSLT_DOTTED_VERSION:
18 |  *
19 |  * the version string like "1.2.3"
20 |  */
21 | #define LIBEXSLT_DOTTED_VERSION "0.8.23"
22 | 
23 | /**
24 |  * LIBEXSLT_VERSION:
25 |  *
26 |  * the version number: 1.2.3 value is 10203
27 |  */
28 | #define LIBEXSLT_VERSION 823
29 | 
30 | /**
31 |  * LIBEXSLT_VERSION_STRING:
32 |  *
33 |  * the version number string, 1.2.3 value is "10203"
34 |  */
35 | #define LIBEXSLT_VERSION_STRING "823"
36 | 
37 | /**
38 |  * LIBEXSLT_VERSION_EXTRA:
39 |  *
40 |  * extra version information, used to show a Git commit description
41 |  */
42 | #define	LIBEXSLT_VERSION_EXTRA ""
43 | 
44 | /**
45 |  * WITH_CRYPTO:
46 |  *
47 |  * Whether crypto support is configured into exslt
48 |  */
49 | #if 0
50 | #define EXSLT_CRYPTO_ENABLED
51 | #endif
52 | 
53 | /**
54 |  * ATTRIBUTE_UNUSED:
55 |  *
56 |  * This macro is used to flag unused function parameters to GCC
57 |  */
58 | #ifdef __GNUC__
59 | #ifndef ATTRIBUTE_UNUSED
60 | #define ATTRIBUTE_UNUSED __attribute__((unused))
61 | #endif
62 | #else
63 | #define ATTRIBUTE_UNUSED
64 | #endif
65 | 
66 | #ifdef __cplusplus
67 | }
68 | #endif
69 | 
70 | #endif /* __XML_EXSLTCONFIG_H__ */
71 | 
```

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

```python
 1 | try:
 2 |     from collections.abc import MutableSet
 3 | except ImportError:
 4 |     from collections.abc import MutableSet
 5 | 
 6 | 
 7 | class SetMixin(MutableSet):
 8 | 
 9 |     """
10 |     Mix-in for sets.  You must define __iter__, add, remove
11 |     """
12 | 
13 |     def __len__(self):
14 |         length = 0
15 |         for item in self:
16 |             length += 1
17 |         return length
18 | 
19 |     def __contains__(self, item):
20 |         for has_item in self:
21 |             if item == has_item:
22 |                 return True
23 |         return False
24 | 
25 |     issubset = MutableSet.__le__
26 |     issuperset = MutableSet.__ge__
27 | 
28 |     union = MutableSet.__or__
29 |     intersection = MutableSet.__and__
30 |     difference = MutableSet.__sub__
31 |     symmetric_difference = MutableSet.__xor__
32 | 
33 |     def copy(self):
34 |         return set(self)
35 | 
36 |     def update(self, other):
37 |         self |= other
38 | 
39 |     def intersection_update(self, other):
40 |         self &= other
41 | 
42 |     def difference_update(self, other):
43 |         self -= other
44 | 
45 |     def symmetric_difference_update(self, other):
46 |         self ^= other
47 | 
48 |     def discard(self, item):
49 |         try:
50 |             self.remove(item)
51 |         except KeyError:
52 |             pass
53 | 
54 |     @classmethod
55 |     def _from_iterable(cls, it):
56 |         return set(it)
57 | 
```

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

```python
 1 | from typing import Iterable, Tuple, TypeVar
 2 | 
 3 | T = TypeVar("T")
 4 | 
 5 | 
 6 | def loop_first(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
 7 |     """Iterate and generate a tuple with a flag for first value."""
 8 |     iter_values = iter(values)
 9 |     try:
10 |         value = next(iter_values)
11 |     except StopIteration:
12 |         return
13 |     yield True, value
14 |     for value in iter_values:
15 |         yield False, value
16 | 
17 | 
18 | def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
19 |     """Iterate and generate a tuple with a flag for last value."""
20 |     iter_values = iter(values)
21 |     try:
22 |         previous_value = next(iter_values)
23 |     except StopIteration:
24 |         return
25 |     for value in iter_values:
26 |         yield False, previous_value
27 |         previous_value = value
28 |     yield True, previous_value
29 | 
30 | 
31 | def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
32 |     """Iterate and generate a tuple with a flag for first and last value."""
33 |     iter_values = iter(values)
34 |     try:
35 |         previous_value = next(iter_values)
36 |     except StopIteration:
37 |         return
38 |     first = True
39 |     for value in iter_values:
40 |         yield first, False, previous_value
41 |         first = False
42 |         previous_value = value
43 |     yield first, True, previous_value
44 | 
```

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

```python
 1 | from typing import TYPE_CHECKING
 2 | 
 3 | from .measure import Measurement
 4 | from .segment import Segment
 5 | from .style import StyleType
 6 | 
 7 | if TYPE_CHECKING:
 8 |     from .console import Console, ConsoleOptions, RenderResult, RenderableType
 9 | 
10 | 
11 | class Styled:
12 |     """Apply a style to a renderable.
13 | 
14 |     Args:
15 |         renderable (RenderableType): Any renderable.
16 |         style (StyleType): A style to apply across the entire renderable.
17 |     """
18 | 
19 |     def __init__(self, renderable: "RenderableType", style: "StyleType") -> None:
20 |         self.renderable = renderable
21 |         self.style = style
22 | 
23 |     def __rich_console__(
24 |         self, console: "Console", options: "ConsoleOptions"
25 |     ) -> "RenderResult":
26 |         style = console.get_style(self.style)
27 |         rendered_segments = console.render(self.renderable, options)
28 |         segments = Segment.apply_style(rendered_segments, style)
29 |         return segments
30 | 
31 |     def __rich_measure__(
32 |         self, console: "Console", options: "ConsoleOptions"
33 |     ) -> Measurement:
34 |         return Measurement.get(console, options, self.renderable)
35 | 
36 | 
37 | if __name__ == "__main__":  # pragma: no cover
38 |     from pip._vendor.rich import print
39 |     from pip._vendor.rich.panel import Panel
40 | 
41 |     panel = Styled(Panel("hello"), "on blue")
42 |     print(panel)
43 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/jinja2/defaults.py:
--------------------------------------------------------------------------------

```python
 1 | import typing as t
 2 | 
 3 | from .filters import FILTERS as DEFAULT_FILTERS  # noqa: F401
 4 | from .tests import TESTS as DEFAULT_TESTS  # noqa: F401
 5 | from .utils import Cycler
 6 | from .utils import generate_lorem_ipsum
 7 | from .utils import Joiner
 8 | from .utils import Namespace
 9 | 
10 | if t.TYPE_CHECKING:
11 |     import typing_extensions as te
12 | 
13 | # defaults for the parser / lexer
14 | BLOCK_START_STRING = "{%"
15 | BLOCK_END_STRING = "%}"
16 | VARIABLE_START_STRING = "{{"
17 | VARIABLE_END_STRING = "}}"
18 | COMMENT_START_STRING = "{#"
19 | COMMENT_END_STRING = "#}"
20 | LINE_STATEMENT_PREFIX: t.Optional[str] = None
21 | LINE_COMMENT_PREFIX: t.Optional[str] = None
22 | TRIM_BLOCKS = False
23 | LSTRIP_BLOCKS = False
24 | NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n"
25 | KEEP_TRAILING_NEWLINE = False
26 | 
27 | # default filters, tests and namespace
28 | 
29 | DEFAULT_NAMESPACE = {
30 |     "range": range,
31 |     "dict": dict,
32 |     "lipsum": generate_lorem_ipsum,
33 |     "cycler": Cycler,
34 |     "joiner": Joiner,
35 |     "namespace": Namespace,
36 | }
37 | 
38 | # default policies
39 | DEFAULT_POLICIES: t.Dict[str, t.Any] = {
40 |     "compiler.ascii_str": True,
41 |     "urlize.rel": "noopener",
42 |     "urlize.target": None,
43 |     "urlize.extra_schemes": None,
44 |     "truncate.leeway": 5,
45 |     "json.dumps_function": None,
46 |     "json.dumps_kwargs": {"sort_keys": True},
47 |     "ext.i18n.trimmed": False,
48 | }
49 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py:
--------------------------------------------------------------------------------

```python
 1 | """Legacy editable installation process, i.e. `setup.py develop`.
 2 | """
 3 | 
 4 | import logging
 5 | from typing import Optional, Sequence
 6 | 
 7 | from pip._internal.build_env import BuildEnvironment
 8 | from pip._internal.utils.logging import indent_log
 9 | from pip._internal.utils.setuptools_build import make_setuptools_develop_args
10 | from pip._internal.utils.subprocess import call_subprocess
11 | 
12 | logger = logging.getLogger(__name__)
13 | 
14 | 
15 | def install_editable(
16 |     *,
17 |     global_options: Sequence[str],
18 |     prefix: Optional[str],
19 |     home: Optional[str],
20 |     use_user_site: bool,
21 |     name: str,
22 |     setup_py_path: str,
23 |     isolated: bool,
24 |     build_env: BuildEnvironment,
25 |     unpacked_source_directory: str,
26 | ) -> None:
27 |     """Install a package in editable mode. Most arguments are pass-through
28 |     to setuptools.
29 |     """
30 |     logger.info("Running setup.py develop for %s", name)
31 | 
32 |     args = make_setuptools_develop_args(
33 |         setup_py_path,
34 |         global_options=global_options,
35 |         no_user_config=isolated,
36 |         prefix=prefix,
37 |         home=home,
38 |         use_user_site=use_user_site,
39 |     )
40 | 
41 |     with indent_log():
42 |         with build_env:
43 |             call_subprocess(
44 |                 args,
45 |                 command_desc="python setup.py develop",
46 |                 cwd=unpacked_source_directory,
47 |             )
48 | 
```

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

```python
 1 | from typing import Optional, TYPE_CHECKING
 2 | 
 3 | from .jupyter import JupyterMixin
 4 | from .measure import Measurement
 5 | 
 6 | if TYPE_CHECKING:
 7 |     from .console import Console, ConsoleOptions, RenderableType, RenderResult
 8 | 
 9 | 
10 | class Constrain(JupyterMixin):
11 |     """Constrain the width of a renderable to a given number of characters.
12 | 
13 |     Args:
14 |         renderable (RenderableType): A renderable object.
15 |         width (int, optional): The maximum width (in characters) to render. Defaults to 80.
16 |     """
17 | 
18 |     def __init__(self, renderable: "RenderableType", width: Optional[int] = 80) -> None:
19 |         self.renderable = renderable
20 |         self.width = width
21 | 
22 |     def __rich_console__(
23 |         self, console: "Console", options: "ConsoleOptions"
24 |     ) -> "RenderResult":
25 |         if self.width is None:
26 |             yield self.renderable
27 |         else:
28 |             child_options = options.update_width(min(self.width, options.max_width))
29 |             yield from console.render(self.renderable, child_options)
30 | 
31 |     def __rich_measure__(
32 |         self, console: "Console", options: "ConsoleOptions"
33 |     ) -> "Measurement":
34 |         if self.width is not None:
35 |             options = options.update_width(self.width)
36 |         measurement = Measurement.get(console, options, self.renderable)
37 |         return measurement
38 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/useragent/test/test_device.json:
--------------------------------------------------------------------------------

```json
1 | {"test_cases": [{"user_agent_string": "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10", "is_mobile": true, "family": "iPad", "is_spider": false}, {"user_agent_string": "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5", "is_mobile": true, "family": "iPod", "is_spider": false}, {"user_agent_string": "Mozilla/5.0 (iPhone; U; fr; CPU iPhone OS 4_2_1 like Mac OS X; fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5", "is_mobile": true, "family": "iPhone", "is_spider": false}, {"user_agent_string": "Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7510 Build/HRI83) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13", "is_mobile": true, "family": "GT-P7510", "is_spider": false}, {"user_agent_string": "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/0.0.1 Safari/534.8+", "is_mobile": false, "family": "Blackberry Playbook", "is_spider": false}, {"user_agent_string": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", "is_mobile": false, "family": "Spider", "is_spider": true}]}
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import TYPE_CHECKING, Optional
 2 | 
 3 | from pip._vendor.packaging.utils import canonicalize_name
 4 | 
 5 | from pip._internal.distributions.base import AbstractDistribution
 6 | from pip._internal.metadata import (
 7 |     BaseDistribution,
 8 |     FilesystemWheel,
 9 |     get_wheel_distribution,
10 | )
11 | 
12 | if TYPE_CHECKING:
13 |     from pip._internal.index.package_finder import PackageFinder
14 | 
15 | 
16 | class WheelDistribution(AbstractDistribution):
17 |     """Represents a wheel distribution.
18 | 
19 |     This does not need any preparation as wheels can be directly unpacked.
20 |     """
21 | 
22 |     @property
23 |     def build_tracker_id(self) -> Optional[str]:
24 |         return None
25 | 
26 |     def get_metadata_distribution(self) -> BaseDistribution:
27 |         """Loads the metadata from the wheel file into memory and returns a
28 |         Distribution that uses it, not relying on the wheel file or
29 |         requirement.
30 |         """
31 |         assert self.req.local_file_path, "Set as part of preparation during download"
32 |         assert self.req.name, "Wheels are never unnamed"
33 |         wheel = FilesystemWheel(self.req.local_file_path)
34 |         return get_wheel_distribution(wheel, canonicalize_name(self.req.name))
35 | 
36 |     def prepare_distribution_metadata(
37 |         self,
38 |         finder: "PackageFinder",
39 |         build_isolation: bool,
40 |         check_build_deps: bool,
41 |     ) -> None:
42 |         pass
43 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/click/_textwrap.py:
--------------------------------------------------------------------------------

```python
 1 | import textwrap
 2 | import typing as t
 3 | from contextlib import contextmanager
 4 | 
 5 | 
 6 | class TextWrapper(textwrap.TextWrapper):
 7 |     def _handle_long_word(
 8 |         self,
 9 |         reversed_chunks: t.List[str],
10 |         cur_line: t.List[str],
11 |         cur_len: int,
12 |         width: int,
13 |     ) -> None:
14 |         space_left = max(width - cur_len, 1)
15 | 
16 |         if self.break_long_words:
17 |             last = reversed_chunks[-1]
18 |             cut = last[:space_left]
19 |             res = last[space_left:]
20 |             cur_line.append(cut)
21 |             reversed_chunks[-1] = res
22 |         elif not cur_line:
23 |             cur_line.append(reversed_chunks.pop())
24 | 
25 |     @contextmanager
26 |     def extra_indent(self, indent: str) -> t.Iterator[None]:
27 |         old_initial_indent = self.initial_indent
28 |         old_subsequent_indent = self.subsequent_indent
29 |         self.initial_indent += indent
30 |         self.subsequent_indent += indent
31 | 
32 |         try:
33 |             yield
34 |         finally:
35 |             self.initial_indent = old_initial_indent
36 |             self.subsequent_indent = old_subsequent_indent
37 | 
38 |     def indent_only(self, text: str) -> str:
39 |         rv = []
40 | 
41 |         for idx, line in enumerate(text.splitlines()):
42 |             indent = self.initial_indent
43 | 
44 |             if idx > 0:
45 |                 indent = self.subsequent_indent
46 | 
47 |             rv.append(f"{indent}{line}")
48 | 
49 |         return "\n".join(rv)
50 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py:
--------------------------------------------------------------------------------

```python
 1 | # SPDX-FileCopyrightText: 2015 Eric Larson
 2 | #
 3 | # SPDX-License-Identifier: Apache-2.0
 4 | from __future__ import annotations
 5 | 
 6 | 
 7 | from datetime import datetime, timezone
 8 | from typing import TYPE_CHECKING
 9 | 
10 | from pip._vendor.cachecontrol.cache import BaseCache
11 | 
12 | if TYPE_CHECKING:
13 |     from redis import Redis
14 | 
15 | 
16 | class RedisCache(BaseCache):
17 |     def __init__(self, conn: Redis[bytes]) -> None:
18 |         self.conn = conn
19 | 
20 |     def get(self, key: str) -> bytes | None:
21 |         return self.conn.get(key)
22 | 
23 |     def set(
24 |         self, key: str, value: bytes, expires: int | datetime | None = None
25 |     ) -> None:
26 |         if not expires:
27 |             self.conn.set(key, value)
28 |         elif isinstance(expires, datetime):
29 |             now_utc = datetime.now(timezone.utc)
30 |             if expires.tzinfo is None:
31 |                 now_utc = now_utc.replace(tzinfo=None)
32 |             delta = expires - now_utc
33 |             self.conn.setex(key, int(delta.total_seconds()), value)
34 |         else:
35 |             self.conn.setex(key, expires, value)
36 | 
37 |     def delete(self, key: str) -> None:
38 |         self.conn.delete(key)
39 | 
40 |     def clear(self) -> None:
41 |         """Helper for clearing all the keys in a database. Use with
42 |         caution!"""
43 |         for key in self.conn.keys():
44 |             self.conn.delete(key)
45 | 
46 |     def close(self) -> None:
47 |         """Redis uses connection pooling, no need to close the connection."""
48 |         pass
49 | 
```

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

```python
 1 | from types import TracebackType
 2 | from typing import IO, Iterable, Iterator, List, Optional, Type
 3 | 
 4 | 
 5 | class NullFile(IO[str]):
 6 |     def close(self) -> None:
 7 |         pass
 8 | 
 9 |     def isatty(self) -> bool:
10 |         return False
11 | 
12 |     def read(self, __n: int = 1) -> str:
13 |         return ""
14 | 
15 |     def readable(self) -> bool:
16 |         return False
17 | 
18 |     def readline(self, __limit: int = 1) -> str:
19 |         return ""
20 | 
21 |     def readlines(self, __hint: int = 1) -> List[str]:
22 |         return []
23 | 
24 |     def seek(self, __offset: int, __whence: int = 1) -> int:
25 |         return 0
26 | 
27 |     def seekable(self) -> bool:
28 |         return False
29 | 
30 |     def tell(self) -> int:
31 |         return 0
32 | 
33 |     def truncate(self, __size: Optional[int] = 1) -> int:
34 |         return 0
35 | 
36 |     def writable(self) -> bool:
37 |         return False
38 | 
39 |     def writelines(self, __lines: Iterable[str]) -> None:
40 |         pass
41 | 
42 |     def __next__(self) -> str:
43 |         return ""
44 | 
45 |     def __iter__(self) -> Iterator[str]:
46 |         return iter([""])
47 | 
48 |     def __enter__(self) -> IO[str]:
49 |         pass
50 | 
51 |     def __exit__(
52 |         self,
53 |         __t: Optional[Type[BaseException]],
54 |         __value: Optional[BaseException],
55 |         __traceback: Optional[TracebackType],
56 |     ) -> None:
57 |         pass
58 | 
59 |     def write(self, text: str) -> int:
60 |         return 0
61 | 
62 |     def flush(self) -> None:
63 |         pass
64 | 
65 |     def fileno(self) -> int:
66 |         return -1
67 | 
68 | 
69 | NULL_FILE = NullFile()
70 | 
```
Page 2/168FirstPrevNextLast