#
tokens: 49708/50000 20/808 files (page 6/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 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/uri.h:
--------------------------------------------------------------------------------

```
 1 | /**
 2 |  * Summary: library of generic URI related routines
 3 |  * Description: library of generic URI related routines
 4 |  *              Implements RFC 2396
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Daniel Veillard
 9 |  */
10 | 
11 | #ifndef __XML_URI_H__
12 | #define __XML_URI_H__
13 | 
14 | #include <stdio.h>
15 | #include <libxml/xmlversion.h>
16 | #include <libxml/xmlstring.h>
17 | 
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 | 
22 | /**
23 |  * xmlURI:
24 |  *
25 |  * A parsed URI reference. This is a struct containing the various fields
26 |  * as described in RFC 2396 but separated for further processing.
27 |  *
28 |  * Note: query is a deprecated field which is incorrectly unescaped.
29 |  * query_raw takes precedence over query if the former is set.
30 |  * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127
31 |  */
32 | typedef struct _xmlURI xmlURI;
33 | typedef xmlURI *xmlURIPtr;
34 | struct _xmlURI {
35 |     char *scheme;	/* the URI scheme */
36 |     char *opaque;	/* opaque part */
37 |     char *authority;	/* the authority part */
38 |     char *server;	/* the server part */
39 |     char *user;		/* the user part */
40 |     int port;		/* the port number */
41 |     char *path;		/* the path string */
42 |     char *query;	/* the query string (deprecated - use with caution) */
43 |     char *fragment;	/* the fragment identifier */
44 |     int  cleanup;	/* parsing potentially unclean URI */
45 |     char *query_raw;	/* the query string (as it appears in the URI) */
46 | };
47 | 
48 | /*
49 |  * This function is in tree.h:
50 |  * xmlChar *	xmlNodeGetBase	(xmlDocPtr doc,
51 |  *                               xmlNodePtr cur);
52 |  */
53 | XMLPUBFUN xmlURIPtr
54 | 		xmlCreateURI		(void);
55 | XMLPUBFUN xmlChar *
56 | 		xmlBuildURI		(const xmlChar *URI,
57 | 					 const xmlChar *base);
58 | XMLPUBFUN xmlChar *
59 | 		xmlBuildRelativeURI	(const xmlChar *URI,
60 | 					 const xmlChar *base);
61 | XMLPUBFUN xmlURIPtr
62 | 		xmlParseURI		(const char *str);
63 | XMLPUBFUN xmlURIPtr
64 | 		xmlParseURIRaw		(const char *str,
65 | 					 int raw);
66 | XMLPUBFUN int
67 | 		xmlParseURIReference	(xmlURIPtr uri,
68 | 					 const char *str);
69 | XMLPUBFUN xmlChar *
70 | 		xmlSaveUri		(xmlURIPtr uri);
71 | XMLPUBFUN void
72 | 		xmlPrintURI		(FILE *stream,
73 | 					 xmlURIPtr uri);
74 | XMLPUBFUN xmlChar *
75 | 		xmlURIEscapeStr         (const xmlChar *str,
76 | 					 const xmlChar *list);
77 | XMLPUBFUN char *
78 | 		xmlURIUnescapeString	(const char *str,
79 | 					 int len,
80 | 					 char *target);
81 | XMLPUBFUN int
82 | 		xmlNormalizeURIPath	(char *path);
83 | XMLPUBFUN xmlChar *
84 | 		xmlURIEscape		(const xmlChar *str);
85 | XMLPUBFUN void
86 | 		xmlFreeURI		(xmlURIPtr uri);
87 | XMLPUBFUN xmlChar*
88 | 		xmlCanonicPath		(const xmlChar *path);
89 | XMLPUBFUN xmlChar*
90 | 		xmlPathToURI		(const xmlChar *path);
91 | 
92 | #ifdef __cplusplus
93 | }
94 | #endif
95 | #endif /* __XML_URI_H__ */
96 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/werkzeug/middleware/dispatcher.py:
--------------------------------------------------------------------------------

```python
 1 | """
 2 | Application Dispatcher
 3 | ======================
 4 | 
 5 | This middleware creates a single WSGI application that dispatches to
 6 | multiple other WSGI applications mounted at different URL paths.
 7 | 
 8 | A common example is writing a Single Page Application, where you have a
 9 | backend API and a frontend written in JavaScript that does the routing
10 | in the browser rather than requesting different pages from the server.
11 | The frontend is a single HTML and JS file that should be served for any
12 | path besides "/api".
13 | 
14 | This example dispatches to an API app under "/api", an admin app
15 | under "/admin", and an app that serves frontend files for all other
16 | requests::
17 | 
18 |     app = DispatcherMiddleware(serve_frontend, {
19 |         '/api': api_app,
20 |         '/admin': admin_app,
21 |     })
22 | 
23 | In production, you might instead handle this at the HTTP server level,
24 | serving files or proxying to application servers based on location. The
25 | API and admin apps would each be deployed with a separate WSGI server,
26 | and the static files would be served directly by the HTTP server.
27 | 
28 | .. autoclass:: DispatcherMiddleware
29 | 
30 | :copyright: 2007 Pallets
31 | :license: BSD-3-Clause
32 | """
33 | 
34 | from __future__ import annotations
35 | 
36 | import typing as t
37 | 
38 | if t.TYPE_CHECKING:
39 |     from _typeshed.wsgi import StartResponse
40 |     from _typeshed.wsgi import WSGIApplication
41 |     from _typeshed.wsgi import WSGIEnvironment
42 | 
43 | 
44 | class DispatcherMiddleware:
45 |     """Combine multiple applications as a single WSGI application.
46 |     Requests are dispatched to an application based on the path it is
47 |     mounted under.
48 | 
49 |     :param app: The WSGI application to dispatch to if the request
50 |         doesn't match a mounted path.
51 |     :param mounts: Maps path prefixes to applications for dispatching.
52 |     """
53 | 
54 |     def __init__(
55 |         self,
56 |         app: WSGIApplication,
57 |         mounts: dict[str, WSGIApplication] | None = None,
58 |     ) -> None:
59 |         self.app = app
60 |         self.mounts = mounts or {}
61 | 
62 |     def __call__(
63 |         self, environ: WSGIEnvironment, start_response: StartResponse
64 |     ) -> t.Iterable[bytes]:
65 |         script = environ.get("PATH_INFO", "")
66 |         path_info = ""
67 | 
68 |         while "/" in script:
69 |             if script in self.mounts:
70 |                 app = self.mounts[script]
71 |                 break
72 | 
73 |             script, last_item = script.rsplit("/", 1)
74 |             path_info = f"/{last_item}{path_info}"
75 |         else:
76 |             app = self.mounts.get(script, self.app)
77 | 
78 |         original_script_name = environ.get("SCRIPT_NAME", "")
79 |         environ["SCRIPT_NAME"] = original_script_name + script
80 |         environ["PATH_INFO"] = path_info
81 |         return app(environ, start_response)
82 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | import typing as t
 4 | 
 5 | from . import json as json
 6 | from .app import Flask as Flask
 7 | from .blueprints import Blueprint as Blueprint
 8 | from .config import Config as Config
 9 | from .ctx import after_this_request as after_this_request
10 | from .ctx import copy_current_request_context as copy_current_request_context
11 | from .ctx import has_app_context as has_app_context
12 | from .ctx import has_request_context as has_request_context
13 | from .globals import current_app as current_app
14 | from .globals import g as g
15 | from .globals import request as request
16 | from .globals import session as session
17 | from .helpers import abort as abort
18 | from .helpers import flash as flash
19 | from .helpers import get_flashed_messages as get_flashed_messages
20 | from .helpers import get_template_attribute as get_template_attribute
21 | from .helpers import make_response as make_response
22 | from .helpers import redirect as redirect
23 | from .helpers import send_file as send_file
24 | from .helpers import send_from_directory as send_from_directory
25 | from .helpers import stream_with_context as stream_with_context
26 | from .helpers import url_for as url_for
27 | from .json import jsonify as jsonify
28 | from .signals import appcontext_popped as appcontext_popped
29 | from .signals import appcontext_pushed as appcontext_pushed
30 | from .signals import appcontext_tearing_down as appcontext_tearing_down
31 | from .signals import before_render_template as before_render_template
32 | from .signals import got_request_exception as got_request_exception
33 | from .signals import message_flashed as message_flashed
34 | from .signals import request_finished as request_finished
35 | from .signals import request_started as request_started
36 | from .signals import request_tearing_down as request_tearing_down
37 | from .signals import template_rendered as template_rendered
38 | from .templating import render_template as render_template
39 | from .templating import render_template_string as render_template_string
40 | from .templating import stream_template as stream_template
41 | from .templating import stream_template_string as stream_template_string
42 | from .wrappers import Request as Request
43 | from .wrappers import Response as Response
44 | 
45 | 
46 | def __getattr__(name: str) -> t.Any:
47 |     if name == "__version__":
48 |         import importlib.metadata
49 |         import warnings
50 | 
51 |         warnings.warn(
52 |             "The '__version__' attribute is deprecated and will be removed in"
53 |             " Flask 3.1. Use feature detection or"
54 |             " 'importlib.metadata.version(\"flask\")' instead.",
55 |             DeprecationWarning,
56 |             stacklevel=2,
57 |         )
58 |         return importlib.metadata.version("flask")
59 | 
60 |     raise AttributeError(name)
61 | 
```

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

```python
 1 | # Extracted from https://github.com/pfmoore/pkg_metadata
 2 | 
 3 | from email.header import Header, decode_header, make_header
 4 | from email.message import Message
 5 | from typing import Any, Dict, List, Union, cast
 6 | 
 7 | METADATA_FIELDS = [
 8 |     # Name, Multiple-Use
 9 |     ("Metadata-Version", False),
10 |     ("Name", False),
11 |     ("Version", False),
12 |     ("Dynamic", True),
13 |     ("Platform", True),
14 |     ("Supported-Platform", True),
15 |     ("Summary", False),
16 |     ("Description", False),
17 |     ("Description-Content-Type", False),
18 |     ("Keywords", False),
19 |     ("Home-page", False),
20 |     ("Download-URL", False),
21 |     ("Author", False),
22 |     ("Author-email", False),
23 |     ("Maintainer", False),
24 |     ("Maintainer-email", False),
25 |     ("License", False),
26 |     ("Classifier", True),
27 |     ("Requires-Dist", True),
28 |     ("Requires-Python", False),
29 |     ("Requires-External", True),
30 |     ("Project-URL", True),
31 |     ("Provides-Extra", True),
32 |     ("Provides-Dist", True),
33 |     ("Obsoletes-Dist", True),
34 | ]
35 | 
36 | 
37 | def json_name(field: str) -> str:
38 |     return field.lower().replace("-", "_")
39 | 
40 | 
41 | def msg_to_json(msg: Message) -> Dict[str, Any]:
42 |     """Convert a Message object into a JSON-compatible dictionary."""
43 | 
44 |     def sanitise_header(h: Union[Header, str]) -> str:
45 |         if isinstance(h, Header):
46 |             chunks = []
47 |             for bytes, encoding in decode_header(h):
48 |                 if encoding == "unknown-8bit":
49 |                     try:
50 |                         # See if UTF-8 works
51 |                         bytes.decode("utf-8")
52 |                         encoding = "utf-8"
53 |                     except UnicodeDecodeError:
54 |                         # If not, latin1 at least won't fail
55 |                         encoding = "latin1"
56 |                 chunks.append((bytes, encoding))
57 |             return str(make_header(chunks))
58 |         return str(h)
59 | 
60 |     result = {}
61 |     for field, multi in METADATA_FIELDS:
62 |         if field not in msg:
63 |             continue
64 |         key = json_name(field)
65 |         if multi:
66 |             value: Union[str, List[str]] = [
67 |                 sanitise_header(v) for v in msg.get_all(field)  # type: ignore
68 |             ]
69 |         else:
70 |             value = sanitise_header(msg.get(field))  # type: ignore
71 |             if key == "keywords":
72 |                 # Accept both comma-separated and space-separated
73 |                 # forms, for better compatibility with old data.
74 |                 if "," in value:
75 |                     value = [v.strip() for v in value.split(",")]
76 |                 else:
77 |                     value = value.split()
78 |         result[key] = value
79 | 
80 |     payload = cast(str, msg.get_payload())
81 |     if payload:
82 |         result["description"] = payload
83 | 
84 |     return result
85 | 
```

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

```
  1 | /*
  2 |  * Summary: interface for the libxslt security framework
  3 |  * Description: the libxslt security framework allow to restrict
  4 |  *              the access to new resources (file or URL) from
  5 |  *              the stylesheet at runtime.
  6 |  *
  7 |  * Copy: See Copyright for the status of this software.
  8 |  *
  9 |  * Author: Daniel Veillard
 10 |  */
 11 | 
 12 | #ifndef __XML_XSLT_SECURITY_H__
 13 | #define __XML_XSLT_SECURITY_H__
 14 | 
 15 | #include <libxml/tree.h>
 16 | #include "xsltexports.h"
 17 | #include "xsltInternals.h"
 18 | 
 19 | #ifdef __cplusplus
 20 | extern "C" {
 21 | #endif
 22 | 
 23 | /**
 24 |  * xsltSecurityPref:
 25 |  *
 26 |  * structure to indicate the preferences for security in the XSLT
 27 |  * transformation.
 28 |  */
 29 | typedef struct _xsltSecurityPrefs xsltSecurityPrefs;
 30 | typedef xsltSecurityPrefs *xsltSecurityPrefsPtr;
 31 | 
 32 | /**
 33 |  * xsltSecurityOption:
 34 |  *
 35 |  * the set of option that can be configured
 36 |  */
 37 | typedef enum {
 38 |     XSLT_SECPREF_READ_FILE = 1,
 39 |     XSLT_SECPREF_WRITE_FILE,
 40 |     XSLT_SECPREF_CREATE_DIRECTORY,
 41 |     XSLT_SECPREF_READ_NETWORK,
 42 |     XSLT_SECPREF_WRITE_NETWORK
 43 | } xsltSecurityOption;
 44 | 
 45 | /**
 46 |  * xsltSecurityCheck:
 47 |  *
 48 |  * User provided function to check the value of a string like a file
 49 |  * path or an URL ...
 50 |  */
 51 | typedef int (*xsltSecurityCheck)	(xsltSecurityPrefsPtr sec,
 52 | 					 xsltTransformContextPtr ctxt,
 53 | 					 const char *value);
 54 | 
 55 | /*
 56 |  * Module interfaces
 57 |  */
 58 | XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL
 59 | 		    xsltNewSecurityPrefs	(void);
 60 | XSLTPUBFUN void XSLTCALL
 61 | 		    xsltFreeSecurityPrefs	(xsltSecurityPrefsPtr sec);
 62 | XSLTPUBFUN int XSLTCALL
 63 | 		    xsltSetSecurityPrefs	(xsltSecurityPrefsPtr sec,
 64 | 						 xsltSecurityOption option,
 65 | 						 xsltSecurityCheck func);
 66 | XSLTPUBFUN xsltSecurityCheck XSLTCALL
 67 | 		    xsltGetSecurityPrefs	(xsltSecurityPrefsPtr sec,
 68 | 						 xsltSecurityOption option);
 69 | 
 70 | XSLTPUBFUN void XSLTCALL
 71 | 		    xsltSetDefaultSecurityPrefs	(xsltSecurityPrefsPtr sec);
 72 | XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL
 73 | 		    xsltGetDefaultSecurityPrefs	(void);
 74 | 
 75 | XSLTPUBFUN int XSLTCALL
 76 | 		    xsltSetCtxtSecurityPrefs	(xsltSecurityPrefsPtr sec,
 77 | 						 xsltTransformContextPtr ctxt);
 78 | 
 79 | XSLTPUBFUN int XSLTCALL
 80 | 		    xsltSecurityAllow		(xsltSecurityPrefsPtr sec,
 81 | 						 xsltTransformContextPtr ctxt,
 82 | 						 const char *value);
 83 | XSLTPUBFUN int XSLTCALL
 84 | 		    xsltSecurityForbid		(xsltSecurityPrefsPtr sec,
 85 | 						 xsltTransformContextPtr ctxt,
 86 | 						 const char *value);
 87 | /*
 88 |  * internal interfaces
 89 |  */
 90 | XSLTPUBFUN int XSLTCALL
 91 | 		    xsltCheckWrite		(xsltSecurityPrefsPtr sec,
 92 | 						 xsltTransformContextPtr ctxt,
 93 | 						 const xmlChar *URL);
 94 | XSLTPUBFUN int XSLTCALL
 95 | 		    xsltCheckRead		(xsltSecurityPrefsPtr sec,
 96 | 						 xsltTransformContextPtr ctxt,
 97 | 						 const xmlChar *URL);
 98 | 
 99 | #ifdef __cplusplus
100 | }
101 | #endif
102 | 
103 | #endif /* __XML_XSLT_SECURITY_H__ */
104 | 
105 | 
```

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

```python
 1 | import collections
 2 | import logging
 3 | from dataclasses import dataclass
 4 | from typing import Generator, List, Optional, Sequence, Tuple
 5 | 
 6 | from pip._internal.utils.logging import indent_log
 7 | 
 8 | from .req_file import parse_requirements
 9 | from .req_install import InstallRequirement
10 | from .req_set import RequirementSet
11 | 
12 | __all__ = [
13 |     "RequirementSet",
14 |     "InstallRequirement",
15 |     "parse_requirements",
16 |     "install_given_reqs",
17 | ]
18 | 
19 | logger = logging.getLogger(__name__)
20 | 
21 | 
22 | @dataclass(frozen=True)
23 | class InstallationResult:
24 |     name: str
25 | 
26 | 
27 | def _validate_requirements(
28 |     requirements: List[InstallRequirement],
29 | ) -> Generator[Tuple[str, InstallRequirement], None, None]:
30 |     for req in requirements:
31 |         assert req.name, f"invalid to-be-installed requirement: {req}"
32 |         yield req.name, req
33 | 
34 | 
35 | def install_given_reqs(
36 |     requirements: List[InstallRequirement],
37 |     global_options: Sequence[str],
38 |     root: Optional[str],
39 |     home: Optional[str],
40 |     prefix: Optional[str],
41 |     warn_script_location: bool,
42 |     use_user_site: bool,
43 |     pycompile: bool,
44 | ) -> List[InstallationResult]:
45 |     """
46 |     Install everything in the given list.
47 | 
48 |     (to be called after having downloaded and unpacked the packages)
49 |     """
50 |     to_install = collections.OrderedDict(_validate_requirements(requirements))
51 | 
52 |     if to_install:
53 |         logger.info(
54 |             "Installing collected packages: %s",
55 |             ", ".join(to_install.keys()),
56 |         )
57 | 
58 |     installed = []
59 | 
60 |     with indent_log():
61 |         for req_name, requirement in to_install.items():
62 |             if requirement.should_reinstall:
63 |                 logger.info("Attempting uninstall: %s", req_name)
64 |                 with indent_log():
65 |                     uninstalled_pathset = requirement.uninstall(auto_confirm=True)
66 |             else:
67 |                 uninstalled_pathset = None
68 | 
69 |             try:
70 |                 requirement.install(
71 |                     global_options,
72 |                     root=root,
73 |                     home=home,
74 |                     prefix=prefix,
75 |                     warn_script_location=warn_script_location,
76 |                     use_user_site=use_user_site,
77 |                     pycompile=pycompile,
78 |                 )
79 |             except Exception:
80 |                 # if install did not succeed, rollback previous uninstall
81 |                 if uninstalled_pathset and not requirement.install_succeeded:
82 |                     uninstalled_pathset.rollback()
83 |                 raise
84 |             else:
85 |                 if uninstalled_pathset and requirement.install_succeeded:
86 |                     uninstalled_pathset.commit()
87 | 
88 |             installed.append(InstallationResult(req_name))
89 | 
90 |     return installed
91 | 
```

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

```python
 1 | """PEP 656 support.
 2 | 
 3 | This module implements logic to detect if the currently running Python is
 4 | linked against musl, and what musl version is used.
 5 | """
 6 | 
 7 | from __future__ import annotations
 8 | 
 9 | import functools
10 | import re
11 | import subprocess
12 | import sys
13 | from typing import Iterator, NamedTuple, Sequence
14 | 
15 | from ._elffile import ELFFile
16 | 
17 | 
18 | class _MuslVersion(NamedTuple):
19 |     major: int
20 |     minor: int
21 | 
22 | 
23 | def _parse_musl_version(output: str) -> _MuslVersion | None:
24 |     lines = [n for n in (n.strip() for n in output.splitlines()) if n]
25 |     if len(lines) < 2 or lines[0][:4] != "musl":
26 |         return None
27 |     m = re.match(r"Version (\d+)\.(\d+)", lines[1])
28 |     if not m:
29 |         return None
30 |     return _MuslVersion(major=int(m.group(1)), minor=int(m.group(2)))
31 | 
32 | 
33 | @functools.lru_cache
34 | def _get_musl_version(executable: str) -> _MuslVersion | None:
35 |     """Detect currently-running musl runtime version.
36 | 
37 |     This is done by checking the specified executable's dynamic linking
38 |     information, and invoking the loader to parse its output for a version
39 |     string. If the loader is musl, the output would be something like::
40 | 
41 |         musl libc (x86_64)
42 |         Version 1.2.2
43 |         Dynamic Program Loader
44 |     """
45 |     try:
46 |         with open(executable, "rb") as f:
47 |             ld = ELFFile(f).interpreter
48 |     except (OSError, TypeError, ValueError):
49 |         return None
50 |     if ld is None or "musl" not in ld:
51 |         return None
52 |     proc = subprocess.run([ld], stderr=subprocess.PIPE, text=True)
53 |     return _parse_musl_version(proc.stderr)
54 | 
55 | 
56 | def platform_tags(archs: Sequence[str]) -> Iterator[str]:
57 |     """Generate musllinux tags compatible to the current platform.
58 | 
59 |     :param archs: Sequence of compatible architectures.
60 |         The first one shall be the closest to the actual architecture and be the part of
61 |         platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
62 |         The ``linux_`` prefix is assumed as a prerequisite for the current platform to
63 |         be musllinux-compatible.
64 | 
65 |     :returns: An iterator of compatible musllinux tags.
66 |     """
67 |     sys_musl = _get_musl_version(sys.executable)
68 |     if sys_musl is None:  # Python not dynamically linked against musl.
69 |         return
70 |     for arch in archs:
71 |         for minor in range(sys_musl.minor, -1, -1):
72 |             yield f"musllinux_{sys_musl.major}_{minor}_{arch}"
73 | 
74 | 
75 | if __name__ == "__main__":  # pragma: no cover
76 |     import sysconfig
77 | 
78 |     plat = sysconfig.get_platform()
79 |     assert plat.startswith("linux-"), "not linux"
80 | 
81 |     print("plat:", plat)
82 |     print("musl:", _get_musl_version(sys.executable))
83 |     print("tags:", end=" ")
84 |     for t in platform_tags(re.sub(r"[.-]", "_", plat.split("-", 1)[-1])):
85 |         print(t, end="\n      ")
86 | 
```

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

```
 1 | /*
 2 |  * Summary: interface for the document handling
 3 |  * Description: implements document loading and cache (multiple
 4 |  *              document() reference for the same resources must
 5 |  *              be equal.
 6 |  *
 7 |  * Copy: See Copyright for the status of this software.
 8 |  *
 9 |  * Author: Daniel Veillard
10 |  */
11 | 
12 | #ifndef __XML_XSLT_DOCUMENTS_H__
13 | #define __XML_XSLT_DOCUMENTS_H__
14 | 
15 | #include <libxml/tree.h>
16 | #include "xsltexports.h"
17 | #include "xsltInternals.h"
18 | 
19 | #ifdef __cplusplus
20 | extern "C" {
21 | #endif
22 | 
23 | XSLTPUBFUN xsltDocumentPtr XSLTCALL
24 | 		xsltNewDocument		(xsltTransformContextPtr ctxt,
25 | 					 xmlDocPtr doc);
26 | XSLTPUBFUN xsltDocumentPtr XSLTCALL
27 | 		xsltLoadDocument	(xsltTransformContextPtr ctxt,
28 | 					 const xmlChar *URI);
29 | XSLTPUBFUN xsltDocumentPtr XSLTCALL
30 | 		xsltFindDocument	(xsltTransformContextPtr ctxt,
31 | 					 xmlDocPtr doc);
32 | XSLTPUBFUN void XSLTCALL
33 | 		xsltFreeDocuments	(xsltTransformContextPtr ctxt);
34 | 
35 | XSLTPUBFUN xsltDocumentPtr XSLTCALL
36 | 		xsltLoadStyleDocument	(xsltStylesheetPtr style,
37 | 					 const xmlChar *URI);
38 | XSLTPUBFUN xsltDocumentPtr XSLTCALL
39 | 		xsltNewStyleDocument	(xsltStylesheetPtr style,
40 | 					 xmlDocPtr doc);
41 | XSLTPUBFUN void XSLTCALL
42 | 		xsltFreeStyleDocuments	(xsltStylesheetPtr style);
43 | 
44 | /*
45 |  * Hooks for document loading
46 |  */
47 | 
48 | /**
49 |  * xsltLoadType:
50 |  *
51 |  * Enum defining the kind of loader requirement.
52 |  */
53 | typedef enum {
54 |     XSLT_LOAD_START = 0,	/* loading for a top stylesheet */
55 |     XSLT_LOAD_STYLESHEET = 1,	/* loading for a stylesheet include/import */
56 |     XSLT_LOAD_DOCUMENT = 2	/* loading document at transformation time */
57 | } xsltLoadType;
58 | 
59 | /**
60 |  * xsltDocLoaderFunc:
61 |  * @URI: the URI of the document to load
62 |  * @dict: the dictionary to use when parsing that document
63 |  * @options: parsing options, a set of xmlParserOption
64 |  * @ctxt: the context, either a stylesheet or a transformation context
65 |  * @type: the xsltLoadType indicating the kind of loading required
66 |  *
67 |  * An xsltDocLoaderFunc is a signature for a function which can be
68 |  * registered to load document not provided by the compilation or
69 |  * transformation API themselve, for example when an xsl:import,
70 |  * xsl:include is found at compilation time or when a document()
71 |  * call is made at runtime.
72 |  *
73 |  * Returns the pointer to the document (which will be modified and
74 |  * freed by the engine later), or NULL in case of error.
75 |  */
76 | typedef xmlDocPtr (*xsltDocLoaderFunc)		(const xmlChar *URI,
77 | 						 xmlDictPtr dict,
78 | 						 int options,
79 | 						 void *ctxt,
80 | 						 xsltLoadType type);
81 | 
82 | XSLTPUBFUN void XSLTCALL
83 | 		xsltSetLoaderFunc		(xsltDocLoaderFunc f);
84 | 
85 | /* the loader may be needed by extension libraries so it is exported */
86 | XSLTPUBVAR xsltDocLoaderFunc xsltDocDefaultLoader;
87 | 
88 | #ifdef __cplusplus
89 | }
90 | #endif
91 | 
92 | #endif /* __XML_XSLT_DOCUMENTS_H__ */
93 | 
94 | 
```

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

```python
 1 | import functools
 2 | import sys
 3 | from typing import Callable, Generator, Iterable, Iterator, Optional, Tuple
 4 | 
 5 | from pip._vendor.rich.progress import (
 6 |     BarColumn,
 7 |     DownloadColumn,
 8 |     FileSizeColumn,
 9 |     Progress,
10 |     ProgressColumn,
11 |     SpinnerColumn,
12 |     TextColumn,
13 |     TimeElapsedColumn,
14 |     TimeRemainingColumn,
15 |     TransferSpeedColumn,
16 | )
17 | 
18 | from pip._internal.cli.spinners import RateLimiter
19 | from pip._internal.utils.logging import get_indentation
20 | 
21 | DownloadProgressRenderer = Callable[[Iterable[bytes]], Iterator[bytes]]
22 | 
23 | 
24 | def _rich_progress_bar(
25 |     iterable: Iterable[bytes],
26 |     *,
27 |     bar_type: str,
28 |     size: int,
29 | ) -> Generator[bytes, None, None]:
30 |     assert bar_type == "on", "This should only be used in the default mode."
31 | 
32 |     if not size:
33 |         total = float("inf")
34 |         columns: Tuple[ProgressColumn, ...] = (
35 |             TextColumn("[progress.description]{task.description}"),
36 |             SpinnerColumn("line", speed=1.5),
37 |             FileSizeColumn(),
38 |             TransferSpeedColumn(),
39 |             TimeElapsedColumn(),
40 |         )
41 |     else:
42 |         total = size
43 |         columns = (
44 |             TextColumn("[progress.description]{task.description}"),
45 |             BarColumn(),
46 |             DownloadColumn(),
47 |             TransferSpeedColumn(),
48 |             TextColumn("eta"),
49 |             TimeRemainingColumn(),
50 |         )
51 | 
52 |     progress = Progress(*columns, refresh_per_second=5)
53 |     task_id = progress.add_task(" " * (get_indentation() + 2), total=total)
54 |     with progress:
55 |         for chunk in iterable:
56 |             yield chunk
57 |             progress.update(task_id, advance=len(chunk))
58 | 
59 | 
60 | def _raw_progress_bar(
61 |     iterable: Iterable[bytes],
62 |     *,
63 |     size: Optional[int],
64 | ) -> Generator[bytes, None, None]:
65 |     def write_progress(current: int, total: int) -> None:
66 |         sys.stdout.write("Progress %d of %d\n" % (current, total))
67 |         sys.stdout.flush()
68 | 
69 |     current = 0
70 |     total = size or 0
71 |     rate_limiter = RateLimiter(0.25)
72 | 
73 |     write_progress(current, total)
74 |     for chunk in iterable:
75 |         current += len(chunk)
76 |         if rate_limiter.ready() or current == total:
77 |             write_progress(current, total)
78 |             rate_limiter.reset()
79 |         yield chunk
80 | 
81 | 
82 | def get_download_progress_renderer(
83 |     *, bar_type: str, size: Optional[int] = None
84 | ) -> DownloadProgressRenderer:
85 |     """Get an object that can be used to render the download progress.
86 | 
87 |     Returns a callable, that takes an iterable to "wrap".
88 |     """
89 |     if bar_type == "on":
90 |         return functools.partial(_rich_progress_bar, bar_type=bar_type, size=size)
91 |     elif bar_type == "raw":
92 |         return functools.partial(_raw_progress_bar, size=size)
93 |     else:
94 |         return iter  # no-op, when passed an iterator
95 | 
```

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

```python
 1 | from typing import Iterable, Sequence, Tuple, cast
 2 | 
 3 | from pip._vendor.rich._win32_console import LegacyWindowsTerm, WindowsCoordinates
 4 | from pip._vendor.rich.segment import ControlCode, ControlType, Segment
 5 | 
 6 | 
 7 | def legacy_windows_render(buffer: Iterable[Segment], term: LegacyWindowsTerm) -> None:
 8 |     """Makes appropriate Windows Console API calls based on the segments in the buffer.
 9 | 
10 |     Args:
11 |         buffer (Iterable[Segment]): Iterable of Segments to convert to Win32 API calls.
12 |         term (LegacyWindowsTerm): Used to call the Windows Console API.
13 |     """
14 |     for text, style, control in buffer:
15 |         if not control:
16 |             if style:
17 |                 term.write_styled(text, style)
18 |             else:
19 |                 term.write_text(text)
20 |         else:
21 |             control_codes: Sequence[ControlCode] = control
22 |             for control_code in control_codes:
23 |                 control_type = control_code[0]
24 |                 if control_type == ControlType.CURSOR_MOVE_TO:
25 |                     _, x, y = cast(Tuple[ControlType, int, int], control_code)
26 |                     term.move_cursor_to(WindowsCoordinates(row=y - 1, col=x - 1))
27 |                 elif control_type == ControlType.CARRIAGE_RETURN:
28 |                     term.write_text("\r")
29 |                 elif control_type == ControlType.HOME:
30 |                     term.move_cursor_to(WindowsCoordinates(0, 0))
31 |                 elif control_type == ControlType.CURSOR_UP:
32 |                     term.move_cursor_up()
33 |                 elif control_type == ControlType.CURSOR_DOWN:
34 |                     term.move_cursor_down()
35 |                 elif control_type == ControlType.CURSOR_FORWARD:
36 |                     term.move_cursor_forward()
37 |                 elif control_type == ControlType.CURSOR_BACKWARD:
38 |                     term.move_cursor_backward()
39 |                 elif control_type == ControlType.CURSOR_MOVE_TO_COLUMN:
40 |                     _, column = cast(Tuple[ControlType, int], control_code)
41 |                     term.move_cursor_to_column(column - 1)
42 |                 elif control_type == ControlType.HIDE_CURSOR:
43 |                     term.hide_cursor()
44 |                 elif control_type == ControlType.SHOW_CURSOR:
45 |                     term.show_cursor()
46 |                 elif control_type == ControlType.ERASE_IN_LINE:
47 |                     _, mode = cast(Tuple[ControlType, int], control_code)
48 |                     if mode == 0:
49 |                         term.erase_end_of_line()
50 |                     elif mode == 1:
51 |                         term.erase_start_of_line()
52 |                     elif mode == 2:
53 |                         term.erase_line()
54 |                 elif control_type == ControlType.SET_WINDOW_TITLE:
55 |                     _, title = cast(Tuple[ControlType, str], control_code)
56 |                     term.set_title(title)
57 | 
```

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

```python
 1 | import importlib.metadata
 2 | import os
 3 | from typing import Any, Optional, Protocol, Tuple, cast
 4 | 
 5 | from pip._vendor.packaging.utils import NormalizedName, canonicalize_name
 6 | 
 7 | 
 8 | class BadMetadata(ValueError):
 9 |     def __init__(self, dist: importlib.metadata.Distribution, *, reason: str) -> None:
10 |         self.dist = dist
11 |         self.reason = reason
12 | 
13 |     def __str__(self) -> str:
14 |         return f"Bad metadata in {self.dist} ({self.reason})"
15 | 
16 | 
17 | class BasePath(Protocol):
18 |     """A protocol that various path objects conform.
19 | 
20 |     This exists because importlib.metadata uses both ``pathlib.Path`` and
21 |     ``zipfile.Path``, and we need a common base for type hints (Union does not
22 |     work well since ``zipfile.Path`` is too new for our linter setup).
23 | 
24 |     This does not mean to be exhaustive, but only contains things that present
25 |     in both classes *that we need*.
26 |     """
27 | 
28 |     @property
29 |     def name(self) -> str:
30 |         raise NotImplementedError()
31 | 
32 |     @property
33 |     def parent(self) -> "BasePath":
34 |         raise NotImplementedError()
35 | 
36 | 
37 | def get_info_location(d: importlib.metadata.Distribution) -> Optional[BasePath]:
38 |     """Find the path to the distribution's metadata directory.
39 | 
40 |     HACK: This relies on importlib.metadata's private ``_path`` attribute. Not
41 |     all distributions exist on disk, so importlib.metadata is correct to not
42 |     expose the attribute as public. But pip's code base is old and not as clean,
43 |     so we do this to avoid having to rewrite too many things. Hopefully we can
44 |     eliminate this some day.
45 |     """
46 |     return getattr(d, "_path", None)
47 | 
48 | 
49 | def parse_name_and_version_from_info_directory(
50 |     dist: importlib.metadata.Distribution,
51 | ) -> Tuple[Optional[str], Optional[str]]:
52 |     """Get a name and version from the metadata directory name.
53 | 
54 |     This is much faster than reading distribution metadata.
55 |     """
56 |     info_location = get_info_location(dist)
57 |     if info_location is None:
58 |         return None, None
59 | 
60 |     stem, suffix = os.path.splitext(info_location.name)
61 |     if suffix == ".dist-info":
62 |         name, sep, version = stem.partition("-")
63 |         if sep:
64 |             return name, version
65 | 
66 |     if suffix == ".egg-info":
67 |         name = stem.split("-", 1)[0]
68 |         return name, None
69 | 
70 |     return None, None
71 | 
72 | 
73 | def get_dist_canonical_name(dist: importlib.metadata.Distribution) -> NormalizedName:
74 |     """Get the distribution's normalized name.
75 | 
76 |     The ``name`` attribute is only available in Python 3.10 or later. We are
77 |     targeting exactly that, but Mypy does not know this.
78 |     """
79 |     if name := parse_name_and_version_from_info_directory(dist)[0]:
80 |         return canonicalize_name(name)
81 | 
82 |     name = cast(Any, dist).name
83 |     if not isinstance(name, str):
84 |         raise BadMetadata(dist, reason="invalid metadata entry 'name'")
85 |     return canonicalize_name(name)
86 | 
```

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

```python
 1 | """Primary application entrypoint.
 2 | """
 3 | 
 4 | import locale
 5 | import logging
 6 | import os
 7 | import sys
 8 | import warnings
 9 | from typing import List, Optional
10 | 
11 | from pip._internal.cli.autocompletion import autocomplete
12 | from pip._internal.cli.main_parser import parse_command
13 | from pip._internal.commands import create_command
14 | from pip._internal.exceptions import PipError
15 | from pip._internal.utils import deprecation
16 | 
17 | logger = logging.getLogger(__name__)
18 | 
19 | 
20 | # Do not import and use main() directly! Using it directly is actively
21 | # discouraged by pip's maintainers. The name, location and behavior of
22 | # this function is subject to change, so calling it directly is not
23 | # portable across different pip versions.
24 | 
25 | # In addition, running pip in-process is unsupported and unsafe. This is
26 | # elaborated in detail at
27 | # https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program.
28 | # That document also provides suggestions that should work for nearly
29 | # all users that are considering importing and using main() directly.
30 | 
31 | # However, we know that certain users will still want to invoke pip
32 | # in-process. If you understand and accept the implications of using pip
33 | # in an unsupported manner, the best approach is to use runpy to avoid
34 | # depending on the exact location of this entry point.
35 | 
36 | # The following example shows how to use runpy to invoke pip in that
37 | # case:
38 | #
39 | #     sys.argv = ["pip", your, args, here]
40 | #     runpy.run_module("pip", run_name="__main__")
41 | #
42 | # Note that this will exit the process after running, unlike a direct
43 | # call to main. As it is not safe to do any processing after calling
44 | # main, this should not be an issue in practice.
45 | 
46 | 
47 | def main(args: Optional[List[str]] = None) -> int:
48 |     if args is None:
49 |         args = sys.argv[1:]
50 | 
51 |     # Suppress the pkg_resources deprecation warning
52 |     # Note - we use a module of .*pkg_resources to cover
53 |     # the normal case (pip._vendor.pkg_resources) and the
54 |     # devendored case (a bare pkg_resources)
55 |     warnings.filterwarnings(
56 |         action="ignore", category=DeprecationWarning, module=".*pkg_resources"
57 |     )
58 | 
59 |     # Configure our deprecation warnings to be sent through loggers
60 |     deprecation.install_warning_logger()
61 | 
62 |     autocomplete()
63 | 
64 |     try:
65 |         cmd_name, cmd_args = parse_command(args)
66 |     except PipError as exc:
67 |         sys.stderr.write(f"ERROR: {exc}")
68 |         sys.stderr.write(os.linesep)
69 |         sys.exit(1)
70 | 
71 |     # Needed for locale.getpreferredencoding(False) to work
72 |     # in pip._internal.utils.encoding.auto_decode
73 |     try:
74 |         locale.setlocale(locale.LC_ALL, "")
75 |     except locale.Error as e:
76 |         # setlocale can apparently crash if locale are uninitialized
77 |         logger.debug("Ignoring error %s when setting locale", e)
78 |     command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
79 | 
80 |     return command.main(cmd_args)
81 | 
```

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

```python
 1 | from typing import Any, Dict, Sequence
 2 | 
 3 | from pip._vendor.packaging.markers import default_environment
 4 | 
 5 | from pip import __version__
 6 | from pip._internal.req.req_install import InstallRequirement
 7 | 
 8 | 
 9 | class InstallationReport:
10 |     def __init__(self, install_requirements: Sequence[InstallRequirement]):
11 |         self._install_requirements = install_requirements
12 | 
13 |     @classmethod
14 |     def _install_req_to_dict(cls, ireq: InstallRequirement) -> Dict[str, Any]:
15 |         assert ireq.download_info, f"No download_info for {ireq}"
16 |         res = {
17 |             # PEP 610 json for the download URL. download_info.archive_info.hashes may
18 |             # be absent when the requirement was installed from the wheel cache
19 |             # and the cache entry was populated by an older pip version that did not
20 |             # record origin.json.
21 |             "download_info": ireq.download_info.to_dict(),
22 |             # is_direct is true if the requirement was a direct URL reference (which
23 |             # includes editable requirements), and false if the requirement was
24 |             # downloaded from a PEP 503 index or --find-links.
25 |             "is_direct": ireq.is_direct,
26 |             # is_yanked is true if the requirement was yanked from the index, but
27 |             # was still selected by pip to conform to PEP 592.
28 |             "is_yanked": ireq.link.is_yanked if ireq.link else False,
29 |             # requested is true if the requirement was specified by the user (aka
30 |             # top level requirement), and false if it was installed as a dependency of a
31 |             # requirement. https://peps.python.org/pep-0376/#requested
32 |             "requested": ireq.user_supplied,
33 |             # PEP 566 json encoding for metadata
34 |             # https://www.python.org/dev/peps/pep-0566/#json-compatible-metadata
35 |             "metadata": ireq.get_dist().metadata_dict,
36 |         }
37 |         if ireq.user_supplied and ireq.extras:
38 |             # For top level requirements, the list of requested extras, if any.
39 |             res["requested_extras"] = sorted(ireq.extras)
40 |         return res
41 | 
42 |     def to_dict(self) -> Dict[str, Any]:
43 |         return {
44 |             "version": "1",
45 |             "pip_version": __version__,
46 |             "install": [
47 |                 self._install_req_to_dict(ireq) for ireq in self._install_requirements
48 |             ],
49 |             # https://peps.python.org/pep-0508/#environment-markers
50 |             # TODO: currently, the resolver uses the default environment to evaluate
51 |             # environment markers, so that is what we report here. In the future, it
52 |             # should also take into account options such as --python-version or
53 |             # --platform, perhaps under the form of an environment_override field?
54 |             # https://github.com/pypa/pip/issues/11198
55 |             "environment": default_environment(),
56 |         }
57 | 
```

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

```python
 1 | from collections.abc import Mapping
 2 | from typing import TYPE_CHECKING, Any, Optional, Tuple
 3 | 
 4 | from .highlighter import ReprHighlighter
 5 | from .panel import Panel
 6 | from .pretty import Pretty
 7 | from .table import Table
 8 | from .text import Text, TextType
 9 | 
10 | if TYPE_CHECKING:
11 |     from .console import ConsoleRenderable
12 | 
13 | 
14 | def render_scope(
15 |     scope: "Mapping[str, Any]",
16 |     *,
17 |     title: Optional[TextType] = None,
18 |     sort_keys: bool = True,
19 |     indent_guides: bool = False,
20 |     max_length: Optional[int] = None,
21 |     max_string: Optional[int] = None,
22 | ) -> "ConsoleRenderable":
23 |     """Render python variables in a given scope.
24 | 
25 |     Args:
26 |         scope (Mapping): A mapping containing variable names and values.
27 |         title (str, optional): Optional title. Defaults to None.
28 |         sort_keys (bool, optional): Enable sorting of items. Defaults to True.
29 |         indent_guides (bool, optional): Enable indentation guides. Defaults to False.
30 |         max_length (int, optional): Maximum length of containers before abbreviating, or None for no abbreviation.
31 |             Defaults to None.
32 |         max_string (int, optional): Maximum length of string before truncating, or None to disable. Defaults to None.
33 | 
34 |     Returns:
35 |         ConsoleRenderable: A renderable object.
36 |     """
37 |     highlighter = ReprHighlighter()
38 |     items_table = Table.grid(padding=(0, 1), expand=False)
39 |     items_table.add_column(justify="right")
40 | 
41 |     def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
42 |         """Sort special variables first, then alphabetically."""
43 |         key, _ = item
44 |         return (not key.startswith("__"), key.lower())
45 | 
46 |     items = sorted(scope.items(), key=sort_items) if sort_keys else scope.items()
47 |     for key, value in items:
48 |         key_text = Text.assemble(
49 |             (key, "scope.key.special" if key.startswith("__") else "scope.key"),
50 |             (" =", "scope.equals"),
51 |         )
52 |         items_table.add_row(
53 |             key_text,
54 |             Pretty(
55 |                 value,
56 |                 highlighter=highlighter,
57 |                 indent_guides=indent_guides,
58 |                 max_length=max_length,
59 |                 max_string=max_string,
60 |             ),
61 |         )
62 |     return Panel.fit(
63 |         items_table,
64 |         title=title,
65 |         border_style="scope.border",
66 |         padding=(0, 1),
67 |     )
68 | 
69 | 
70 | if __name__ == "__main__":  # pragma: no cover
71 |     from pip._vendor.rich import print
72 | 
73 |     print()
74 | 
75 |     def test(foo: float, bar: float) -> None:
76 |         list_of_things = [1, 2, 3, None, 4, True, False, "Hello World"]
77 |         dict_of_things = {
78 |             "version": "1.1",
79 |             "method": "confirmFruitPurchase",
80 |             "params": [["apple", "orange", "mangoes", "pomelo"], 1.123],
81 |             "id": "194521489",
82 |         }
83 |         print(render_scope(locals(), title="[i]locals", sort_keys=False))
84 | 
85 |     test(20.3423, 3.1427)
86 |     print()
87 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py:
--------------------------------------------------------------------------------

```python
 1 | import logging
 2 | from collections import OrderedDict
 3 | from typing import Dict, List
 4 | 
 5 | from pip._vendor.packaging.utils import canonicalize_name
 6 | 
 7 | from pip._internal.req.req_install import InstallRequirement
 8 | 
 9 | logger = logging.getLogger(__name__)
10 | 
11 | 
12 | class RequirementSet:
13 |     def __init__(self, check_supported_wheels: bool = True) -> None:
14 |         """Create a RequirementSet."""
15 | 
16 |         self.requirements: Dict[str, InstallRequirement] = OrderedDict()
17 |         self.check_supported_wheels = check_supported_wheels
18 | 
19 |         self.unnamed_requirements: List[InstallRequirement] = []
20 | 
21 |     def __str__(self) -> str:
22 |         requirements = sorted(
23 |             (req for req in self.requirements.values() if not req.comes_from),
24 |             key=lambda req: canonicalize_name(req.name or ""),
25 |         )
26 |         return " ".join(str(req.req) for req in requirements)
27 | 
28 |     def __repr__(self) -> str:
29 |         requirements = sorted(
30 |             self.requirements.values(),
31 |             key=lambda req: canonicalize_name(req.name or ""),
32 |         )
33 | 
34 |         format_string = "<{classname} object; {count} requirement(s): {reqs}>"
35 |         return format_string.format(
36 |             classname=self.__class__.__name__,
37 |             count=len(requirements),
38 |             reqs=", ".join(str(req.req) for req in requirements),
39 |         )
40 | 
41 |     def add_unnamed_requirement(self, install_req: InstallRequirement) -> None:
42 |         assert not install_req.name
43 |         self.unnamed_requirements.append(install_req)
44 | 
45 |     def add_named_requirement(self, install_req: InstallRequirement) -> None:
46 |         assert install_req.name
47 | 
48 |         project_name = canonicalize_name(install_req.name)
49 |         self.requirements[project_name] = install_req
50 | 
51 |     def has_requirement(self, name: str) -> bool:
52 |         project_name = canonicalize_name(name)
53 | 
54 |         return (
55 |             project_name in self.requirements
56 |             and not self.requirements[project_name].constraint
57 |         )
58 | 
59 |     def get_requirement(self, name: str) -> InstallRequirement:
60 |         project_name = canonicalize_name(name)
61 | 
62 |         if project_name in self.requirements:
63 |             return self.requirements[project_name]
64 | 
65 |         raise KeyError(f"No project with the name {name!r}")
66 | 
67 |     @property
68 |     def all_requirements(self) -> List[InstallRequirement]:
69 |         return self.unnamed_requirements + list(self.requirements.values())
70 | 
71 |     @property
72 |     def requirements_to_install(self) -> List[InstallRequirement]:
73 |         """Return the list of requirements that need to be installed.
74 | 
75 |         TODO remove this property together with the legacy resolver, since the new
76 |              resolver only returns requirements that need to be installed.
77 |         """
78 |         return [
79 |             install_req
80 |             for install_req in self.all_requirements
81 |             if not install_req.constraint and not install_req.satisfied_by
82 |         ]
83 | 
```

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

```
  1 | /*
  2 |  * Summary: implementation of XInclude
  3 |  * Description: API to handle XInclude processing,
  4 |  * implements the
  5 |  * World Wide Web Consortium Last Call Working Draft 10 November 2003
  6 |  * http://www.w3.org/TR/2003/WD-xinclude-20031110
  7 |  *
  8 |  * Copy: See Copyright for the status of this software.
  9 |  *
 10 |  * Author: Daniel Veillard
 11 |  */
 12 | 
 13 | #ifndef __XML_XINCLUDE_H__
 14 | #define __XML_XINCLUDE_H__
 15 | 
 16 | #include <libxml/xmlversion.h>
 17 | #include <libxml/tree.h>
 18 | 
 19 | #ifdef LIBXML_XINCLUDE_ENABLED
 20 | 
 21 | #ifdef __cplusplus
 22 | extern "C" {
 23 | #endif
 24 | 
 25 | /**
 26 |  * XINCLUDE_NS:
 27 |  *
 28 |  * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
 29 |  */
 30 | #define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude"
 31 | /**
 32 |  * XINCLUDE_OLD_NS:
 33 |  *
 34 |  * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude
 35 |  */
 36 | #define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude"
 37 | /**
 38 |  * XINCLUDE_NODE:
 39 |  *
 40 |  * Macro defining "include"
 41 |  */
 42 | #define XINCLUDE_NODE (const xmlChar *) "include"
 43 | /**
 44 |  * XINCLUDE_FALLBACK:
 45 |  *
 46 |  * Macro defining "fallback"
 47 |  */
 48 | #define XINCLUDE_FALLBACK (const xmlChar *) "fallback"
 49 | /**
 50 |  * XINCLUDE_HREF:
 51 |  *
 52 |  * Macro defining "href"
 53 |  */
 54 | #define XINCLUDE_HREF (const xmlChar *) "href"
 55 | /**
 56 |  * XINCLUDE_PARSE:
 57 |  *
 58 |  * Macro defining "parse"
 59 |  */
 60 | #define XINCLUDE_PARSE (const xmlChar *) "parse"
 61 | /**
 62 |  * XINCLUDE_PARSE_XML:
 63 |  *
 64 |  * Macro defining "xml"
 65 |  */
 66 | #define XINCLUDE_PARSE_XML (const xmlChar *) "xml"
 67 | /**
 68 |  * XINCLUDE_PARSE_TEXT:
 69 |  *
 70 |  * Macro defining "text"
 71 |  */
 72 | #define XINCLUDE_PARSE_TEXT (const xmlChar *) "text"
 73 | /**
 74 |  * XINCLUDE_PARSE_ENCODING:
 75 |  *
 76 |  * Macro defining "encoding"
 77 |  */
 78 | #define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding"
 79 | /**
 80 |  * XINCLUDE_PARSE_XPOINTER:
 81 |  *
 82 |  * Macro defining "xpointer"
 83 |  */
 84 | #define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer"
 85 | 
 86 | typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
 87 | typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
 88 | 
 89 | /*
 90 |  * standalone processing
 91 |  */
 92 | XMLPUBFUN int
 93 | 		xmlXIncludeProcess	(xmlDocPtr doc);
 94 | XMLPUBFUN int
 95 | 		xmlXIncludeProcessFlags	(xmlDocPtr doc,
 96 | 					 int flags);
 97 | XMLPUBFUN int
 98 | 		xmlXIncludeProcessFlagsData(xmlDocPtr doc,
 99 | 					 int flags,
100 | 					 void *data);
101 | XMLPUBFUN int
102 |                 xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree,
103 |                                          int flags,
104 |                                          void *data);
105 | XMLPUBFUN int
106 | 		xmlXIncludeProcessTree	(xmlNodePtr tree);
107 | XMLPUBFUN int
108 | 		xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
109 | 					 int flags);
110 | /*
111 |  * contextual processing
112 |  */
113 | XMLPUBFUN xmlXIncludeCtxtPtr
114 | 		xmlXIncludeNewContext	(xmlDocPtr doc);
115 | XMLPUBFUN int
116 | 		xmlXIncludeSetFlags	(xmlXIncludeCtxtPtr ctxt,
117 | 					 int flags);
118 | XMLPUBFUN void
119 | 		xmlXIncludeFreeContext	(xmlXIncludeCtxtPtr ctxt);
120 | XMLPUBFUN int
121 | 		xmlXIncludeProcessNode	(xmlXIncludeCtxtPtr ctxt,
122 | 					 xmlNodePtr tree);
123 | #ifdef __cplusplus
124 | }
125 | #endif
126 | 
127 | #endif /* LIBXML_XINCLUDE_ENABLED */
128 | 
129 | #endif /* __XML_XINCLUDE_H__ */
130 | 
```

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

```python
  1 | """
  2 | requests.structures
  3 | ~~~~~~~~~~~~~~~~~~~
  4 | 
  5 | Data structures that power Requests.
  6 | """
  7 | 
  8 | from collections import OrderedDict
  9 | 
 10 | from .compat import Mapping, MutableMapping
 11 | 
 12 | 
 13 | class CaseInsensitiveDict(MutableMapping):
 14 |     """A case-insensitive ``dict``-like object.
 15 | 
 16 |     Implements all methods and operations of
 17 |     ``MutableMapping`` as well as dict's ``copy``. Also
 18 |     provides ``lower_items``.
 19 | 
 20 |     All keys are expected to be strings. The structure remembers the
 21 |     case of the last key to be set, and ``iter(instance)``,
 22 |     ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()``
 23 |     will contain case-sensitive keys. However, querying and contains
 24 |     testing is case insensitive::
 25 | 
 26 |         cid = CaseInsensitiveDict()
 27 |         cid['Accept'] = 'application/json'
 28 |         cid['aCCEPT'] == 'application/json'  # True
 29 |         list(cid) == ['Accept']  # True
 30 | 
 31 |     For example, ``headers['content-encoding']`` will return the
 32 |     value of a ``'Content-Encoding'`` response header, regardless
 33 |     of how the header name was originally stored.
 34 | 
 35 |     If the constructor, ``.update``, or equality comparison
 36 |     operations are given keys that have equal ``.lower()``s, the
 37 |     behavior is undefined.
 38 |     """
 39 | 
 40 |     def __init__(self, data=None, **kwargs):
 41 |         self._store = OrderedDict()
 42 |         if data is None:
 43 |             data = {}
 44 |         self.update(data, **kwargs)
 45 | 
 46 |     def __setitem__(self, key, value):
 47 |         # Use the lowercased key for lookups, but store the actual
 48 |         # key alongside the value.
 49 |         self._store[key.lower()] = (key, value)
 50 | 
 51 |     def __getitem__(self, key):
 52 |         return self._store[key.lower()][1]
 53 | 
 54 |     def __delitem__(self, key):
 55 |         del self._store[key.lower()]
 56 | 
 57 |     def __iter__(self):
 58 |         return (casedkey for casedkey, mappedvalue in self._store.values())
 59 | 
 60 |     def __len__(self):
 61 |         return len(self._store)
 62 | 
 63 |     def lower_items(self):
 64 |         """Like iteritems(), but with all lowercase keys."""
 65 |         return ((lowerkey, keyval[1]) for (lowerkey, keyval) in self._store.items())
 66 | 
 67 |     def __eq__(self, other):
 68 |         if isinstance(other, Mapping):
 69 |             other = CaseInsensitiveDict(other)
 70 |         else:
 71 |             return NotImplemented
 72 |         # Compare insensitively
 73 |         return dict(self.lower_items()) == dict(other.lower_items())
 74 | 
 75 |     # Copy is required
 76 |     def copy(self):
 77 |         return CaseInsensitiveDict(self._store.values())
 78 | 
 79 |     def __repr__(self):
 80 |         return str(dict(self.items()))
 81 | 
 82 | 
 83 | class LookupDict(dict):
 84 |     """Dictionary lookup object."""
 85 | 
 86 |     def __init__(self, name=None):
 87 |         self.name = name
 88 |         super().__init__()
 89 | 
 90 |     def __repr__(self):
 91 |         return f"<lookup '{self.name}'>"
 92 | 
 93 |     def __getitem__(self, key):
 94 |         # We allow fall-through here, so values default to None
 95 | 
 96 |         return self.__dict__.get(key, None)
 97 | 
 98 |     def get(self, key, default=None):
 99 |         return self.__dict__.get(key, default)
100 | 
```

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

```python
  1 | """
  2 | requests.structures
  3 | ~~~~~~~~~~~~~~~~~~~
  4 | 
  5 | Data structures that power Requests.
  6 | """
  7 | 
  8 | from collections import OrderedDict
  9 | 
 10 | from .compat import Mapping, MutableMapping
 11 | 
 12 | 
 13 | class CaseInsensitiveDict(MutableMapping):
 14 |     """A case-insensitive ``dict``-like object.
 15 | 
 16 |     Implements all methods and operations of
 17 |     ``MutableMapping`` as well as dict's ``copy``. Also
 18 |     provides ``lower_items``.
 19 | 
 20 |     All keys are expected to be strings. The structure remembers the
 21 |     case of the last key to be set, and ``iter(instance)``,
 22 |     ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()``
 23 |     will contain case-sensitive keys. However, querying and contains
 24 |     testing is case insensitive::
 25 | 
 26 |         cid = CaseInsensitiveDict()
 27 |         cid['Accept'] = 'application/json'
 28 |         cid['aCCEPT'] == 'application/json'  # True
 29 |         list(cid) == ['Accept']  # True
 30 | 
 31 |     For example, ``headers['content-encoding']`` will return the
 32 |     value of a ``'Content-Encoding'`` response header, regardless
 33 |     of how the header name was originally stored.
 34 | 
 35 |     If the constructor, ``.update``, or equality comparison
 36 |     operations are given keys that have equal ``.lower()``s, the
 37 |     behavior is undefined.
 38 |     """
 39 | 
 40 |     def __init__(self, data=None, **kwargs):
 41 |         self._store = OrderedDict()
 42 |         if data is None:
 43 |             data = {}
 44 |         self.update(data, **kwargs)
 45 | 
 46 |     def __setitem__(self, key, value):
 47 |         # Use the lowercased key for lookups, but store the actual
 48 |         # key alongside the value.
 49 |         self._store[key.lower()] = (key, value)
 50 | 
 51 |     def __getitem__(self, key):
 52 |         return self._store[key.lower()][1]
 53 | 
 54 |     def __delitem__(self, key):
 55 |         del self._store[key.lower()]
 56 | 
 57 |     def __iter__(self):
 58 |         return (casedkey for casedkey, mappedvalue in self._store.values())
 59 | 
 60 |     def __len__(self):
 61 |         return len(self._store)
 62 | 
 63 |     def lower_items(self):
 64 |         """Like iteritems(), but with all lowercase keys."""
 65 |         return ((lowerkey, keyval[1]) for (lowerkey, keyval) in self._store.items())
 66 | 
 67 |     def __eq__(self, other):
 68 |         if isinstance(other, Mapping):
 69 |             other = CaseInsensitiveDict(other)
 70 |         else:
 71 |             return NotImplemented
 72 |         # Compare insensitively
 73 |         return dict(self.lower_items()) == dict(other.lower_items())
 74 | 
 75 |     # Copy is required
 76 |     def copy(self):
 77 |         return CaseInsensitiveDict(self._store.values())
 78 | 
 79 |     def __repr__(self):
 80 |         return str(dict(self.items()))
 81 | 
 82 | 
 83 | class LookupDict(dict):
 84 |     """Dictionary lookup object."""
 85 | 
 86 |     def __init__(self, name=None):
 87 |         self.name = name
 88 |         super().__init__()
 89 | 
 90 |     def __repr__(self):
 91 |         return f"<lookup '{self.name}'>"
 92 | 
 93 |     def __getitem__(self, key):
 94 |         # We allow fall-through here, so values default to None
 95 | 
 96 |         return self.__dict__.get(key, None)
 97 | 
 98 |     def get(self, key, default=None):
 99 |         return self.__dict__.get(key, default)
100 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | from collections.abc import Collection
 4 | 
 5 | 
 6 | class ETags(Collection):
 7 |     """A set that can be used to check if one etag is present in a collection
 8 |     of etags.
 9 |     """
10 | 
11 |     def __init__(self, strong_etags=None, weak_etags=None, star_tag=False):
12 |         if not star_tag and strong_etags:
13 |             self._strong = frozenset(strong_etags)
14 |         else:
15 |             self._strong = frozenset()
16 | 
17 |         self._weak = frozenset(weak_etags or ())
18 |         self.star_tag = star_tag
19 | 
20 |     def as_set(self, include_weak=False):
21 |         """Convert the `ETags` object into a python set.  Per default all the
22 |         weak etags are not part of this set."""
23 |         rv = set(self._strong)
24 |         if include_weak:
25 |             rv.update(self._weak)
26 |         return rv
27 | 
28 |     def is_weak(self, etag):
29 |         """Check if an etag is weak."""
30 |         return etag in self._weak
31 | 
32 |     def is_strong(self, etag):
33 |         """Check if an etag is strong."""
34 |         return etag in self._strong
35 | 
36 |     def contains_weak(self, etag):
37 |         """Check if an etag is part of the set including weak and strong tags."""
38 |         return self.is_weak(etag) or self.contains(etag)
39 | 
40 |     def contains(self, etag):
41 |         """Check if an etag is part of the set ignoring weak tags.
42 |         It is also possible to use the ``in`` operator.
43 |         """
44 |         if self.star_tag:
45 |             return True
46 |         return self.is_strong(etag)
47 | 
48 |     def contains_raw(self, etag):
49 |         """When passed a quoted tag it will check if this tag is part of the
50 |         set.  If the tag is weak it is checked against weak and strong tags,
51 |         otherwise strong only."""
52 |         from ..http import unquote_etag
53 | 
54 |         etag, weak = unquote_etag(etag)
55 |         if weak:
56 |             return self.contains_weak(etag)
57 |         return self.contains(etag)
58 | 
59 |     def to_header(self):
60 |         """Convert the etags set into a HTTP header string."""
61 |         if self.star_tag:
62 |             return "*"
63 |         return ", ".join(
64 |             [f'"{x}"' for x in self._strong] + [f'W/"{x}"' for x in self._weak]
65 |         )
66 | 
67 |     def __call__(self, etag=None, data=None, include_weak=False):
68 |         if [etag, data].count(None) != 1:
69 |             raise TypeError("either tag or data required, but at least one")
70 |         if etag is None:
71 |             from ..http import generate_etag
72 | 
73 |             etag = generate_etag(data)
74 |         if include_weak:
75 |             if etag in self._weak:
76 |                 return True
77 |         return etag in self._strong
78 | 
79 |     def __bool__(self):
80 |         return bool(self.star_tag or self._strong or self._weak)
81 | 
82 |     def __str__(self):
83 |         return self.to_header()
84 | 
85 |     def __len__(self):
86 |         return len(self._strong)
87 | 
88 |     def __iter__(self):
89 |         return iter(self._strong)
90 | 
91 |     def __contains__(self, etag):
92 |         return self.contains(etag)
93 | 
94 |     def __repr__(self):
95 |         return f"<{type(self).__name__} {str(self)!r}>"
96 | 
```

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

```python
  1 | # SPDX-License-Identifier: MIT
  2 | # SPDX-FileCopyrightText: 2021 Taneli Hukkinen
  3 | # Licensed to PSF under a Contributor Agreement.
  4 | 
  5 | from __future__ import annotations
  6 | 
  7 | from datetime import date, datetime, time, timedelta, timezone, tzinfo
  8 | from functools import lru_cache
  9 | import re
 10 | from typing import Any
 11 | 
 12 | from ._types import ParseFloat
 13 | 
 14 | # E.g.
 15 | # - 00:32:00.999999
 16 | # - 00:32:00
 17 | _TIME_RE_STR = r"([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\.([0-9]{1,6})[0-9]*)?"
 18 | 
 19 | RE_NUMBER = re.compile(
 20 |     r"""
 21 | 0
 22 | (?:
 23 |     x[0-9A-Fa-f](?:_?[0-9A-Fa-f])*   # hex
 24 |     |
 25 |     b[01](?:_?[01])*                 # bin
 26 |     |
 27 |     o[0-7](?:_?[0-7])*               # oct
 28 | )
 29 | |
 30 | [+-]?(?:0|[1-9](?:_?[0-9])*)         # dec, integer part
 31 | (?P<floatpart>
 32 |     (?:\.[0-9](?:_?[0-9])*)?         # optional fractional part
 33 |     (?:[eE][+-]?[0-9](?:_?[0-9])*)?  # optional exponent part
 34 | )
 35 | """,
 36 |     flags=re.VERBOSE,
 37 | )
 38 | RE_LOCALTIME = re.compile(_TIME_RE_STR)
 39 | RE_DATETIME = re.compile(
 40 |     rf"""
 41 | ([0-9]{{4}})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])  # date, e.g. 1988-10-27
 42 | (?:
 43 |     [Tt ]
 44 |     {_TIME_RE_STR}
 45 |     (?:([Zz])|([+-])([01][0-9]|2[0-3]):([0-5][0-9]))?  # optional time offset
 46 | )?
 47 | """,
 48 |     flags=re.VERBOSE,
 49 | )
 50 | 
 51 | 
 52 | def match_to_datetime(match: re.Match) -> datetime | date:
 53 |     """Convert a `RE_DATETIME` match to `datetime.datetime` or `datetime.date`.
 54 | 
 55 |     Raises ValueError if the match does not correspond to a valid date
 56 |     or datetime.
 57 |     """
 58 |     (
 59 |         year_str,
 60 |         month_str,
 61 |         day_str,
 62 |         hour_str,
 63 |         minute_str,
 64 |         sec_str,
 65 |         micros_str,
 66 |         zulu_time,
 67 |         offset_sign_str,
 68 |         offset_hour_str,
 69 |         offset_minute_str,
 70 |     ) = match.groups()
 71 |     year, month, day = int(year_str), int(month_str), int(day_str)
 72 |     if hour_str is None:
 73 |         return date(year, month, day)
 74 |     hour, minute, sec = int(hour_str), int(minute_str), int(sec_str)
 75 |     micros = int(micros_str.ljust(6, "0")) if micros_str else 0
 76 |     if offset_sign_str:
 77 |         tz: tzinfo | None = cached_tz(
 78 |             offset_hour_str, offset_minute_str, offset_sign_str
 79 |         )
 80 |     elif zulu_time:
 81 |         tz = timezone.utc
 82 |     else:  # local date-time
 83 |         tz = None
 84 |     return datetime(year, month, day, hour, minute, sec, micros, tzinfo=tz)
 85 | 
 86 | 
 87 | @lru_cache(maxsize=None)
 88 | def cached_tz(hour_str: str, minute_str: str, sign_str: str) -> timezone:
 89 |     sign = 1 if sign_str == "+" else -1
 90 |     return timezone(
 91 |         timedelta(
 92 |             hours=sign * int(hour_str),
 93 |             minutes=sign * int(minute_str),
 94 |         )
 95 |     )
 96 | 
 97 | 
 98 | def match_to_localtime(match: re.Match) -> time:
 99 |     hour_str, minute_str, sec_str, micros_str = match.groups()
100 |     micros = int(micros_str.ljust(6, "0")) if micros_str else 0
101 |     return time(int(hour_str), int(minute_str), int(sec_str), micros)
102 | 
103 | 
104 | def match_to_number(match: re.Match, parse_float: ParseFloat) -> Any:
105 |     if match.group("floatpart"):
106 |         return parse_float(match.group())
107 |     return int(match.group(), 0)
108 | 
```
Page 6/168FirstPrevNextLast