#
tokens: 49698/50000 37/808 files (page 3/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 3 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/protocol.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Any, cast, Set, TYPE_CHECKING
 2 | from inspect import isclass
 3 | 
 4 | if TYPE_CHECKING:
 5 |     from pip._vendor.rich.console import RenderableType
 6 | 
 7 | _GIBBERISH = """aihwerij235234ljsdnp34ksodfipwoe234234jlskjdf"""
 8 | 
 9 | 
10 | def is_renderable(check_object: Any) -> bool:
11 |     """Check if an object may be rendered by Rich."""
12 |     return (
13 |         isinstance(check_object, str)
14 |         or hasattr(check_object, "__rich__")
15 |         or hasattr(check_object, "__rich_console__")
16 |     )
17 | 
18 | 
19 | def rich_cast(renderable: object) -> "RenderableType":
20 |     """Cast an object to a renderable by calling __rich__ if present.
21 | 
22 |     Args:
23 |         renderable (object): A potentially renderable object
24 | 
25 |     Returns:
26 |         object: The result of recursively calling __rich__.
27 |     """
28 |     from pip._vendor.rich.console import RenderableType
29 | 
30 |     rich_visited_set: Set[type] = set()  # Prevent potential infinite loop
31 |     while hasattr(renderable, "__rich__") and not isclass(renderable):
32 |         # Detect object which claim to have all the attributes
33 |         if hasattr(renderable, _GIBBERISH):
34 |             return repr(renderable)
35 |         cast_method = getattr(renderable, "__rich__")
36 |         renderable = cast_method()
37 |         renderable_type = type(renderable)
38 |         if renderable_type in rich_visited_set:
39 |             break
40 |         rich_visited_set.add(renderable_type)
41 | 
42 |     return cast(RenderableType, renderable)
43 | 
```

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

```python
 1 | import functools
 2 | from time import perf_counter, sleep
 3 | from typing import Callable, TypeVar
 4 | 
 5 | from pip._vendor.typing_extensions import ParamSpec
 6 | 
 7 | T = TypeVar("T")
 8 | P = ParamSpec("P")
 9 | 
10 | 
11 | def retry(
12 |     wait: float, stop_after_delay: float
13 | ) -> Callable[[Callable[P, T]], Callable[P, T]]:
14 |     """Decorator to automatically retry a function on error.
15 | 
16 |     If the function raises, the function is recalled with the same arguments
17 |     until it returns or the time limit is reached. When the time limit is
18 |     surpassed, the last exception raised is reraised.
19 | 
20 |     :param wait: The time to wait after an error before retrying, in seconds.
21 |     :param stop_after_delay: The time limit after which retries will cease,
22 |         in seconds.
23 |     """
24 | 
25 |     def wrapper(func: Callable[P, T]) -> Callable[P, T]:
26 | 
27 |         @functools.wraps(func)
28 |         def retry_wrapped(*args: P.args, **kwargs: P.kwargs) -> T:
29 |             # The performance counter is monotonic on all platforms we care
30 |             # about and has much better resolution than time.monotonic().
31 |             start_time = perf_counter()
32 |             while True:
33 |                 try:
34 |                     return func(*args, **kwargs)
35 |                 except Exception:
36 |                     if perf_counter() - start_time > stop_after_delay:
37 |                         raise
38 |                     sleep(wait)
39 | 
40 |         return retry_wrapped
41 | 
42 |     return wrapper
43 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/itsdangerous/encoding.py:
--------------------------------------------------------------------------------

```python
 1 | from __future__ import annotations
 2 | 
 3 | import base64
 4 | import string
 5 | import struct
 6 | import typing as t
 7 | 
 8 | from .exc import BadData
 9 | 
10 | 
11 | def want_bytes(
12 |     s: str | bytes, encoding: str = "utf-8", errors: str = "strict"
13 | ) -> bytes:
14 |     if isinstance(s, str):
15 |         s = s.encode(encoding, errors)
16 | 
17 |     return s
18 | 
19 | 
20 | def base64_encode(string: str | bytes) -> bytes:
21 |     """Base64 encode a string of bytes or text. The resulting bytes are
22 |     safe to use in URLs.
23 |     """
24 |     string = want_bytes(string)
25 |     return base64.urlsafe_b64encode(string).rstrip(b"=")
26 | 
27 | 
28 | def base64_decode(string: str | bytes) -> bytes:
29 |     """Base64 decode a URL-safe string of bytes or text. The result is
30 |     bytes.
31 |     """
32 |     string = want_bytes(string, encoding="ascii", errors="ignore")
33 |     string += b"=" * (-len(string) % 4)
34 | 
35 |     try:
36 |         return base64.urlsafe_b64decode(string)
37 |     except (TypeError, ValueError) as e:
38 |         raise BadData("Invalid base64-encoded data") from e
39 | 
40 | 
41 | # The alphabet used by base64.urlsafe_*
42 | _base64_alphabet = f"{string.ascii_letters}{string.digits}-_=".encode("ascii")
43 | 
44 | _int64_struct = struct.Struct(">Q")
45 | _int_to_bytes = _int64_struct.pack
46 | _bytes_to_int = t.cast("t.Callable[[bytes], tuple[int]]", _int64_struct.unpack)
47 | 
48 | 
49 | def int_to_bytes(num: int) -> bytes:
50 |     return _int_to_bytes(num).lstrip(b"\x00")
51 | 
52 | 
53 | def bytes_to_int(bytestr: bytes) -> int:
54 |     return _bytes_to_int(bytestr.rjust(8, b"\x00"))[0]
55 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | 
 4 | class UserAgent:
 5 |     """Represents a parsed user agent header value.
 6 | 
 7 |     The default implementation does no parsing, only the :attr:`string`
 8 |     attribute is set. A subclass may parse the string to set the
 9 |     common attributes or expose other information. Set
10 |     :attr:`werkzeug.wrappers.Request.user_agent_class` to use a
11 |     subclass.
12 | 
13 |     :param string: The header value to parse.
14 | 
15 |     .. versionadded:: 2.0
16 |         This replaces the previous ``useragents`` module, but does not
17 |         provide a built-in parser.
18 |     """
19 | 
20 |     platform: str | None = None
21 |     """The OS name, if it could be parsed from the string."""
22 | 
23 |     browser: str | None = None
24 |     """The browser name, if it could be parsed from the string."""
25 | 
26 |     version: str | None = None
27 |     """The browser version, if it could be parsed from the string."""
28 | 
29 |     language: str | None = None
30 |     """The browser language, if it could be parsed from the string."""
31 | 
32 |     def __init__(self, string: str) -> None:
33 |         self.string: str = string
34 |         """The original header value."""
35 | 
36 |     def __repr__(self) -> str:
37 |         return f"<{type(self).__name__} {self.browser}/{self.version}>"
38 | 
39 |     def __str__(self) -> str:
40 |         return self.string
41 | 
42 |     def __bool__(self) -> bool:
43 |         return bool(self.browser)
44 | 
45 |     def to_header(self) -> str:
46 |         """Convert to a header value."""
47 |         return self.string
48 | 
```

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

```python
 1 | # SPDX-FileCopyrightText: 2015 Eric Larson
 2 | #
 3 | # SPDX-License-Identifier: Apache-2.0
 4 | from __future__ import annotations
 5 | 
 6 | from typing import TYPE_CHECKING, Collection
 7 | 
 8 | from pip._vendor.cachecontrol.adapter import CacheControlAdapter
 9 | from pip._vendor.cachecontrol.cache import DictCache
10 | 
11 | if TYPE_CHECKING:
12 |     from pip._vendor import requests
13 | 
14 |     from pip._vendor.cachecontrol.cache import BaseCache
15 |     from pip._vendor.cachecontrol.controller import CacheController
16 |     from pip._vendor.cachecontrol.heuristics import BaseHeuristic
17 |     from pip._vendor.cachecontrol.serialize import Serializer
18 | 
19 | 
20 | def CacheControl(
21 |     sess: requests.Session,
22 |     cache: BaseCache | None = None,
23 |     cache_etags: bool = True,
24 |     serializer: Serializer | None = None,
25 |     heuristic: BaseHeuristic | None = None,
26 |     controller_class: type[CacheController] | None = None,
27 |     adapter_class: type[CacheControlAdapter] | None = None,
28 |     cacheable_methods: Collection[str] | None = None,
29 | ) -> requests.Session:
30 |     cache = DictCache() if cache is None else cache
31 |     adapter_class = adapter_class or CacheControlAdapter
32 |     adapter = adapter_class(
33 |         cache,
34 |         cache_etags=cache_etags,
35 |         serializer=serializer,
36 |         heuristic=heuristic,
37 |         controller_class=controller_class,
38 |         cacheable_methods=cacheable_methods,
39 |     )
40 |     sess.mount("http://", adapter)
41 |     sess.mount("https://", adapter)
42 | 
43 |     return sess
44 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py:
--------------------------------------------------------------------------------

```python
 1 | # -*- coding: utf-8 -*-
 2 | """
 3 | backports.makefile
 4 | ~~~~~~~~~~~~~~~~~~
 5 | 
 6 | Backports the Python 3 ``socket.makefile`` method for use with anything that
 7 | wants to create a "fake" socket object.
 8 | """
 9 | import io
10 | from socket import SocketIO
11 | 
12 | 
13 | def backport_makefile(
14 |     self, mode="r", buffering=None, encoding=None, errors=None, newline=None
15 | ):
16 |     """
17 |     Backport of ``socket.makefile`` from Python 3.5.
18 |     """
19 |     if not set(mode) <= {"r", "w", "b"}:
20 |         raise ValueError("invalid mode %r (only r, w, b allowed)" % (mode,))
21 |     writing = "w" in mode
22 |     reading = "r" in mode or not writing
23 |     assert reading or writing
24 |     binary = "b" in mode
25 |     rawmode = ""
26 |     if reading:
27 |         rawmode += "r"
28 |     if writing:
29 |         rawmode += "w"
30 |     raw = SocketIO(self, rawmode)
31 |     self._makefile_refs += 1
32 |     if buffering is None:
33 |         buffering = -1
34 |     if buffering < 0:
35 |         buffering = io.DEFAULT_BUFFER_SIZE
36 |     if buffering == 0:
37 |         if not binary:
38 |             raise ValueError("unbuffered streams must be binary")
39 |         return raw
40 |     if reading and writing:
41 |         buffer = io.BufferedRWPair(raw, raw, buffering)
42 |     elif reading:
43 |         buffer = io.BufferedReader(raw, buffering)
44 |     else:
45 |         assert writing
46 |         buffer = io.BufferedWriter(raw, buffering)
47 |     if binary:
48 |         return buffer
49 |     text = io.TextIOWrapper(buffer, encoding, errors, newline)
50 |     text.mode = mode
51 |     return text
52 | 
```

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

```python
 1 | import json
 2 | from os.path import join, dirname
 3 | 
 4 | from useragent import detect
 5 | 
 6 | 
 7 | def load_resource(filename):
 8 |     return json.load(open(join(dirname(__file__), filename)))
 9 | 
10 | 
11 | def test_browser_results():
12 |     for case in generate_test_cases(['test_browser.json', 'test_firefox.json', 'test_pgts_browser.json'], 'browser'):
13 |         yield case
14 | 
15 | 
16 | def test_os_results():
17 |     for case in generate_test_cases(['test_os.json', 'test_additional_os.json'], 'os'):
18 |         yield case
19 | 
20 | 
21 | # def test_device_results():
22 | #     for case in generate_test_cases(['test_device.json'], 'device'):
23 | #         yield case
24 | 
25 | 
26 | def generate_test_cases(resource_names, attr_name):
27 |     test_cases = load_resource('test_os.json')['test_cases']
28 |     test_cases += load_resource('test_additional_os.json')['test_cases']
29 |     for resource in resource_names:
30 |         for case in load_resource(resource)['test_cases']:
31 |             yield validate_result, case['user_agent_string'], attr_name, case['family'], case['major'], case['minor'], case['patch'], case.get('patch_minor', None)
32 | 
33 | 
34 | def validate_result(ua_string, attr_name, family, major, minor, patch, patch_minor):
35 |     result = getattr(detect(ua_string), attr_name)
36 |     assert result.family == family, "%s != %s" % (result.family, family)
37 |     assert result.major_version == major
38 |     assert result.minor_version == minor
39 |     assert result.patch_version == patch
40 |     assert result.patch_minor_version == patch_minor
41 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | import typing as t
 4 | 
 5 | from .encoding import base64_decode as base64_decode
 6 | from .encoding import base64_encode as base64_encode
 7 | from .encoding import want_bytes as want_bytes
 8 | from .exc import BadData as BadData
 9 | from .exc import BadHeader as BadHeader
10 | from .exc import BadPayload as BadPayload
11 | from .exc import BadSignature as BadSignature
12 | from .exc import BadTimeSignature as BadTimeSignature
13 | from .exc import SignatureExpired as SignatureExpired
14 | from .serializer import Serializer as Serializer
15 | from .signer import HMACAlgorithm as HMACAlgorithm
16 | from .signer import NoneAlgorithm as NoneAlgorithm
17 | from .signer import Signer as Signer
18 | from .timed import TimedSerializer as TimedSerializer
19 | from .timed import TimestampSigner as TimestampSigner
20 | from .url_safe import URLSafeSerializer as URLSafeSerializer
21 | from .url_safe import URLSafeTimedSerializer as URLSafeTimedSerializer
22 | 
23 | 
24 | def __getattr__(name: str) -> t.Any:
25 |     if name == "__version__":
26 |         import importlib.metadata
27 |         import warnings
28 | 
29 |         warnings.warn(
30 |             "The '__version__' attribute is deprecated and will be removed in"
31 |             " ItsDangerous 2.3. Use feature detection or"
32 |             " 'importlib.metadata.version(\"itsdangerous\")' instead.",
33 |             DeprecationWarning,
34 |             stacklevel=2,
35 |         )
36 |         return importlib.metadata.version("itsdangerous")
37 | 
38 |     raise AttributeError(name)
39 | 
```

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

```python
 1 | # This file is dual licensed under the terms of the Apache License, Version
 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
 3 | # for complete details.
 4 | 
 5 | 
 6 | class InfinityType:
 7 |     def __repr__(self) -> str:
 8 |         return "Infinity"
 9 | 
10 |     def __hash__(self) -> int:
11 |         return hash(repr(self))
12 | 
13 |     def __lt__(self, other: object) -> bool:
14 |         return False
15 | 
16 |     def __le__(self, other: object) -> bool:
17 |         return False
18 | 
19 |     def __eq__(self, other: object) -> bool:
20 |         return isinstance(other, self.__class__)
21 | 
22 |     def __gt__(self, other: object) -> bool:
23 |         return True
24 | 
25 |     def __ge__(self, other: object) -> bool:
26 |         return True
27 | 
28 |     def __neg__(self: object) -> "NegativeInfinityType":
29 |         return NegativeInfinity
30 | 
31 | 
32 | Infinity = InfinityType()
33 | 
34 | 
35 | class NegativeInfinityType:
36 |     def __repr__(self) -> str:
37 |         return "-Infinity"
38 | 
39 |     def __hash__(self) -> int:
40 |         return hash(repr(self))
41 | 
42 |     def __lt__(self, other: object) -> bool:
43 |         return True
44 | 
45 |     def __le__(self, other: object) -> bool:
46 |         return True
47 | 
48 |     def __eq__(self, other: object) -> bool:
49 |         return isinstance(other, self.__class__)
50 | 
51 |     def __gt__(self, other: object) -> bool:
52 |         return False
53 | 
54 |     def __ge__(self, other: object) -> bool:
55 |         return False
56 | 
57 |     def __neg__(self: object) -> InfinityType:
58 |         return Infinity
59 | 
60 | 
61 | NegativeInfinity = NegativeInfinityType()
62 | 
```

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

```python
 1 | #: list of lorem ipsum words used by the lipsum() helper function
 2 | LOREM_IPSUM_WORDS = """\
 3 | a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at
 4 | auctor augue bibendum blandit class commodo condimentum congue consectetuer
 5 | consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus
 6 | diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend
 7 | elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames
 8 | faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac
 9 | hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum
10 | justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem
11 | luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie
12 | mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non
13 | nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque
14 | penatibus per pharetra phasellus placerat platea porta porttitor posuere
15 | potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus
16 | ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit
17 | sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor
18 | tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices
19 | ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus
20 | viverra volutpat vulputate"""
21 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/__pip-runner__.py:
--------------------------------------------------------------------------------

```python
 1 | """Execute exactly this copy of pip, within a different environment.
 2 | 
 3 | This file is named as it is, to ensure that this module can't be imported via
 4 | an import statement.
 5 | """
 6 | 
 7 | # /!\ This version compatibility check section must be Python 2 compatible. /!\
 8 | 
 9 | import sys
10 | 
11 | # Copied from pyproject.toml
12 | PYTHON_REQUIRES = (3, 8)
13 | 
14 | 
15 | def version_str(version):  # type: ignore
16 |     return ".".join(str(v) for v in version)
17 | 
18 | 
19 | if sys.version_info[:2] < PYTHON_REQUIRES:
20 |     raise SystemExit(
21 |         "This version of pip does not support python {} (requires >={}).".format(
22 |             version_str(sys.version_info[:2]), version_str(PYTHON_REQUIRES)
23 |         )
24 |     )
25 | 
26 | # From here on, we can use Python 3 features, but the syntax must remain
27 | # Python 2 compatible.
28 | 
29 | import runpy  # noqa: E402
30 | from importlib.machinery import PathFinder  # noqa: E402
31 | from os.path import dirname  # noqa: E402
32 | 
33 | PIP_SOURCES_ROOT = dirname(dirname(__file__))
34 | 
35 | 
36 | class PipImportRedirectingFinder:
37 |     @classmethod
38 |     def find_spec(self, fullname, path=None, target=None):  # type: ignore
39 |         if fullname != "pip":
40 |             return None
41 | 
42 |         spec = PathFinder.find_spec(fullname, [PIP_SOURCES_ROOT], target)
43 |         assert spec, (PIP_SOURCES_ROOT, fullname)
44 |         return spec
45 | 
46 | 
47 | sys.meta_path.insert(0, PipImportRedirectingFinder())
48 | 
49 | assert __name__ == "__main__", "Cannot run __pip-runner__.py as a non-main module"
50 | runpy.run_module("pip", run_name="__main__", alter_sys=True)
51 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/flask-3.0.3.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2010 Pallets
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 | 1.  Redistributions of source code must retain the above copyright
 8 |     notice, this list of conditions and the following disclaimer.
 9 | 
10 | 2.  Redistributions in binary form must reproduce the above copyright
11 |     notice, this list of conditions and the following disclaimer in the
12 |     documentation and/or other materials provided with the distribution.
13 | 
14 | 3.  Neither the name of the copyright holder nor the names of its
15 |     contributors may be used to endorse or promote products derived from
16 |     this software without specific prior written permission.
17 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/itsdangerous-2.2.0.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2011 Pallets
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 | 1.  Redistributions of source code must retain the above copyright
 8 |     notice, this list of conditions and the following disclaimer.
 9 | 
10 | 2.  Redistributions in binary form must reproduce the above copyright
11 |     notice, this list of conditions and the following disclaimer in the
12 |     documentation and/or other materials provided with the distribution.
13 | 
14 | 3.  Neither the name of the copyright holder nor the names of its
15 |     contributors may be used to endorse or promote products derived from
16 |     this software without specific prior written permission.
17 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/jinja2-3.1.4.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2007 Pallets
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 | 1.  Redistributions of source code must retain the above copyright
 8 |     notice, this list of conditions and the following disclaimer.
 9 | 
10 | 2.  Redistributions in binary form must reproduce the above copyright
11 |     notice, this list of conditions and the following disclaimer in the
12 |     documentation and/or other materials provided with the distribution.
13 | 
14 | 3.  Neither the name of the copyright holder nor the names of its
15 |     contributors may be used to endorse or promote products derived from
16 |     this software without specific prior written permission.
17 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/MarkupSafe-3.0.1.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2010 Pallets
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 | 1.  Redistributions of source code must retain the above copyright
 8 |     notice, this list of conditions and the following disclaimer.
 9 | 
10 | 2.  Redistributions in binary form must reproduce the above copyright
11 |     notice, this list of conditions and the following disclaimer in the
12 |     documentation and/or other materials provided with the distribution.
13 | 
14 | 3.  Neither the name of the copyright holder nor the names of its
15 |     contributors may be used to endorse or promote products derived from
16 |     this software without specific prior written permission.
17 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/werkzeug-3.0.4.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright 2007 Pallets
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 | 1.  Redistributions of source code must retain the above copyright
 8 |     notice, this list of conditions and the following disclaimer.
 9 | 
10 | 2.  Redistributions in binary form must reproduce the above copyright
11 |     notice, this list of conditions and the following disclaimer in the
12 |     documentation and/or other materials provided with the distribution.
13 | 
14 | 3.  Neither the name of the copyright holder nor the names of its
15 |     contributors may be used to endorse or promote products derived from
16 |     this software without specific prior written permission.
17 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | 
```

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

```python
 1 | """
 2 | requests.compat
 3 | ~~~~~~~~~~~~~~~
 4 | 
 5 | This module previously handled import compatibility issues
 6 | between Python 2 and Python 3. It remains for backwards
 7 | compatibility until the next major version.
 8 | """
 9 | 
10 | import sys
11 | 
12 | # -------------------
13 | # Character Detection
14 | # -------------------
15 | 
16 | 
17 | def _resolve_char_detection():
18 |     """Find supported character detection libraries."""
19 |     chardet = None
20 |     return chardet
21 | 
22 | 
23 | chardet = _resolve_char_detection()
24 | 
25 | # -------
26 | # Pythons
27 | # -------
28 | 
29 | # Syntax sugar.
30 | _ver = sys.version_info
31 | 
32 | #: Python 2.x?
33 | is_py2 = _ver[0] == 2
34 | 
35 | #: Python 3.x?
36 | is_py3 = _ver[0] == 3
37 | 
38 | # Note: We've patched out simplejson support in pip because it prevents
39 | #       upgrading simplejson on Windows.
40 | import json
41 | from json import JSONDecodeError
42 | 
43 | # Keep OrderedDict for backwards compatibility.
44 | from collections import OrderedDict
45 | from collections.abc import Callable, Mapping, MutableMapping
46 | from http import cookiejar as cookielib
47 | from http.cookies import Morsel
48 | from io import StringIO
49 | 
50 | # --------------
51 | # Legacy Imports
52 | # --------------
53 | from urllib.parse import (
54 |     quote,
55 |     quote_plus,
56 |     unquote,
57 |     unquote_plus,
58 |     urldefrag,
59 |     urlencode,
60 |     urljoin,
61 |     urlparse,
62 |     urlsplit,
63 |     urlunparse,
64 | )
65 | from urllib.request import (
66 |     getproxies,
67 |     getproxies_environment,
68 |     parse_http_list,
69 |     proxy_bypass,
70 |     proxy_bypass_environment,
71 | )
72 | 
73 | builtin_str = str
74 | str = str
75 | bytes = bytes
76 | basestring = (str, bytes)
77 | numeric_types = (int, float)
78 | integer_types = (int,)
79 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml-5.3.0.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright (c) 2004 Infrae. All rights reserved.
 2 | 
 3 | Redistribution and use in source and binary forms, with or without
 4 | modification, are permitted provided that the following conditions are
 5 | met:
 6 | 
 7 |   1. Redistributions of source code must retain the above copyright
 8 |      notice, this list of conditions and the following disclaimer.
 9 |    
10 |   2. Redistributions in binary form must reproduce the above copyright
11 |      notice, this list of conditions and the following disclaimer in
12 |      the documentation and/or other materials provided with the
13 |      distribution.
14 | 
15 |   3. Neither the name of Infrae nor the names of its contributors may
16 |      be used to endorse or promote products derived from this software
17 |      without specific prior written permission.
18 | 
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INFRAE OR
23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | 
```

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

```python
 1 | """
 2 | requests._internal_utils
 3 | ~~~~~~~~~~~~~~
 4 | 
 5 | Provides utility functions that are consumed internally by Requests
 6 | which depend on extremely few external helpers (such as compat)
 7 | """
 8 | import re
 9 | 
10 | from .compat import builtin_str
11 | 
12 | _VALID_HEADER_NAME_RE_BYTE = re.compile(rb"^[^:\s][^:\r\n]*$")
13 | _VALID_HEADER_NAME_RE_STR = re.compile(r"^[^:\s][^:\r\n]*$")
14 | _VALID_HEADER_VALUE_RE_BYTE = re.compile(rb"^\S[^\r\n]*$|^$")
15 | _VALID_HEADER_VALUE_RE_STR = re.compile(r"^\S[^\r\n]*$|^$")
16 | 
17 | _HEADER_VALIDATORS_STR = (_VALID_HEADER_NAME_RE_STR, _VALID_HEADER_VALUE_RE_STR)
18 | _HEADER_VALIDATORS_BYTE = (_VALID_HEADER_NAME_RE_BYTE, _VALID_HEADER_VALUE_RE_BYTE)
19 | HEADER_VALIDATORS = {
20 |     bytes: _HEADER_VALIDATORS_BYTE,
21 |     str: _HEADER_VALIDATORS_STR,
22 | }
23 | 
24 | 
25 | def to_native_string(string, encoding="ascii"):
26 |     """Given a string object, regardless of type, returns a representation of
27 |     that string in the native string type, encoding and decoding where
28 |     necessary. This assumes ASCII unless told otherwise.
29 |     """
30 |     if isinstance(string, builtin_str):
31 |         out = string
32 |     else:
33 |         out = string.decode(encoding)
34 | 
35 |     return out
36 | 
37 | 
38 | def unicode_is_ascii(u_string):
39 |     """Determine if unicode string only contains ASCII characters.
40 | 
41 |     :param str u_string: unicode string to check. Must be unicode
42 |         and not Python 2 `str`.
43 |     :rtype: bool
44 |     """
45 |     assert isinstance(u_string, str)
46 |     try:
47 |         u_string.encode("ascii")
48 |         return True
49 |     except UnicodeEncodeError:
50 |         return False
51 | 
```

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

```python
 1 | """
 2 | requests._internal_utils
 3 | ~~~~~~~~~~~~~~
 4 | 
 5 | Provides utility functions that are consumed internally by Requests
 6 | which depend on extremely few external helpers (such as compat)
 7 | """
 8 | import re
 9 | 
10 | from .compat import builtin_str
11 | 
12 | _VALID_HEADER_NAME_RE_BYTE = re.compile(rb"^[^:\s][^:\r\n]*$")
13 | _VALID_HEADER_NAME_RE_STR = re.compile(r"^[^:\s][^:\r\n]*$")
14 | _VALID_HEADER_VALUE_RE_BYTE = re.compile(rb"^\S[^\r\n]*$|^$")
15 | _VALID_HEADER_VALUE_RE_STR = re.compile(r"^\S[^\r\n]*$|^$")
16 | 
17 | _HEADER_VALIDATORS_STR = (_VALID_HEADER_NAME_RE_STR, _VALID_HEADER_VALUE_RE_STR)
18 | _HEADER_VALIDATORS_BYTE = (_VALID_HEADER_NAME_RE_BYTE, _VALID_HEADER_VALUE_RE_BYTE)
19 | HEADER_VALIDATORS = {
20 |     bytes: _HEADER_VALIDATORS_BYTE,
21 |     str: _HEADER_VALIDATORS_STR,
22 | }
23 | 
24 | 
25 | def to_native_string(string, encoding="ascii"):
26 |     """Given a string object, regardless of type, returns a representation of
27 |     that string in the native string type, encoding and decoding where
28 |     necessary. This assumes ASCII unless told otherwise.
29 |     """
30 |     if isinstance(string, builtin_str):
31 |         out = string
32 |     else:
33 |         out = string.decode(encoding)
34 | 
35 |     return out
36 | 
37 | 
38 | def unicode_is_ascii(u_string):
39 |     """Determine if unicode string only contains ASCII characters.
40 | 
41 |     :param str u_string: unicode string to check. Must be unicode
42 |         and not Python 2 `str`.
43 |     :rtype: bool
44 |     """
45 |     assert isinstance(u_string, str)
46 |     try:
47 |         u_string.encode("ascii")
48 |         return True
49 |     except UnicodeEncodeError:
50 |         return False
51 | 
```

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

```python
 1 | """Main entry point."""
 2 | 
 3 | from __future__ import annotations
 4 | 
 5 | from pip._vendor.platformdirs import PlatformDirs, __version__
 6 | 
 7 | PROPS = (
 8 |     "user_data_dir",
 9 |     "user_config_dir",
10 |     "user_cache_dir",
11 |     "user_state_dir",
12 |     "user_log_dir",
13 |     "user_documents_dir",
14 |     "user_downloads_dir",
15 |     "user_pictures_dir",
16 |     "user_videos_dir",
17 |     "user_music_dir",
18 |     "user_runtime_dir",
19 |     "site_data_dir",
20 |     "site_config_dir",
21 |     "site_cache_dir",
22 |     "site_runtime_dir",
23 | )
24 | 
25 | 
26 | def main() -> None:
27 |     """Run the main entry point."""
28 |     app_name = "MyApp"
29 |     app_author = "MyCompany"
30 | 
31 |     print(f"-- platformdirs {__version__} --")  # noqa: T201
32 | 
33 |     print("-- app dirs (with optional 'version')")  # noqa: T201
34 |     dirs = PlatformDirs(app_name, app_author, version="1.0")
35 |     for prop in PROPS:
36 |         print(f"{prop}: {getattr(dirs, prop)}")  # noqa: T201
37 | 
38 |     print("\n-- app dirs (without optional 'version')")  # noqa: T201
39 |     dirs = PlatformDirs(app_name, app_author)
40 |     for prop in PROPS:
41 |         print(f"{prop}: {getattr(dirs, prop)}")  # noqa: T201
42 | 
43 |     print("\n-- app dirs (without optional 'appauthor')")  # noqa: T201
44 |     dirs = PlatformDirs(app_name)
45 |     for prop in PROPS:
46 |         print(f"{prop}: {getattr(dirs, prop)}")  # noqa: T201
47 | 
48 |     print("\n-- app dirs (with disabled 'appauthor')")  # noqa: T201
49 |     dirs = PlatformDirs(app_name, appauthor=False)
50 |     for prop in PROPS:
51 |         print(f"{prop}: {getattr(dirs, prop)}")  # noqa: T201
52 | 
53 | 
54 | if __name__ == "__main__":
55 |     main()
56 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/extlibs/libcharset.h:
--------------------------------------------------------------------------------

```
 1 | /* Copyright (C) 2003 Free Software Foundation, Inc.
 2 |    This file is part of the GNU CHARSET Library.
 3 | 
 4 |    The GNU CHARSET Library is free software; you can redistribute it and/or
 5 |    modify it under the terms of the GNU Lesser General Public License as
 6 |    published by the Free Software Foundation; either version 2 of the
 7 |    License, or (at your option) any later version.
 8 | 
 9 |    The GNU CHARSET Library is distributed in the hope that it will be useful,
10 |    but WITHOUT ANY WARRANTY; without even the implied warranty of
11 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 |    Lesser General Public License for more details.
13 | 
14 |    You should have received a copy of the GNU Lesser General Public License
15 |    along with the GNU CHARSET Library; see the file COPYING.LIB.  If not,
16 |    see <https://www.gnu.org/licenses/>.  */
17 | 
18 | #ifndef _LIBCHARSET_H
19 | #define _LIBCHARSET_H
20 | 
21 | #include <localcharset.h>
22 | 
23 | 
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 | 
28 | 
29 | /* Support for relocatable packages.  */
30 | 
31 | /* Sets the original and the current installation prefix of the package.
32 |    Relocation simply replaces a pathname starting with the original prefix
33 |    by the corresponding pathname with the current prefix instead.  Both
34 |    prefixes should be directory names without trailing slash (i.e. use ""
35 |    instead of "/").  */
36 | extern void libcharset_set_relocation_prefix (const char *orig_prefix,
37 |                                               const char *curr_prefix);
38 | 
39 | 
40 | #ifdef __cplusplus
41 | }
42 | #endif
43 | 
44 | 
45 | #endif /* _LIBCHARSET_H */
46 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml-5.3.0.dist-info/LICENSES.txt:
--------------------------------------------------------------------------------

