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

# Directory Structure

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

# Files

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

```python
  1 | from typing import cast, List, Optional, TYPE_CHECKING, Union
  2 | 
  3 | from ._spinners import SPINNERS
  4 | from .measure import Measurement
  5 | from .table import Table
  6 | from .text import Text
  7 | 
  8 | if TYPE_CHECKING:
  9 |     from .console import Console, ConsoleOptions, RenderResult, RenderableType
 10 |     from .style import StyleType
 11 | 
 12 | 
 13 | class Spinner:
 14 |     """A spinner animation.
 15 | 
 16 |     Args:
 17 |         name (str): Name of spinner (run python -m rich.spinner).
 18 |         text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "".
 19 |         style (StyleType, optional): Style for spinner animation. Defaults to None.
 20 |         speed (float, optional): Speed factor for animation. Defaults to 1.0.
 21 | 
 22 |     Raises:
 23 |         KeyError: If name isn't one of the supported spinner animations.
 24 |     """
 25 | 
 26 |     def __init__(
 27 |         self,
 28 |         name: str,
 29 |         text: "RenderableType" = "",
 30 |         *,
 31 |         style: Optional["StyleType"] = None,
 32 |         speed: float = 1.0,
 33 |     ) -> None:
 34 |         try:
 35 |             spinner = SPINNERS[name]
 36 |         except KeyError:
 37 |             raise KeyError(f"no spinner called {name!r}")
 38 |         self.text: "Union[RenderableType, Text]" = (
 39 |             Text.from_markup(text) if isinstance(text, str) else text
 40 |         )
 41 |         self.frames = cast(List[str], spinner["frames"])[:]
 42 |         self.interval = cast(float, spinner["interval"])
 43 |         self.start_time: Optional[float] = None
 44 |         self.style = style
 45 |         self.speed = speed
 46 |         self.frame_no_offset: float = 0.0
 47 |         self._update_speed = 0.0
 48 | 
 49 |     def __rich_console__(
 50 |         self, console: "Console", options: "ConsoleOptions"
 51 |     ) -> "RenderResult":
 52 |         yield self.render(console.get_time())
 53 | 
 54 |     def __rich_measure__(
 55 |         self, console: "Console", options: "ConsoleOptions"
 56 |     ) -> Measurement:
 57 |         text = self.render(0)
 58 |         return Measurement.get(console, options, text)
 59 | 
 60 |     def render(self, time: float) -> "RenderableType":
 61 |         """Render the spinner for a given time.
 62 | 
 63 |         Args:
 64 |             time (float): Time in seconds.
 65 | 
 66 |         Returns:
 67 |             RenderableType: A renderable containing animation frame.
 68 |         """
 69 |         if self.start_time is None:
 70 |             self.start_time = time
 71 | 
 72 |         frame_no = ((time - self.start_time) * self.speed) / (
 73 |             self.interval / 1000.0
 74 |         ) + self.frame_no_offset
 75 |         frame = Text(
 76 |             self.frames[int(frame_no) % len(self.frames)], style=self.style or ""
 77 |         )
 78 | 
 79 |         if self._update_speed:
 80 |             self.frame_no_offset = frame_no
 81 |             self.start_time = time
 82 |             self.speed = self._update_speed
 83 |             self._update_speed = 0.0
 84 | 
 85 |         if not self.text:
 86 |             return frame
 87 |         elif isinstance(self.text, (str, Text)):
 88 |             return Text.assemble(frame, " ", self.text)
 89 |         else:
 90 |             table = Table.grid(padding=1)
 91 |             table.add_row(frame, self.text)
 92 |             return table
 93 | 
 94 |     def update(
 95 |         self,
 96 |         *,
 97 |         text: "RenderableType" = "",
 98 |         style: Optional["StyleType"] = None,
 99 |         speed: Optional[float] = None,
100 |     ) -> None:
101 |         """Updates attributes of a spinner after it has been started.
102 | 
103 |         Args:
104 |             text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "".
105 |             style (StyleType, optional): Style for spinner animation. Defaults to None.
106 |             speed (float, optional): Speed factor for animation. Defaults to None.
107 |         """
108 |         if text:
109 |             self.text = Text.from_markup(text) if isinstance(text, str) else text
110 |         if style:
111 |             self.style = style
112 |         if speed:
113 |             self._update_speed = speed
114 | 
115 | 
116 | if __name__ == "__main__":  # pragma: no cover
117 |     from time import sleep
118 | 
119 |     from .columns import Columns
120 |     from .panel import Panel
121 |     from .live import Live
122 | 
123 |     all_spinners = Columns(
124 |         [
125 |             Spinner(spinner_name, text=Text(repr(spinner_name), style="green"))
126 |             for spinner_name in sorted(SPINNERS.keys())
127 |         ],
128 |         column_first=True,
129 |         expand=True,
130 |     )
131 | 
132 |     with Live(
133 |         Panel(all_spinners, title="Spinners", border_style="blue"),
134 |         refresh_per_second=20,
135 |     ) as live:
136 |         while True:
137 |             sleep(0.1)
138 | 
```

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

```json
1 | {"test_cases": [{"major": "2", "family": "Android", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Nexus One Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17,gzip(gfe),gzip(gfe)", "minor": "1", "patch": "update1"}, {"major": null, "family": "Mac OS X", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X Mach-O; en-en; rv:1.9.0.12) Gecko/2009070609 Firefox/3.0.12,gzip(gfe),gzip(gfe)", "minor": null, "patch": null}, {"major": null, "family": "iOS", "patch_minor": null, "user_agent_string": "Opera/9.80 (iPhone; Opera Mini/5.0.019802/21.572; U; en) Presto/2.5.25 Version/10.54", "minor": null, "patch": null}, {"major": "9", "family": "Symbian OS", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/12.0.013; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413", "minor": "2", "patch": null}, {"major": null, "family": "Symbian OS", "patch_minor": null, "user_agent_string": "Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; de) Presto/2.4.18 Version/10.00,gzip(gfe),gzip(gfe)", "minor": null, "patch": null}, {"major": null, "family": "Symbian^3", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/010.022; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.3 3gpp-gba,gzip(gfe),gzip(gfe)", "minor": null, "patch": null}, {"major": "4", "family": "BlackBerry OS", "patch_minor": "167", "user_agent_string": "BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102", "minor": "6", "patch": "0"}, {"major": "9", "family": "Linux Mint", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100723 Linux Mint/9 (Isadora) Firefox/3.6.8", "minor": null, "patch": null}, {"major": "13", "family": "Chrome OS", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (X11; CrOS i686 13.587.80) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.99 Safari/535.1", "minor": "587", "patch": "80"}, {"major": "3", "family": "Red Hat", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072310 Red Hat/3.0.1-3.el4 Firefox/3.0.1,gzip(gfe),gzip(gfe)", "minor": "0", "patch": "1"}, {"major": "3", "family": "Puppy", "patch_minor": null, "user_agent_string": "Mozilla/5.0 ( U; Linux x86_32; en-US; rv:1.0) Gecko/20090723 Puppy/3.6.8-0.1.1 Firefox/3.6.7,gzip(gfe),gzip(gfe)", "minor": "6", "patch": "8"}, {"major": "1", "family": "PCLinuxOS", "patch_minor": "14", "user_agent_string": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110301 PCLinuxOS/1.9.2.14-1pclos2011 (2011) Firefox/3.6.14,gzip(gfe),gzip(gfe),gzip(gfe)", "minor": "9", "patch": "2"}, {"major": "3", "family": "Fedora", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.0.4) Gecko/2008111217 Fedora/3.0.4-1.fc9 Firefox/3.0.4", "minor": "0", "patch": "4"}, {"major": null, "family": "CentOS", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (X11; 78; CentOS; US-en) AppleWebKit/527+ (KHTML, like Gecko) Bolt/0.862 Version/3.0 Safari/523.15", "minor": null, "patch": null}, {"major": "6", "family": "BlackBerry OS", "patch_minor": "526", "user_agent_string": "Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.526 Mobile Safari/534.8+,gzip(gfe),gzip(gfe),gzip(gfe)", "minor": "0", "patch": "0"}, {"major": "1", "family": "Mandriva", "patch_minor": "2", "user_agent_string": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090807 Mandriva Linux/1.9.1.2-1.1mud2009.1 (2009.1) Firefox/3.5.2 FirePHP/0.3,gzip(gfe),gzip(gfe)", "minor": "9", "patch": "1"}, {"major": null, "family": "Slackware", "patch_minor": null, "user_agent_string": "Opera/9.80 (X11; Linux x86_64; U; Slackware; lt) Presto/2.8.131 Version/11.11", "minor": null, "patch": null}, {"major": "7", "family": "Windows Phone OS", "patch_minor": null, "user_agent_string": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)", "minor": "5", "patch": null}, {"major": null, "family": "Other", "patch_minor": null, "user_agent_string": "", "minor": null, "patch": null}]}
```

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

