#
tokens: 46746/50000 4/808 files (page 45/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 45 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/lxml/includes/libxml/xmlreader.h:
--------------------------------------------------------------------------------

```
  1 | /*
  2 |  * Summary: the XMLReader implementation
  3 |  * Description: API of the XML streaming API based on C# interfaces.
  4 |  *
  5 |  * Copy: See Copyright for the status of this software.
  6 |  *
  7 |  * Author: Daniel Veillard
  8 |  */
  9 | 
 10 | #ifndef __XML_XMLREADER_H__
 11 | #define __XML_XMLREADER_H__
 12 | 
 13 | #include <libxml/xmlversion.h>
 14 | #include <libxml/tree.h>
 15 | #include <libxml/xmlerror.h>
 16 | #include <libxml/xmlIO.h>
 17 | #ifdef LIBXML_SCHEMAS_ENABLED
 18 | #include <libxml/relaxng.h>
 19 | #include <libxml/xmlschemas.h>
 20 | #endif
 21 | /* for compatibility */
 22 | #include <libxml/parser.h>
 23 | 
 24 | #ifdef __cplusplus
 25 | extern "C" {
 26 | #endif
 27 | 
 28 | /**
 29 |  * xmlParserSeverities:
 30 |  *
 31 |  * How severe an error callback is when the per-reader error callback API
 32 |  * is used.
 33 |  */
 34 | typedef enum {
 35 |     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
 36 |     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
 37 |     XML_PARSER_SEVERITY_WARNING = 3,
 38 |     XML_PARSER_SEVERITY_ERROR = 4
 39 | } xmlParserSeverities;
 40 | 
 41 | #ifdef LIBXML_READER_ENABLED
 42 | 
 43 | /**
 44 |  * xmlTextReaderMode:
 45 |  *
 46 |  * Internal state values for the reader.
 47 |  */
 48 | typedef enum {
 49 |     XML_TEXTREADER_MODE_INITIAL = 0,
 50 |     XML_TEXTREADER_MODE_INTERACTIVE = 1,
 51 |     XML_TEXTREADER_MODE_ERROR = 2,
 52 |     XML_TEXTREADER_MODE_EOF =3,
 53 |     XML_TEXTREADER_MODE_CLOSED = 4,
 54 |     XML_TEXTREADER_MODE_READING = 5
 55 | } xmlTextReaderMode;
 56 | 
 57 | /**
 58 |  * xmlParserProperties:
 59 |  *
 60 |  * Some common options to use with xmlTextReaderSetParserProp, but it
 61 |  * is better to use xmlParserOption and the xmlReaderNewxxx and
 62 |  * xmlReaderForxxx APIs now.
 63 |  */
 64 | typedef enum {
 65 |     XML_PARSER_LOADDTD = 1,
 66 |     XML_PARSER_DEFAULTATTRS = 2,
 67 |     XML_PARSER_VALIDATE = 3,
 68 |     XML_PARSER_SUBST_ENTITIES = 4
 69 | } xmlParserProperties;
 70 | 
 71 | /**
 72 |  * xmlReaderTypes:
 73 |  *
 74 |  * Predefined constants for the different types of nodes.
 75 |  */
 76 | typedef enum {
 77 |     XML_READER_TYPE_NONE = 0,
 78 |     XML_READER_TYPE_ELEMENT = 1,
 79 |     XML_READER_TYPE_ATTRIBUTE = 2,
 80 |     XML_READER_TYPE_TEXT = 3,
 81 |     XML_READER_TYPE_CDATA = 4,
 82 |     XML_READER_TYPE_ENTITY_REFERENCE = 5,
 83 |     XML_READER_TYPE_ENTITY = 6,
 84 |     XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
 85 |     XML_READER_TYPE_COMMENT = 8,
 86 |     XML_READER_TYPE_DOCUMENT = 9,
 87 |     XML_READER_TYPE_DOCUMENT_TYPE = 10,
 88 |     XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
 89 |     XML_READER_TYPE_NOTATION = 12,
 90 |     XML_READER_TYPE_WHITESPACE = 13,
 91 |     XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
 92 |     XML_READER_TYPE_END_ELEMENT = 15,
 93 |     XML_READER_TYPE_END_ENTITY = 16,
 94 |     XML_READER_TYPE_XML_DECLARATION = 17
 95 | } xmlReaderTypes;
 96 | 
 97 | /**
 98 |  * xmlTextReader:
 99 |  *
100 |  * Structure for an xmlReader context.
101 |  */
102 | typedef struct _xmlTextReader xmlTextReader;
103 | 
104 | /**
105 |  * xmlTextReaderPtr:
106 |  *
107 |  * Pointer to an xmlReader context.
108 |  */
109 | typedef xmlTextReader *xmlTextReaderPtr;
110 | 
111 | /*
112 |  * Constructors & Destructor
113 |  */
114 | XMLPUBFUN xmlTextReaderPtr
115 | 			xmlNewTextReader	(xmlParserInputBufferPtr input,
116 | 	                                         const char *URI);
117 | XMLPUBFUN xmlTextReaderPtr
118 | 			xmlNewTextReaderFilename(const char *URI);
119 | 
120 | XMLPUBFUN void
121 | 			xmlFreeTextReader	(xmlTextReaderPtr reader);
122 | 
123 | XMLPUBFUN int
124 |             xmlTextReaderSetup(xmlTextReaderPtr reader,
125 |                    xmlParserInputBufferPtr input, const char *URL,
126 |                    const char *encoding, int options);
127 | XMLPUBFUN void
128 |             xmlTextReaderSetMaxAmplification(xmlTextReaderPtr reader,
129 |                    unsigned maxAmpl);
130 | 
131 | /*
132 |  * Iterators
133 |  */
134 | XMLPUBFUN int
135 | 			xmlTextReaderRead	(xmlTextReaderPtr reader);
136 | 
137 | #ifdef LIBXML_WRITER_ENABLED
138 | XMLPUBFUN xmlChar *
139 | 			xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
140 | 
141 | XMLPUBFUN xmlChar *
142 | 			xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
143 | #endif
144 | 
145 | XMLPUBFUN xmlChar *
146 | 			xmlTextReaderReadString	(xmlTextReaderPtr reader);
147 | XMLPUBFUN int
148 | 			xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
149 | 
150 | /*
151 |  * Attributes of the node
152 |  */
153 | XMLPUBFUN int
154 | 			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
155 | XMLPUBFUN int
156 | 			xmlTextReaderDepth	(xmlTextReaderPtr reader);
157 | XMLPUBFUN int
158 | 			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
159 | XMLPUBFUN int
160 | 			xmlTextReaderHasValue(xmlTextReaderPtr reader);
161 | XMLPUBFUN int
162 | 			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
163 | XMLPUBFUN int
164 | 			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
165 | XMLPUBFUN int
166 | 			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
167 | XMLPUBFUN int
168 | 			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
169 | XMLPUBFUN int
170 | 			xmlTextReaderReadState	(xmlTextReaderPtr reader);
171 | XMLPUBFUN int
172 |                         xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
173 | 
174 | XMLPUBFUN const xmlChar *
175 | 		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
176 | XMLPUBFUN const xmlChar *
177 | 		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
178 | XMLPUBFUN const xmlChar *
179 | 		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
180 | XMLPUBFUN const xmlChar *
181 | 		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
182 | XMLPUBFUN const xmlChar *
183 | 		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
184 | XMLPUBFUN const xmlChar *
185 | 		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
186 | XMLPUBFUN const xmlChar *
187 | 		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
188 | 						 const xmlChar *str);
189 | XMLPUBFUN const xmlChar *
190 | 		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
191 | 
192 | /*
193 |  * use the Const version of the routine for
194 |  * better performance and simpler code
195 |  */
196 | XMLPUBFUN xmlChar *
197 | 			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
198 | XMLPUBFUN xmlChar *
199 | 			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
200 | XMLPUBFUN xmlChar *
201 | 			xmlTextReaderName	(xmlTextReaderPtr reader);
202 | XMLPUBFUN xmlChar *
203 | 			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
204 | XMLPUBFUN xmlChar *
205 | 			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
206 | XMLPUBFUN xmlChar *
207 | 			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
208 | XMLPUBFUN xmlChar *
209 | 			xmlTextReaderValue	(xmlTextReaderPtr reader);
210 | 
211 | /*
212 |  * Methods of the XmlTextReader
213 |  */
214 | XMLPUBFUN int
215 | 		    xmlTextReaderClose		(xmlTextReaderPtr reader);
216 | XMLPUBFUN xmlChar *
217 | 		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
218 | 						 int no);
219 | XMLPUBFUN xmlChar *
220 | 		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
221 | 						 const xmlChar *name);
222 | XMLPUBFUN xmlChar *
223 | 		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
224 | 						 const xmlChar *localName,
225 | 						 const xmlChar *namespaceURI);
226 | XMLPUBFUN xmlParserInputBufferPtr
227 | 		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
228 | XMLPUBFUN xmlChar *
229 | 		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
230 | 						 const xmlChar *prefix);
231 | XMLPUBFUN int
232 | 		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
233 | 						 int no);
234 | XMLPUBFUN int
235 | 		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
236 | 						 const xmlChar *name);
237 | XMLPUBFUN int
238 | 		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
239 | 						 const xmlChar *localName,
240 | 						 const xmlChar *namespaceURI);
241 | XMLPUBFUN int
242 | 		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
243 | XMLPUBFUN int
244 | 		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
245 | XMLPUBFUN int
246 | 		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
247 | XMLPUBFUN int
248 | 		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
249 | XMLPUBFUN const xmlChar *
250 | 		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
251 | 
252 | /*
253 |  * Extensions
254 |  */
255 | XMLPUBFUN int
256 | 		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
257 | 						 int prop,
258 | 						 int value);
259 | XMLPUBFUN int
260 | 		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
261 | 						 int prop);
262 | XMLPUBFUN xmlNodePtr
263 | 		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
264 | 
265 | XMLPUBFUN int
266 |             xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
267 | 
268 | XMLPUBFUN int
269 |             xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
270 | 
271 | XMLPUBFUN xmlNodePtr
272 | 		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
273 | #ifdef LIBXML_PATTERN_ENABLED
274 | XMLPUBFUN int
275 | 		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
276 | 						 const xmlChar *pattern,
277 | 						 const xmlChar **namespaces);
278 | #endif /* LIBXML_PATTERN_ENABLED */
279 | XMLPUBFUN xmlDocPtr
280 | 		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
281 | XMLPUBFUN xmlNodePtr
282 | 		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
283 | XMLPUBFUN int
284 | 		    xmlTextReaderNext		(xmlTextReaderPtr reader);
285 | XMLPUBFUN int
286 | 		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
287 | XMLPUBFUN int
288 | 		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
289 | #ifdef LIBXML_SCHEMAS_ENABLED
290 | XMLPUBFUN int
291 | 		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
292 | 						 const char *rng);
293 | XMLPUBFUN int
294 | 		    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
295 | 						 xmlRelaxNGValidCtxtPtr ctxt,
296 | 						 int options);
297 | 
298 | XMLPUBFUN int
299 | 		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
300 | 						 xmlRelaxNGPtr schema);
301 | XMLPUBFUN int
302 | 		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
303 | 						 const char *xsd);
304 | XMLPUBFUN int
305 | 		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
306 | 						 xmlSchemaValidCtxtPtr ctxt,
307 | 						 int options);
308 | XMLPUBFUN int
309 | 		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
310 | 						 xmlSchemaPtr schema);
311 | #endif
312 | XMLPUBFUN const xmlChar *
313 | 		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
314 | XMLPUBFUN int
315 | 		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
316 | 
317 | 
318 | /*
319 |  * Index lookup
320 |  */
321 | XMLPUBFUN long
322 | 		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
323 | 
324 | /*
325 |  * New more complete APIs for simpler creation and reuse of readers
326 |  */
327 | XMLPUBFUN xmlTextReaderPtr
328 | 		xmlReaderWalker		(xmlDocPtr doc);
329 | XMLPUBFUN xmlTextReaderPtr
330 | 		xmlReaderForDoc		(const xmlChar * cur,
331 | 					 const char *URL,
332 | 					 const char *encoding,
333 | 					 int options);
334 | XMLPUBFUN xmlTextReaderPtr
335 | 		xmlReaderForFile	(const char *filename,
336 | 					 const char *encoding,
337 | 					 int options);
338 | XMLPUBFUN xmlTextReaderPtr
339 | 		xmlReaderForMemory	(const char *buffer,
340 | 					 int size,
341 | 					 const char *URL,
342 | 					 const char *encoding,
343 | 					 int options);
344 | XMLPUBFUN xmlTextReaderPtr
345 | 		xmlReaderForFd		(int fd,
346 | 					 const char *URL,
347 | 					 const char *encoding,
348 | 					 int options);
349 | XMLPUBFUN xmlTextReaderPtr
350 | 		xmlReaderForIO		(xmlInputReadCallback ioread,
351 | 					 xmlInputCloseCallback ioclose,
352 | 					 void *ioctx,
353 | 					 const char *URL,
354 | 					 const char *encoding,
355 | 					 int options);
356 | 
357 | XMLPUBFUN int
358 | 		xmlReaderNewWalker	(xmlTextReaderPtr reader,
359 | 					 xmlDocPtr doc);
360 | XMLPUBFUN int
361 | 		xmlReaderNewDoc		(xmlTextReaderPtr reader,
362 | 					 const xmlChar * cur,
363 | 					 const char *URL,
364 | 					 const char *encoding,
365 | 					 int options);
366 | XMLPUBFUN int
367 | 		xmlReaderNewFile	(xmlTextReaderPtr reader,
368 | 					 const char *filename,
369 | 					 const char *encoding,
370 | 					 int options);
371 | XMLPUBFUN int
372 | 		xmlReaderNewMemory	(xmlTextReaderPtr reader,
373 | 					 const char *buffer,
374 | 					 int size,
375 | 					 const char *URL,
376 | 					 const char *encoding,
377 | 					 int options);
378 | XMLPUBFUN int
379 | 		xmlReaderNewFd		(xmlTextReaderPtr reader,
380 | 					 int fd,
381 | 					 const char *URL,
382 | 					 const char *encoding,
383 | 					 int options);
384 | XMLPUBFUN int
385 | 		xmlReaderNewIO		(xmlTextReaderPtr reader,
386 | 					 xmlInputReadCallback ioread,
387 | 					 xmlInputCloseCallback ioclose,
388 | 					 void *ioctx,
389 | 					 const char *URL,
390 | 					 const char *encoding,
391 | 					 int options);
392 | /*
393 |  * Error handling extensions
394 |  */
395 | typedef void *  xmlTextReaderLocatorPtr;
396 | 
397 | /**
398 |  * xmlTextReaderErrorFunc:
399 |  * @arg: the user argument
400 |  * @msg: the message
401 |  * @severity: the severity of the error
402 |  * @locator: a locator indicating where the error occurred
403 |  *
404 |  * Signature of an error callback from a reader parser
405 |  */
406 | typedef void (*xmlTextReaderErrorFunc)(void *arg,
407 | 					       const char *msg,
408 | 					       xmlParserSeverities severity,
409 | 					       xmlTextReaderLocatorPtr locator);
410 | XMLPUBFUN int
411 | 	    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
412 | XMLPUBFUN xmlChar *
413 | 	    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
414 | XMLPUBFUN void
415 | 	    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
416 | 					 xmlTextReaderErrorFunc f,
417 | 					 void *arg);
418 | XMLPUBFUN void
419 | 	    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
420 | 						   xmlStructuredErrorFunc f,
421 | 						   void *arg);
422 | XMLPUBFUN void
423 | 	    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
424 | 					 xmlTextReaderErrorFunc *f,
425 | 					 void **arg);
426 | 
427 | #endif /* LIBXML_READER_ENABLED */
428 | 
429 | #ifdef __cplusplus
430 | }
431 | #endif
432 | 
433 | #endif /* __XML_XMLREADER_H__ */
434 | 
435 | 
```

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

```python
  1 | """
  2 |     pygments.lexers
  3 |     ~~~~~~~~~~~~~~~
  4 | 
  5 |     Pygments lexers.
  6 | 
  7 |     :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
  8 |     :license: BSD, see LICENSE for details.
  9 | """
 10 | 
 11 | import re
 12 | import sys
 13 | import types
 14 | import fnmatch
 15 | from os.path import basename
 16 | 
 17 | from pip._vendor.pygments.lexers._mapping import LEXERS
 18 | from pip._vendor.pygments.modeline import get_filetype_from_buffer
 19 | from pip._vendor.pygments.plugin import find_plugin_lexers
 20 | from pip._vendor.pygments.util import ClassNotFound, guess_decode
 21 | 
 22 | COMPAT = {
 23 |     'Python3Lexer': 'PythonLexer',
 24 |     'Python3TracebackLexer': 'PythonTracebackLexer',
 25 |     'LeanLexer': 'Lean3Lexer',
 26 | }
 27 | 
 28 | __all__ = ['get_lexer_by_name', 'get_lexer_for_filename', 'find_lexer_class',
 29 |            'guess_lexer', 'load_lexer_from_file'] + list(LEXERS) + list(COMPAT)
 30 | 
 31 | _lexer_cache = {}
 32 | _pattern_cache = {}
 33 | 
 34 | 
 35 | def _fn_matches(fn, glob):
 36 |     """Return whether the supplied file name fn matches pattern filename."""
 37 |     if glob not in _pattern_cache:
 38 |         pattern = _pattern_cache[glob] = re.compile(fnmatch.translate(glob))
 39 |         return pattern.match(fn)
 40 |     return _pattern_cache[glob].match(fn)
 41 | 
 42 | 
 43 | def _load_lexers(module_name):
 44 |     """Load a lexer (and all others in the module too)."""
 45 |     mod = __import__(module_name, None, None, ['__all__'])
 46 |     for lexer_name in mod.__all__:
 47 |         cls = getattr(mod, lexer_name)
 48 |         _lexer_cache[cls.name] = cls
 49 | 
 50 | 
 51 | def get_all_lexers(plugins=True):
 52 |     """Return a generator of tuples in the form ``(name, aliases,
 53 |     filenames, mimetypes)`` of all know lexers.
 54 | 
 55 |     If *plugins* is true (the default), plugin lexers supplied by entrypoints
 56 |     are also returned.  Otherwise, only builtin ones are considered.
 57 |     """
 58 |     for item in LEXERS.values():
 59 |         yield item[1:]
 60 |     if plugins:
 61 |         for lexer in find_plugin_lexers():
 62 |             yield lexer.name, lexer.aliases, lexer.filenames, lexer.mimetypes
 63 | 
 64 | 
 65 | def find_lexer_class(name):
 66 |     """
 67 |     Return the `Lexer` subclass that with the *name* attribute as given by
 68 |     the *name* argument.
 69 |     """
 70 |     if name in _lexer_cache:
 71 |         return _lexer_cache[name]
 72 |     # lookup builtin lexers
 73 |     for module_name, lname, aliases, _, _ in LEXERS.values():
 74 |         if name == lname:
 75 |             _load_lexers(module_name)
 76 |             return _lexer_cache[name]
 77 |     # continue with lexers from setuptools entrypoints
 78 |     for cls in find_plugin_lexers():
 79 |         if cls.name == name:
 80 |             return cls
 81 | 
 82 | 
 83 | def find_lexer_class_by_name(_alias):
 84 |     """
 85 |     Return the `Lexer` subclass that has `alias` in its aliases list, without
 86 |     instantiating it.
 87 | 
 88 |     Like `get_lexer_by_name`, but does not instantiate the class.
 89 | 
 90 |     Will raise :exc:`pygments.util.ClassNotFound` if no lexer with that alias is
 91 |     found.
 92 | 
 93 |     .. versionadded:: 2.2
 94 |     """
 95 |     if not _alias:
 96 |         raise ClassNotFound(f'no lexer for alias {_alias!r} found')
 97 |     # lookup builtin lexers
 98 |     for module_name, name, aliases, _, _ in LEXERS.values():
 99 |         if _alias.lower() in aliases:
100 |             if name not in _lexer_cache:
101 |                 _load_lexers(module_name)
102 |             return _lexer_cache[name]
103 |     # continue with lexers from setuptools entrypoints
104 |     for cls in find_plugin_lexers():
105 |         if _alias.lower() in cls.aliases:
106 |             return cls
107 |     raise ClassNotFound(f'no lexer for alias {_alias!r} found')
108 | 
109 | 
110 | def get_lexer_by_name(_alias, **options):
111 |     """
112 |     Return an instance of a `Lexer` subclass that has `alias` in its
113 |     aliases list. The lexer is given the `options` at its
114 |     instantiation.
115 | 
116 |     Will raise :exc:`pygments.util.ClassNotFound` if no lexer with that alias is
117 |     found.
118 |     """
119 |     if not _alias:
120 |         raise ClassNotFound(f'no lexer for alias {_alias!r} found')
121 | 
122 |     # lookup builtin lexers
123 |     for module_name, name, aliases, _, _ in LEXERS.values():
124 |         if _alias.lower() in aliases:
125 |             if name not in _lexer_cache:
126 |                 _load_lexers(module_name)
127 |             return _lexer_cache[name](**options)
128 |     # continue with lexers from setuptools entrypoints
129 |     for cls in find_plugin_lexers():
130 |         if _alias.lower() in cls.aliases:
131 |             return cls(**options)
132 |     raise ClassNotFound(f'no lexer for alias {_alias!r} found')
133 | 
134 | 
135 | def load_lexer_from_file(filename, lexername="CustomLexer", **options):
136 |     """Load a lexer from a file.
137 | 
138 |     This method expects a file located relative to the current working
139 |     directory, which contains a Lexer class. By default, it expects the
140 |     Lexer to be name CustomLexer; you can specify your own class name
141 |     as the second argument to this function.
142 | 
143 |     Users should be very careful with the input, because this method
144 |     is equivalent to running eval on the input file.
145 | 
146 |     Raises ClassNotFound if there are any problems importing the Lexer.
147 | 
148 |     .. versionadded:: 2.2
149 |     """
150 |     try:
151 |         # This empty dict will contain the namespace for the exec'd file
152 |         custom_namespace = {}
153 |         with open(filename, 'rb') as f:
154 |             exec(f.read(), custom_namespace)
155 |         # Retrieve the class `lexername` from that namespace
156 |         if lexername not in custom_namespace:
157 |             raise ClassNotFound(f'no valid {lexername} class found in {filename}')
158 |         lexer_class = custom_namespace[lexername]
159 |         # And finally instantiate it with the options
160 |         return lexer_class(**options)
161 |     except OSError as err:
162 |         raise ClassNotFound(f'cannot read {filename}: {err}')
163 |     except ClassNotFound:
164 |         raise
165 |     except Exception as err:
166 |         raise ClassNotFound(f'error when loading custom lexer: {err}')
167 | 
168 | 
169 | def find_lexer_class_for_filename(_fn, code=None):
170 |     """Get a lexer for a filename.
171 | 
172 |     If multiple lexers match the filename pattern, use ``analyse_text()`` to
173 |     figure out which one is more appropriate.
174 | 
175 |     Returns None if not found.
176 |     """
177 |     matches = []
178 |     fn = basename(_fn)
179 |     for modname, name, _, filenames, _ in LEXERS.values():
180 |         for filename in filenames:
181 |             if _fn_matches(fn, filename):
182 |                 if name not in _lexer_cache:
183 |                     _load_lexers(modname)
184 |                 matches.append((_lexer_cache[name], filename))
185 |     for cls in find_plugin_lexers():
186 |         for filename in cls.filenames:
187 |             if _fn_matches(fn, filename):
188 |                 matches.append((cls, filename))
189 | 
190 |     if isinstance(code, bytes):
191 |         # decode it, since all analyse_text functions expect unicode
192 |         code = guess_decode(code)
193 | 
194 |     def get_rating(info):
195 |         cls, filename = info
196 |         # explicit patterns get a bonus
197 |         bonus = '*' not in filename and 0.5 or 0
198 |         # The class _always_ defines analyse_text because it's included in
199 |         # the Lexer class.  The default implementation returns None which
200 |         # gets turned into 0.0.  Run scripts/detect_missing_analyse_text.py
201 |         # to find lexers which need it overridden.
202 |         if code:
203 |             return cls.analyse_text(code) + bonus, cls.__name__
204 |         return cls.priority + bonus, cls.__name__
205 | 
206 |     if matches:
207 |         matches.sort(key=get_rating)
208 |         # print "Possible lexers, after sort:", matches
209 |         return matches[-1][0]
210 | 
211 | 
212 | def get_lexer_for_filename(_fn, code=None, **options):
213 |     """Get a lexer for a filename.
214 | 
215 |     Return a `Lexer` subclass instance that has a filename pattern
216 |     matching `fn`. The lexer is given the `options` at its
217 |     instantiation.
218 | 
219 |     Raise :exc:`pygments.util.ClassNotFound` if no lexer for that filename
220 |     is found.
221 | 
222 |     If multiple lexers match the filename pattern, use their ``analyse_text()``
223 |     methods to figure out which one is more appropriate.
224 |     """
225 |     res = find_lexer_class_for_filename(_fn, code)
226 |     if not res:
227 |         raise ClassNotFound(f'no lexer for filename {_fn!r} found')
228 |     return res(**options)
229 | 
230 | 
231 | def get_lexer_for_mimetype(_mime, **options):
232 |     """
233 |     Return a `Lexer` subclass instance that has `mime` in its mimetype
234 |     list. The lexer is given the `options` at its instantiation.
235 | 
236 |     Will raise :exc:`pygments.util.ClassNotFound` if not lexer for that mimetype
237 |     is found.
238 |     """
239 |     for modname, name, _, _, mimetypes in LEXERS.values():
240 |         if _mime in mimetypes:
241 |             if name not in _lexer_cache:
242 |                 _load_lexers(modname)
243 |             return _lexer_cache[name](**options)
244 |     for cls in find_plugin_lexers():
245 |         if _mime in cls.mimetypes:
246 |             return cls(**options)
247 |     raise ClassNotFound(f'no lexer for mimetype {_mime!r} found')
248 | 
249 | 
250 | def _iter_lexerclasses(plugins=True):
251 |     """Return an iterator over all lexer classes."""
252 |     for key in sorted(LEXERS):
253 |         module_name, name = LEXERS[key][:2]
254 |         if name not in _lexer_cache:
255 |             _load_lexers(module_name)
256 |         yield _lexer_cache[name]
257 |     if plugins:
258 |         yield from find_plugin_lexers()
259 | 
260 | 
261 | def guess_lexer_for_filename(_fn, _text, **options):
262 |     """
263 |     As :func:`guess_lexer()`, but only lexers which have a pattern in `filenames`
264 |     or `alias_filenames` that matches `filename` are taken into consideration.
265 | 
266 |     :exc:`pygments.util.ClassNotFound` is raised if no lexer thinks it can
267 |     handle the content.
268 |     """
269 |     fn = basename(_fn)
270 |     primary = {}
271 |     matching_lexers = set()
272 |     for lexer in _iter_lexerclasses():
273 |         for filename in lexer.filenames:
274 |             if _fn_matches(fn, filename):
275 |                 matching_lexers.add(lexer)
276 |                 primary[lexer] = True
277 |         for filename in lexer.alias_filenames:
278 |             if _fn_matches(fn, filename):
279 |                 matching_lexers.add(lexer)
280 |                 primary[lexer] = False
281 |     if not matching_lexers:
282 |         raise ClassNotFound(f'no lexer for filename {fn!r} found')
283 |     if len(matching_lexers) == 1:
284 |         return matching_lexers.pop()(**options)
285 |     result = []
286 |     for lexer in matching_lexers:
287 |         rv = lexer.analyse_text(_text)
288 |         if rv == 1.0:
289 |             return lexer(**options)
290 |         result.append((rv, lexer))
291 | 
292 |     def type_sort(t):
293 |         # sort by:
294 |         # - analyse score
295 |         # - is primary filename pattern?
296 |         # - priority
297 |         # - last resort: class name
298 |         return (t[0], primary[t[1]], t[1].priority, t[1].__name__)
299 |     result.sort(key=type_sort)
300 | 
301 |     return result[-1][1](**options)
302 | 
303 | 
304 | def guess_lexer(_text, **options):
305 |     """
306 |     Return a `Lexer` subclass instance that's guessed from the text in
307 |     `text`. For that, the :meth:`.analyse_text()` method of every known lexer
308 |     class is called with the text as argument, and the lexer which returned the
309 |     highest value will be instantiated and returned.
310 | 
311 |     :exc:`pygments.util.ClassNotFound` is raised if no lexer thinks it can
312 |     handle the content.
313 |     """
314 | 
315 |     if not isinstance(_text, str):
316 |         inencoding = options.get('inencoding', options.get('encoding'))
317 |         if inencoding:
318 |             _text = _text.decode(inencoding or 'utf8')
319 |         else:
320 |             _text, _ = guess_decode(_text)
321 | 
322 |     # try to get a vim modeline first
323 |     ft = get_filetype_from_buffer(_text)
324 | 
325 |     if ft is not None:
326 |         try:
327 |             return get_lexer_by_name(ft, **options)
328 |         except ClassNotFound:
329 |             pass
330 | 
331 |     best_lexer = [0.0, None]
332 |     for lexer in _iter_lexerclasses():
333 |         rv = lexer.analyse_text(_text)
334 |         if rv == 1.0:
335 |             return lexer(**options)
336 |         if rv > best_lexer[0]:
337 |             best_lexer[:] = (rv, lexer)
338 |     if not best_lexer[0] or best_lexer[1] is None:
339 |         raise ClassNotFound('no lexer matching the text found')
340 |     return best_lexer[1](**options)
341 | 
342 | 
343 | class _automodule(types.ModuleType):
344 |     """Automatically import lexers."""
345 | 
346 |     def __getattr__(self, name):
347 |         info = LEXERS.get(name)
348 |         if info:
349 |             _load_lexers(info[0])
350 |             cls = _lexer_cache[info[1]]
351 |             setattr(self, name, cls)
352 |             return cls
353 |         if name in COMPAT:
354 |             return getattr(self, COMPAT[name])
355 |         raise AttributeError(name)
356 | 
357 | 
358 | oldmod = sys.modules[__name__]
359 | newmod = _automodule(__name__)
360 | newmod.__dict__.update(oldmod.__dict__)
361 | sys.modules[__name__] = newmod
362 | del newmod.newmod, newmod.oldmod, newmod.sys, newmod.types
363 | 
```

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

```python
  1 | """Contains the RequirementCommand base class.
  2 | 
  3 | This class is in a separate module so the commands that do not always
  4 | need PackageFinder capability don't unnecessarily import the
  5 | PackageFinder machinery and all its vendored dependencies, etc.
  6 | """
  7 | 
  8 | import logging
  9 | from functools import partial
 10 | from optparse import Values
 11 | from typing import Any, List, Optional, Tuple
 12 | 
 13 | from pip._internal.cache import WheelCache
 14 | from pip._internal.cli import cmdoptions
 15 | from pip._internal.cli.index_command import IndexGroupCommand
 16 | from pip._internal.cli.index_command import SessionCommandMixin as SessionCommandMixin
 17 | from pip._internal.exceptions import CommandError, PreviousBuildDirError
 18 | from pip._internal.index.collector import LinkCollector
 19 | from pip._internal.index.package_finder import PackageFinder
 20 | from pip._internal.models.selection_prefs import SelectionPreferences
 21 | from pip._internal.models.target_python import TargetPython
 22 | from pip._internal.network.session import PipSession
 23 | from pip._internal.operations.build.build_tracker import BuildTracker
 24 | from pip._internal.operations.prepare import RequirementPreparer
 25 | from pip._internal.req.constructors import (
 26 |     install_req_from_editable,
 27 |     install_req_from_line,
 28 |     install_req_from_parsed_requirement,
 29 |     install_req_from_req_string,
 30 | )
 31 | from pip._internal.req.req_file import parse_requirements
 32 | from pip._internal.req.req_install import InstallRequirement
 33 | from pip._internal.resolution.base import BaseResolver
 34 | from pip._internal.utils.temp_dir import (
 35 |     TempDirectory,
 36 |     TempDirectoryTypeRegistry,
 37 |     tempdir_kinds,
 38 | )
 39 | 
 40 | logger = logging.getLogger(__name__)
 41 | 
 42 | 
 43 | KEEPABLE_TEMPDIR_TYPES = [
 44 |     tempdir_kinds.BUILD_ENV,
 45 |     tempdir_kinds.EPHEM_WHEEL_CACHE,
 46 |     tempdir_kinds.REQ_BUILD,
 47 | ]
 48 | 
 49 | 
 50 | def with_cleanup(func: Any) -> Any:
 51 |     """Decorator for common logic related to managing temporary
 52 |     directories.
 53 |     """
 54 | 
 55 |     def configure_tempdir_registry(registry: TempDirectoryTypeRegistry) -> None:
 56 |         for t in KEEPABLE_TEMPDIR_TYPES:
 57 |             registry.set_delete(t, False)
 58 | 
 59 |     def wrapper(
 60 |         self: RequirementCommand, options: Values, args: List[Any]
 61 |     ) -> Optional[int]:
 62 |         assert self.tempdir_registry is not None
 63 |         if options.no_clean:
 64 |             configure_tempdir_registry(self.tempdir_registry)
 65 | 
 66 |         try:
 67 |             return func(self, options, args)
 68 |         except PreviousBuildDirError:
 69 |             # This kind of conflict can occur when the user passes an explicit
 70 |             # build directory with a pre-existing folder. In that case we do
 71 |             # not want to accidentally remove it.
 72 |             configure_tempdir_registry(self.tempdir_registry)
 73 |             raise
 74 | 
 75 |     return wrapper
 76 | 
 77 | 
 78 | class RequirementCommand(IndexGroupCommand):
 79 |     def __init__(self, *args: Any, **kw: Any) -> None:
 80 |         super().__init__(*args, **kw)
 81 | 
 82 |         self.cmd_opts.add_option(cmdoptions.no_clean())
 83 | 
 84 |     @staticmethod
 85 |     def determine_resolver_variant(options: Values) -> str:
 86 |         """Determines which resolver should be used, based on the given options."""
 87 |         if "legacy-resolver" in options.deprecated_features_enabled:
 88 |             return "legacy"
 89 | 
 90 |         return "resolvelib"
 91 | 
 92 |     @classmethod
 93 |     def make_requirement_preparer(
 94 |         cls,
 95 |         temp_build_dir: TempDirectory,
 96 |         options: Values,
 97 |         build_tracker: BuildTracker,
 98 |         session: PipSession,
 99 |         finder: PackageFinder,
100 |         use_user_site: bool,
101 |         download_dir: Optional[str] = None,
102 |         verbosity: int = 0,
103 |     ) -> RequirementPreparer:
104 |         """
105 |         Create a RequirementPreparer instance for the given parameters.
106 |         """
107 |         temp_build_dir_path = temp_build_dir.path
108 |         assert temp_build_dir_path is not None
109 |         legacy_resolver = False
110 | 
111 |         resolver_variant = cls.determine_resolver_variant(options)
112 |         if resolver_variant == "resolvelib":
113 |             lazy_wheel = "fast-deps" in options.features_enabled
114 |             if lazy_wheel:
115 |                 logger.warning(
116 |                     "pip is using lazily downloaded wheels using HTTP "
117 |                     "range requests to obtain dependency information. "
118 |                     "This experimental feature is enabled through "
119 |                     "--use-feature=fast-deps and it is not ready for "
120 |                     "production."
121 |                 )
122 |         else:
123 |             legacy_resolver = True
124 |             lazy_wheel = False
125 |             if "fast-deps" in options.features_enabled:
126 |                 logger.warning(
127 |                     "fast-deps has no effect when used with the legacy resolver."
128 |                 )
129 | 
130 |         return RequirementPreparer(
131 |             build_dir=temp_build_dir_path,
132 |             src_dir=options.src_dir,
133 |             download_dir=download_dir,
134 |             build_isolation=options.build_isolation,
135 |             check_build_deps=options.check_build_deps,
136 |             build_tracker=build_tracker,
137 |             session=session,
138 |             progress_bar=options.progress_bar,
139 |             finder=finder,
140 |             require_hashes=options.require_hashes,
141 |             use_user_site=use_user_site,
142 |             lazy_wheel=lazy_wheel,
143 |             verbosity=verbosity,
144 |             legacy_resolver=legacy_resolver,
145 |         )
146 | 
147 |     @classmethod
148 |     def make_resolver(
149 |         cls,
150 |         preparer: RequirementPreparer,
151 |         finder: PackageFinder,
152 |         options: Values,
153 |         wheel_cache: Optional[WheelCache] = None,
154 |         use_user_site: bool = False,
155 |         ignore_installed: bool = True,
156 |         ignore_requires_python: bool = False,
157 |         force_reinstall: bool = False,
158 |         upgrade_strategy: str = "to-satisfy-only",
159 |         use_pep517: Optional[bool] = None,
160 |         py_version_info: Optional[Tuple[int, ...]] = None,
161 |     ) -> BaseResolver:
162 |         """
163 |         Create a Resolver instance for the given parameters.
164 |         """
165 |         make_install_req = partial(
166 |             install_req_from_req_string,
167 |             isolated=options.isolated_mode,
168 |             use_pep517=use_pep517,
169 |         )
170 |         resolver_variant = cls.determine_resolver_variant(options)
171 |         # The long import name and duplicated invocation is needed to convince
172 |         # Mypy into correctly typechecking. Otherwise it would complain the
173 |         # "Resolver" class being redefined.
174 |         if resolver_variant == "resolvelib":
175 |             import pip._internal.resolution.resolvelib.resolver
176 | 
177 |             return pip._internal.resolution.resolvelib.resolver.Resolver(
178 |                 preparer=preparer,
179 |                 finder=finder,
180 |                 wheel_cache=wheel_cache,
181 |                 make_install_req=make_install_req,
182 |                 use_user_site=use_user_site,
183 |                 ignore_dependencies=options.ignore_dependencies,
184 |                 ignore_installed=ignore_installed,
185 |                 ignore_requires_python=ignore_requires_python,
186 |                 force_reinstall=force_reinstall,
187 |                 upgrade_strategy=upgrade_strategy,
188 |                 py_version_info=py_version_info,
189 |             )
190 |         import pip._internal.resolution.legacy.resolver
191 | 
192 |         return pip._internal.resolution.legacy.resolver.Resolver(
193 |             preparer=preparer,
194 |             finder=finder,
195 |             wheel_cache=wheel_cache,
196 |             make_install_req=make_install_req,
197 |             use_user_site=use_user_site,
198 |             ignore_dependencies=options.ignore_dependencies,
199 |             ignore_installed=ignore_installed,
200 |             ignore_requires_python=ignore_requires_python,
201 |             force_reinstall=force_reinstall,
202 |             upgrade_strategy=upgrade_strategy,
203 |             py_version_info=py_version_info,
204 |         )
205 | 
206 |     def get_requirements(
207 |         self,
208 |         args: List[str],
209 |         options: Values,
210 |         finder: PackageFinder,
211 |         session: PipSession,
212 |     ) -> List[InstallRequirement]:
213 |         """
214 |         Parse command-line arguments into the corresponding requirements.
215 |         """
216 |         requirements: List[InstallRequirement] = []
217 |         for filename in options.constraints:
218 |             for parsed_req in parse_requirements(
219 |                 filename,
220 |                 constraint=True,
221 |                 finder=finder,
222 |                 options=options,
223 |                 session=session,
224 |             ):
225 |                 req_to_add = install_req_from_parsed_requirement(
226 |                     parsed_req,
227 |                     isolated=options.isolated_mode,
228 |                     user_supplied=False,
229 |                 )
230 |                 requirements.append(req_to_add)
231 | 
232 |         for req in args:
233 |             req_to_add = install_req_from_line(
234 |                 req,
235 |                 comes_from=None,
236 |                 isolated=options.isolated_mode,
237 |                 use_pep517=options.use_pep517,
238 |                 user_supplied=True,
239 |                 config_settings=getattr(options, "config_settings", None),
240 |             )
241 |             requirements.append(req_to_add)
242 | 
243 |         for req in options.editables:
244 |             req_to_add = install_req_from_editable(
245 |                 req,
246 |                 user_supplied=True,
247 |                 isolated=options.isolated_mode,
248 |                 use_pep517=options.use_pep517,
249 |                 config_settings=getattr(options, "config_settings", None),
250 |             )
251 |             requirements.append(req_to_add)
252 | 
253 |         # NOTE: options.require_hashes may be set if --require-hashes is True
254 |         for filename in options.requirements:
255 |             for parsed_req in parse_requirements(
256 |                 filename, finder=finder, options=options, session=session
257 |             ):
258 |                 req_to_add = install_req_from_parsed_requirement(
259 |                     parsed_req,
260 |                     isolated=options.isolated_mode,
261 |                     use_pep517=options.use_pep517,
262 |                     user_supplied=True,
263 |                     config_settings=(
264 |                         parsed_req.options.get("config_settings")
265 |                         if parsed_req.options
266 |                         else None
267 |                     ),
268 |                 )
269 |                 requirements.append(req_to_add)
270 | 
271 |         # If any requirement has hash options, enable hash checking.
272 |         if any(req.has_hash_options for req in requirements):
273 |             options.require_hashes = True
274 | 
275 |         if not (args or options.editables or options.requirements):
276 |             opts = {"name": self.name}
277 |             if options.find_links:
278 |                 raise CommandError(
279 |                     "You must give at least one requirement to {name} "
280 |                     '(maybe you meant "pip {name} {links}"?)'.format(
281 |                         **dict(opts, links=" ".join(options.find_links))
282 |                     )
283 |                 )
284 |             else:
285 |                 raise CommandError(
286 |                     "You must give at least one requirement to {name} "
287 |                     '(see "pip help {name}")'.format(**opts)
288 |                 )
289 | 
290 |         return requirements
291 | 
292 |     @staticmethod
293 |     def trace_basic_info(finder: PackageFinder) -> None:
294 |         """
295 |         Trace basic information about the provided objects.
296 |         """
297 |         # Display where finder is looking for packages
298 |         search_scope = finder.search_scope
299 |         locations = search_scope.get_formatted_locations()
300 |         if locations:
301 |             logger.info(locations)
302 | 
303 |     def _build_package_finder(
304 |         self,
305 |         options: Values,
306 |         session: PipSession,
307 |         target_python: Optional[TargetPython] = None,
308 |         ignore_requires_python: Optional[bool] = None,
309 |     ) -> PackageFinder:
310 |         """
311 |         Create a package finder appropriate to this requirement command.
312 | 
313 |         :param ignore_requires_python: Whether to ignore incompatible
314 |             "Requires-Python" values in links. Defaults to False.
315 |         """
316 |         link_collector = LinkCollector.create(session, options=options)
317 |         selection_prefs = SelectionPreferences(
318 |             allow_yanked=True,
319 |             format_control=options.format_control,
320 |             allow_all_prereleases=options.pre,
321 |             prefer_binary=options.prefer_binary,
322 |             ignore_requires_python=ignore_requires_python,
323 |         )
324 | 
325 |         return PackageFinder.create(
326 |             link_collector=link_collector,
327 |             selection_prefs=selection_prefs,
328 |             target_python=target_python,
329 |         )
330 | 
```

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

```
  1 | /*
  2 |  * Summary: interface for the I/O interfaces used by the parser
  3 |  * Description: interface for the I/O interfaces used by the parser
  4 |  *
  5 |  * Copy: See Copyright for the status of this software.
  6 |  *
  7 |  * Author: Daniel Veillard
  8 |  */
  9 | 
 10 | #ifndef __XML_IO_H__
 11 | #define __XML_IO_H__
 12 | 
 13 | #include <stdio.h>
 14 | #include <libxml/xmlversion.h>
 15 | #include <libxml/encoding.h>
 16 | #define XML_TREE_INTERNALS
 17 | #include <libxml/tree.h>
 18 | #undef XML_TREE_INTERNALS
 19 | 
 20 | #ifdef __cplusplus
 21 | extern "C" {
 22 | #endif
 23 | 
 24 | /*
 25 |  * Those are the functions and datatypes for the parser input
 26 |  * I/O structures.
 27 |  */
 28 | 
 29 | /**
 30 |  * xmlInputMatchCallback:
 31 |  * @filename: the filename or URI
 32 |  *
 33 |  * Callback used in the I/O Input API to detect if the current handler
 34 |  * can provide input functionality for this resource.
 35 |  *
 36 |  * Returns 1 if yes and 0 if another Input module should be used
 37 |  */
 38 | typedef int (*xmlInputMatchCallback) (char const *filename);
 39 | /**
 40 |  * xmlInputOpenCallback:
 41 |  * @filename: the filename or URI
 42 |  *
 43 |  * Callback used in the I/O Input API to open the resource
 44 |  *
 45 |  * Returns an Input context or NULL in case or error
 46 |  */
 47 | typedef void * (*xmlInputOpenCallback) (char const *filename);
 48 | /**
 49 |  * xmlInputReadCallback:
 50 |  * @context:  an Input context
 51 |  * @buffer:  the buffer to store data read
 52 |  * @len:  the length of the buffer in bytes
 53 |  *
 54 |  * Callback used in the I/O Input API to read the resource
 55 |  *
 56 |  * Returns the number of bytes read or -1 in case of error
 57 |  */
 58 | typedef int (*xmlInputReadCallback) (void * context, char * buffer, int len);
 59 | /**
 60 |  * xmlInputCloseCallback:
 61 |  * @context:  an Input context
 62 |  *
 63 |  * Callback used in the I/O Input API to close the resource
 64 |  *
 65 |  * Returns 0 or -1 in case of error
 66 |  */
 67 | typedef int (*xmlInputCloseCallback) (void * context);
 68 | 
 69 | #ifdef LIBXML_OUTPUT_ENABLED
 70 | /*
 71 |  * Those are the functions and datatypes for the library output
 72 |  * I/O structures.
 73 |  */
 74 | 
 75 | /**
 76 |  * xmlOutputMatchCallback:
 77 |  * @filename: the filename or URI
 78 |  *
 79 |  * Callback used in the I/O Output API to detect if the current handler
 80 |  * can provide output functionality for this resource.
 81 |  *
 82 |  * Returns 1 if yes and 0 if another Output module should be used
 83 |  */
 84 | typedef int (*xmlOutputMatchCallback) (char const *filename);
 85 | /**
 86 |  * xmlOutputOpenCallback:
 87 |  * @filename: the filename or URI
 88 |  *
 89 |  * Callback used in the I/O Output API to open the resource
 90 |  *
 91 |  * Returns an Output context or NULL in case or error
 92 |  */
 93 | typedef void * (*xmlOutputOpenCallback) (char const *filename);
 94 | /**
 95 |  * xmlOutputWriteCallback:
 96 |  * @context:  an Output context
 97 |  * @buffer:  the buffer of data to write
 98 |  * @len:  the length of the buffer in bytes
 99 |  *
100 |  * Callback used in the I/O Output API to write to the resource
101 |  *
102 |  * Returns the number of bytes written or -1 in case of error
103 |  */
104 | typedef int (*xmlOutputWriteCallback) (void * context, const char * buffer,
105 |                                        int len);
106 | /**
107 |  * xmlOutputCloseCallback:
108 |  * @context:  an Output context
109 |  *
110 |  * Callback used in the I/O Output API to close the resource
111 |  *
112 |  * Returns 0 or -1 in case of error
113 |  */
114 | typedef int (*xmlOutputCloseCallback) (void * context);
115 | #endif /* LIBXML_OUTPUT_ENABLED */
116 | 
117 | /**
118 |  * xmlParserInputBufferCreateFilenameFunc:
119 |  * @URI: the URI to read from
120 |  * @enc: the requested source encoding
121 |  *
122 |  * Signature for the function doing the lookup for a suitable input method
123 |  * corresponding to an URI.
124 |  *
125 |  * Returns the new xmlParserInputBufferPtr in case of success or NULL if no
126 |  *         method was found.
127 |  */
128 | typedef xmlParserInputBufferPtr
129 | (*xmlParserInputBufferCreateFilenameFunc)(const char *URI, xmlCharEncoding enc);
130 | 
131 | /**
132 |  * xmlOutputBufferCreateFilenameFunc:
133 |  * @URI: the URI to write to
134 |  * @enc: the requested target encoding
135 |  *
136 |  * Signature for the function doing the lookup for a suitable output method
137 |  * corresponding to an URI.
138 |  *
139 |  * Returns the new xmlOutputBufferPtr in case of success or NULL if no
140 |  *         method was found.
141 |  */
142 | typedef xmlOutputBufferPtr
143 | (*xmlOutputBufferCreateFilenameFunc)(const char *URI,
144 |         xmlCharEncodingHandlerPtr encoder, int compression);
145 | 
146 | struct _xmlParserInputBuffer {
147 |     void*                  context;
148 |     xmlInputReadCallback   readcallback;
149 |     xmlInputCloseCallback  closecallback;
150 | 
151 |     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
152 | 
153 |     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 */
154 |     xmlBufPtr raw;       /* if encoder != NULL buffer for raw input */
155 |     int	compressed;	    /* -1=unknown, 0=not compressed, 1=compressed */
156 |     int error;
157 |     unsigned long rawconsumed;/* amount consumed from raw */
158 | };
159 | 
160 | 
161 | #ifdef LIBXML_OUTPUT_ENABLED
162 | struct _xmlOutputBuffer {
163 |     void*                   context;
164 |     xmlOutputWriteCallback  writecallback;
165 |     xmlOutputCloseCallback  closecallback;
166 | 
167 |     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
168 | 
169 |     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
170 |     xmlBufPtr conv;      /* if encoder != NULL buffer for output */
171 |     int written;            /* total number of byte written */
172 |     int error;
173 | };
174 | #endif /* LIBXML_OUTPUT_ENABLED */
175 | 
176 | /** DOC_DISABLE */
177 | #define XML_GLOBALS_IO \
178 |   XML_OP(xmlParserInputBufferCreateFilenameValue, \
179 |            xmlParserInputBufferCreateFilenameFunc, XML_DEPRECATED) \
180 |   XML_OP(xmlOutputBufferCreateFilenameValue, \
181 |            xmlOutputBufferCreateFilenameFunc, XML_DEPRECATED)
182 | 
183 | #define XML_OP XML_DECLARE_GLOBAL
184 | XML_GLOBALS_IO
185 | #undef XML_OP
186 | 
187 | #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
188 |   #define xmlParserInputBufferCreateFilenameValue \
189 |     XML_GLOBAL_MACRO(xmlParserInputBufferCreateFilenameValue)
190 |   #define xmlOutputBufferCreateFilenameValue \
191 |     XML_GLOBAL_MACRO(xmlOutputBufferCreateFilenameValue)
192 | #endif
193 | /** DOC_ENABLE */
194 | 
195 | /*
196 |  * Interfaces for input
197 |  */
198 | XMLPUBFUN void
199 | 	xmlCleanupInputCallbacks		(void);
200 | 
201 | XMLPUBFUN int
202 | 	xmlPopInputCallbacks			(void);
203 | 
204 | XMLPUBFUN void
205 | 	xmlRegisterDefaultInputCallbacks	(void);
206 | XMLPUBFUN xmlParserInputBufferPtr
207 | 	xmlAllocParserInputBuffer		(xmlCharEncoding enc);
208 | 
209 | XMLPUBFUN xmlParserInputBufferPtr
210 | 	xmlParserInputBufferCreateFilename	(const char *URI,
211 |                                                  xmlCharEncoding enc);
212 | XMLPUBFUN xmlParserInputBufferPtr
213 | 	xmlParserInputBufferCreateFile		(FILE *file,
214 |                                                  xmlCharEncoding enc);
215 | XMLPUBFUN xmlParserInputBufferPtr
216 | 	xmlParserInputBufferCreateFd		(int fd,
217 | 	                                         xmlCharEncoding enc);
218 | XMLPUBFUN xmlParserInputBufferPtr
219 | 	xmlParserInputBufferCreateMem		(const char *mem, int size,
220 | 	                                         xmlCharEncoding enc);
221 | XMLPUBFUN xmlParserInputBufferPtr
222 | 	xmlParserInputBufferCreateStatic	(const char *mem, int size,
223 | 	                                         xmlCharEncoding enc);
224 | XMLPUBFUN xmlParserInputBufferPtr
225 | 	xmlParserInputBufferCreateIO		(xmlInputReadCallback   ioread,
226 | 						 xmlInputCloseCallback  ioclose,
227 | 						 void *ioctx,
228 | 	                                         xmlCharEncoding enc);
229 | XMLPUBFUN int
230 | 	xmlParserInputBufferRead		(xmlParserInputBufferPtr in,
231 | 						 int len);
232 | XMLPUBFUN int
233 | 	xmlParserInputBufferGrow		(xmlParserInputBufferPtr in,
234 | 						 int len);
235 | XMLPUBFUN int
236 | 	xmlParserInputBufferPush		(xmlParserInputBufferPtr in,
237 | 						 int len,
238 | 						 const char *buf);
239 | XMLPUBFUN void
240 | 	xmlFreeParserInputBuffer		(xmlParserInputBufferPtr in);
241 | XMLPUBFUN char *
242 | 	xmlParserGetDirectory			(const char *filename);
243 | 
244 | XMLPUBFUN int
245 | 	xmlRegisterInputCallbacks		(xmlInputMatchCallback matchFunc,
246 | 						 xmlInputOpenCallback openFunc,
247 | 						 xmlInputReadCallback readFunc,
248 | 						 xmlInputCloseCallback closeFunc);
249 | 
250 | xmlParserInputBufferPtr
251 | 	__xmlParserInputBufferCreateFilename(const char *URI,
252 | 						xmlCharEncoding enc);
253 | 
254 | #ifdef LIBXML_OUTPUT_ENABLED
255 | /*
256 |  * Interfaces for output
257 |  */
258 | XMLPUBFUN void
259 | 	xmlCleanupOutputCallbacks		(void);
260 | XMLPUBFUN int
261 | 	xmlPopOutputCallbacks			(void);
262 | XMLPUBFUN void
263 | 	xmlRegisterDefaultOutputCallbacks(void);
264 | XMLPUBFUN xmlOutputBufferPtr
265 | 	xmlAllocOutputBuffer		(xmlCharEncodingHandlerPtr encoder);
266 | 
267 | XMLPUBFUN xmlOutputBufferPtr
268 | 	xmlOutputBufferCreateFilename	(const char *URI,
269 | 					 xmlCharEncodingHandlerPtr encoder,
270 | 					 int compression);
271 | 
272 | XMLPUBFUN xmlOutputBufferPtr
273 | 	xmlOutputBufferCreateFile	(FILE *file,
274 | 					 xmlCharEncodingHandlerPtr encoder);
275 | 
276 | XMLPUBFUN xmlOutputBufferPtr
277 | 	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
278 | 					 xmlCharEncodingHandlerPtr encoder);
279 | 
280 | XMLPUBFUN xmlOutputBufferPtr
281 | 	xmlOutputBufferCreateFd		(int fd,
282 | 					 xmlCharEncodingHandlerPtr encoder);
283 | 
284 | XMLPUBFUN xmlOutputBufferPtr
285 | 	xmlOutputBufferCreateIO		(xmlOutputWriteCallback   iowrite,
286 | 					 xmlOutputCloseCallback  ioclose,
287 | 					 void *ioctx,
288 | 					 xmlCharEncodingHandlerPtr encoder);
289 | 
290 | /* Couple of APIs to get the output without digging into the buffers */
291 | XMLPUBFUN const xmlChar *
292 |         xmlOutputBufferGetContent       (xmlOutputBufferPtr out);
293 | XMLPUBFUN size_t
294 |         xmlOutputBufferGetSize          (xmlOutputBufferPtr out);
295 | 
296 | XMLPUBFUN int
297 | 	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
298 | 					 int len,
299 | 					 const char *buf);
300 | XMLPUBFUN int
301 | 	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
302 | 					 const char *str);
303 | XMLPUBFUN int
304 | 	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
305 | 					 const xmlChar *str,
306 | 					 xmlCharEncodingOutputFunc escaping);
307 | 
308 | XMLPUBFUN int
309 | 	xmlOutputBufferFlush		(xmlOutputBufferPtr out);
310 | XMLPUBFUN int
311 | 	xmlOutputBufferClose		(xmlOutputBufferPtr out);
312 | 
313 | XMLPUBFUN int
314 | 	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
315 | 					 xmlOutputOpenCallback openFunc,
316 | 					 xmlOutputWriteCallback writeFunc,
317 | 					 xmlOutputCloseCallback closeFunc);
318 | 
319 | xmlOutputBufferPtr
320 | 	__xmlOutputBufferCreateFilename(const char *URI,
321 |                               xmlCharEncodingHandlerPtr encoder,
322 |                               int compression);
323 | 
324 | #ifdef LIBXML_HTTP_ENABLED
325 | /*  This function only exists if HTTP support built into the library  */
326 | XMLPUBFUN void
327 | 	xmlRegisterHTTPPostCallbacks	(void );
328 | #endif /* LIBXML_HTTP_ENABLED */
329 | 
330 | #endif /* LIBXML_OUTPUT_ENABLED */
331 | 
332 | XMLPUBFUN xmlParserInputPtr
333 | 	xmlCheckHTTPInput		(xmlParserCtxtPtr ctxt,
334 | 					 xmlParserInputPtr ret);
335 | 
336 | /*
337 |  * A predefined entity loader disabling network accesses
338 |  */
339 | XMLPUBFUN xmlParserInputPtr
340 | 	xmlNoNetExternalEntityLoader	(const char *URL,
341 | 					 const char *ID,
342 | 					 xmlParserCtxtPtr ctxt);
343 | 
344 | /*
345 |  * xmlNormalizeWindowsPath is obsolete, don't use it.
346 |  * Check xmlCanonicPath in uri.h for a better alternative.
347 |  */
348 | XMLPUBFUN xmlChar *
349 | 	xmlNormalizeWindowsPath		(const xmlChar *path);
350 | 
351 | XMLPUBFUN int
352 | 	xmlCheckFilename		(const char *path);
353 | /**
354 |  * Default 'file://' protocol callbacks
355 |  */
356 | XMLPUBFUN int
357 | 	xmlFileMatch			(const char *filename);
358 | XMLPUBFUN void *
359 | 	xmlFileOpen			(const char *filename);
360 | XMLPUBFUN int
361 | 	xmlFileRead			(void * context,
362 | 					 char * buffer,
363 | 					 int len);
364 | XMLPUBFUN int
365 | 	xmlFileClose			(void * context);
366 | 
367 | /**
368 |  * Default 'http://' protocol callbacks
369 |  */
370 | #ifdef LIBXML_HTTP_ENABLED
371 | XMLPUBFUN int
372 | 	xmlIOHTTPMatch			(const char *filename);
373 | XMLPUBFUN void *
374 | 	xmlIOHTTPOpen			(const char *filename);
375 | #ifdef LIBXML_OUTPUT_ENABLED
376 | XMLPUBFUN void *
377 | 	xmlIOHTTPOpenW			(const char * post_uri,
378 | 					 int   compression );
379 | #endif /* LIBXML_OUTPUT_ENABLED */
380 | XMLPUBFUN int
381 | 	xmlIOHTTPRead			(void * context,
382 | 					 char * buffer,
383 | 					 int len);
384 | XMLPUBFUN int
385 | 	xmlIOHTTPClose			(void * context);
386 | #endif /* LIBXML_HTTP_ENABLED */
387 | 
388 | /**
389 |  * Default 'ftp://' protocol callbacks
390 |  */
391 | #if defined(LIBXML_FTP_ENABLED)
392 | XMLPUBFUN int
393 | 	xmlIOFTPMatch			(const char *filename);
394 | XMLPUBFUN void *
395 | 	xmlIOFTPOpen			(const char *filename);
396 | XMLPUBFUN int
397 | 	xmlIOFTPRead			(void * context,
398 | 					 char * buffer,
399 | 					 int len);
400 | XMLPUBFUN int
401 | 	xmlIOFTPClose			(void * context);
402 | #endif /* defined(LIBXML_FTP_ENABLED) */
403 | 
404 | XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
405 | 	xmlParserInputBufferCreateFilenameDefault(
406 | 		xmlParserInputBufferCreateFilenameFunc func);
407 | XMLPUBFUN xmlOutputBufferCreateFilenameFunc
408 | 	xmlOutputBufferCreateFilenameDefault(
409 | 		xmlOutputBufferCreateFilenameFunc func);
410 | XMLPUBFUN xmlOutputBufferCreateFilenameFunc
411 | 	xmlThrDefOutputBufferCreateFilenameDefault(
412 | 		xmlOutputBufferCreateFilenameFunc func);
413 | XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
414 | 	xmlThrDefParserInputBufferCreateFilenameDefault(
415 | 		xmlParserInputBufferCreateFilenameFunc func);
416 | 
417 | #ifdef __cplusplus
418 | }
419 | #endif
420 | 
421 | #endif /* __XML_IO_H__ */
422 | 
```
Page 45/168FirstPrevNextLast