```
 1 | lxml is copyright Infrae and distributed under the BSD license (see
 2 | doc/licenses/BSD.txt), with the following exceptions:
 3 | 
 4 | Some code, such a selftest.py, selftest2.py and
 5 | src/lxml/_elementpath.py are derived from ElementTree and
 6 | cElementTree. See doc/licenses/elementtree.txt for the license text.
 7 | 
 8 | lxml.cssselect and lxml.html are copyright Ian Bicking and distributed
 9 | under the BSD license (see doc/licenses/BSD.txt).
10 | 
11 | test.py, the test-runner script, is GPL and copyright Shuttleworth
12 | Foundation. See doc/licenses/GPL.txt. It is believed the unchanged
13 | inclusion of test.py to run the unit test suite falls under the
14 | "aggregation" clause of the GPL and thus does not affect the license
15 | of the rest of the package.
16 | 
17 | The isoschematron implementation uses several XSL and RelaxNG resources:
18 |  * The (XML syntax) RelaxNG schema for schematron, copyright International
19 |    Organization for Standardization (see 
20 |    src/lxml/isoschematron/resources/rng/iso-schematron.rng for the license
21 |    text)
22 |  * The skeleton iso-schematron-xlt1 pure-xslt schematron implementation
23 |    xsl stylesheets, copyright Rick Jelliffe and Academia Sinica Computing
24 |    Center, Taiwan (see the xsl files here for the license text: 
25 |    src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/)
26 |  * The xsd/rng schema schematron extraction xsl transformations are unlicensed
27 |    and copyright the respective authors as noted (see 
28 |    src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl and
29 |    src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl)
30 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/useragent-0.1.1.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------

```
 1 | Copyright (c) 2012, Mirus Research
 2 | 
 3 | All rights reserved.
 4 | 
 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 6 | 
 7 |   Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 8 | 
 9 |   Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