```python
  1 | """
  2 |     pygments.formatter
  3 |     ~~~~~~~~~~~~~~~~~~
  4 | 
  5 |     Base formatter class.
  6 | 
  7 |     :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
  8 |     :license: BSD, see LICENSE for details.
  9 | """
 10 | 
 11 | import codecs
 12 | 
 13 | from pip._vendor.pygments.util import get_bool_opt
 14 | from pip._vendor.pygments.styles import get_style_by_name
 15 | 
 16 | __all__ = ['Formatter']
 17 | 
 18 | 
 19 | def _lookup_style(style):
 20 |     if isinstance(style, str):
 21 |         return get_style_by_name(style)
 22 |     return style
 23 | 
 24 | 
 25 | class Formatter:
 26 |     """
 27 |     Converts a token stream to text.
 28 | 
 29 |     Formatters should have attributes to help selecting them. These
 30 |     are similar to the corresponding :class:`~pygments.lexer.Lexer`
 31 |     attributes.
 32 | 
 33 |     .. autoattribute:: name
 34 |        :no-value:
 35 | 
 36 |     .. autoattribute:: aliases
 37 |        :no-value:
 38 | 
 39 |     .. autoattribute:: filenames
 40 |        :no-value:
 41 | 
 42 |     You can pass options as keyword arguments to the constructor.
 43 |     All formatters accept these basic options:
 44 | 
 45 |     ``style``
 46 |         The style to use, can be a string or a Style subclass
 47 |         (default: "default"). Not used by e.g. the
 48 |         TerminalFormatter.
 49 |     ``full``
 50 |         Tells the formatter to output a "full" document, i.e.
 51 |         a complete self-contained document. This doesn't have
 52 |         any effect for some formatters (default: false).
 53 |     ``title``
 54 |         If ``full`` is true, the title that should be used to
 55 |         caption the document (default: '').
 56 |     ``encoding``
 57 |         If given, must be an encoding name. This will be used to
 58 |         convert the Unicode token strings to byte strings in the
 59 |         output. If it is "" or None, Unicode strings will be written
 60 |         to the output file, which most file-like objects do not
 61 |         support (default: None).
 62 |     ``outencoding``
 63 |         Overrides ``encoding`` if given.
 64 | 
 65 |     """
 66 | 
 67 |     #: Full name for the formatter, in human-readable form.
 68 |     name = None
 69 | 
 70 |     #: A list of short, unique identifiers that can be used to lookup
 71 |     #: the formatter from a list, e.g. using :func:`.get_formatter_by_name()`.
 72 |     aliases = []
 73 | 
 74 |     #: A list of fnmatch patterns that match filenames for which this
 75 |     #: formatter can produce output. The patterns in this list should be unique
 76 |     #: among all formatters.
 77 |     filenames = []
 78 | 
 79 |     #: If True, this formatter outputs Unicode strings when no encoding
 80 |     #: option is given.
 81 |     unicodeoutput = True
 82 | 
 83 |     def __init__(self, **options):
 84 |         """
 85 |         As with lexers, this constructor takes arbitrary optional arguments,
 86 |         and if you override it, you should first process your own options, then
 87 |         call the base class implementation.
 88 |         """
 89 |         self.style = _lookup_style(options.get('style', 'default'))
 90 |         self.full = get_bool_opt(options, 'full', False)
 91 |         self.title = options.get('title', '')
 92 |         self.encoding = options.get('encoding', None) or None
 93 |         if self.encoding in ('guess', 'chardet'):
 94 |             # can happen for e.g. pygmentize -O encoding=guess
 95 |             self.encoding = 'utf-8'
 96 |         self.encoding = options.get('outencoding') or self.encoding
 97 |         self.options = options
 98 | 
 99 |     def get_style_defs(self, arg=''):
100 |         """
101 |         This method must return statements or declarations suitable to define
102 |         the current style for subsequent highlighted text (e.g. CSS classes
103 |         in the `HTMLFormatter`).
104 | 
105 |         The optional argument `arg` can be used to modify the generation and
106 |         is formatter dependent (it is standardized because it can be given on
107 |         the command line).
108 | 
109 |         This method is called by the ``-S`` :doc:`command-line option <cmdline>`,
110 |         the `arg` is then given by the ``-a`` option.
111 |         """
112 |         return ''
113 | 
114 |     def format(self, tokensource, outfile):
115 |         """
116 |         This method must format the tokens from the `tokensource` iterable and
117 |         write the formatted version to the file object `outfile`.
118 | 
119 |         Formatter options can control how exactly the tokens are converted.
120 |         """
121 |         if self.encoding:
122 |             # wrap the outfile in a StreamWriter
123 |             outfile = codecs.lookup(self.encoding)[3](outfile)
124 |         return self.format_unencoded(tokensource, outfile)
125 | 
126 |     # Allow writing Formatter[str] or Formatter[bytes]. That's equivalent to
127 |     # Formatter. This helps when using third-party type stubs from typeshed.
128 |     def __class_getitem__(cls, name):
129 |         return cls
130 | 
```

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

```python
  1 | """Functions that expose information about templates that might be
  2 | interesting for introspection.
  3 | """
  4 | 
  5 | import typing as t
  6 | 
  7 | from . import nodes
  8 | from .compiler import CodeGenerator
  9 | from .compiler import Frame
 10 | 
 11 | if t.TYPE_CHECKING:
 12 |     from .environment import Environment
 13 | 
 14 | 
 15 | class TrackingCodeGenerator(CodeGenerator):
 16 |     """We abuse the code generator for introspection."""
 17 | 
 18 |     def __init__(self, environment: "Environment") -> None:
 19 |         super().__init__(environment, "<introspection>", "<introspection>")
 20 |         self.undeclared_identifiers: t.Set[str] = set()
 21 | 
 22 |     def write(self, x: str) -> None:
 23 |         """Don't write."""
 24 | 
 25 |     def enter_frame(self, frame: Frame) -> None:
 26 |         """Remember all undeclared identifiers."""
 27 |         super().enter_frame(frame)
 28 | 
 29 |         for _, (action, param) in frame.symbols.loads.items():
 30 |             if action == "resolve" and param not in self.environment.globals:
 31 |                 self.undeclared_identifiers.add(param)
 32 | 
 33 | 
 34 | def find_undeclared_variables(ast: nodes.Template) -> t.Set[str]:
 35 |     """Returns a set of all variables in the AST that will be looked up from
 36 |     the context at runtime.  Because at compile time it's not known which
 37 |     variables will be used depending on the path the execution takes at
 38 |     runtime, all variables are returned.
 39 | 
 40 |     >>> from jinja2 import Environment, meta
 41 |     >>> env = Environment()
 42 |     >>> ast = env.parse('{% set foo = 42 %}{{ bar + foo }}')
 43 |     >>> meta.find_undeclared_variables(ast) == {'bar'}
 44 |     True
 45 | 
 46 |     .. admonition:: Implementation
 47 | 
 48 |        Internally the code generator is used for finding undeclared variables.
 49 |        This is good to know because the code generator might raise a
 50 |        :exc:`TemplateAssertionError` during compilation and as a matter of
 51 |        fact this function can currently raise that exception as well.
 52 |     """
 53 |     codegen = TrackingCodeGenerator(ast.environment)  # type: ignore
 54 |     codegen.visit(ast)
 55 |     return codegen.undeclared_identifiers
 56 | 
 57 | 
 58 | _ref_types = (nodes.Extends, nodes.FromImport, nodes.Import, nodes.Include)
 59 | _RefType = t.Union[nodes.Extends, nodes.FromImport, nodes.Import, nodes.Include]
 60 | 
 61 | 
 62 | def find_referenced_templates(ast: nodes.Template) -> t.Iterator[t.Optional[str]]:
 63 |     """Finds all the referenced templates from the AST.  This will return an
 64 |     iterator over all the hardcoded template extensions, inclusions and
 65 |     imports.  If dynamic inheritance or inclusion is used, `None` will be
 66 |     yielded.
 67 | 
 68 |     >>> from jinja2 import Environment, meta
 69 |     >>> env = Environment()
 70 |     >>> ast = env.parse('{% extends "layout.html" %}{% include helper %}')
 71 |     >>> list(meta.find_referenced_templates(ast))
 72 |     ['layout.html', None]
 73 | 
 74 |     This function is useful for dependency tracking.  For example if you want
 75 |     to rebuild parts of the website after a layout template has changed.
 76 |     """
 77 |     template_name: t.Any
 78 | 
 79 |     for node in ast.find_all(_ref_types):
 80 |         template: nodes.Expr = node.template  # type: ignore
 81 | 
 82 |         if not isinstance(template, nodes.Const):
 83 |             # a tuple with some non consts in there
 84 |             if isinstance(template, (nodes.Tuple, nodes.List)):
 85 |                 for template_name in template.items:
 86 |                     # something const, only yield the strings and ignore
 87 |                     # non-string consts that really just make no sense
 88 |                     if isinstance(template_name, nodes.Const):
 89 |                         if isinstance(template_name.value, str):
 90 |                             yield template_name.value
 91 |                     # something dynamic in there
 92 |                     else:
 93 |                         yield None
 94 |             # something dynamic we don't know about here
 95 |             else:
 96 |                 yield None
 97 |             continue
 98 |         # constant is a basestring, direct template name
 99 |         if isinstance(template.value, str):
100 |             yield template.value
101 |         # a tuple or list (latter *should* not happen) made of consts,
102 |         # yield the consts that are strings.  We could warn here for
103 |         # non string values
104 |         elif isinstance(node, nodes.Include) and isinstance(
105 |             template.value, (tuple, list)
106 |         ):
107 |             for template_name in template.value:
108 |                 if isinstance(template_name, str):
109 |                     yield template_name
110 |         # something else we don't care about, we could warn here
111 |         else:
112 |             yield None
113 | 
```

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

