#
tokens: 49947/50000 13/808 files (page 11/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 11 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/pygments/formatters/_mapping.py:
--------------------------------------------------------------------------------

```python
 1 | # Automatically generated by scripts/gen_mapfiles.py.
 2 | # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead.
 3 | 
 4 | FORMATTERS = {
 5 |     'BBCodeFormatter': ('pygments.formatters.bbcode', 'BBCode', ('bbcode', 'bb'), (), 'Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.'),
 6 |     'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
 7 |     'GifImageFormatter': ('pygments.formatters.img', 'img_gif', ('gif',), ('*.gif',), 'Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
 8 |     'GroffFormatter': ('pygments.formatters.groff', 'groff', ('groff', 'troff', 'roff'), (), 'Format tokens with groff escapes to change their color and font style.'),
 9 |     'HtmlFormatter': ('pygments.formatters.html', 'HTML', ('html',), ('*.html', '*.htm'), "Format tokens as HTML 4 ``<span>`` tags. By default, the content is enclosed in a ``<pre>`` tag, itself wrapped in a ``<div>`` tag (but see the `nowrap` option). The ``<div>``'s CSS class can be set by the `cssclass` option."),
10 |     'IRCFormatter': ('pygments.formatters.irc', 'IRC', ('irc', 'IRC'), (), 'Format tokens with IRC color sequences'),
11 |     'ImageFormatter': ('pygments.formatters.img', 'img', ('img', 'IMG', 'png'), ('*.png',), 'Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
12 |     'JpgImageFormatter': ('pygments.formatters.img', 'img_jpg', ('jpg', 'jpeg'), ('*.jpg',), 'Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
13 |     'LatexFormatter': ('pygments.formatters.latex', 'LaTeX', ('latex', 'tex'), ('*.tex',), 'Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.'),
14 |     'NullFormatter': ('pygments.formatters.other', 'Text only', ('text', 'null'), ('*.txt',), 'Output the text unchanged without any formatting.'),
15 |     'PangoMarkupFormatter': ('pygments.formatters.pangomarkup', 'Pango Markup', ('pango', 'pangomarkup'), (), 'Format tokens as Pango Markup code. It can then be rendered to an SVG.'),
16 |     'RawTokenFormatter': ('pygments.formatters.other', 'Raw tokens', ('raw', 'tokens'), ('*.raw',), 'Format tokens as a raw representation for storing token streams.'),
17 |     'RtfFormatter': ('pygments.formatters.rtf', 'RTF', ('rtf',), ('*.rtf',), 'Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.'),
18 |     'SvgFormatter': ('pygments.formatters.svg', 'SVG', ('svg',), ('*.svg',), 'Format tokens as an SVG graphics file.  This formatter is still experimental. Each line of code is a ``<text>`` element with explicit ``x`` and ``y`` coordinates containing ``<tspan>`` elements with the individual token styles.'),
19 |     'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console.  Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
20 |     'TerminalFormatter': ('pygments.formatters.terminal', 'Terminal', ('terminal', 'console'), (), 'Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.'),
21 |     'TerminalTrueColorFormatter': ('pygments.formatters.terminal256', 'TerminalTrueColor', ('terminal16m', 'console16m', '16m'), (), 'Format tokens with ANSI color sequences, for output in a true-color terminal or console.  Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
22 |     'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.'),
23 | }
24 | 
```

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

```python
  1 | import typing as t
  2 | from ast import literal_eval
  3 | from ast import parse
  4 | from itertools import chain
  5 | from itertools import islice
  6 | from types import GeneratorType
  7 | 
  8 | from . import nodes
  9 | from .compiler import CodeGenerator
 10 | from .compiler import Frame
 11 | from .compiler import has_safe_repr
 12 | from .environment import Environment
 13 | from .environment import Template
 14 | 
 15 | 
 16 | def native_concat(values: t.Iterable[t.Any]) -> t.Optional[t.Any]:
 17 |     """Return a native Python type from the list of compiled nodes. If
 18 |     the result is a single node, its value is returned. Otherwise, the
 19 |     nodes are concatenated as strings. If the result can be parsed with
 20 |     :func:`ast.literal_eval`, the parsed value is returned. Otherwise,
 21 |     the string is returned.
 22 | 
 23 |     :param values: Iterable of outputs to concatenate.
 24 |     """
 25 |     head = list(islice(values, 2))
 26 | 
 27 |     if not head:
 28 |         return None
 29 | 
 30 |     if len(head) == 1:
 31 |         raw = head[0]
 32 |         if not isinstance(raw, str):
 33 |             return raw
 34 |     else:
 35 |         if isinstance(values, GeneratorType):
 36 |             values = chain(head, values)
 37 |         raw = "".join([str(v) for v in values])
 38 | 
 39 |     try:
 40 |         return literal_eval(
 41 |             # In Python 3.10+ ast.literal_eval removes leading spaces/tabs
 42 |             # from the given string. For backwards compatibility we need to
 43 |             # parse the string ourselves without removing leading spaces/tabs.
 44 |             parse(raw, mode="eval")
 45 |         )
 46 |     except (ValueError, SyntaxError, MemoryError):
 47 |         return raw
 48 | 
 49 | 
 50 | class NativeCodeGenerator(CodeGenerator):
 51 |     """A code generator which renders Python types by not adding
 52 |     ``str()`` around output nodes.
 53 |     """
 54 | 
 55 |     @staticmethod
 56 |     def _default_finalize(value: t.Any) -> t.Any:
 57 |         return value
 58 | 
 59 |     def _output_const_repr(self, group: t.Iterable[t.Any]) -> str:
 60 |         return repr("".join([str(v) for v in group]))
 61 | 
 62 |     def _output_child_to_const(
 63 |         self, node: nodes.Expr, frame: Frame, finalize: CodeGenerator._FinalizeInfo
 64 |     ) -> t.Any:
 65 |         const = node.as_const(frame.eval_ctx)
 66 | 
 67 |         if not has_safe_repr(const):
 68 |             raise nodes.Impossible()
 69 | 
 70 |         if isinstance(node, nodes.TemplateData):
 71 |             return const
 72 | 
 73 |         return finalize.const(const)  # type: ignore
 74 | 
 75 |     def _output_child_pre(
 76 |         self, node: nodes.Expr, frame: Frame, finalize: CodeGenerator._FinalizeInfo
 77 |     ) -> None:
 78 |         if finalize.src is not None:
 79 |             self.write(finalize.src)
 80 | 
 81 |     def _output_child_post(
 82 |         self, node: nodes.Expr, frame: Frame, finalize: CodeGenerator._FinalizeInfo
 83 |     ) -> None:
 84 |         if finalize.src is not None:
 85 |             self.write(")")
 86 | 
 87 | 
 88 | class NativeEnvironment(Environment):
 89 |     """An environment that renders templates to native Python types."""
 90 | 
 91 |     code_generator_class = NativeCodeGenerator
 92 |     concat = staticmethod(native_concat)  # type: ignore
 93 | 
 94 | 
 95 | class NativeTemplate(Template):
 96 |     environment_class = NativeEnvironment
 97 | 
 98 |     def render(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
 99 |         """Render the template to produce a native Python type. If the
100 |         result is a single node, its value is returned. Otherwise, the
101 |         nodes are concatenated as strings. If the result can be parsed
102 |         with :func:`ast.literal_eval`, the parsed value is returned.
103 |         Otherwise, the string is returned.
104 |         """
105 |         ctx = self.new_context(dict(*args, **kwargs))
106 | 
107 |         try:
108 |             return self.environment_class.concat(  # type: ignore
109 |                 self.root_render_func(ctx)
110 |             )
111 |         except Exception:
112 |             return self.environment.handle_exception()
113 | 
114 |     async def render_async(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
115 |         if not self.environment.is_async:
116 |             raise RuntimeError(
117 |                 "The environment was not created with async mode enabled."
118 |             )
119 | 
120 |         ctx = self.new_context(dict(*args, **kwargs))
121 | 
122 |         try:
123 |             return self.environment_class.concat(  # type: ignore
124 |                 [n async for n in self.root_render_func(ctx)]  # type: ignore
125 |             )
126 |         except Exception:
127 |             return self.environment.handle_exception()
128 | 
129 | 
130 | NativeEnvironment.template_class = NativeTemplate
131 | 
```

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

```python
  1 | # FIXME: this should all be confirmed against what a DTD says
  2 | # (probably in a test; this may not match the DTD exactly, but we
  3 | # should document just how it differs).
  4 | 
  5 | """
  6 | Data taken from https://www.w3.org/TR/html401/index/elements.html
  7 | and https://www.w3.org/community/webed/wiki/HTML/New_HTML5_Elements
  8 | for html5_tags.
  9 | """
 10 | 
 11 | empty_tags = frozenset([
 12 |     'area', 'base', 'basefont', 'br', 'col', 'frame', 'hr',
 13 |     'img', 'input', 'isindex', 'link', 'meta', 'param', 'source', 'track'])
 14 | 
 15 | deprecated_tags = frozenset([
 16 |     'applet', 'basefont', 'center', 'dir', 'font', 'isindex',
 17 |     'menu', 's', 'strike', 'u'])
 18 | 
 19 | # archive actually takes a space-separated list of URIs
 20 | link_attrs = frozenset([
 21 |     'action', 'archive', 'background', 'cite', 'classid',
 22 |     'codebase', 'data', 'href', 'longdesc', 'profile', 'src',
 23 |     'usemap',
 24 |     # Not standard:
 25 |     'dynsrc', 'lowsrc',
 26 |     # HTML5 formaction
 27 |     'formaction'
 28 |     ])
 29 | 
 30 | # Not in the HTML 4 spec:
 31 | # onerror, onresize
 32 | event_attrs = frozenset([
 33 |     'onblur', 'onchange', 'onclick', 'ondblclick', 'onerror',
 34 |     'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload',
 35 |     'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover',
 36 |     'onmouseup', 'onreset', 'onresize', 'onselect', 'onsubmit',
 37 |     'onunload',
 38 |     ])
 39 | 
 40 | safe_attrs = frozenset([
 41 |     'abbr', 'accept', 'accept-charset', 'accesskey', 'action', 'align',
 42 |     'alt', 'axis', 'border', 'cellpadding', 'cellspacing', 'char', 'charoff',
 43 |     'charset', 'checked', 'cite', 'class', 'clear', 'cols', 'colspan',
 44 |     'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', 'enctype',
 45 |     'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', 'id',
 46 |     'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method',
 47 |     'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly',
 48 |     'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape',
 49 |     'size', 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title',
 50 |     'type', 'usemap', 'valign', 'value', 'vspace', 'width'])
 51 | 
 52 | # From http://htmlhelp.com/reference/html40/olist.html
 53 | top_level_tags = frozenset([
 54 |     'html', 'head', 'body', 'frameset',
 55 |     ])
 56 | 
 57 | head_tags = frozenset([
 58 |     'base', 'isindex', 'link', 'meta', 'script', 'style', 'title',
 59 |     ])
 60 | 
 61 | general_block_tags = frozenset([
 62 |     'address',
 63 |     'blockquote',
 64 |     'center',
 65 |     'del',
 66 |     'div',
 67 |     'h1',
 68 |     'h2',
 69 |     'h3',
 70 |     'h4',
 71 |     'h5',
 72 |     'h6',
 73 |     'hr',
 74 |     'ins',
 75 |     'isindex',
 76 |     'noscript',
 77 |     'p',
 78 |     'pre',
 79 |     ])
 80 | 
 81 | list_tags = frozenset([
 82 |     'dir', 'dl', 'dt', 'dd', 'li', 'menu', 'ol', 'ul',
 83 |     ])
 84 | 
 85 | table_tags = frozenset([
 86 |     'table', 'caption', 'colgroup', 'col',
 87 |     'thead', 'tfoot', 'tbody', 'tr', 'td', 'th',
 88 |     ])
 89 | 
 90 | # just this one from
 91 | # http://www.georgehernandez.com/h/XComputers/HTML/2BlockLevel.htm
 92 | block_tags = general_block_tags | list_tags | table_tags | frozenset([
 93 |     # Partial form tags
 94 |     'fieldset', 'form', 'legend', 'optgroup', 'option',
 95 |     ])
 96 | 
 97 | form_tags = frozenset([
 98 |     'form', 'button', 'fieldset', 'legend', 'input', 'label',
 99 |     'select', 'optgroup', 'option', 'textarea',
100 |     ])
101 | 
102 | special_inline_tags = frozenset([
103 |     'a', 'applet', 'basefont', 'bdo', 'br', 'embed', 'font', 'iframe',
104 |     'img', 'map', 'area', 'object', 'param', 'q', 'script',
105 |     'span', 'sub', 'sup',
106 |     ])
107 | 
108 | phrase_tags = frozenset([
109 |     'abbr', 'acronym', 'cite', 'code', 'del', 'dfn', 'em',
110 |     'ins', 'kbd', 'samp', 'strong', 'var',
111 |     ])
112 | 
113 | font_style_tags = frozenset([
114 |     'b', 'big', 'i', 's', 'small', 'strike', 'tt', 'u',
115 |     ])
116 | 
117 | frame_tags = frozenset([
118 |     'frameset', 'frame', 'noframes',
119 |     ])
120 |     
121 | html5_tags = frozenset([
122 |     'article', 'aside', 'audio', 'canvas', 'command', 'datalist',
123 |     'details', 'embed', 'figcaption', 'figure', 'footer', 'header',
124 |     'hgroup', 'keygen', 'mark', 'math', 'meter', 'nav', 'output',
125 |     'progress', 'rp', 'rt', 'ruby', 'section', 'source', 'summary',
126 |     'svg', 'time', 'track', 'video', 'wbr'
127 |     ])
128 | 
129 | # These tags aren't standard
130 | nonstandard_tags = frozenset(['blink', 'marquee'])
131 | 
132 | 
133 | tags = (top_level_tags | head_tags | general_block_tags | list_tags
134 |         | table_tags | form_tags | special_inline_tags | phrase_tags
135 |         | font_style_tags | nonstandard_tags | html5_tags)
136 | 
```

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

```
  1 | /*
  2 |  * Summary: XML Schematron implementation
  3 |  * Description: interface to the XML Schematron validity checking.
  4 |  *
  5 |  * Copy: See Copyright for the status of this software.
  6 |  *
  7 |  * Author: Daniel Veillard
  8 |  */
  9 | 
 10 | 
 11 | #ifndef __XML_SCHEMATRON_H__
 12 | #define __XML_SCHEMATRON_H__
 13 | 
 14 | #include <libxml/xmlversion.h>
 15 | 
 16 | #ifdef LIBXML_SCHEMATRON_ENABLED
 17 | 
 18 | #include <libxml/xmlerror.h>
 19 | #include <libxml/tree.h>
 20 | 
 21 | #ifdef __cplusplus
 22 | extern "C" {
 23 | #endif
 24 | 
 25 | typedef enum {
 26 |     XML_SCHEMATRON_OUT_QUIET = 1 << 0,	/* quiet no report */
 27 |     XML_SCHEMATRON_OUT_TEXT = 1 << 1,	/* build a textual report */
 28 |     XML_SCHEMATRON_OUT_XML = 1 << 2,	/* output SVRL */
 29 |     XML_SCHEMATRON_OUT_ERROR = 1 << 3,  /* output via xmlStructuredErrorFunc */
 30 |     XML_SCHEMATRON_OUT_FILE = 1 << 8,	/* output to a file descriptor */
 31 |     XML_SCHEMATRON_OUT_BUFFER = 1 << 9,	/* output to a buffer */
 32 |     XML_SCHEMATRON_OUT_IO = 1 << 10	/* output to I/O mechanism */
 33 | } xmlSchematronValidOptions;
 34 | 
 35 | /**
 36 |  * The schemas related types are kept internal
 37 |  */
 38 | typedef struct _xmlSchematron xmlSchematron;
 39 | typedef xmlSchematron *xmlSchematronPtr;
 40 | 
 41 | /**
 42 |  * xmlSchematronValidityErrorFunc:
 43 |  * @ctx: the validation context
 44 |  * @msg: the message
 45 |  * @...: extra arguments
 46 |  *
 47 |  * Signature of an error callback from a Schematron validation
 48 |  */
 49 | typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
 50 | 
 51 | /**
 52 |  * xmlSchematronValidityWarningFunc:
 53 |  * @ctx: the validation context
 54 |  * @msg: the message
 55 |  * @...: extra arguments
 56 |  *
 57 |  * Signature of a warning callback from a Schematron validation
 58 |  */
 59 | typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
 60 | 
 61 | /**
 62 |  * A schemas validation context
 63 |  */
 64 | typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
 65 | typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
 66 | 
 67 | typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
 68 | typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
 69 | 
 70 | /*
 71 |  * Interfaces for parsing.
 72 |  */
 73 | XMLPUBFUN xmlSchematronParserCtxtPtr
 74 | 	    xmlSchematronNewParserCtxt	(const char *URL);
 75 | XMLPUBFUN xmlSchematronParserCtxtPtr
 76 | 	    xmlSchematronNewMemParserCtxt(const char *buffer,
 77 | 					 int size);
 78 | XMLPUBFUN xmlSchematronParserCtxtPtr
 79 | 	    xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
 80 | XMLPUBFUN void
 81 | 	    xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt);
 82 | /*****
 83 | XMLPUBFUN void
 84 | 	    xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
 85 | 					 xmlSchematronValidityErrorFunc err,
 86 | 					 xmlSchematronValidityWarningFunc warn,
 87 | 					 void *ctx);
 88 | XMLPUBFUN int
 89 | 		xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
 90 | 					xmlSchematronValidityErrorFunc * err,
 91 | 					xmlSchematronValidityWarningFunc * warn,
 92 | 					void **ctx);
 93 | XMLPUBFUN int
 94 | 		xmlSchematronIsValid	(xmlSchematronValidCtxtPtr ctxt);
 95 |  *****/
 96 | XMLPUBFUN xmlSchematronPtr
 97 | 	    xmlSchematronParse		(xmlSchematronParserCtxtPtr ctxt);
 98 | XMLPUBFUN void
 99 | 	    xmlSchematronFree		(xmlSchematronPtr schema);
100 | /*
101 |  * Interfaces for validating
102 |  */
103 | XMLPUBFUN void
104 | 	    xmlSchematronSetValidStructuredErrors(
105 | 	                                  xmlSchematronValidCtxtPtr ctxt,
106 | 					  xmlStructuredErrorFunc serror,
107 | 					  void *ctx);
108 | /******
109 | XMLPUBFUN void
110 | 	    xmlSchematronSetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
111 | 					 xmlSchematronValidityErrorFunc err,
112 | 					 xmlSchematronValidityWarningFunc warn,
113 | 					 void *ctx);
114 | XMLPUBFUN int
115 | 	    xmlSchematronGetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
116 | 					 xmlSchematronValidityErrorFunc *err,
117 | 					 xmlSchematronValidityWarningFunc *warn,
118 | 					 void **ctx);
119 | XMLPUBFUN int
120 | 	    xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
121 | 					 int options);
122 | XMLPUBFUN int
123 | 	    xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
124 | XMLPUBFUN int
125 |             xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
126 | 			                 xmlNodePtr elem);
127 |  *******/
128 | 
129 | XMLPUBFUN xmlSchematronValidCtxtPtr
130 | 	    xmlSchematronNewValidCtxt	(xmlSchematronPtr schema,
131 | 					 int options);
132 | XMLPUBFUN void
133 | 	    xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt);
134 | XMLPUBFUN int
135 | 	    xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt,
136 | 					 xmlDocPtr instance);
137 | 
138 | #ifdef __cplusplus
139 | }
140 | #endif
141 | 
142 | #endif /* LIBXML_SCHEMATRON_ENABLED */
143 | #endif /* __XML_SCHEMATRON_H__ */
144 | 
```

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

```python
  1 | """
  2 | requests.exceptions
  3 | ~~~~~~~~~~~~~~~~~~~
  4 | 
  5 | This module contains the set of Requests' exceptions.
  6 | """
  7 | from urllib3.exceptions import HTTPError as BaseHTTPError
  8 | 
  9 | from .compat import JSONDecodeError as CompatJSONDecodeError
 10 | 
 11 | 
 12 | class RequestException(IOError):
 13 |     """There was an ambiguous exception that occurred while handling your
 14 |     request.
 15 |     """
 16 | 
 17 |     def __init__(self, *args, **kwargs):
 18 |         """Initialize RequestException with `request` and `response` objects."""
 19 |         response = kwargs.pop("response", None)
 20 |         self.response = response
 21 |         self.request = kwargs.pop("request", None)
 22 |         if response is not None and not self.request and hasattr(response, "request"):
 23 |             self.request = self.response.request
 24 |         super().__init__(*args, **kwargs)
 25 | 
 26 | 
 27 | class InvalidJSONError(RequestException):
 28 |     """A JSON error occurred."""
 29 | 
 30 | 
 31 | class JSONDecodeError(InvalidJSONError, CompatJSONDecodeError):
 32 |     """Couldn't decode the text into json"""
 33 | 
 34 |     def __init__(self, *args, **kwargs):
 35 |         """
 36 |         Construct the JSONDecodeError instance first with all
 37 |         args. Then use it's args to construct the IOError so that
 38 |         the json specific args aren't used as IOError specific args
 39 |         and the error message from JSONDecodeError is preserved.
 40 |         """
 41 |         CompatJSONDecodeError.__init__(self, *args)
 42 |         InvalidJSONError.__init__(self, *self.args, **kwargs)
 43 | 
 44 |     def __reduce__(self):
 45 |         """
 46 |         The __reduce__ method called when pickling the object must
 47 |         be the one from the JSONDecodeError (be it json/simplejson)
 48 |         as it expects all the arguments for instantiation, not just
 49 |         one like the IOError, and the MRO would by default call the
 50 |         __reduce__ method from the IOError due to the inheritance order.
 51 |         """
 52 |         return CompatJSONDecodeError.__reduce__(self)
 53 | 
 54 | 
 55 | class HTTPError(RequestException):
 56 |     """An HTTP error occurred."""
 57 | 
 58 | 
 59 | class ConnectionError(RequestException):
 60 |     """A Connection error occurred."""
 61 | 
 62 | 
 63 | class ProxyError(ConnectionError):
 64 |     """A proxy error occurred."""
 65 | 
 66 | 
 67 | class SSLError(ConnectionError):
 68 |     """An SSL error occurred."""
 69 | 
 70 | 
 71 | class Timeout(RequestException):
 72 |     """The request timed out.
 73 | 
 74 |     Catching this error will catch both
 75 |     :exc:`~requests.exceptions.ConnectTimeout` and
 76 |     :exc:`~requests.exceptions.ReadTimeout` errors.
 77 |     """
 78 | 
 79 | 
 80 | class ConnectTimeout(ConnectionError, Timeout):
 81 |     """The request timed out while trying to connect to the remote server.
 82 | 
 83 |     Requests that produced this error are safe to retry.
 84 |     """
 85 | 
 86 | 
 87 | class ReadTimeout(Timeout):
 88 |     """The server did not send any data in the allotted amount of time."""
 89 | 
 90 | 
 91 | class URLRequired(RequestException):
 92 |     """A valid URL is required to make a request."""
 93 | 
 94 | 
 95 | class TooManyRedirects(RequestException):
 96 |     """Too many redirects."""
 97 | 
 98 | 
 99 | class MissingSchema(RequestException, ValueError):
100 |     """The URL scheme (e.g. http or https) is missing."""
101 | 
102 | 
103 | class InvalidSchema(RequestException, ValueError):
104 |     """The URL scheme provided is either invalid or unsupported."""
105 | 
106 | 
107 | class InvalidURL(RequestException, ValueError):
108 |     """The URL provided was somehow invalid."""
109 | 
110 | 
111 | class InvalidHeader(RequestException, ValueError):
112 |     """The header value provided was somehow invalid."""
113 | 
114 | 
115 | class InvalidProxyURL(InvalidURL):
116 |     """The proxy URL provided is invalid."""
117 | 
118 | 
119 | class ChunkedEncodingError(RequestException):
120 |     """The server declared chunked encoding but sent an invalid chunk."""
121 | 
122 | 
123 | class ContentDecodingError(RequestException, BaseHTTPError):
124 |     """Failed to decode response content."""
125 | 
126 | 
127 | class StreamConsumedError(RequestException, TypeError):
128 |     """The content for this response was already consumed."""
129 | 
130 | 
131 | class RetryError(RequestException):
132 |     """Custom retries logic failed"""
133 | 
134 | 
135 | class UnrewindableBodyError(RequestException):
136 |     """Requests encountered an error when trying to rewind a body."""
137 | 
138 | 
139 | # Warnings
140 | 
141 | 
142 | class RequestsWarning(Warning):
143 |     """Base warning for Requests."""
144 | 
145 | 
146 | class FileModeWarning(RequestsWarning, DeprecationWarning):
147 |     """A file was opened in text mode, but Requests determined its binary length."""
148 | 
149 | 
150 | class RequestsDependencyWarning(RequestsWarning):
151 |     """An imported dependency doesn't match the expected version range."""
152 | 
```

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

```python
  1 | import sys
  2 | from typing import List, Optional, Set, Tuple
  3 | 
  4 | from pip._vendor.packaging.tags import Tag
  5 | 
  6 | from pip._internal.utils.compatibility_tags import get_supported, version_info_to_nodot
  7 | from pip._internal.utils.misc import normalize_version_info
  8 | 
  9 | 
 10 | class TargetPython:
 11 |     """
 12 |     Encapsulates the properties of a Python interpreter one is targeting
 13 |     for a package install, download, etc.
 14 |     """
 15 | 
 16 |     __slots__ = [
 17 |         "_given_py_version_info",
 18 |         "abis",
 19 |         "implementation",
 20 |         "platforms",
 21 |         "py_version",
 22 |         "py_version_info",
 23 |         "_valid_tags",
 24 |         "_valid_tags_set",
 25 |     ]
 26 | 
 27 |     def __init__(
 28 |         self,
 29 |         platforms: Optional[List[str]] = None,
 30 |         py_version_info: Optional[Tuple[int, ...]] = None,
 31 |         abis: Optional[List[str]] = None,
 32 |         implementation: Optional[str] = None,
 33 |     ) -> None:
 34 |         """
 35 |         :param platforms: A list of strings or None. If None, searches for
 36 |             packages that are supported by the current system. Otherwise, will
 37 |             find packages that can be built on the platforms passed in. These
 38 |             packages will only be downloaded for distribution: they will
 39 |             not be built locally.
 40 |         :param py_version_info: An optional tuple of ints representing the
 41 |             Python version information to use (e.g. `sys.version_info[:3]`).
 42 |             This can have length 1, 2, or 3 when provided.
 43 |         :param abis: A list of strings or None. This is passed to
 44 |             compatibility_tags.py's get_supported() function as is.
 45 |         :param implementation: A string or None. This is passed to
 46 |             compatibility_tags.py's get_supported() function as is.
 47 |         """
 48 |         # Store the given py_version_info for when we call get_supported().
 49 |         self._given_py_version_info = py_version_info
 50 | 
 51 |         if py_version_info is None:
 52 |             py_version_info = sys.version_info[:3]
 53 |         else:
 54 |             py_version_info = normalize_version_info(py_version_info)
 55 | 
 56 |         py_version = ".".join(map(str, py_version_info[:2]))
 57 | 
 58 |         self.abis = abis
 59 |         self.implementation = implementation
 60 |         self.platforms = platforms
 61 |         self.py_version = py_version
 62 |         self.py_version_info = py_version_info
 63 | 
 64 |         # This is used to cache the return value of get_(un)sorted_tags.
 65 |         self._valid_tags: Optional[List[Tag]] = None
 66 |         self._valid_tags_set: Optional[Set[Tag]] = None
 67 | 
 68 |     def format_given(self) -> str:
 69 |         """
 70 |         Format the given, non-None attributes for display.
 71 |         """
 72 |         display_version = None
 73 |         if self._given_py_version_info is not None:
 74 |             display_version = ".".join(
 75 |                 str(part) for part in self._given_py_version_info
 76 |             )
 77 | 
 78 |         key_values = [
 79 |             ("platforms", self.platforms),
 80 |             ("version_info", display_version),
 81 |             ("abis", self.abis),
 82 |             ("implementation", self.implementation),
 83 |         ]
 84 |         return " ".join(
 85 |             f"{key}={value!r}" for key, value in key_values if value is not None
 86 |         )
 87 | 
 88 |     def get_sorted_tags(self) -> List[Tag]:
 89 |         """
 90 |         Return the supported PEP 425 tags to check wheel candidates against.
 91 | 
 92 |         The tags are returned in order of preference (most preferred first).
 93 |         """
 94 |         if self._valid_tags is None:
 95 |             # Pass versions=None if no py_version_info was given since
 96 |             # versions=None uses special default logic.
 97 |             py_version_info = self._given_py_version_info
 98 |             if py_version_info is None:
 99 |                 version = None
100 |             else:
101 |                 version = version_info_to_nodot(py_version_info)
102 | 
103 |             tags = get_supported(
104 |                 version=version,
105 |                 platforms=self.platforms,
106 |                 abis=self.abis,
107 |                 impl=self.implementation,
108 |             )
109 |             self._valid_tags = tags
110 | 
111 |         return self._valid_tags
112 | 
113 |     def get_unsorted_tags(self) -> Set[Tag]:
114 |         """Exactly the same as get_sorted_tags, but returns a set.
115 | 
116 |         This is important for performance.
117 |         """
118 |         if self._valid_tags_set is None:
119 |             self._valid_tags_set = set(self.get_sorted_tags())
120 | 
121 |         return self._valid_tags_set
122 | 
```

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

```python
  1 | """
  2 | requests.exceptions
  3 | ~~~~~~~~~~~~~~~~~~~
  4 | 
  5 | This module contains the set of Requests' exceptions.
  6 | """
  7 | from pip._vendor.urllib3.exceptions import HTTPError as BaseHTTPError
  8 | 
  9 | from .compat import JSONDecodeError as CompatJSONDecodeError
 10 | 
 11 | 
 12 | class RequestException(IOError):
 13 |     """There was an ambiguous exception that occurred while handling your
 14 |     request.
 15 |     """
 16 | 
 17 |     def __init__(self, *args, **kwargs):
 18 |         """Initialize RequestException with `request` and `response` objects."""
 19 |         response = kwargs.pop("response", None)
 20 |         self.response = response
 21 |         self.request = kwargs.pop("request", None)
 22 |         if response is not None and not self.request and hasattr(response, "request"):
 23 |             self.request = self.response.request
 24 |         super().__init__(*args, **kwargs)
 25 | 
 26 | 
 27 | class InvalidJSONError(RequestException):
 28 |     """A JSON error occurred."""
 29 | 
 30 | 
 31 | class JSONDecodeError(InvalidJSONError, CompatJSONDecodeError):
 32 |     """Couldn't decode the text into json"""
 33 | 
 34 |     def __init__(self, *args, **kwargs):
 35 |         """
 36 |         Construct the JSONDecodeError instance first with all
 37 |         args. Then use it's args to construct the IOError so that
 38 |         the json specific args aren't used as IOError specific args
 39 |         and the error message from JSONDecodeError is preserved.
 40 |         """
 41 |         CompatJSONDecodeError.__init__(self, *args)
 42 |         InvalidJSONError.__init__(self, *self.args, **kwargs)
 43 | 
 44 |     def __reduce__(self):
 45 |         """
 46 |         The __reduce__ method called when pickling the object must
 47 |         be the one from the JSONDecodeError (be it json/simplejson)
 48 |         as it expects all the arguments for instantiation, not just
 49 |         one like the IOError, and the MRO would by default call the
 50 |         __reduce__ method from the IOError due to the inheritance order.
 51 |         """
 52 |         return CompatJSONDecodeError.__reduce__(self)
 53 | 
 54 | 
 55 | class HTTPError(RequestException):
 56 |     """An HTTP error occurred."""
 57 | 
 58 | 
 59 | class ConnectionError(RequestException):
 60 |     """A Connection error occurred."""
 61 | 
 62 | 
 63 | class ProxyError(ConnectionError):
 64 |     """A proxy error occurred."""
 65 | 
 66 | 
 67 | class SSLError(ConnectionError):
 68 |     """An SSL error occurred."""
 69 | 
 70 | 
 71 | class Timeout(RequestException):
 72 |     """The request timed out.
 73 | 
 74 |     Catching this error will catch both
 75 |     :exc:`~requests.exceptions.ConnectTimeout` and
 76 |     :exc:`~requests.exceptions.ReadTimeout` errors.
 77 |     """
 78 | 
 79 | 
 80 | class ConnectTimeout(ConnectionError, Timeout):
 81 |     """The request timed out while trying to connect to the remote server.
 82 | 
 83 |     Requests that produced this error are safe to retry.
 84 |     """
 85 | 
 86 | 
 87 | class ReadTimeout(Timeout):
 88 |     """The server did not send any data in the allotted amount of time."""
 89 | 
 90 | 
 91 | class URLRequired(RequestException):
 92 |     """A valid URL is required to make a request."""
 93 | 
 94 | 
 95 | class TooManyRedirects(RequestException):
 96 |     """Too many redirects."""
 97 | 
 98 | 
 99 | class MissingSchema(RequestException, ValueError):
100 |     """The URL scheme (e.g. http or https) is missing."""
101 | 
102 | 
103 | class InvalidSchema(RequestException, ValueError):
104 |     """The URL scheme provided is either invalid or unsupported."""
105 | 
106 | 
107 | class InvalidURL(RequestException, ValueError):
108 |     """The URL provided was somehow invalid."""
109 | 
110 | 
111 | class InvalidHeader(RequestException, ValueError):
112 |     """The header value provided was somehow invalid."""
113 | 
114 | 
115 | class InvalidProxyURL(InvalidURL):
116 |     """The proxy URL provided is invalid."""
117 | 
118 | 
119 | class ChunkedEncodingError(RequestException):
120 |     """The server declared chunked encoding but sent an invalid chunk."""
121 | 
122 | 
123 | class ContentDecodingError(RequestException, BaseHTTPError):
124 |     """Failed to decode response content."""
125 | 
126 | 
127 | class StreamConsumedError(RequestException, TypeError):
128 |     """The content for this response was already consumed."""
129 | 
130 | 
131 | class RetryError(RequestException):
132 |     """Custom retries logic failed"""
133 | 
134 | 
135 | class UnrewindableBodyError(RequestException):
136 |     """Requests encountered an error when trying to rewind a body."""
137 | 
138 | 
139 | # Warnings
140 | 
141 | 
142 | class RequestsWarning(Warning):
143 |     """Base warning for Requests."""
144 | 
145 | 
146 | class FileModeWarning(RequestsWarning, DeprecationWarning):
147 |     """A file was opened in text mode, but Requests determined its binary length."""
148 | 
149 | 
150 | class RequestsDependencyWarning(RequestsWarning):
151 |     """An imported dependency doesn't match the expected version range."""
152 | 
```

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

```python
  1 | import sys
  2 | import textwrap
  3 | from optparse import Values
  4 | from typing import List
  5 | 
  6 | from pip._internal.cli.base_command import Command
  7 | from pip._internal.cli.status_codes import SUCCESS
  8 | from pip._internal.utils.misc import get_prog
  9 | 
 10 | BASE_COMPLETION = """
 11 | # pip {shell} completion start{script}# pip {shell} completion end
 12 | """
 13 | 
 14 | COMPLETION_SCRIPTS = {
 15 |     "bash": """
 16 |         _pip_completion()
 17 |         {{
 18 |             COMPREPLY=( $( COMP_WORDS="${{COMP_WORDS[*]}}" \\
 19 |                            COMP_CWORD=$COMP_CWORD \\
 20 |                            PIP_AUTO_COMPLETE=1 $1 2>/dev/null ) )
 21 |         }}
 22 |         complete -o default -F _pip_completion {prog}
 23 |     """,
 24 |     "zsh": """
 25 |         #compdef -P pip[0-9.]#
 26 |         __pip() {{
 27 |           compadd $( COMP_WORDS="$words[*]" \\
 28 |                      COMP_CWORD=$((CURRENT-1)) \\
 29 |                      PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )
 30 |         }}
 31 |         if [[ $zsh_eval_context[-1] == loadautofunc ]]; then
 32 |           # autoload from fpath, call function directly
 33 |           __pip "$@"
 34 |         else
 35 |           # eval/source/. command, register function for later
 36 |           compdef __pip -P 'pip[0-9.]#'
 37 |         fi
 38 |     """,
 39 |     "fish": """
 40 |         function __fish_complete_pip
 41 |             set -lx COMP_WORDS (commandline -o) ""
 42 |             set -lx COMP_CWORD ( \\
 43 |                 math (contains -i -- (commandline -t) $COMP_WORDS)-1 \\
 44 |             )
 45 |             set -lx PIP_AUTO_COMPLETE 1
 46 |             string split \\  -- (eval $COMP_WORDS[1])
 47 |         end
 48 |         complete -fa "(__fish_complete_pip)" -c {prog}
 49 |     """,
 50 |     "powershell": """
 51 |         if ((Test-Path Function:\\TabExpansion) -and -not `
 52 |             (Test-Path Function:\\_pip_completeBackup)) {{
 53 |             Rename-Item Function:\\TabExpansion _pip_completeBackup
 54 |         }}
 55 |         function TabExpansion($line, $lastWord) {{
 56 |             $lastBlock = [regex]::Split($line, '[|;]')[-1].TrimStart()
 57 |             if ($lastBlock.StartsWith("{prog} ")) {{
 58 |                 $Env:COMP_WORDS=$lastBlock
 59 |                 $Env:COMP_CWORD=$lastBlock.Split().Length - 1
 60 |                 $Env:PIP_AUTO_COMPLETE=1
 61 |                 (& {prog}).Split()
 62 |                 Remove-Item Env:COMP_WORDS
 63 |                 Remove-Item Env:COMP_CWORD
 64 |                 Remove-Item Env:PIP_AUTO_COMPLETE
 65 |             }}
 66 |             elseif (Test-Path Function:\\_pip_completeBackup) {{
 67 |                 # Fall back on existing tab expansion
 68 |                 _pip_completeBackup $line $lastWord
 69 |             }}
 70 |         }}
 71 |     """,
 72 | }
 73 | 
 74 | 
 75 | class CompletionCommand(Command):
 76 |     """A helper command to be used for command completion."""
 77 | 
 78 |     ignore_require_venv = True
 79 | 
 80 |     def add_options(self) -> None:
 81 |         self.cmd_opts.add_option(
 82 |             "--bash",
 83 |             "-b",
 84 |             action="store_const",
 85 |             const="bash",
 86 |             dest="shell",
 87 |             help="Emit completion code for bash",
 88 |         )
 89 |         self.cmd_opts.add_option(
 90 |             "--zsh",
 91 |             "-z",
 92 |             action="store_const",
 93 |             const="zsh",
 94 |             dest="shell",
 95 |             help="Emit completion code for zsh",
 96 |         )
 97 |         self.cmd_opts.add_option(
 98 |             "--fish",
 99 |             "-f",
100 |             action="store_const",
101 |             const="fish",
102 |             dest="shell",
103 |             help="Emit completion code for fish",
104 |         )
105 |         self.cmd_opts.add_option(
106 |             "--powershell",
107 |             "-p",
108 |             action="store_const",
109 |             const="powershell",
110 |             dest="shell",
111 |             help="Emit completion code for powershell",
112 |         )
113 | 
114 |         self.parser.insert_option_group(0, self.cmd_opts)
115 | 
116 |     def run(self, options: Values, args: List[str]) -> int:
117 |         """Prints the completion code of the given shell"""
118 |         shells = COMPLETION_SCRIPTS.keys()
119 |         shell_options = ["--" + shell for shell in sorted(shells)]
120 |         if options.shell in shells:
121 |             script = textwrap.dedent(
122 |                 COMPLETION_SCRIPTS.get(options.shell, "").format(prog=get_prog())
123 |             )
124 |             print(BASE_COMPLETION.format(script=script, shell=options.shell))
125 |             return SUCCESS
126 |         else:
127 |             sys.stderr.write(
128 |                 "ERROR: You must pass {}\n".format(" or ".join(shell_options))
129 |             )
130 |             return SUCCESS
131 | 
```

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

```python
  1 | # SPDX-FileCopyrightText: 2015 Eric Larson
  2 | #
  3 | # SPDX-License-Identifier: Apache-2.0
  4 | from __future__ import annotations
  5 | 
  6 | import mmap
  7 | from tempfile import NamedTemporaryFile
  8 | from typing import TYPE_CHECKING, Any, Callable
  9 | 
 10 | if TYPE_CHECKING:
 11 |     from http.client import HTTPResponse
 12 | 
 13 | 
 14 | class CallbackFileWrapper:
 15 |     """
 16 |     Small wrapper around a fp object which will tee everything read into a
 17 |     buffer, and when that file is closed it will execute a callback with the
 18 |     contents of that buffer.
 19 | 
 20 |     All attributes are proxied to the underlying file object.
 21 | 
 22 |     This class uses members with a double underscore (__) leading prefix so as
 23 |     not to accidentally shadow an attribute.
 24 | 
 25 |     The data is stored in a temporary file until it is all available.  As long
 26 |     as the temporary files directory is disk-based (sometimes it's a
 27 |     memory-backed-``tmpfs`` on Linux), data will be unloaded to disk if memory
 28 |     pressure is high.  For small files the disk usually won't be used at all,
 29 |     it'll all be in the filesystem memory cache, so there should be no
 30 |     performance impact.
 31 |     """
 32 | 
 33 |     def __init__(
 34 |         self, fp: HTTPResponse, callback: Callable[[bytes], None] | None
 35 |     ) -> None:
 36 |         self.__buf = NamedTemporaryFile("rb+", delete=True)
 37 |         self.__fp = fp
 38 |         self.__callback = callback
 39 | 
 40 |     def __getattr__(self, name: str) -> Any:
 41 |         # The vaguaries of garbage collection means that self.__fp is
 42 |         # not always set.  By using __getattribute__ and the private
 43 |         # name[0] allows looking up the attribute value and raising an
 44 |         # AttributeError when it doesn't exist. This stop thigns from
 45 |         # infinitely recursing calls to getattr in the case where
 46 |         # self.__fp hasn't been set.
 47 |         #
 48 |         # [0] https://docs.python.org/2/reference/expressions.html#atom-identifiers
 49 |         fp = self.__getattribute__("_CallbackFileWrapper__fp")
 50 |         return getattr(fp, name)
 51 | 
 52 |     def __is_fp_closed(self) -> bool:
 53 |         try:
 54 |             return self.__fp.fp is None
 55 | 
 56 |         except AttributeError:
 57 |             pass
 58 | 
 59 |         try:
 60 |             closed: bool = self.__fp.closed
 61 |             return closed
 62 | 
 63 |         except AttributeError:
 64 |             pass
 65 | 
 66 |         # We just don't cache it then.
 67 |         # TODO: Add some logging here...
 68 |         return False
 69 | 
 70 |     def _close(self) -> None:
 71 |         if self.__callback:
 72 |             if self.__buf.tell() == 0:
 73 |                 # Empty file:
 74 |                 result = b""
 75 |             else:
 76 |                 # Return the data without actually loading it into memory,
 77 |                 # relying on Python's buffer API and mmap(). mmap() just gives
 78 |                 # a view directly into the filesystem's memory cache, so it
 79 |                 # doesn't result in duplicate memory use.
 80 |                 self.__buf.seek(0, 0)
 81 |                 result = memoryview(
 82 |                     mmap.mmap(self.__buf.fileno(), 0, access=mmap.ACCESS_READ)
 83 |                 )
 84 |             self.__callback(result)
 85 | 
 86 |         # We assign this to None here, because otherwise we can get into
 87 |         # really tricky problems where the CPython interpreter dead locks
 88 |         # because the callback is holding a reference to something which
 89 |         # has a __del__ method. Setting this to None breaks the cycle
 90 |         # and allows the garbage collector to do it's thing normally.
 91 |         self.__callback = None
 92 | 
 93 |         # Closing the temporary file releases memory and frees disk space.
 94 |         # Important when caching big files.
 95 |         self.__buf.close()
 96 | 
 97 |     def read(self, amt: int | None = None) -> bytes:
 98 |         data: bytes = self.__fp.read(amt)
 99 |         if data:
100 |             # We may be dealing with b'', a sign that things are over:
101 |             # it's passed e.g. after we've already closed self.__buf.
102 |             self.__buf.write(data)
103 |         if self.__is_fp_closed():
104 |             self._close()
105 | 
106 |         return data
107 | 
108 |     def _safe_read(self, amt: int) -> bytes:
109 |         data: bytes = self.__fp._safe_read(amt)  # type: ignore[attr-defined]
110 |         if amt == 2 and data == b"\r\n":
111 |             # urllib executes this read to toss the CRLF at the end
112 |             # of the chunk.
113 |             return data
114 | 
115 |         self.__buf.write(data)
116 |         if self.__is_fp_closed():
117 |             self._close()
118 | 
119 |         return data
120 | 
```

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

```python
  1 | r"""
  2 | The ``codes`` object defines a mapping from common names for HTTP statuses
  3 | to their numerical codes, accessible either as attributes or as dictionary
  4 | items.
  5 | 
  6 | Example::
  7 | 
  8 |     >>> import requests
  9 |     >>> requests.codes['temporary_redirect']
 10 |     307
 11 |     >>> requests.codes.teapot
 12 |     418
 13 |     >>> requests.codes['\o/']
 14 |     200
 15 | 
 16 | Some codes have multiple names, and both upper- and lower-case versions of
 17 | the names are allowed. For example, ``codes.ok``, ``codes.OK``, and
 18 | ``codes.okay`` all correspond to the HTTP status code 200.
 19 | """
 20 | 
 21 | from .structures import LookupDict
 22 | 
 23 | _codes = {
 24 |     # Informational.
 25 |     100: ("continue",),
 26 |     101: ("switching_protocols",),
 27 |     102: ("processing", "early-hints"),
 28 |     103: ("checkpoint",),
 29 |     122: ("uri_too_long", "request_uri_too_long"),
 30 |     200: ("ok", "okay", "all_ok", "all_okay", "all_good", "\\o/", "✓"),
 31 |     201: ("created",),
 32 |     202: ("accepted",),
 33 |     203: ("non_authoritative_info", "non_authoritative_information"),
 34 |     204: ("no_content",),
 35 |     205: ("reset_content", "reset"),
 36 |     206: ("partial_content", "partial"),
 37 |     207: ("multi_status", "multiple_status", "multi_stati", "multiple_stati"),
 38 |     208: ("already_reported",),
 39 |     226: ("im_used",),
 40 |     # Redirection.
 41 |     300: ("multiple_choices",),
 42 |     301: ("moved_permanently", "moved", "\\o-"),
 43 |     302: ("found",),
 44 |     303: ("see_other", "other"),
 45 |     304: ("not_modified",),
 46 |     305: ("use_proxy",),
 47 |     306: ("switch_proxy",),
 48 |     307: ("temporary_redirect", "temporary_moved", "temporary"),
 49 |     308: (
 50 |         "permanent_redirect",
 51 |         "resume_incomplete",
 52 |         "resume",
 53 |     ),  # "resume" and "resume_incomplete" to be removed in 3.0
 54 |     # Client Error.
 55 |     400: ("bad_request", "bad"),
 56 |     401: ("unauthorized",),
 57 |     402: ("payment_required", "payment"),
 58 |     403: ("forbidden",),
 59 |     404: ("not_found", "-o-"),
 60 |     405: ("method_not_allowed", "not_allowed"),
 61 |     406: ("not_acceptable",),
 62 |     407: ("proxy_authentication_required", "proxy_auth", "proxy_authentication"),
 63 |     408: ("request_timeout", "timeout"),
 64 |     409: ("conflict",),
 65 |     410: ("gone",),
 66 |     411: ("length_required",),
 67 |     412: ("precondition_failed", "precondition"),
 68 |     413: ("request_entity_too_large", "content_too_large"),
 69 |     414: ("request_uri_too_large", "uri_too_long"),
 70 |     415: ("unsupported_media_type", "unsupported_media", "media_type"),
 71 |     416: (
 72 |         "requested_range_not_satisfiable",
 73 |         "requested_range",
 74 |         "range_not_satisfiable",
 75 |     ),
 76 |     417: ("expectation_failed",),
 77 |     418: ("im_a_teapot", "teapot", "i_am_a_teapot"),
 78 |     421: ("misdirected_request",),
 79 |     422: ("unprocessable_entity", "unprocessable", "unprocessable_content"),
 80 |     423: ("locked",),
 81 |     424: ("failed_dependency", "dependency"),
 82 |     425: ("unordered_collection", "unordered", "too_early"),
 83 |     426: ("upgrade_required", "upgrade"),
 84 |     428: ("precondition_required", "precondition"),
 85 |     429: ("too_many_requests", "too_many"),
 86 |     431: ("header_fields_too_large", "fields_too_large"),
 87 |     444: ("no_response", "none"),
 88 |     449: ("retry_with", "retry"),
 89 |     450: ("blocked_by_windows_parental_controls", "parental_controls"),
 90 |     451: ("unavailable_for_legal_reasons", "legal_reasons"),
 91 |     499: ("client_closed_request",),
 92 |     # Server Error.
 93 |     500: ("internal_server_error", "server_error", "/o\\", "✗"),
 94 |     501: ("not_implemented",),
 95 |     502: ("bad_gateway",),
 96 |     503: ("service_unavailable", "unavailable"),
 97 |     504: ("gateway_timeout",),
 98 |     505: ("http_version_not_supported", "http_version"),
 99 |     506: ("variant_also_negotiates",),
100 |     507: ("insufficient_storage",),
101 |     509: ("bandwidth_limit_exceeded", "bandwidth"),
102 |     510: ("not_extended",),
103 |     511: ("network_authentication_required", "network_auth", "network_authentication"),
104 | }
105 | 
106 | codes = LookupDict(name="status_codes")
107 | 
108 | 
109 | def _init():
110 |     for code, titles in _codes.items():
111 |         for title in titles:
112 |             setattr(codes, title, code)
113 |             if not title.startswith(("\\", "/")):
114 |                 setattr(codes, title.upper(), code)
115 | 
116 |     def doc(code):
117 |         names = ", ".join(f"``{n}``" for n in _codes[code])
118 |         return "* %d: %s" % (code, names)
119 | 
120 |     global __doc__
121 |     __doc__ = (
122 |         __doc__ + "\n" + "\n".join(doc(code) for code in sorted(_codes))
123 |         if __doc__ is not None
124 |         else None
125 |     )
126 | 
127 | 
128 | _init()
129 | 
```

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

```python
  1 | r"""
  2 | The ``codes`` object defines a mapping from common names for HTTP statuses
  3 | to their numerical codes, accessible either as attributes or as dictionary
  4 | items.
  5 | 
  6 | Example::
  7 | 
  8 |     >>> import requests
  9 |     >>> requests.codes['temporary_redirect']
 10 |     307
 11 |     >>> requests.codes.teapot
 12 |     418
 13 |     >>> requests.codes['\o/']
 14 |     200
 15 | 
 16 | Some codes have multiple names, and both upper- and lower-case versions of
 17 | the names are allowed. For example, ``codes.ok``, ``codes.OK``, and
 18 | ``codes.okay`` all correspond to the HTTP status code 200.
 19 | """
 20 | 
 21 | from .structures import LookupDict
 22 | 
 23 | _codes = {
 24 |     # Informational.
 25 |     100: ("continue",),
 26 |     101: ("switching_protocols",),
 27 |     102: ("processing", "early-hints"),
 28 |     103: ("checkpoint",),
 29 |     122: ("uri_too_long", "request_uri_too_long"),
 30 |     200: ("ok", "okay", "all_ok", "all_okay", "all_good", "\\o/", "✓"),
 31 |     201: ("created",),
 32 |     202: ("accepted",),
 33 |     203: ("non_authoritative_info", "non_authoritative_information"),
 34 |     204: ("no_content",),
 35 |     205: ("reset_content", "reset"),
 36 |     206: ("partial_content", "partial"),
 37 |     207: ("multi_status", "multiple_status", "multi_stati", "multiple_stati"),
 38 |     208: ("already_reported",),
 39 |     226: ("im_used",),
 40 |     # Redirection.
 41 |     300: ("multiple_choices",),
 42 |     301: ("moved_permanently", "moved", "\\o-"),
 43 |     302: ("found",),
 44 |     303: ("see_other", "other"),
 45 |     304: ("not_modified",),
 46 |     305: ("use_proxy",),
 47 |     306: ("switch_proxy",),
 48 |     307: ("temporary_redirect", "temporary_moved", "temporary"),
 49 |     308: (
 50 |         "permanent_redirect",
 51 |         "resume_incomplete",
 52 |         "resume",
 53 |     ),  # "resume" and "resume_incomplete" to be removed in 3.0
 54 |     # Client Error.
 55 |     400: ("bad_request", "bad"),
 56 |     401: ("unauthorized",),
 57 |     402: ("payment_required", "payment"),
 58 |     403: ("forbidden",),
 59 |     404: ("not_found", "-o-"),
 60 |     405: ("method_not_allowed", "not_allowed"),
 61 |     406: ("not_acceptable",),
 62 |     407: ("proxy_authentication_required", "proxy_auth", "proxy_authentication"),
 63 |     408: ("request_timeout", "timeout"),
 64 |     409: ("conflict",),
 65 |     410: ("gone",),
 66 |     411: ("length_required",),
 67 |     412: ("precondition_failed", "precondition"),
 68 |     413: ("request_entity_too_large", "content_too_large"),
 69 |     414: ("request_uri_too_large", "uri_too_long"),
 70 |     415: ("unsupported_media_type", "unsupported_media", "media_type"),
 71 |     416: (
 72 |         "requested_range_not_satisfiable",
 73 |         "requested_range",
 74 |         "range_not_satisfiable",
 75 |     ),
 76 |     417: ("expectation_failed",),
 77 |     418: ("im_a_teapot", "teapot", "i_am_a_teapot"),
 78 |     421: ("misdirected_request",),
 79 |     422: ("unprocessable_entity", "unprocessable", "unprocessable_content"),
 80 |     423: ("locked",),
 81 |     424: ("failed_dependency", "dependency"),
 82 |     425: ("unordered_collection", "unordered", "too_early"),
 83 |     426: ("upgrade_required", "upgrade"),
 84 |     428: ("precondition_required", "precondition"),
 85 |     429: ("too_many_requests", "too_many"),
 86 |     431: ("header_fields_too_large", "fields_too_large"),
 87 |     444: ("no_response", "none"),
 88 |     449: ("retry_with", "retry"),
 89 |     450: ("blocked_by_windows_parental_controls", "parental_controls"),
 90 |     451: ("unavailable_for_legal_reasons", "legal_reasons"),
 91 |     499: ("client_closed_request",),
 92 |     # Server Error.
 93 |     500: ("internal_server_error", "server_error", "/o\\", "✗"),
 94 |     501: ("not_implemented",),
 95 |     502: ("bad_gateway",),
 96 |     503: ("service_unavailable", "unavailable"),
 97 |     504: ("gateway_timeout",),
 98 |     505: ("http_version_not_supported", "http_version"),
 99 |     506: ("variant_also_negotiates",),
100 |     507: ("insufficient_storage",),
101 |     509: ("bandwidth_limit_exceeded", "bandwidth"),
102 |     510: ("not_extended",),
103 |     511: ("network_authentication_required", "network_auth", "network_authentication"),
104 | }
105 | 
106 | codes = LookupDict(name="status_codes")
107 | 
108 | 
109 | def _init():
110 |     for code, titles in _codes.items():
111 |         for title in titles:
112 |             setattr(codes, title, code)
113 |             if not title.startswith(("\\", "/")):
114 |                 setattr(codes, title.upper(), code)
115 | 
116 |     def doc(code):
117 |         names = ", ".join(f"``{n}``" for n in _codes[code])
118 |         return "* %d: %s" % (code, names)
119 | 
120 |     global __doc__
121 |     __doc__ = (
122 |         __doc__ + "\n" + "\n".join(doc(code) for code in sorted(_codes))
123 |         if __doc__ is not None
124 |         else None
125 |     )
126 | 
127 | 
128 | _init()
129 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py:
--------------------------------------------------------------------------------

```python
  1 | """A single place for constructing and exposing the main parser
  2 | """
  3 | 
  4 | import os
  5 | import subprocess
  6 | import sys
  7 | from typing import List, Optional, Tuple
  8 | 
  9 | from pip._internal.build_env import get_runnable_pip
 10 | from pip._internal.cli import cmdoptions
 11 | from pip._internal.cli.parser import ConfigOptionParser, UpdatingDefaultsHelpFormatter
 12 | from pip._internal.commands import commands_dict, get_similar_commands
 13 | from pip._internal.exceptions import CommandError
 14 | from pip._internal.utils.misc import get_pip_version, get_prog
 15 | 
 16 | __all__ = ["create_main_parser", "parse_command"]
 17 | 
 18 | 
 19 | def create_main_parser() -> ConfigOptionParser:
 20 |     """Creates and returns the main parser for pip's CLI"""
 21 | 
 22 |     parser = ConfigOptionParser(
 23 |         usage="\n%prog <command> [options]",
 24 |         add_help_option=False,
 25 |         formatter=UpdatingDefaultsHelpFormatter(),
 26 |         name="global",
 27 |         prog=get_prog(),
 28 |     )
 29 |     parser.disable_interspersed_args()
 30 | 
 31 |     parser.version = get_pip_version()
 32 | 
 33 |     # add the general options
 34 |     gen_opts = cmdoptions.make_option_group(cmdoptions.general_group, parser)
 35 |     parser.add_option_group(gen_opts)
 36 | 
 37 |     # so the help formatter knows
 38 |     parser.main = True  # type: ignore
 39 | 
 40 |     # create command listing for description
 41 |     description = [""] + [
 42 |         f"{name:27} {command_info.summary}"
 43 |         for name, command_info in commands_dict.items()
 44 |     ]
 45 |     parser.description = "\n".join(description)
 46 | 
 47 |     return parser
 48 | 
 49 | 
 50 | def identify_python_interpreter(python: str) -> Optional[str]:
 51 |     # If the named file exists, use it.
 52 |     # If it's a directory, assume it's a virtual environment and
 53 |     # look for the environment's Python executable.
 54 |     if os.path.exists(python):
 55 |         if os.path.isdir(python):
 56 |             # bin/python for Unix, Scripts/python.exe for Windows
 57 |             # Try both in case of odd cases like cygwin.
 58 |             for exe in ("bin/python", "Scripts/python.exe"):
 59 |                 py = os.path.join(python, exe)
 60 |                 if os.path.exists(py):
 61 |                     return py
 62 |         else:
 63 |             return python
 64 | 
 65 |     # Could not find the interpreter specified
 66 |     return None
 67 | 
 68 | 
 69 | def parse_command(args: List[str]) -> Tuple[str, List[str]]:
 70 |     parser = create_main_parser()
 71 | 
 72 |     # Note: parser calls disable_interspersed_args(), so the result of this
 73 |     # call is to split the initial args into the general options before the
 74 |     # subcommand and everything else.
 75 |     # For example:
 76 |     #  args: ['--timeout=5', 'install', '--user', 'INITools']
 77 |     #  general_options: ['--timeout==5']
 78 |     #  args_else: ['install', '--user', 'INITools']
 79 |     general_options, args_else = parser.parse_args(args)
 80 | 
 81 |     # --python
 82 |     if general_options.python and "_PIP_RUNNING_IN_SUBPROCESS" not in os.environ:
 83 |         # Re-invoke pip using the specified Python interpreter
 84 |         interpreter = identify_python_interpreter(general_options.python)
 85 |         if interpreter is None:
 86 |             raise CommandError(
 87 |                 f"Could not locate Python interpreter {general_options.python}"
 88 |             )
 89 | 
 90 |         pip_cmd = [
 91 |             interpreter,
 92 |             get_runnable_pip(),
 93 |         ]
 94 |         pip_cmd.extend(args)
 95 | 
 96 |         # Set a flag so the child doesn't re-invoke itself, causing
 97 |         # an infinite loop.
 98 |         os.environ["_PIP_RUNNING_IN_SUBPROCESS"] = "1"
 99 |         returncode = 0