10 | 
11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12 | 
13 | ---
14 | The data files contained in resources/* are mostly collected from the original ua-parser project (found at https://github.com/tobie/ua-parser) and are believed to be Copyright 2009 Google Inc. and available under the Apache License, Version 2.0.
15 | 
```

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

```python
 1 | from __future__ import annotations
 2 | 
 3 | import typing as t
 4 | 
 5 | from .base import ANY
 6 | from .base import default_namespace
 7 | from .base import NamedSignal
 8 | from .base import Namespace
 9 | from .base import Signal
10 | from .base import signal
11 | 
12 | __all__ = [
13 |     "ANY",
14 |     "default_namespace",
15 |     "NamedSignal",
16 |     "Namespace",
17 |     "Signal",
18 |     "signal",
19 | ]
20 | 
21 | 
22 | def __getattr__(name: str) -> t.Any:
23 |     import warnings
24 | 
25 |     if name == "__version__":
26 |         import importlib.metadata
27 | 
28 |         warnings.warn(
29 |             "The '__version__' attribute is deprecated and will be removed in"
30 |             " Blinker 1.9.0. Use feature detection or"
31 |             " 'importlib.metadata.version(\"blinker\")' instead.",
32 |             DeprecationWarning,
33 |             stacklevel=2,
34 |         )
35 |         return importlib.metadata.version("blinker")
36 | 
37 |     if name == "receiver_connected":
38 |         from .base import _receiver_connected
39 | 
40 |         warnings.warn(
41 |             "The global 'receiver_connected' signal is deprecated and will be"
42 |             " removed in Blinker 1.9. Use 'Signal.receiver_connected' and"
43 |             " 'Signal.receiver_disconnected' instead.",
44 |             DeprecationWarning,
45 |             stacklevel=2,
46 |         )
47 |         return _receiver_connected
48 | 
49 |     if name == "WeakNamespace":
50 |         from .base import _WeakNamespace
51 | 
52 |         warnings.warn(
53 |             "'WeakNamespace' is deprecated and will be removed in Blinker 1.9."
54 |             " Use 'Namespace' instead.",
55 |             DeprecationWarning,
56 |             stacklevel=2,
57 |         )
58 |         return _WeakNamespace
59 | 
60 |     raise AttributeError(name)
61 | 
```

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

```python
 1 | from typing import Optional, TYPE_CHECKING
 2 | 
 3 | from .segment import Segment
 4 | from .style import StyleType
 5 | from ._loop import loop_last
 6 | 
 7 | 
 8 | if TYPE_CHECKING:
 9 |     from .console import (
10 |         Console,
11 |         ConsoleOptions,
12 |         RenderResult,
13 |         RenderableType,
14 |         Group,
15 |     )
16 | 
17 | 
18 | class Screen:
19 |     """A renderable that fills the terminal screen and crops excess.
20 | 
21 |     Args:
22 |         renderable (RenderableType): Child renderable.
23 |         style (StyleType, optional): Optional background style. Defaults to None.
24 |     """
25 | 
26 |     renderable: "RenderableType"
27 | 
28 |     def __init__(
29 |         self,
30 |         *renderables: "RenderableType",
31 |         style: Optional[StyleType] = None,
32 |         application_mode: bool = False,
33 |     ) -> None:
34 |         from pip._vendor.rich.console import Group
35 | 
36 |         self.renderable = Group(*renderables)
37 |         self.style = style
38 |         self.application_mode = application_mode
39 | 
40 |     def __rich_console__(
41 |         self, console: "Console", options: "ConsoleOptions"
42 |     ) -> "RenderResult":
43 |         width, height = options.size
44 |         style = console.get_style(self.style) if self.style else None
45 |         render_options = options.update(width=width, height=height)
46 |         lines = console.render_lines(
47 |             self.renderable or "", render_options, style=style, pad=True
48 |         )
49 |         lines = Segment.set_shape(lines, width, height, style=style)
50 |         new_line = Segment("\n\r") if self.application_mode else Segment.line()
51 |         for last, line in loop_last(lines):
52 |             yield from line
53 |             if not last:
54 |                 yield new_line
55 | 
```

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

```python
 1 | import os
 2 | import string
 3 | import urllib.parse
 4 | import urllib.request
 5 | 
 6 | from .compat import WINDOWS
 7 | 
 8 | 
 9 | def path_to_url(path: str) -> str:
10 |     """
11 |     Convert a path to a file: URL.  The path will be made absolute and have
12 |     quoted path parts.
13 |     """
14 |     path = os.path.normpath(os.path.abspath(path))
15 |     url = urllib.parse.urljoin("file:", urllib.request.pathname2url(path))
16 |     return url
17 | 
18 | 
19 | def url_to_path(url: str) -> str:
20 |     """
21 |     Convert a file: URL to a path.
22 |     """
23 |     assert url.startswith(
24 |         "file:"
25 |     ), f"You can only turn file: urls into filenames (not {url!r})"
26 | 
27 |     _, netloc, path, _, _ = urllib.parse.urlsplit(url)
28 | 
29 |     if not netloc or netloc == "localhost":
30 |         # According to RFC 8089, same as empty authority.
31 |         netloc = ""
32 |     elif WINDOWS:
33 |         # If we have a UNC path, prepend UNC share notation.
34 |         netloc = "\\\\" + netloc
35 |     else:
36 |         raise ValueError(
37 |             f"non-local file URIs are not supported on this platform: {url!r}"
38 |         )
39 | 
40 |     path = urllib.request.url2pathname(netloc + path)
41 | 
42 |     # On Windows, urlsplit parses the path as something like "/C:/Users/foo".
43 |     # This creates issues for path-related functions like io.open(), so we try
44 |     # to detect and strip the leading slash.
45 |     if (
46 |         WINDOWS
47 |         and not netloc  # Not UNC.
48 |         and len(path) >= 3
49 |         and path[0] == "/"  # Leading slash to strip.
50 |         and path[1] in string.ascii_letters  # Drive letter.
51 |         and path[2:4] in (":", ":/")  # Colon + end of string, or colon + absolute path.
52 |     ):
53 |         path = path[1:]
54 | 
55 |     return path
56 | 
```

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

```python
 1 | class BaseReporter(object):
 2 |     """Delegate class to provider progress reporting for the resolver."""
 3 | 
 4 |     def starting(self):
 5 |         """Called before the resolution actually starts."""
 6 | 
 7 |     def starting_round(self, index):
 8 |         """Called before each round of resolution starts.
 9 | 
10 |         The index is zero-based.
11 |         """
12 | 
13 |     def ending_round(self, index, state):
14 |         """Called before each round of resolution ends.
15 | 
16 |         This is NOT called if the resolution ends at this round. Use `ending`
17 |         if you want to report finalization. The index is zero-based.
18 |         """
19 | 
20 |     def ending(self, state):
21 |         """Called before the resolution ends successfully."""
22 | 
23 |     def adding_requirement(self, requirement, parent):
24 |         """Called when adding a new requirement into the resolve criteria.
25 | 
26 |         :param requirement: The additional requirement to be applied to filter
27 |             the available candidaites.
28 |         :param parent: The candidate that requires ``requirement`` as a
29 |             dependency, or None if ``requirement`` is one of the root
30 |             requirements passed in from ``Resolver.resolve()``.
31 |         """
32 | 
33 |     def resolving_conflicts(self, causes):
34 |         """Called when starting to attempt requirement conflict resolution.
35 | 
36 |         :param causes: The information on the collision that caused the backtracking.
37 |         """
38 | 
39 |     def rejecting_candidate(self, criterion, candidate):
40 |         """Called when rejecting a candidate during backtracking."""
41 | 
42 |     def pinning(self, candidate):
43 |         """Called when adding a candidate to the potential solution."""
44 | 
```

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

```python
 1 | from .ssl_ import create_urllib3_context, resolve_cert_reqs, resolve_ssl_version
 2 | 
 3 | 
 4 | def connection_requires_http_tunnel(
 5 |     proxy_url=None, proxy_config=None, destination_scheme=None
 6 | ):
 7 |     """
 8 |     Returns True if the connection requires an HTTP CONNECT through the proxy.
 9 | 
10 |     :param URL proxy_url:
11 |         URL of the proxy.
12 |     :param ProxyConfig proxy_config:
13 |         Proxy configuration from poolmanager.py
14 |     :param str destination_scheme:
15 |         The scheme of the destination. (i.e https, http, etc)
16 |     """
17 |     # If we're not using a proxy, no way to use a tunnel.
18 |     if proxy_url is None:
19 |         return False
20 | 
21 |     # HTTP destinations never require tunneling, we always forward.
22 |     if destination_scheme == "http":
23 |         return False
24 | 
25 |     # Support for forwarding with HTTPS proxies and HTTPS destinations.
26 |     if (
27 |         proxy_url.scheme == "https"
28 |         and proxy_config
29 |         and proxy_config.use_forwarding_for_https
30 |     ):
31 |         return False
32 | 
33 |     # Otherwise always use a tunnel.
34 |     return True
35 | 
36 | 
37 | def create_proxy_ssl_context(
38 |     ssl_version, cert_reqs, ca_certs=None, ca_cert_dir=None, ca_cert_data=None
39 | ):
40 |     """
41 |     Generates a default proxy ssl context if one hasn't been provided by the
42 |     user.
43 |     """
44 |     ssl_context = create_urllib3_context(
45 |         ssl_version=resolve_ssl_version(ssl_version),
46 |         cert_reqs=resolve_cert_reqs(cert_reqs),
47 |     )
48 | 
49 |     if (
50 |         not ca_certs
51 |         and not ca_cert_dir
52 |         and not ca_cert_data
53 |         and hasattr(ssl_context, "load_default_certs")
54 |     ):
55 |         ssl_context.load_default_certs()
56 | 
57 |     return ssl_context
58 | 
```

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

```
 1 | /*
 2 |  * Summary: interface for the non-standard features
 3 |  * Description: implement some extension outside the XSLT namespace
 4 |  *              but not EXSLT with is in a different library.
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Daniel Veillard
 9 |  */