```
  1 | /*
  2 |  * Summary: Old SAX version 1 handler, deprecated
  3 |  * Description: DEPRECATED set of SAX version 1 interfaces used to
  4 |  *              build the DOM tree.
  5 |  *
  6 |  * Copy: See Copyright for the status of this software.
  7 |  *
  8 |  * Author: Daniel Veillard
  9 |  */
 10 | 
 11 | 
 12 | #ifndef __XML_SAX_H__
 13 | #define __XML_SAX_H__
 14 | 
 15 | #include <libxml/xmlversion.h>
 16 | #include <libxml/parser.h>
 17 | 
 18 | #ifdef LIBXML_LEGACY_ENABLED
 19 | 
 20 | #ifdef __cplusplus
 21 | extern "C" {
 22 | #endif
 23 | XML_DEPRECATED
 24 | XMLPUBFUN const xmlChar *
 25 | 		getPublicId			(void *ctx);
 26 | XML_DEPRECATED
 27 | XMLPUBFUN const xmlChar *
 28 | 		getSystemId			(void *ctx);
 29 | XML_DEPRECATED
 30 | XMLPUBFUN void
 31 | 		setDocumentLocator		(void *ctx,
 32 | 						 xmlSAXLocatorPtr loc);
 33 | 
 34 | XML_DEPRECATED
 35 | XMLPUBFUN int
 36 | 		getLineNumber			(void *ctx);
 37 | XML_DEPRECATED
 38 | XMLPUBFUN int
 39 | 		getColumnNumber			(void *ctx);
 40 | 
 41 | XML_DEPRECATED
 42 | XMLPUBFUN int
 43 | 		isStandalone			(void *ctx);
 44 | XML_DEPRECATED
 45 | XMLPUBFUN int
 46 | 		hasInternalSubset		(void *ctx);
 47 | XML_DEPRECATED
 48 | XMLPUBFUN int
 49 | 		hasExternalSubset		(void *ctx);
 50 | 
 51 | XML_DEPRECATED
 52 | XMLPUBFUN void
 53 | 		internalSubset			(void *ctx,
 54 | 						 const xmlChar *name,
 55 | 						 const xmlChar *ExternalID,
 56 | 						 const xmlChar *SystemID);
 57 | XML_DEPRECATED
 58 | XMLPUBFUN void
 59 | 		externalSubset			(void *ctx,
 60 | 						 const xmlChar *name,
 61 | 						 const xmlChar *ExternalID,
 62 | 						 const xmlChar *SystemID);
 63 | XML_DEPRECATED
 64 | XMLPUBFUN xmlEntityPtr
 65 | 		getEntity			(void *ctx,
 66 | 						 const xmlChar *name);
 67 | XML_DEPRECATED
 68 | XMLPUBFUN xmlEntityPtr
 69 | 		getParameterEntity		(void *ctx,
 70 | 						 const xmlChar *name);
 71 | XML_DEPRECATED
 72 | XMLPUBFUN xmlParserInputPtr
 73 | 		resolveEntity			(void *ctx,
 74 | 						 const xmlChar *publicId,
 75 | 						 const xmlChar *systemId);
 76 | 
 77 | XML_DEPRECATED
 78 | XMLPUBFUN void
 79 | 		entityDecl			(void *ctx,
 80 | 						 const xmlChar *name,
 81 | 						 int type,
 82 | 						 const xmlChar *publicId,
 83 | 						 const xmlChar *systemId,
 84 | 						 xmlChar *content);
 85 | XML_DEPRECATED
 86 | XMLPUBFUN void
 87 | 		attributeDecl			(void *ctx,
 88 | 						 const xmlChar *elem,
 89 | 						 const xmlChar *fullname,
 90 | 						 int type,
 91 | 						 int def,
 92 | 						 const xmlChar *defaultValue,
 93 | 						 xmlEnumerationPtr tree);
 94 | XML_DEPRECATED
 95 | XMLPUBFUN void
 96 | 		elementDecl			(void *ctx,
 97 | 						 const xmlChar *name,
 98 | 						 int type,
 99 | 						 xmlElementContentPtr content);
100 | XML_DEPRECATED
101 | XMLPUBFUN void
102 | 		notationDecl			(void *ctx,
103 | 						 const xmlChar *name,
104 | 						 const xmlChar *publicId,
105 | 						 const xmlChar *systemId);
106 | XML_DEPRECATED
107 | XMLPUBFUN void
108 | 		unparsedEntityDecl		(void *ctx,
109 | 						 const xmlChar *name,
110 | 						 const xmlChar *publicId,
111 | 						 const xmlChar *systemId,
112 | 						 const xmlChar *notationName);
113 | 
114 | XML_DEPRECATED
115 | XMLPUBFUN void
116 | 		startDocument			(void *ctx);
117 | XML_DEPRECATED
118 | XMLPUBFUN void
119 | 		endDocument			(void *ctx);
120 | XML_DEPRECATED
121 | XMLPUBFUN void
122 | 		attribute			(void *ctx,
123 | 						 const xmlChar *fullname,
124 | 						 const xmlChar *value);
125 | XML_DEPRECATED
126 | XMLPUBFUN void
127 | 		startElement			(void *ctx,
128 | 						 const xmlChar *fullname,
129 | 						 const xmlChar **atts);
130 | XML_DEPRECATED
131 | XMLPUBFUN void
132 | 		endElement			(void *ctx,
133 | 						 const xmlChar *name);
134 | XML_DEPRECATED
135 | XMLPUBFUN void
136 | 		reference			(void *ctx,
137 | 						 const xmlChar *name);
138 | XML_DEPRECATED
139 | XMLPUBFUN void
140 | 		characters			(void *ctx,
141 | 						 const xmlChar *ch,
142 | 						 int len);
143 | XML_DEPRECATED
144 | XMLPUBFUN void
145 | 		ignorableWhitespace		(void *ctx,
146 | 						 const xmlChar *ch,
147 | 						 int len);
148 | XML_DEPRECATED
149 | XMLPUBFUN void
150 | 		processingInstruction		(void *ctx,
151 | 						 const xmlChar *target,
152 | 						 const xmlChar *data);
153 | XML_DEPRECATED
154 | XMLPUBFUN void
155 | 		globalNamespace			(void *ctx,
156 | 						 const xmlChar *href,
157 | 						 const xmlChar *prefix);
158 | XML_DEPRECATED
159 | XMLPUBFUN void
160 | 		setNamespace			(void *ctx,
161 | 						 const xmlChar *name);
162 | XML_DEPRECATED
163 | XMLPUBFUN xmlNsPtr
164 | 		getNamespace			(void *ctx);
165 | XML_DEPRECATED
166 | XMLPUBFUN int
167 | 		checkNamespace			(void *ctx,
168 | 						 xmlChar *nameSpace);
169 | XML_DEPRECATED
170 | XMLPUBFUN void
171 | 		namespaceDecl			(void *ctx,
172 | 						 const xmlChar *href,
173 | 						 const xmlChar *prefix);
174 | XML_DEPRECATED
175 | XMLPUBFUN void
176 | 		comment				(void *ctx,
177 | 						 const xmlChar *value);
178 | XML_DEPRECATED
179 | XMLPUBFUN void
180 | 		cdataBlock			(void *ctx,
181 | 						 const xmlChar *value,
182 | 						 int len);
183 | 
184 | #ifdef LIBXML_SAX1_ENABLED
185 | XML_DEPRECATED
186 | XMLPUBFUN void
187 | 		initxmlDefaultSAXHandler	(xmlSAXHandlerV1 *hdlr,
188 | 						 int warning);
189 | #ifdef LIBXML_HTML_ENABLED
190 | XML_DEPRECATED
191 | XMLPUBFUN void
192 | 		inithtmlDefaultSAXHandler	(xmlSAXHandlerV1 *hdlr);
193 | #endif
194 | #endif /* LIBXML_SAX1_ENABLED */
195 | 
196 | #ifdef __cplusplus
197 | }
198 | #endif
199 | 
200 | #endif /* LIBXML_LEGACY_ENABLED */
201 | 
202 | #endif /* __XML_SAX_H__ */
203 | 
```

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