100 |         try:
101 |             proc = subprocess.run(pip_cmd)
102 |             returncode = proc.returncode
103 |         except (subprocess.SubprocessError, OSError) as exc:
104 |             raise CommandError(f"Failed to run pip under {interpreter}: {exc}")
105 |         sys.exit(returncode)
106 | 
107 |     # --version
108 |     if general_options.version:
109 |         sys.stdout.write(parser.version)
110 |         sys.stdout.write(os.linesep)
111 |         sys.exit()
112 | 
113 |     # pip || pip help -> print_help()
114 |     if not args_else or (args_else[0] == "help" and len(args_else) == 1):
115 |         parser.print_help()
116 |         sys.exit()
117 | 
118 |     # the subcommand name
119 |     cmd_name = args_else[0]
120 | 
121 |     if cmd_name not in commands_dict:
122 |         guess = get_similar_commands(cmd_name)
123 | 
124 |         msg = [f'unknown command "{cmd_name}"']
125 |         if guess:
126 |             msg.append(f'maybe you meant "{guess}"')
127 | 
128 |         raise CommandError(" - ".join(msg))
129 | 
130 |     # all the args without the subcommand
131 |     cmd_args = args[:]
132 |     cmd_args.remove(cmd_name)
133 | 
134 |     return cmd_name, cmd_args
135 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py:
--------------------------------------------------------------------------------