10 | 
11 | #ifndef __XML_XSLT_EXTRA_H__
12 | #define __XML_XSLT_EXTRA_H__
13 | 
14 | #include <libxml/xpath.h>
15 | #include "xsltexports.h"
16 | #include "xsltInternals.h"
17 | 
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 | 
22 | /**
23 |  * XSLT_LIBXSLT_NAMESPACE:
24 |  *
25 |  * This is the libxslt namespace for specific extensions.
26 |  */
27 | #define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace")
28 | 
29 | /**
30 |  * XSLT_SAXON_NAMESPACE:
31 |  *
32 |  * This is Michael Kay's Saxon processor namespace for extensions.
33 |  */
34 | #define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon")
35 | 
36 | /**
37 |  * XSLT_XT_NAMESPACE:
38 |  *
39 |  * This is James Clark's XT processor namespace for extensions.
40 |  */
41 | #define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt")
42 | 
43 | /**
44 |  * XSLT_XALAN_NAMESPACE:
45 |  *
46 |  * This is the Apache project XALAN processor namespace for extensions.
47 |  */
48 | #define XSLT_XALAN_NAMESPACE ((xmlChar *)	\
49 | 	                        "org.apache.xalan.xslt.extensions.Redirect")
50 | 
51 | 
52 | XSLTPUBFUN void XSLTCALL
53 | 		xsltFunctionNodeSet	(xmlXPathParserContextPtr ctxt,
54 | 					 int nargs);
55 | XSLTPUBFUN void XSLTCALL
56 | 		xsltDebug		(xsltTransformContextPtr ctxt,
57 | 					 xmlNodePtr node,
58 | 					 xmlNodePtr inst,
59 | 					 xsltElemPreCompPtr comp);
60 | 
61 | 
62 | XSLTPUBFUN void XSLTCALL
63 | 		xsltRegisterExtras	(xsltTransformContextPtr ctxt);
64 | XSLTPUBFUN void XSLTCALL
65 | 		xsltRegisterAllExtras	(void);
66 | 
67 | #ifdef __cplusplus
68 | }
69 | #endif
70 | 
71 | #endif /* __XML_XSLT_EXTRA_H__ */
72 | 
73 | 
```

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

```python
 1 | """The optimizer tries to constant fold expressions and modify the AST
 2 | in place so that it should be faster to evaluate.
 3 | 
 4 | Because the AST does not contain all the scoping information and the
 5 | compiler has to find that out, we cannot do all the optimizations we
 6 | want. For example, loop unrolling doesn't work because unrolled loops
 7 | would have a different scope. The solution would be a second syntax tree
 8 | that stored the scoping rules.
 9 | """