```python
  1 | from __future__ import annotations
  2 | 
  3 | import select
  4 | import socket
  5 | from functools import partial
  6 | 
  7 | __all__ = ["wait_for_read", "wait_for_write"]
  8 | 
  9 | 
 10 | # How should we wait on sockets?
 11 | #
 12 | # There are two types of APIs you can use for waiting on sockets: the fancy
 13 | # modern stateful APIs like epoll/kqueue, and the older stateless APIs like
 14 | # select/poll. The stateful APIs are more efficient when you have a lots of
 15 | # sockets to keep track of, because you can set them up once and then use them
 16 | # lots of times. But we only ever want to wait on a single socket at a time
 17 | # and don't want to keep track of state, so the stateless APIs are actually
 18 | # more efficient. So we want to use select() or poll().
 19 | #
 20 | # Now, how do we choose between select() and poll()? On traditional Unixes,
 21 | # select() has a strange calling convention that makes it slow, or fail
 22 | # altogether, for high-numbered file descriptors. The point of poll() is to fix
 23 | # that, so on Unixes, we prefer poll().
 24 | #
 25 | # On Windows, there is no poll() (or at least Python doesn't provide a wrapper
 26 | # for it), but that's OK, because on Windows, select() doesn't have this
 27 | # strange calling convention; plain select() works fine.
 28 | #
 29 | # So: on Windows we use select(), and everywhere else we use poll(). We also
 30 | # fall back to select() in case poll() is somehow broken or missing.
 31 | 
 32 | 
 33 | def select_wait_for_socket(
 34 |     sock: socket.socket,
 35 |     read: bool = False,
 36 |     write: bool = False,
 37 |     timeout: float | None = None,
 38 | ) -> bool:
 39 |     if not read and not write:
 40 |         raise RuntimeError("must specify at least one of read=True, write=True")
 41 |     rcheck = []
 42 |     wcheck = []
 43 |     if read:
 44 |         rcheck.append(sock)
 45 |     if write:
 46 |         wcheck.append(sock)
 47 |     # When doing a non-blocking connect, most systems signal success by
 48 |     # marking the socket writable. Windows, though, signals success by marked
 49 |     # it as "exceptional". We paper over the difference by checking the write
 50 |     # sockets for both conditions. (The stdlib selectors module does the same
 51 |     # thing.)
 52 |     fn = partial(select.select, rcheck, wcheck, wcheck)
 53 |     rready, wready, xready = fn(timeout)
 54 |     return bool(rready or wready or xready)
 55 | 
 56 | 
 57 | def poll_wait_for_socket(
 58 |     sock: socket.socket,
 59 |     read: bool = False,
 60 |     write: bool = False,
 61 |     timeout: float | None = None,
 62 | ) -> bool:
 63 |     if not read and not write:
 64 |         raise RuntimeError("must specify at least one of read=True, write=True")
 65 |     mask = 0
 66 |     if read:
 67 |         mask |= select.POLLIN
 68 |     if write:
 69 |         mask |= select.POLLOUT
 70 |     poll_obj = select.poll()
 71 |     poll_obj.register(sock, mask)
 72 | 
 73 |     # For some reason, poll() takes timeout in milliseconds
 74 |     def do_poll(t: float | None) -> list[tuple[int, int]]:
 75 |         if t is not None:
 76 |             t *= 1000
 77 |         return poll_obj.poll(t)
 78 | 
 79 |     return bool(do_poll(timeout))
 80 | 
 81 | 
 82 | def _have_working_poll() -> bool:
 83 |     # Apparently some systems have a select.poll that fails as soon as you try
 84 |     # to use it, either due to strange configuration or broken monkeypatching
 85 |     # from libraries like eventlet/greenlet.
 86 |     try:
 87 |         poll_obj = select.poll()
 88 |         poll_obj.poll(0)
 89 |     except (AttributeError, OSError):
 90 |         return False
 91 |     else:
 92 |         return True
 93 | 
 94 | 
 95 | def wait_for_socket(
 96 |     sock: socket.socket,
 97 |     read: bool = False,
 98 |     write: bool = False,
 99 |     timeout: float | None = None,
100 | ) -> bool:
101 |     # We delay choosing which implementation to use until the first time we're
102 |     # called. We could do it at import time, but then we might make the wrong
103 |     # decision if someone goes wild with monkeypatching select.poll after
104 |     # we're imported.
105 |     global wait_for_socket
106 |     if _have_working_poll():
107 |         wait_for_socket = poll_wait_for_socket
108 |     elif hasattr(select, "select"):
109 |         wait_for_socket = select_wait_for_socket
110 |     return wait_for_socket(sock, read, write, timeout)
111 | 
112 | 
113 | def wait_for_read(sock: socket.socket, timeout: float | None = None) -> bool:
114 |     """Waits for reading to be available on a given socket.
115 |     Returns True if the socket is readable, or False if the timeout expired.
116 |     """
117 |     return wait_for_socket(sock, read=True, timeout=timeout)
118 | 
119 | 
120 | def wait_for_write(sock: socket.socket, timeout: float | None = None) -> bool:
121 |     """Waits for writing to be available on a given socket.
122 |     Returns True if the socket is readable, or False if the timeout expired.
123 |     """
124 |     return wait_for_socket(sock, write=True, timeout=timeout)
125 | 
```

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