```python
  1 | import contextlib
  2 | import functools
  3 | import os
  4 | import sys
  5 | from typing import TYPE_CHECKING, List, Optional, Type, cast
  6 | 
  7 | from pip._internal.utils.misc import strtobool
  8 | 
  9 | from .base import BaseDistribution, BaseEnvironment, FilesystemWheel, MemoryWheel, Wheel
 10 | 
 11 | if TYPE_CHECKING:
 12 |     from typing import Literal, Protocol
 13 | else:
 14 |     Protocol = object
 15 | 
 16 | __all__ = [
 17 |     "BaseDistribution",
 18 |     "BaseEnvironment",
 19 |     "FilesystemWheel",
 20 |     "MemoryWheel",
 21 |     "Wheel",
 22 |     "get_default_environment",
 23 |     "get_environment",
 24 |     "get_wheel_distribution",
 25 |     "select_backend",
 26 | ]
 27 | 
 28 | 
 29 | def _should_use_importlib_metadata() -> bool:
 30 |     """Whether to use the ``importlib.metadata`` or ``pkg_resources`` backend.
 31 | 
 32 |     By default, pip uses ``importlib.metadata`` on Python 3.11+, and
 33 |     ``pkg_resourcess`` otherwise. This can be overridden by a couple of ways:
 34 | 
 35 |     * If environment variable ``_PIP_USE_IMPORTLIB_METADATA`` is set, it
 36 |       dictates whether ``importlib.metadata`` is used, regardless of Python
 37 |       version.
 38 |     * On Python 3.11+, Python distributors can patch ``importlib.metadata``
 39 |       to add a global constant ``_PIP_USE_IMPORTLIB_METADATA = False``. This
 40 |       makes pip use ``pkg_resources`` (unless the user set the aforementioned
 41 |       environment variable to *True*).
 42 |     """
 43 |     with contextlib.suppress(KeyError, ValueError):
 44 |         return bool(strtobool(os.environ["_PIP_USE_IMPORTLIB_METADATA"]))
 45 |     if sys.version_info < (3, 11):
 46 |         return False
 47 |     import importlib.metadata
 48 | 
 49 |     return bool(getattr(importlib.metadata, "_PIP_USE_IMPORTLIB_METADATA", True))
 50 | 
 51 | 
 52 | class Backend(Protocol):
 53 |     NAME: 'Literal["importlib", "pkg_resources"]'
 54 |     Distribution: Type[BaseDistribution]
 55 |     Environment: Type[BaseEnvironment]
 56 | 
 57 | 
 58 | @functools.lru_cache(maxsize=None)
 59 | def select_backend() -> Backend:
 60 |     if _should_use_importlib_metadata():
 61 |         from . import importlib
 62 | 
 63 |         return cast(Backend, importlib)
 64 |     from . import pkg_resources
 65 | 
 66 |     return cast(Backend, pkg_resources)
 67 | 
 68 | 
 69 | def get_default_environment() -> BaseEnvironment:
 70 |     """Get the default representation for the current environment.
 71 | 
 72 |     This returns an Environment instance from the chosen backend. The default
 73 |     Environment instance should be built from ``sys.path`` and may use caching
 74 |     to share instance state accorss calls.
 75 |     """
 76 |     return select_backend().Environment.default()
 77 | 
 78 | 
 79 | def get_environment(paths: Optional[List[str]]) -> BaseEnvironment:
 80 |     """Get a representation of the environment specified by ``paths``.
 81 | 
 82 |     This returns an Environment instance from the chosen backend based on the
 83 |     given import paths. The backend must build a fresh instance representing
 84 |     the state of installed distributions when this function is called.
 85 |     """
 86 |     return select_backend().Environment.from_paths(paths)
 87 | 
 88 | 
 89 | def get_directory_distribution(directory: str) -> BaseDistribution:
 90 |     """Get the distribution metadata representation in the specified directory.
 91 | 
 92 |     This returns a Distribution instance from the chosen backend based on
 93 |     the given on-disk ``.dist-info`` directory.
 94 |     """
 95 |     return select_backend().Distribution.from_directory(directory)
 96 | 
 97 | 
 98 | def get_wheel_distribution(wheel: Wheel, canonical_name: str) -> BaseDistribution:
 99 |     """Get the representation of the specified wheel's distribution metadata.
100 | 
101 |     This returns a Distribution instance from the chosen backend based on
102 |     the given wheel's ``.dist-info`` directory.
103 | 
104 |     :param canonical_name: Normalized project name of the given wheel.
105 |     """
106 |     return select_backend().Distribution.from_wheel(wheel, canonical_name)
107 | 
108 | 
109 | def get_metadata_distribution(
110 |     metadata_contents: bytes,
111 |     filename: str,
112 |     canonical_name: str,
113 | ) -> BaseDistribution:
114 |     """Get the dist representation of the specified METADATA file contents.
115 | 
116 |     This returns a Distribution instance from the chosen backend sourced from the data
117 |     in `metadata_contents`.
118 | 
119 |     :param metadata_contents: Contents of a METADATA file within a dist, or one served
120 |                               via PEP 658.
121 |     :param filename: Filename for the dist this metadata represents.
122 |     :param canonical_name: Normalized project name of the given dist.
123 |     """
124 |     return select_backend().Distribution.from_metadata_file_contents(
125 |         metadata_contents,
126 |         filename,
127 |         canonical_name,
128 |     )
129 | 
```
Page 11/168FirstPrevNextLast