10 | 
11 | import typing as t
12 | 
13 | from . import nodes
14 | from .visitor import NodeTransformer
15 | 
16 | if t.TYPE_CHECKING:
17 |     from .environment import Environment
18 | 
19 | 
20 | def optimize(node: nodes.Node, environment: "Environment") -> nodes.Node:
21 |     """The context hint can be used to perform an static optimization
22 |     based on the context given."""
23 |     optimizer = Optimizer(environment)
24 |     return t.cast(nodes.Node, optimizer.visit(node))
25 | 
26 | 
27 | class Optimizer(NodeTransformer):
28 |     def __init__(self, environment: "t.Optional[Environment]") -> None:
29 |         self.environment = environment
30 | 
31 |     def generic_visit(
32 |         self, node: nodes.Node, *args: t.Any, **kwargs: t.Any
33 |     ) -> nodes.Node:
34 |         node = super().generic_visit(node, *args, **kwargs)
35 | 
36 |         # Do constant folding. Some other nodes besides Expr have
37 |         # as_const, but folding them causes errors later on.
38 |         if isinstance(node, nodes.Expr):
39 |             try:
40 |                 return nodes.Const.from_untrusted(
41 |                     node.as_const(args[0] if args else None),
42 |                     lineno=node.lineno,
43 |                     environment=self.environment,
44 |                 )
45 |             except nodes.Impossible:
46 |                 pass
47 | 
48 |         return node
49 | 
```

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

```python
 1 | """
 2 | This code wraps the vendored appdirs module to so the return values are
 3 | compatible for the current pip code base.
 4 | 
 5 | The intention is to rewrite current usages gradually, keeping the tests pass,
 6 | and eventually drop this after all usages are changed.
 7 | """
 8 | 
 9 | import os