```python
  1 | from types import TracebackType
  2 | from typing import Optional, Type
  3 | 
  4 | from .console import Console, RenderableType
  5 | from .jupyter import JupyterMixin
  6 | from .live import Live
  7 | from .spinner import Spinner
  8 | from .style import StyleType
  9 | 
 10 | 
 11 | class Status(JupyterMixin):
 12 |     """Displays a status indicator with a 'spinner' animation.
 13 | 
 14 |     Args:
 15 |         status (RenderableType): A status renderable (str or Text typically).
 16 |         console (Console, optional): Console instance to use, or None for global console. Defaults to None.
 17 |         spinner (str, optional): Name of spinner animation (see python -m rich.spinner). Defaults to "dots".
 18 |         spinner_style (StyleType, optional): Style of spinner. Defaults to "status.spinner".
 19 |         speed (float, optional): Speed factor for spinner animation. Defaults to 1.0.
 20 |         refresh_per_second (float, optional): Number of refreshes per second. Defaults to 12.5.
 21 |     """
 22 | 
 23 |     def __init__(
 24 |         self,
 25 |         status: RenderableType,
 26 |         *,
 27 |         console: Optional[Console] = None,
 28 |         spinner: str = "dots",
 29 |         spinner_style: StyleType = "status.spinner",
 30 |         speed: float = 1.0,
 31 |         refresh_per_second: float = 12.5,
 32 |     ):
 33 |         self.status = status
 34 |         self.spinner_style = spinner_style
 35 |         self.speed = speed
 36 |         self._spinner = Spinner(spinner, text=status, style=spinner_style, speed=speed)
 37 |         self._live = Live(
 38 |             self.renderable,
 39 |             console=console,
 40 |             refresh_per_second=refresh_per_second,
 41 |             transient=True,
 42 |         )
 43 | 
 44 |     @property
 45 |     def renderable(self) -> Spinner:
 46 |         return self._spinner
 47 | 
 48 |     @property
 49 |     def console(self) -> "Console":
 50 |         """Get the Console used by the Status objects."""
 51 |         return self._live.console
 52 | 
 53 |     def update(
 54 |         self,
 55 |         status: Optional[RenderableType] = None,
 56 |         *,
 57 |         spinner: Optional[str] = None,
 58 |         spinner_style: Optional[StyleType] = None,
 59 |         speed: Optional[float] = None,
 60 |     ) -> None:
 61 |         """Update status.
 62 | 
 63 |         Args:
 64 |             status (Optional[RenderableType], optional): New status renderable or None for no change. Defaults to None.
 65 |             spinner (Optional[str], optional): New spinner or None for no change. Defaults to None.
 66 |             spinner_style (Optional[StyleType], optional): New spinner style or None for no change. Defaults to None.
 67 |             speed (Optional[float], optional): Speed factor for spinner animation or None for no change. Defaults to None.
 68 |         """
 69 |         if status is not None:
 70 |             self.status = status
 71 |         if spinner_style is not None:
 72 |             self.spinner_style = spinner_style
 73 |         if speed is not None:
 74 |             self.speed = speed
 75 |         if spinner is not None:
 76 |             self._spinner = Spinner(
 77 |                 spinner, text=self.status, style=self.spinner_style, speed=self.speed
 78 |             )
 79 |             self._live.update(self.renderable, refresh=True)
 80 |         else:
 81 |             self._spinner.update(
 82 |                 text=self.status, style=self.spinner_style, speed=self.speed
 83 |             )
 84 | 
 85 |     def start(self) -> None:
 86 |         """Start the status animation."""
 87 |         self._live.start()
 88 | 
 89 |     def stop(self) -> None:
 90 |         """Stop the spinner animation."""
 91 |         self._live.stop()
 92 | 
 93 |     def __rich__(self) -> RenderableType:
 94 |         return self.renderable
 95 | 
 96 |     def __enter__(self) -> "Status":
 97 |         self.start()
 98 |         return self
 99 | 
100 |     def __exit__(
101 |         self,
102 |         exc_type: Optional[Type[BaseException]],
103 |         exc_val: Optional[BaseException],
104 |         exc_tb: Optional[TracebackType],
105 |     ) -> None:
106 |         self.stop()
107 | 
108 | 
109 | if __name__ == "__main__":  # pragma: no cover
110 |     from time import sleep
111 | 
112 |     from .console import Console
113 | 
114 |     console = Console()
115 |     with console.status("[magenta]Covid detector booting up") as status:
116 |         sleep(3)
117 |         console.log("Importing advanced AI")
118 |         sleep(3)
119 |         console.log("Advanced Covid AI Ready")
120 |         sleep(3)
121 |         status.update(status="[bold blue] Scanning for Covid", spinner="earth")
122 |         sleep(3)
123 |         console.log("Found 10,000,000,000 copies of Covid32.exe")
124 |         sleep(3)
125 |         status.update(
126 |             status="[bold red]Moving Covid32.exe to Trash",
127 |             spinner="bouncingBall",
128 |             spinner_style="yellow",
129 |         )
130 |         sleep(5)
131 |     console.print("[bold green]Covid deleted successfully")
132 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/certifi/core.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 | certifi.py
  3 | ~~~~~~~~~~
  4 | 
  5 | This module returns the installation location of cacert.pem or its contents.
  6 | """
  7 | import sys
  8 | import atexit
  9 | 
 10 | def exit_cacert_ctx() -> None:
 11 |     _CACERT_CTX.__exit__(None, None, None)  # type: ignore[union-attr]
 12 | 
 13 | 
 14 | if sys.version_info >= (3, 11):
 15 | 
 16 |     from importlib.resources import as_file, files
 17 | 
 18 |     _CACERT_CTX = None
 19 |     _CACERT_PATH = None
 20 | 
 21 |     def where() -> str:
 22 |         # This is slightly terrible, but we want to delay extracting the file
 23 |         # in cases where we're inside of a zipimport situation until someone
 24 |         # actually calls where(), but we don't want to re-extract the file
 25 |         # on every call of where(), so we'll do it once then store it in a
 26 |         # global variable.
 27 |         global _CACERT_CTX
 28 |         global _CACERT_PATH
 29 |         if _CACERT_PATH is None:
 30 |             # This is slightly janky, the importlib.resources API wants you to
 31 |             # manage the cleanup of this file, so it doesn't actually return a
 32 |             # path, it returns a context manager that will give you the path
 33 |             # when you enter it and will do any cleanup when you leave it. In
 34 |             # the common case of not needing a temporary file, it will just
 35 |             # return the file system location and the __exit__() is a no-op.
 36 |             #
 37 |             # We also have to hold onto the actual context manager, because
 38 |             # it will do the cleanup whenever it gets garbage collected, so
 39 |             # we will also store that at the global level as well.
 40 |             _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem"))
 41 |             _CACERT_PATH = str(_CACERT_CTX.__enter__())
 42 |             atexit.register(exit_cacert_ctx)
 43 | 
 44 |         return _CACERT_PATH
 45 | 
 46 |     def contents() -> str:
 47 |         return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii")
 48 | 
 49 | elif sys.version_info >= (3, 7):
 50 | 
 51 |     from importlib.resources import path as get_path, read_text
 52 | 
 53 |     _CACERT_CTX = None
 54 |     _CACERT_PATH = None
 55 | 
 56 |     def where() -> str:
 57 |         # This is slightly terrible, but we want to delay extracting the
 58 |         # file in cases where we're inside of a zipimport situation until
 59 |         # someone actually calls where(), but we don't want to re-extract
 60 |         # the file on every call of where(), so we'll do it once then store
 61 |         # it in a global variable.
 62 |         global _CACERT_CTX
 63 |         global _CACERT_PATH
 64 |         if _CACERT_PATH is None:
 65 |             # This is slightly janky, the importlib.resources API wants you
 66 |             # to manage the cleanup of this file, so it doesn't actually
 67 |             # return a path, it returns a context manager that will give
 68 |             # you the path when you enter it and will do any cleanup when
 69 |             # you leave it. In the common case of not needing a temporary
 70 |             # file, it will just return the file system location and the
 71 |             # __exit__() is a no-op.
 72 |             #
 73 |             # We also have to hold onto the actual context manager, because
 74 |             # it will do the cleanup whenever it gets garbage collected, so
 75 |             # we will also store that at the global level as well.
 76 |             _CACERT_CTX = get_path("certifi", "cacert.pem")
 77 |             _CACERT_PATH = str(_CACERT_CTX.__enter__())
 78 |             atexit.register(exit_cacert_ctx)
 79 | 
 80 |         return _CACERT_PATH
 81 | 
 82 |     def contents() -> str:
 83 |         return read_text("certifi", "cacert.pem", encoding="ascii")
 84 | 
 85 | else:
 86 |     import os
 87 |     import types
 88 |     from typing import Union
 89 | 
 90 |     Package = Union[types.ModuleType, str]
 91 |     Resource = Union[str, "os.PathLike"]
 92 | 
 93 |     # This fallback will work for Python versions prior to 3.7 that lack the
 94 |     # importlib.resources module but relies on the existing `where` function
 95 |     # so won't address issues with environments like PyOxidizer that don't set
 96 |     # __file__ on modules.
 97 |     def read_text(
 98 |         package: Package,
 99 |         resource: Resource,
100 |         encoding: str = 'utf-8',
101 |         errors: str = 'strict'
102 |     ) -> str:
103 |         with open(where(), encoding=encoding) as data:
104 |             return data.read()
105 | 
106 |     # If we don't have importlib.resources, then we will just do the old logic
107 |     # of assuming we're on the filesystem and munge the path directly.
108 |     def where() -> str:
109 |         f = os.path.dirname(__file__)
110 | 
111 |         return os.path.join(f, "cacert.pem")
112 | 
113 |     def contents() -> str:
114 |         return read_text("certifi", "cacert.pem", encoding="ascii")
115 | 
```

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

```python
  1 | from __future__ import annotations
  2 | 
  3 | import os
  4 | import typing as t
  5 | from datetime import timedelta
  6 | 
  7 | from .cli import AppGroup
  8 | from .globals import current_app
  9 | from .helpers import send_from_directory
 10 | from .sansio.blueprints import Blueprint as SansioBlueprint
 11 | from .sansio.blueprints import BlueprintSetupState as BlueprintSetupState  # noqa
 12 | from .sansio.scaffold import _sentinel
 13 | 
 14 | if t.TYPE_CHECKING:  # pragma: no cover
 15 |     from .wrappers import Response
 16 | 
 17 | 
 18 | class Blueprint(SansioBlueprint):
 19 |     def __init__(
 20 |         self,
 21 |         name: str,
 22 |         import_name: str,
 23 |         static_folder: str | os.PathLike[str] | None = None,
 24 |         static_url_path: str | None = None,
 25 |         template_folder: str | os.PathLike[str] | None = None,
 26 |         url_prefix: str | None = None,
 27 |         subdomain: str | None = None,
 28 |         url_defaults: dict[str, t.Any] | None = None,
 29 |         root_path: str | None = None,
 30 |         cli_group: str | None = _sentinel,  # type: ignore
 31 |     ) -> None:
 32 |         super().__init__(
 33 |             name,
 34 |             import_name,
 35 |             static_folder,
 36 |             static_url_path,
 37 |             template_folder,
 38 |             url_prefix,
 39 |             subdomain,
 40 |             url_defaults,
 41 |             root_path,
 42 |             cli_group,
 43 |         )
 44 | 
 45 |         #: The Click command group for registering CLI commands for this
 46 |         #: object. The commands are available from the ``flask`` command
 47 |         #: once the application has been discovered and blueprints have
 48 |         #: been registered.
 49 |         self.cli = AppGroup()
 50 | 
 51 |         # Set the name of the Click group in case someone wants to add
 52 |         # the app's commands to another CLI tool.
 53 |         self.cli.name = self.name
 54 | 
 55 |     def get_send_file_max_age(self, filename: str | None) -> int | None:
 56 |         """Used by :func:`send_file` to determine the ``max_age`` cache
 57 |         value for a given file path if it wasn't passed.
 58 | 
 59 |         By default, this returns :data:`SEND_FILE_MAX_AGE_DEFAULT` from
 60 |         the configuration of :data:`~flask.current_app`. This defaults
 61 |         to ``None``, which tells the browser to use conditional requests
 62 |         instead of a timed cache, which is usually preferable.
 63 | 
 64 |         Note this is a duplicate of the same method in the Flask
 65 |         class.
 66 | 
 67 |         .. versionchanged:: 2.0
 68 |             The default configuration is ``None`` instead of 12 hours.
 69 | 
 70 |         .. versionadded:: 0.9
 71 |         """
 72 |         value = current_app.config["SEND_FILE_MAX_AGE_DEFAULT"]
 73 | 
 74 |         if value is None:
 75 |             return None
 76 | 
 77 |         if isinstance(value, timedelta):
 78 |             return int(value.total_seconds())
 79 | 
 80 |         return value  # type: ignore[no-any-return]
 81 | 
 82 |     def send_static_file(self, filename: str) -> Response:
 83 |         """The view function used to serve files from
 84 |         :attr:`static_folder`. A route is automatically registered for
 85 |         this view at :attr:`static_url_path` if :attr:`static_folder` is
 86 |         set.
 87 | 
 88 |         Note this is a duplicate of the same method in the Flask
 89 |         class.
 90 | 
 91 |         .. versionadded:: 0.5
 92 | 
 93 |         """
 94 |         if not self.has_static_folder:
 95 |             raise RuntimeError("'static_folder' must be set to serve static_files.")
 96 | 
 97 |         # send_file only knows to call get_send_file_max_age on the app,
 98 |         # call it here so it works for blueprints too.
 99 |         max_age = self.get_send_file_max_age(filename)
100 |         return send_from_directory(
101 |             t.cast(str, self.static_folder), filename, max_age=max_age
102 |         )
103 | 
104 |     def open_resource(self, resource: str, mode: str = "rb") -> t.IO[t.AnyStr]:
105 |         """Open a resource file relative to :attr:`root_path` for
106 |         reading.
107 | 
108 |         For example, if the file ``schema.sql`` is next to the file
109 |         ``app.py`` where the ``Flask`` app is defined, it can be opened
110 |         with:
111 | 
112 |         .. code-block:: python
113 | 
114 |             with app.open_resource("schema.sql") as f:
115 |                 conn.executescript(f.read())
116 | 
117 |         :param resource: Path to the resource relative to
118 |             :attr:`root_path`.
119 |         :param mode: Open the file in this mode. Only reading is
120 |             supported, valid values are "r" (or "rt") and "rb".
121 | 
122 |         Note this is a duplicate of the same method in the Flask
123 |         class.
124 | 
125 |         """
126 |         if mode not in {"r", "rt", "rb"}:
127 |             raise ValueError("Resources can only be opened for reading.")
128 | 
129 |         return open(os.path.join(self.root_path, resource), mode)
130 | 
```

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