10 | import sys
11 | from typing import List
12 | 
13 | from pip._vendor import platformdirs as _appdirs
14 | 
15 | 
16 | def user_cache_dir(appname: str) -> str:
17 |     return _appdirs.user_cache_dir(appname, appauthor=False)
18 | 
19 | 
20 | def _macos_user_config_dir(appname: str, roaming: bool = True) -> str:
21 |     # Use ~/Application Support/pip, if the directory exists.
22 |     path = _appdirs.user_data_dir(appname, appauthor=False, roaming=roaming)
23 |     if os.path.isdir(path):
24 |         return path
25 | 
26 |     # Use a Linux-like ~/.config/pip, by default.
27 |     linux_like_path = "~/.config/"
28 |     if appname:
29 |         linux_like_path = os.path.join(linux_like_path, appname)
30 | 
31 |     return os.path.expanduser(linux_like_path)
32 | 
33 | 
34 | def user_config_dir(appname: str, roaming: bool = True) -> str:
35 |     if sys.platform == "darwin":
36 |         return _macos_user_config_dir(appname, roaming)
37 | 
38 |     return _appdirs.user_config_dir(appname, appauthor=False, roaming=roaming)
39 | 
40 | 
41 | # for the discussion regarding site_config_dir locations
42 | # see <https://github.com/pypa/pip/issues/1733>
43 | def site_config_dirs(appname: str) -> List[str]:
44 |     if sys.platform == "darwin":
45 |         return [_appdirs.site_data_dir(appname, appauthor=False, multipath=True)]
46 | 
47 |     dirval = _appdirs.site_config_dir(appname, appauthor=False, multipath=True)
48 |     if sys.platform == "win32":
49 |         return [dirval]
50 | 
51 |     # Unix-y system. Look in /etc as well.
52 |     return dirval.split(os.pathsep) + ["/etc"]
53 | 
```

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

```
 1 | /*
 2 |  * Summary: interface for the XSLT namespace handling
 3 |  * Description: set of function easing the processing and generation
 4 |  *              of namespace nodes in XSLT.
 5 |  *
 6 |  * Copy: See Copyright for the status of this software.
 7 |  *
 8 |  * Author: Daniel Veillard
 9 |  */
10 | 
11 | #ifndef __XML_XSLT_NAMESPACES_H__
12 | #define __XML_XSLT_NAMESPACES_H__
13 | 
14 | #include <libxml/tree.h>
15 | #include "xsltexports.h"
16 | 
17 | #ifdef __cplusplus
18 | extern "C" {
19 | #endif
20 | 
21 | /*
22 |  * Used within nsAliases hashtable when the default namespace is required
23 |  * but it's not been explicitly defined
24 |  */
25 | /**
26 |  * UNDEFINED_DEFAULT_NS:
27 |  *
28 |  * Special value for undefined namespace, internal
29 |  */
30 | #define	UNDEFINED_DEFAULT_NS	(const xmlChar *) -1L
31 | 
32 | XSLTPUBFUN void XSLTCALL
33 | 		xsltNamespaceAlias	(xsltStylesheetPtr style,
34 | 					 xmlNodePtr node);
35 | XSLTPUBFUN xmlNsPtr XSLTCALL
36 | 		xsltGetNamespace	(xsltTransformContextPtr ctxt,
37 | 					 xmlNodePtr cur,
38 | 					 xmlNsPtr ns,
39 | 					 xmlNodePtr out);
40 | XSLTPUBFUN xmlNsPtr XSLTCALL
41 | 		xsltGetPlainNamespace	(xsltTransformContextPtr ctxt,
42 | 					 xmlNodePtr cur,
43 | 					 xmlNsPtr ns,
44 | 					 xmlNodePtr out);
45 | XSLTPUBFUN xmlNsPtr XSLTCALL
46 | 		xsltGetSpecialNamespace	(xsltTransformContextPtr ctxt,
47 | 					 xmlNodePtr cur,
48 | 					 const xmlChar *URI,
49 | 					 const xmlChar *prefix,
50 | 					 xmlNodePtr out);
51 | XSLTPUBFUN xmlNsPtr XSLTCALL
52 | 		xsltCopyNamespace	(xsltTransformContextPtr ctxt,
53 | 					 xmlNodePtr elem,
54 | 					 xmlNsPtr ns);
55 | XSLTPUBFUN xmlNsPtr XSLTCALL
56 | 		xsltCopyNamespaceList	(xsltTransformContextPtr ctxt,
57 | 					 xmlNodePtr node,
58 | 					 xmlNsPtr cur);
59 | XSLTPUBFUN void XSLTCALL
60 | 		xsltFreeNamespaceAliasHashes
61 | 					(xsltStylesheetPtr style);
62 | 
63 | #ifdef __cplusplus
64 | }
65 | #endif
66 | 
67 | #endif /* __XML_XSLT_NAMESPACES_H__ */
68 | 
69 | 
```

--------------------------------------------------------------------------------
/mcp_server.py:
--------------------------------------------------------------------------------

```python
 1 | import os
 2 | import json
 3 | import time
 4 | from http.server import BaseHTTPRequestHandler, HTTPServer
 5 | 
 6 | class MCPRequestHandler(BaseHTTPRequestHandler):
 7 |     def do_GET(self):
 8 |         if self.path.startswith("/search?query="):
 9 |             query = self.path.split("query=")[-1]