```
  1 | /*
  2 |  * Summary: SAX2 parser interface used to build the DOM tree
  3 |  * Description: those are the default SAX2 interfaces used by
  4 |  *              the library when building DOM tree.
  5 |  *
  6 |  * Copy: See Copyright for the status of this software.
  7 |  *
  8 |  * Author: Daniel Veillard
  9 |  */
 10 | 
 11 | 
 12 | #ifndef __XML_SAX2_H__
 13 | #define __XML_SAX2_H__
 14 | 
 15 | #include <libxml/xmlversion.h>
 16 | #include <libxml/parser.h>
 17 | 
 18 | #ifdef __cplusplus
 19 | extern "C" {
 20 | #endif
 21 | XMLPUBFUN const xmlChar *
 22 | 		xmlSAX2GetPublicId		(void *ctx);
 23 | XMLPUBFUN const xmlChar *
 24 | 		xmlSAX2GetSystemId		(void *ctx);
 25 | XMLPUBFUN void
 26 | 		xmlSAX2SetDocumentLocator	(void *ctx,
 27 | 						 xmlSAXLocatorPtr loc);
 28 | 
 29 | XMLPUBFUN int
 30 | 		xmlSAX2GetLineNumber		(void *ctx);
 31 | XMLPUBFUN int
 32 | 		xmlSAX2GetColumnNumber		(void *ctx);
 33 | 
 34 | XMLPUBFUN int
 35 | 		xmlSAX2IsStandalone		(void *ctx);
 36 | XMLPUBFUN int
 37 | 		xmlSAX2HasInternalSubset	(void *ctx);
 38 | XMLPUBFUN int
 39 | 		xmlSAX2HasExternalSubset	(void *ctx);
 40 | 
 41 | XMLPUBFUN void
 42 | 		xmlSAX2InternalSubset		(void *ctx,
 43 | 						 const xmlChar *name,
 44 | 						 const xmlChar *ExternalID,
 45 | 						 const xmlChar *SystemID);
 46 | XMLPUBFUN void
 47 | 		xmlSAX2ExternalSubset		(void *ctx,
 48 | 						 const xmlChar *name,
 49 | 						 const xmlChar *ExternalID,
 50 | 						 const xmlChar *SystemID);
 51 | XMLPUBFUN xmlEntityPtr
 52 | 		xmlSAX2GetEntity		(void *ctx,
 53 | 						 const xmlChar *name);
 54 | XMLPUBFUN xmlEntityPtr
 55 | 		xmlSAX2GetParameterEntity	(void *ctx,
 56 | 						 const xmlChar *name);
 57 | XMLPUBFUN xmlParserInputPtr
 58 | 		xmlSAX2ResolveEntity		(void *ctx,
 59 | 						 const xmlChar *publicId,
 60 | 						 const xmlChar *systemId);
 61 | 
 62 | XMLPUBFUN void
 63 | 		xmlSAX2EntityDecl		(void *ctx,
 64 | 						 const xmlChar *name,
 65 | 						 int type,
 66 | 						 const xmlChar *publicId,
 67 | 						 const xmlChar *systemId,
 68 | 						 xmlChar *content);
 69 | XMLPUBFUN void
 70 | 		xmlSAX2AttributeDecl		(void *ctx,
 71 | 						 const xmlChar *elem,
 72 | 						 const xmlChar *fullname,
 73 | 						 int type,
 74 | 						 int def,
 75 | 						 const xmlChar *defaultValue,
 76 | 						 xmlEnumerationPtr tree);
 77 | XMLPUBFUN void
 78 | 		xmlSAX2ElementDecl		(void *ctx,
 79 | 						 const xmlChar *name,
 80 | 						 int type,
 81 | 						 xmlElementContentPtr content);
 82 | XMLPUBFUN void
 83 | 		xmlSAX2NotationDecl		(void *ctx,
 84 | 						 const xmlChar *name,
 85 | 						 const xmlChar *publicId,
 86 | 						 const xmlChar *systemId);
 87 | XMLPUBFUN void
 88 | 		xmlSAX2UnparsedEntityDecl	(void *ctx,
 89 | 						 const xmlChar *name,
 90 | 						 const xmlChar *publicId,
 91 | 						 const xmlChar *systemId,
 92 | 						 const xmlChar *notationName);
 93 | 
 94 | XMLPUBFUN void
 95 | 		xmlSAX2StartDocument		(void *ctx);
 96 | XMLPUBFUN void
 97 | 		xmlSAX2EndDocument		(void *ctx);
 98 | #if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
 99 |     defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
100 | XMLPUBFUN void
101 | 		xmlSAX2StartElement		(void *ctx,
102 | 						 const xmlChar *fullname,
103 | 						 const xmlChar **atts);
104 | XMLPUBFUN void
105 | 		xmlSAX2EndElement		(void *ctx,
106 | 						 const xmlChar *name);
107 | #endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED or LIBXML_LEGACY_ENABLED */
108 | XMLPUBFUN void
109 | 		xmlSAX2StartElementNs		(void *ctx,
110 | 						 const xmlChar *localname,
111 | 						 const xmlChar *prefix,
112 | 						 const xmlChar *URI,
113 | 						 int nb_namespaces,
114 | 						 const xmlChar **namespaces,
115 | 						 int nb_attributes,
116 | 						 int nb_defaulted,
117 | 						 const xmlChar **attributes);
118 | XMLPUBFUN void
119 | 		xmlSAX2EndElementNs		(void *ctx,
120 | 						 const xmlChar *localname,
121 | 						 const xmlChar *prefix,
122 | 						 const xmlChar *URI);
123 | XMLPUBFUN void
124 | 		xmlSAX2Reference		(void *ctx,
125 | 						 const xmlChar *name);
126 | XMLPUBFUN void
127 | 		xmlSAX2Characters		(void *ctx,
128 | 						 const xmlChar *ch,
129 | 						 int len);
130 | XMLPUBFUN void
131 | 		xmlSAX2IgnorableWhitespace	(void *ctx,
132 | 						 const xmlChar *ch,
133 | 						 int len);
134 | XMLPUBFUN void
135 | 		xmlSAX2ProcessingInstruction	(void *ctx,
136 | 						 const xmlChar *target,
137 | 						 const xmlChar *data);
138 | XMLPUBFUN void
139 | 		xmlSAX2Comment			(void *ctx,
140 | 						 const xmlChar *value);
141 | XMLPUBFUN void
142 | 		xmlSAX2CDataBlock		(void *ctx,
143 | 						 const xmlChar *value,
144 | 						 int len);
145 | 
146 | #ifdef LIBXML_SAX1_ENABLED
147 | XML_DEPRECATED
148 | XMLPUBFUN int
149 | 		xmlSAXDefaultVersion		(int version);
150 | #endif /* LIBXML_SAX1_ENABLED */
151 | 
152 | XMLPUBFUN int
153 | 		xmlSAXVersion			(xmlSAXHandler *hdlr,
154 | 						 int version);
155 | XMLPUBFUN void
156 | 		xmlSAX2InitDefaultSAXHandler    (xmlSAXHandler *hdlr,
157 | 						 int warning);
158 | #ifdef LIBXML_HTML_ENABLED
159 | XMLPUBFUN void
160 | 		xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr);
161 | XML_DEPRECATED
162 | XMLPUBFUN void
163 | 		htmlDefaultSAXHandlerInit	(void);
164 | #endif
165 | XML_DEPRECATED
166 | XMLPUBFUN void
167 | 		xmlDefaultSAXHandlerInit	(void);
168 | #ifdef __cplusplus
169 | }
170 | #endif
171 | #endif /* __XML_SAX2_H__ */
172 | 
```

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

```python
  1 | import inspect
  2 | from functools import partial
  3 | from typing import (
  4 |     Any,
  5 |     Callable,
  6 |     Iterable,
  7 |     List,
  8 |     Optional,
  9 |     Tuple,
 10 |     Type,
 11 |     TypeVar,
 12 |     Union,
 13 |     overload,
 14 | )
 15 | 
 16 | T = TypeVar("T")
 17 | 
 18 | 
 19 | Result = Iterable[Union[Any, Tuple[Any], Tuple[str, Any], Tuple[str, Any, Any]]]
 20 | RichReprResult = Result
 21 | 
 22 | 
 23 | class ReprError(Exception):
 24 |     """An error occurred when attempting to build a repr."""
 25 | 
 26 | 
 27 | @overload
 28 | def auto(cls: Optional[Type[T]]) -> Type[T]:
 29 |     ...
 30 | 
 31 | 
 32 | @overload
 33 | def auto(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]:
 34 |     ...
 35 | 
 36 | 
 37 | def auto(
 38 |     cls: Optional[Type[T]] = None, *, angular: Optional[bool] = None
 39 | ) -> Union[Type[T], Callable[[Type[T]], Type[T]]]:
 40 |     """Class decorator to create __repr__ from __rich_repr__"""
 41 | 
 42 |     def do_replace(cls: Type[T], angular: Optional[bool] = None) -> Type[T]:
 43 |         def auto_repr(self: T) -> str:
 44 |             """Create repr string from __rich_repr__"""
 45 |             repr_str: List[str] = []
 46 |             append = repr_str.append
 47 | 
 48 |             angular: bool = getattr(self.__rich_repr__, "angular", False)  # type: ignore[attr-defined]
 49 |             for arg in self.__rich_repr__():  # type: ignore[attr-defined]
 50 |                 if isinstance(arg, tuple):
 51 |                     if len(arg) == 1:
 52 |                         append(repr(arg[0]))
 53 |                     else:
 54 |                         key, value, *default = arg
 55 |                         if key is None:
 56 |                             append(repr(value))
 57 |                         else:
 58 |                             if default and default[0] == value:
 59 |                                 continue
 60 |                             append(f"{key}={value!r}")
 61 |                 else:
 62 |                     append(repr(arg))
 63 |             if angular:
 64 |                 return f"<{self.__class__.__name__} {' '.join(repr_str)}>"
 65 |             else:
 66 |                 return f"{self.__class__.__name__}({', '.join(repr_str)})"
 67 | 
 68 |         def auto_rich_repr(self: Type[T]) -> Result:
 69 |             """Auto generate __rich_rep__ from signature of __init__"""
 70 |             try:
 71 |                 signature = inspect.signature(self.__init__)
 72 |                 for name, param in signature.parameters.items():
 73 |                     if param.kind == param.POSITIONAL_ONLY:
 74 |                         yield getattr(self, name)
 75 |                     elif param.kind in (
 76 |                         param.POSITIONAL_OR_KEYWORD,
 77 |                         param.KEYWORD_ONLY,
 78 |                     ):
 79 |                         if param.default is param.empty:
 80 |                             yield getattr(self, param.name)
 81 |                         else:
 82 |                             yield param.name, getattr(self, param.name), param.default
 83 |             except Exception as error:
 84 |                 raise ReprError(
 85 |                     f"Failed to auto generate __rich_repr__; {error}"
 86 |                 ) from None
 87 | 
 88 |         if not hasattr(cls, "__rich_repr__"):
 89 |             auto_rich_repr.__doc__ = "Build a rich repr"
 90 |             cls.__rich_repr__ = auto_rich_repr  # type: ignore[attr-defined]
 91 | 
 92 |         auto_repr.__doc__ = "Return repr(self)"
 93 |         cls.__repr__ = auto_repr  # type: ignore[assignment]
 94 |         if angular is not None:
 95 |             cls.__rich_repr__.angular = angular  # type: ignore[attr-defined]
 96 |         return cls
 97 | 
 98 |     if cls is None:
 99 |         return partial(do_replace, angular=angular)
100 |     else:
101 |         return do_replace(cls, angular=angular)
102 | 
103 | 
104 | @overload
105 | def rich_repr(cls: Optional[Type[T]]) -> Type[T]:
106 |     ...
107 | 
108 | 
109 | @overload
110 | def rich_repr(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]:
111 |     ...
112 | 
113 | 
114 | def rich_repr(
115 |     cls: Optional[Type[T]] = None, *, angular: bool = False
116 | ) -> Union[Type[T], Callable[[Type[T]], Type[T]]]:
117 |     if cls is None:
118 |         return auto(angular=angular)
119 |     else:
120 |         return auto(cls)
121 | 
122 | 
123 | if __name__ == "__main__":
124 | 
125 |     @auto
126 |     class Foo:
127 |         def __rich_repr__(self) -> Result:
128 |             yield "foo"
129 |             yield "bar", {"shopping": ["eggs", "ham", "pineapple"]}
130 |             yield "buy", "hand sanitizer"
131 | 
132 |     foo = Foo()
133 |     from pip._vendor.rich.console import Console
134 | 
135 |     console = Console()
136 | 
137 |     console.rule("Standard repr")
138 |     console.print(foo)
139 | 
140 |     console.print(foo, width=60)
141 |     console.print(foo, width=30)
142 | 
143 |     console.rule("Angular repr")
144 |     Foo.__rich_repr__.angular = True  # type: ignore[attr-defined]
145 | 
146 |     console.print(foo)
147 | 
148 |     console.print(foo, width=60)
149 |     console.print(foo, width=30)
150 | 
```

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

```python
  1 | import sys
  2 | import textwrap
  3 | from typing import List, Optional, Sequence
  4 | 
  5 | # Shim to wrap setup.py invocation with setuptools
  6 | # Note that __file__ is handled via two {!r} *and* %r, to ensure that paths on
  7 | # Windows are correctly handled (it should be "C:\\Users" not "C:\Users").
  8 | _SETUPTOOLS_SHIM = textwrap.dedent(
  9 |     """
 10 |     exec(compile('''
 11 |     # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
 12 |     #
 13 |     # - It imports setuptools before invoking setup.py, to enable projects that directly
 14 |     #   import from `distutils.core` to work with newer packaging standards.
 15 |     # - It provides a clear error message when setuptools is not installed.
 16 |     # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
 17 |     #   setuptools doesn't think the script is `-c`. This avoids the following warning:
 18 |     #     manifest_maker: standard file '-c' not found".
 19 |     # - It generates a shim setup.py, for handling setup.cfg-only projects.
 20 |     import os, sys, tokenize
 21 | 
 22 |     try:
 23 |         import setuptools
 24 |     except ImportError as error:
 25 |         print(
 26 |             "ERROR: Can not execute `setup.py` since setuptools is not available in "
 27 |             "the build environment.",
 28 |             file=sys.stderr,
 29 |         )
 30 |         sys.exit(1)
 31 | 
 32 |     __file__ = %r
 33 |     sys.argv[0] = __file__
 34 | 
 35 |     if os.path.exists(__file__):
 36 |         filename = __file__
 37 |         with tokenize.open(__file__) as f:
 38 |             setup_py_code = f.read()
 39 |     else:
 40 |         filename = "<auto-generated setuptools caller>"
 41 |         setup_py_code = "from setuptools import setup; setup()"
 42 | 
 43 |     exec(compile(setup_py_code, filename, "exec"))
 44 |     ''' % ({!r},), "<pip-setuptools-caller>", "exec"))
 45 |     """
 46 | ).rstrip()
 47 | 
 48 | 
 49 | def make_setuptools_shim_args(
 50 |     setup_py_path: str,
 51 |     global_options: Optional[Sequence[str]] = None,
 52 |     no_user_config: bool = False,
 53 |     unbuffered_output: bool = False,
 54 | ) -> List[str]:
 55 |     """
 56 |     Get setuptools command arguments with shim wrapped setup file invocation.
 57 | 
 58 |     :param setup_py_path: The path to setup.py to be wrapped.
 59 |     :param global_options: Additional global options.
 60 |     :param no_user_config: If True, disables personal user configuration.
 61 |     :param unbuffered_output: If True, adds the unbuffered switch to the
 62 |      argument list.
 63 |     """
 64 |     args = [sys.executable]
 65 |     if unbuffered_output:
 66 |         args += ["-u"]
 67 |     args += ["-c", _SETUPTOOLS_SHIM.format(setup_py_path)]
 68 |     if global_options:
 69 |         args += global_options
 70 |     if no_user_config:
 71 |         args += ["--no-user-cfg"]
 72 |     return args
 73 | 
 74 | 
 75 | def make_setuptools_bdist_wheel_args(
 76 |     setup_py_path: str,
 77 |     global_options: Sequence[str],
 78 |     build_options: Sequence[str],
 79 |     destination_dir: str,
 80 | ) -> List[str]:
 81 |     # NOTE: Eventually, we'd want to also -S to the flags here, when we're
 82 |     # isolating. Currently, it breaks Python in virtualenvs, because it
 83 |     # relies on site.py to find parts of the standard library outside the
 84 |     # virtualenv.
 85 |     args = make_setuptools_shim_args(
 86 |         setup_py_path, global_options=global_options, unbuffered_output=True
 87 |     )
 88 |     args += ["bdist_wheel", "-d", destination_dir]
 89 |     args += build_options
 90 |     return args
 91 | 
 92 | 
 93 | def make_setuptools_clean_args(
 94 |     setup_py_path: str,
 95 |     global_options: Sequence[str],
 96 | ) -> List[str]:
 97 |     args = make_setuptools_shim_args(
 98 |         setup_py_path, global_options=global_options, unbuffered_output=True
 99 |     )
100 |     args += ["clean", "--all"]
101 |     return args
102 | 
103 | 
104 | def make_setuptools_develop_args(
105 |     setup_py_path: str,
106 |     *,
107 |     global_options: Sequence[str],
108 |     no_user_config: bool,
109 |     prefix: Optional[str],
110 |     home: Optional[str],
111 |     use_user_site: bool,
112 | ) -> List[str]:
113 |     assert not (use_user_site and prefix)
114 | 
115 |     args = make_setuptools_shim_args(
116 |         setup_py_path,
117 |         global_options=global_options,
118 |         no_user_config=no_user_config,
119 |     )
120 | 
121 |     args += ["develop", "--no-deps"]
122 | 
123 |     if prefix:
124 |         args += ["--prefix", prefix]
125 |     if home is not None:
126 |         args += ["--install-dir", home]
127 | 
128 |     if use_user_site:
129 |         args += ["--user", "--prefix="]
130 | 
131 |     return args
132 | 
133 | 
134 | def make_setuptools_egg_info_args(
135 |     setup_py_path: str,
136 |     egg_info_dir: Optional[str],
137 |     no_user_config: bool,
138 | ) -> List[str]:
139 |     args = make_setuptools_shim_args(setup_py_path, no_user_config=no_user_config)
140 | 
141 |     args += ["egg_info"]
142 | 
143 |     if egg_info_dir:
144 |         args += ["--egg-base", egg_info_dir]
145 | 
146 |     return args
147 | 
```
Page 12/168FirstPrevNextLast