10 |             # Изменено: начинаем поиск с текущего рабочего каталога, а не с корневого
11 |             response = find_files(os.getcwd(), query)
12 | 
13 |             # Записываем JSON-ответ в файл
14 |             with open("search_results.json", "w", encoding="utf-8") as json_file:
15 |                 json.dump(response, json_file, indent=2, ensure_ascii=False)
16 | 
17 |             self.send_response(200)
18 |             self.send_header("Content-Type", "application/json")
19 |             self.end_headers()
20 |             self.wfile.write(json.dumps(response, indent=2).encode("utf-8"))
21 |         else:
22 |             self.send_response(404)
23 |             self.end_headers()
24 | 
25 | def find_files(root_dir, query):
26 |     matches = []
27 |     for root, dirs, files in os.walk(root_dir):
28 |         for file in files:
29 |             if query in file:
30 |                 file_path = os.path.join(root, file)
31 |                 file_stat = os.stat(file_path)
32 |                 matches.append({
33 |                     "name": file,
34 |                     "path": file_path,
35 |                     "size": file_stat.st_size,
36 |                     "created": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(file_stat.st_ctime))
37 |                 })
38 |     return matches
39 | 
40 | def run_server():
41 |     server_address = ("", 8080)
42 |     httpd = HTTPServer(server_address, MCPRequestHandler)
43 |     print("MCP Server running on port 8080")
44 |     httpd.serve_forever()
45 | 
46 | if __name__ == "__main__":
47 |     run_server()
48 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/blinker/_utilities.py:
--------------------------------------------------------------------------------

```python
 1 | from __future__ import annotations
 2 | 
 3 | import collections.abc as c
 4 | import inspect
 5 | import typing as t
 6 | from weakref import ref
 7 | from weakref import WeakMethod
 8 | 
 9 | T = t.TypeVar("T")
10 | 
11 | 
12 | class Symbol:
13 |     """A constant symbol, nicer than ``object()``. Repeated calls return the
14 |     same instance.
15 | 
16 |     >>> Symbol('foo') is Symbol('foo')
17 |     True
18 |     >>> Symbol('foo')
19 |     foo
20 |     """
21 | 
22 |     symbols: t.ClassVar[dict[str, Symbol]] = {}
23 | 
24 |     def __new__(cls, name: str) -> Symbol:
25 |         if name in cls.symbols:
26 |             return cls.symbols[name]
27 | 
28 |         obj = super().__new__(cls)
29 |         cls.symbols[name] = obj
30 |         return obj
31 | 
32 |     def __init__(self, name: str) -> None:
33 |         self.name = name
34 | 
35 |     def __repr__(self) -> str:
36 |         return self.name
37 | 
38 |     def __getnewargs__(self) -> tuple[t.Any, ...]:
39 |         return (self.name,)
40 | 
41 | 
42 | def make_id(obj: object) -> c.Hashable:
43 |     """Get a stable identifier for a receiver or sender, to be used as a dict
44 |     key or in a set.
45 |     """
46 |     if inspect.ismethod(obj):
47 |         # The id of a bound method is not stable, but the id of the unbound
48 |         # function and instance are.
49 |         return id(obj.__func__), id(obj.__self__)
50 | 
51 |     if isinstance(obj, (str, int)):
52 |         # Instances with the same value always compare equal and have the same
53 |         # hash, even if the id may change.
54 |         return obj
55 | 
56 |     # Assume other types are not hashable but will always be the same instance.
57 |     return id(obj)
58 | 
59 | 
60 | def make_ref(obj: T, callback: c.Callable[[ref[T]], None] | None = None) -> ref[T]:
61 |     if inspect.ismethod(obj):
62 |         return WeakMethod(obj, callback)  # type: ignore[arg-type, return-value]
63 | 
64 |     return ref(obj, callback)
65 | 
```

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

```python
 1 | import io
 2 | from typing import IO, TYPE_CHECKING, Any, List
 3 | 
 4 | from .ansi import AnsiDecoder
 5 | from .text import Text
 6 | 
 7 | if TYPE_CHECKING:
 8 |     from .console import Console
 9 | 
10 | 
11 | class FileProxy(io.TextIOBase):
12 |     """Wraps a file (e.g. sys.stdout) and redirects writes to a console."""
13 | 
14 |     def __init__(self, console: "Console", file: IO[str]) -> None:
15 |         self.__console = console
16 |         self.__file = file
17 |         self.__buffer: List[str] = []
18 |         self.__ansi_decoder = AnsiDecoder()
19 | 
20 |     @property
21 |     def rich_proxied_file(self) -> IO[str]:
22 |         """Get proxied file."""
23 |         return self.__file
24 | 
25 |     def __getattr__(self, name: str) -> Any:
26 |         return getattr(self.__file, name)
27 | 
28 |     def write(self, text: str) -> int:
29 |         if not isinstance(text, str):
30 |             raise TypeError(f"write() argument must be str, not {type(text).__name__}")
31 |         buffer = self.__buffer
32 |         lines: List[str] = []
33 |         while text:
34 |             line, new_line, text = text.partition("\n")
35 |             if new_line:
36 |                 lines.append("".join(buffer) + line)
37 |                 buffer.clear()
38 |             else:
39 |                 buffer.append(line)
40 |                 break
41 |         if lines:
42 |             console = self.__console
43 |             with console:
44 |                 output = Text("\n").join(
45 |                     self.__ansi_decoder.decode_line(line) for line in lines
46 |                 )
47 |                 console.print(output)
48 |         return len(text)
49 | 
50 |     def flush(self) -> None:
51 |         output = "".join(self.__buffer)
52 |         if output:
53 |             self.__console.print(output)
54 |         del self.__buffer[:]
55 | 
56 |     def fileno(self) -> int:
57 |         return self.__file.fileno()
58 | 
```

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

```python
 1 | import hashlib
 2 | import logging
 3 | import sys
 4 | from optparse import Values
 5 | from typing import List
 6 | 
 7 | from pip._internal.cli.base_command import Command
 8 | from pip._internal.cli.status_codes import ERROR, SUCCESS
 9 | from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES
10 | from pip._internal.utils.misc import read_chunks, write_output
11 | 
12 | logger = logging.getLogger(__name__)
13 | 
14 | 
15 | class HashCommand(Command):
16 |     """
17 |     Compute a hash of a local package archive.
18 | 
19 |     These can be used with --hash in a requirements file to do repeatable
20 |     installs.
21 |     """
22 | 
23 |     usage = "%prog [options] <file> ..."
24 |     ignore_require_venv = True
25 | 
26 |     def add_options(self) -> None:
27 |         self.cmd_opts.add_option(
28 |             "-a",
29 |             "--algorithm",
30 |             dest="algorithm",
31 |             choices=STRONG_HASHES,
32 |             action="store",
33 |             default=FAVORITE_HASH,
34 |             help="The hash algorithm to use: one of {}".format(
35 |                 ", ".join(STRONG_HASHES)
36 |             ),
37 |         )
38 |         self.parser.insert_option_group(0, self.cmd_opts)
39 | 
40 |     def run(self, options: Values, args: List[str]) -> int:
41 |         if not args:
42 |             self.parser.print_usage(sys.stderr)
43 |             return ERROR
44 | 
45 |         algorithm = options.algorithm
46 |         for path in args:
47 |             write_output(
48 |                 "%s:\n--hash=%s:%s", path, algorithm, _hash_of_file(path, algorithm)
49 |             )
50 |         return SUCCESS
51 | 
52 | 
53 | def _hash_of_file(path: str, algorithm: str) -> str:
54 |     """Return the hash digest of a file."""
55 |     with open(path, "rb") as archive:
56 |         hash = hashlib.new(algorithm)
57 |         for chunk in read_chunks(archive):
58 |             hash.update(chunk)
59 |     return hash.hexdigest()
60 | 
```
Page 3/168FirstPrevNextLast