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

# Directory Structure

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

# Files

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

```python
   1 | """
   2 |     pygments.lexers.python
   3 |     ~~~~~~~~~~~~~~~~~~~~~~
   4 | 
   5 |     Lexers for Python and related languages.
   6 | 
   7 |     :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
   8 |     :license: BSD, see LICENSE for details.
   9 | """
  10 | 
  11 | import keyword
  12 | 
  13 | from pip._vendor.pygments.lexer import DelegatingLexer, RegexLexer, include, \
  14 |     bygroups, using, default, words, combined, this
  15 | from pip._vendor.pygments.util import get_bool_opt, shebang_matches
  16 | from pip._vendor.pygments.token import Text, Comment, Operator, Keyword, Name, String, \
  17 |     Number, Punctuation, Generic, Other, Error, Whitespace
  18 | from pip._vendor.pygments import unistring as uni
  19 | 
  20 | __all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer',
  21 |            'Python2Lexer', 'Python2TracebackLexer',
  22 |            'CythonLexer', 'DgLexer', 'NumPyLexer']
  23 | 
  24 | 
  25 | class PythonLexer(RegexLexer):
  26 |     """
  27 |     For Python source code (version 3.x).
  28 | 
  29 |     .. versionchanged:: 2.5
  30 |        This is now the default ``PythonLexer``.  It is still available as the
  31 |        alias ``Python3Lexer``.
  32 |     """
  33 | 
  34 |     name = 'Python'
  35 |     url = 'https://www.python.org'
  36 |     aliases = ['python', 'py', 'sage', 'python3', 'py3', 'bazel', 'starlark']
  37 |     filenames = [
  38 |         '*.py',
  39 |         '*.pyw',
  40 |         # Type stubs
  41 |         '*.pyi',
  42 |         # Jython
  43 |         '*.jy',
  44 |         # Sage
  45 |         '*.sage',
  46 |         # SCons
  47 |         '*.sc',
  48 |         'SConstruct',
  49 |         'SConscript',
  50 |         # Skylark/Starlark (used by Bazel, Buck, and Pants)
  51 |         '*.bzl',
  52 |         'BUCK',
  53 |         'BUILD',
  54 |         'BUILD.bazel',
  55 |         'WORKSPACE',
  56 |         # Twisted Application infrastructure
  57 |         '*.tac',
  58 |     ]
  59 |     mimetypes = ['text/x-python', 'application/x-python',
  60 |                  'text/x-python3', 'application/x-python3']
  61 |     version_added = '0.10'
  62 | 
  63 |     uni_name = f"[{uni.xid_start}][{uni.xid_continue}]*"
  64 | 
  65 |     def innerstring_rules(ttype):
  66 |         return [
  67 |             # the old style '%s' % (...) string formatting (still valid in Py3)
  68 |             (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
  69 |              '[hlL]?[E-GXc-giorsaux%]', String.Interpol),
  70 |             # the new style '{}'.format(...) string formatting
  71 |             (r'\{'
  72 |              r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?'  # field name
  73 |              r'(\![sra])?'                       # conversion
  74 |              r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?'
  75 |              r'\}', String.Interpol),
  76 | 
  77 |             # backslashes, quotes and formatting signs must be parsed one at a time
  78 |             (r'[^\\\'"%{\n]+', ttype),
  79 |             (r'[\'"\\]', ttype),
  80 |             # unhandled string formatting sign
  81 |             (r'%|(\{{1,2})', ttype)
  82 |             # newlines are an error (use "nl" state)
  83 |         ]
  84 | 
  85 |     def fstring_rules(ttype):
  86 |         return [
  87 |             # Assuming that a '}' is the closing brace after format specifier.
  88 |             # Sadly, this means that we won't detect syntax error. But it's
  89 |             # more important to parse correct syntax correctly, than to
  90 |             # highlight invalid syntax.
  91 |             (r'\}', String.Interpol),
  92 |             (r'\{', String.Interpol, 'expr-inside-fstring'),
  93 |             # backslashes, quotes and formatting signs must be parsed one at a time
  94 |             (r'[^\\\'"{}\n]+', ttype),
  95 |             (r'[\'"\\]', ttype),
  96 |             # newlines are an error (use "nl" state)
  97 |         ]
  98 | 
  99 |     tokens = {
 100 |         'root': [
 101 |             (r'\n', Whitespace),
 102 |             (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
 103 |              bygroups(Whitespace, String.Affix, String.Doc)),
 104 |             (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
 105 |              bygroups(Whitespace, String.Affix, String.Doc)),
 106 |             (r'\A#!.+$', Comment.Hashbang),
 107 |             (r'#.*$', Comment.Single),
 108 |             (r'\\\n', Text),
 109 |             (r'\\', Text),
 110 |             include('keywords'),
 111 |             include('soft-keywords'),
 112 |             (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'funcname'),
 113 |             (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'classname'),
 114 |             (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
 115 |              'fromimport'),
 116 |             (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
 117 |              'import'),
 118 |             include('expr'),
 119 |         ],
 120 |         'expr': [
 121 |             # raw f-strings
 122 |             ('(?i)(rf|fr)(""")',
 123 |              bygroups(String.Affix, String.Double),
 124 |              combined('rfstringescape', 'tdqf')),
 125 |             ("(?i)(rf|fr)(''')",
 126 |              bygroups(String.Affix, String.Single),
 127 |              combined('rfstringescape', 'tsqf')),
 128 |             ('(?i)(rf|fr)(")',
 129 |              bygroups(String.Affix, String.Double),
 130 |              combined('rfstringescape', 'dqf')),
 131 |             ("(?i)(rf|fr)(')",
 132 |              bygroups(String.Affix, String.Single),
 133 |              combined('rfstringescape', 'sqf')),
 134 |             # non-raw f-strings
 135 |             ('([fF])(""")', bygroups(String.Affix, String.Double),
 136 |              combined('fstringescape', 'tdqf')),
 137 |             ("([fF])(''')", bygroups(String.Affix, String.Single),
 138 |              combined('fstringescape', 'tsqf')),
 139 |             ('([fF])(")', bygroups(String.Affix, String.Double),
 140 |              combined('fstringescape', 'dqf')),
 141 |             ("([fF])(')", bygroups(String.Affix, String.Single),
 142 |              combined('fstringescape', 'sqf')),
 143 |             # raw bytes and strings
 144 |             ('(?i)(rb|br|r)(""")',
 145 |              bygroups(String.Affix, String.Double), 'tdqs'),
 146 |             ("(?i)(rb|br|r)(''')",
 147 |              bygroups(String.Affix, String.Single), 'tsqs'),
 148 |             ('(?i)(rb|br|r)(")',
 149 |              bygroups(String.Affix, String.Double), 'dqs'),
 150 |             ("(?i)(rb|br|r)(')",
 151 |              bygroups(String.Affix, String.Single), 'sqs'),
 152 |             # non-raw strings
 153 |             ('([uU]?)(""")', bygroups(String.Affix, String.Double),
 154 |              combined('stringescape', 'tdqs')),
 155 |             ("([uU]?)(''')", bygroups(String.Affix, String.Single),
 156 |              combined('stringescape', 'tsqs')),
 157 |             ('([uU]?)(")', bygroups(String.Affix, String.Double),
 158 |              combined('stringescape', 'dqs')),
 159 |             ("([uU]?)(')", bygroups(String.Affix, String.Single),
 160 |              combined('stringescape', 'sqs')),
 161 |             # non-raw bytes
 162 |             ('([bB])(""")', bygroups(String.Affix, String.Double),
 163 |              combined('bytesescape', 'tdqs')),
 164 |             ("([bB])(''')", bygroups(String.Affix, String.Single),
 165 |              combined('bytesescape', 'tsqs')),
 166 |             ('([bB])(")', bygroups(String.Affix, String.Double),
 167 |              combined('bytesescape', 'dqs')),
 168 |             ("([bB])(')", bygroups(String.Affix, String.Single),
 169 |              combined('bytesescape', 'sqs')),
 170 | 
 171 |             (r'[^\S\n]+', Text),
 172 |             include('numbers'),
 173 |             (r'!=|==|<<|>>|:=|[-~+/*%=<>&^|.]', Operator),
 174 |             (r'[]{}:(),;[]', Punctuation),
 175 |             (r'(in|is|and|or|not)\b', Operator.Word),
 176 |             include('expr-keywords'),
 177 |             include('builtins'),
 178 |             include('magicfuncs'),
 179 |             include('magicvars'),
 180 |             include('name'),
 181 |         ],
 182 |         'expr-inside-fstring': [
 183 |             (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
 184 |             # without format specifier
 185 |             (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
 186 |              r'(\![sraf])?'     # conversion
 187 |              r'\}', String.Interpol, '#pop'),
 188 |             # with format specifier
 189 |             # we'll catch the remaining '}' in the outer scope
 190 |             (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
 191 |              r'(\![sraf])?'     # conversion
 192 |              r':', String.Interpol, '#pop'),
 193 |             (r'\s+', Whitespace),  # allow new lines
 194 |             include('expr'),
 195 |         ],
 196 |         'expr-inside-fstring-inner': [
 197 |             (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
 198 |             (r'[])}]', Punctuation, '#pop'),
 199 |             (r'\s+', Whitespace),  # allow new lines
 200 |             include('expr'),
 201 |         ],
 202 |         'expr-keywords': [
 203 |             # Based on https://docs.python.org/3/reference/expressions.html
 204 |             (words((
 205 |                 'async for', 'await', 'else', 'for', 'if', 'lambda',
 206 |                 'yield', 'yield from'), suffix=r'\b'),
 207 |              Keyword),
 208 |             (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
 209 |         ],
 210 |         'keywords': [
 211 |             (words((
 212 |                 'assert', 'async', 'await', 'break', 'continue', 'del', 'elif',
 213 |                 'else', 'except', 'finally', 'for', 'global', 'if', 'lambda',
 214 |                 'pass', 'raise', 'nonlocal', 'return', 'try', 'while', 'yield',
 215 |                 'yield from', 'as', 'with'), suffix=r'\b'),
 216 |              Keyword),
 217 |             (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
 218 |         ],
 219 |         'soft-keywords': [
 220 |             # `match`, `case` and `_` soft keywords
 221 |             (r'(^[ \t]*)'              # at beginning of line + possible indentation
 222 |              r'(match|case)\b'         # a possible keyword
 223 |              r'(?![ \t]*(?:'           # not followed by...
 224 |              r'[:,;=^&|@~)\]}]|(?:' +  # characters and keywords that mean this isn't
 225 |                                        # pattern matching (but None/True/False is ok)
 226 |              r'|'.join(k for k in keyword.kwlist if k[0].islower()) + r')\b))',
 227 |              bygroups(Text, Keyword), 'soft-keywords-inner'),
 228 |         ],
 229 |         'soft-keywords-inner': [
 230 |             # optional `_` keyword
 231 |             (r'(\s+)([^\n_]*)(_\b)', bygroups(Whitespace, using(this), Keyword)),
 232 |             default('#pop')
 233 |         ],
 234 |         'builtins': [
 235 |             (words((
 236 |                 '__import__', 'abs', 'aiter', 'all', 'any', 'bin', 'bool', 'bytearray',
 237 |                 'breakpoint', 'bytes', 'callable', 'chr', 'classmethod', 'compile',
 238 |                 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval',
 239 |                 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals',
 240 |                 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'isinstance',
 241 |                 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max',
 242 |                 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow',
 243 |                 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set',
 244 |                 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super',
 245 |                 'tuple', 'type', 'vars', 'zip'), prefix=r'(?<!\.)', suffix=r'\b'),
 246 |              Name.Builtin),
 247 |             (r'(?<!\.)(self|Ellipsis|NotImplemented|cls)\b', Name.Builtin.Pseudo),
 248 |             (words((
 249 |                 'ArithmeticError', 'AssertionError', 'AttributeError',
 250 |                 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning',
 251 |                 'EOFError', 'EnvironmentError', 'Exception', 'FloatingPointError',
 252 |                 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',
 253 |                 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError',
 254 |                 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError',
 255 |                 'NotImplementedError', 'OSError', 'OverflowError',
 256 |                 'PendingDeprecationWarning', 'ReferenceError', 'ResourceWarning',
 257 |                 'RuntimeError', 'RuntimeWarning', 'StopIteration',
 258 |                 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
 259 |                 'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
 260 |                 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
 261 |                 'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError',
 262 |                 'Warning', 'WindowsError', 'ZeroDivisionError',
 263 |                 # new builtin exceptions from PEP 3151
 264 |                 'BlockingIOError', 'ChildProcessError', 'ConnectionError',
 265 |                 'BrokenPipeError', 'ConnectionAbortedError', 'ConnectionRefusedError',
 266 |                 'ConnectionResetError', 'FileExistsError', 'FileNotFoundError',
 267 |                 'InterruptedError', 'IsADirectoryError', 'NotADirectoryError',
 268 |                 'PermissionError', 'ProcessLookupError', 'TimeoutError',
 269 |                 # others new in Python 3
 270 |                 'StopAsyncIteration', 'ModuleNotFoundError', 'RecursionError',
 271 |                 'EncodingWarning'),
 272 |                 prefix=r'(?<!\.)', suffix=r'\b'),
 273 |              Name.Exception),
 274 |         ],
 275 |         'magicfuncs': [
 276 |             (words((
 277 |                 '__abs__', '__add__', '__aenter__', '__aexit__', '__aiter__',
 278 |                 '__and__', '__anext__', '__await__', '__bool__', '__bytes__',
 279 |                 '__call__', '__complex__', '__contains__', '__del__', '__delattr__',
 280 |                 '__delete__', '__delitem__', '__dir__', '__divmod__', '__enter__',
 281 |                 '__eq__', '__exit__', '__float__', '__floordiv__', '__format__',
 282 |                 '__ge__', '__get__', '__getattr__', '__getattribute__',
 283 |                 '__getitem__', '__gt__', '__hash__', '__iadd__', '__iand__',
 284 |                 '__ifloordiv__', '__ilshift__', '__imatmul__', '__imod__',
 285 |                 '__imul__', '__index__', '__init__', '__instancecheck__',
 286 |                 '__int__', '__invert__', '__ior__', '__ipow__', '__irshift__',
 287 |                 '__isub__', '__iter__', '__itruediv__', '__ixor__', '__le__',
 288 |                 '__len__', '__length_hint__', '__lshift__', '__lt__', '__matmul__',
 289 |                 '__missing__', '__mod__', '__mul__', '__ne__', '__neg__',
 290 |                 '__new__', '__next__', '__or__', '__pos__', '__pow__',
 291 |                 '__prepare__', '__radd__', '__rand__', '__rdivmod__', '__repr__',
 292 |                 '__reversed__', '__rfloordiv__', '__rlshift__', '__rmatmul__',
 293 |                 '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__',
 294 |                 '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__',
 295 |                 '__rxor__', '__set__', '__setattr__', '__setitem__', '__str__',
 296 |                 '__sub__', '__subclasscheck__', '__truediv__',
 297 |                 '__xor__'), suffix=r'\b'),
 298 |              Name.Function.Magic),
 299 |         ],
 300 |         'magicvars': [
 301 |             (words((
 302 |                 '__annotations__', '__bases__', '__class__', '__closure__',
 303 |                 '__code__', '__defaults__', '__dict__', '__doc__', '__file__',
 304 |                 '__func__', '__globals__', '__kwdefaults__', '__module__',
 305 |                 '__mro__', '__name__', '__objclass__', '__qualname__',
 306 |                 '__self__', '__slots__', '__weakref__'), suffix=r'\b'),
 307 |              Name.Variable.Magic),
 308 |         ],
 309 |         'numbers': [
 310 |             (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)'
 311 |              r'([eE][+-]?\d(?:_?\d)*)?', Number.Float),
 312 |             (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float),
 313 |             (r'0[oO](?:_?[0-7])+', Number.Oct),
 314 |             (r'0[bB](?:_?[01])+', Number.Bin),
 315 |             (r'0[xX](?:_?[a-fA-F0-9])+', Number.Hex),
 316 |             (r'\d(?:_?\d)*', Number.Integer),
 317 |         ],
 318 |         'name': [
 319 |             (r'@' + uni_name, Name.Decorator),
 320 |             (r'@', Operator),  # new matrix multiplication operator
 321 |             (uni_name, Name),
 322 |         ],
 323 |         'funcname': [
 324 |             include('magicfuncs'),
 325 |             (uni_name, Name.Function, '#pop'),
 326 |             default('#pop'),
 327 |         ],
 328 |         'classname': [
 329 |             (uni_name, Name.Class, '#pop'),
 330 |         ],
 331 |         'import': [
 332 |             (r'(\s+)(as)(\s+)', bygroups(Text, Keyword, Text)),
 333 |             (r'\.', Name.Namespace),
 334 |             (uni_name, Name.Namespace),
 335 |             (r'(\s*)(,)(\s*)', bygroups(Text, Operator, Text)),
 336 |             default('#pop')  # all else: go back
 337 |         ],
 338 |         'fromimport': [
 339 |             (r'(\s+)(import)\b', bygroups(Text, Keyword.Namespace), '#pop'),
 340 |             (r'\.', Name.Namespace),
 341 |             # if None occurs here, it's "raise x from None", since None can
 342 |             # never be a module name
 343 |             (r'None\b', Keyword.Constant, '#pop'),
 344 |             (uni_name, Name.Namespace),
 345 |             default('#pop'),
 346 |         ],
 347 |         'rfstringescape': [
 348 |             (r'\{\{', String.Escape),
 349 |             (r'\}\}', String.Escape),
 350 |         ],
 351 |         'fstringescape': [
 352 |             include('rfstringescape'),
 353 |             include('stringescape'),
 354 |         ],
 355 |         'bytesescape': [
 356 |             (r'\\([\\abfnrtv"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
 357 |         ],
 358 |         'stringescape': [
 359 |             (r'\\(N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})', String.Escape),
 360 |             include('bytesescape')
 361 |         ],
 362 |         'fstrings-single': fstring_rules(String.Single),
 363 |         'fstrings-double': fstring_rules(String.Double),
 364 |         'strings-single': innerstring_rules(String.Single),
 365 |         'strings-double': innerstring_rules(String.Double),
 366 |         'dqf': [
 367 |             (r'"', String.Double, '#pop'),
 368 |             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
 369 |             include('fstrings-double')
 370 |         ],
 371 |         'sqf': [
 372 |             (r"'", String.Single, '#pop'),
 373 |             (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
 374 |             include('fstrings-single')
 375 |         ],
 376 |         'dqs': [
 377 |             (r'"', String.Double, '#pop'),
 378 |             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
 379 |             include('strings-double')
 380 |         ],
 381 |         'sqs': [
 382 |             (r"'", String.Single, '#pop'),
 383 |             (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
 384 |             include('strings-single')
 385 |         ],
 386 |         'tdqf': [
 387 |             (r'"""', String.Double, '#pop'),
 388 |             include('fstrings-double'),
 389 |             (r'\n', String.Double)
 390 |         ],
 391 |         'tsqf': [
 392 |             (r"'''", String.Single, '#pop'),
 393 |             include('fstrings-single'),
 394 |             (r'\n', String.Single)
 395 |         ],
 396 |         'tdqs': [
 397 |             (r'"""', String.Double, '#pop'),
 398 |             include('strings-double'),
 399 |             (r'\n', String.Double)
 400 |         ],
 401 |         'tsqs': [
 402 |             (r"'''", String.Single, '#pop'),
 403 |             include('strings-single'),
 404 |             (r'\n', String.Single)
 405 |         ],
 406 |     }
 407 | 
 408 |     def analyse_text(text):
 409 |         return shebang_matches(text, r'pythonw?(3(\.\d)?)?') or \
 410 |             'import ' in text[:1000]
 411 | 
 412 | 
 413 | Python3Lexer = PythonLexer
 414 | 
 415 | 
 416 | class Python2Lexer(RegexLexer):
 417 |     """
 418 |     For Python 2.x source code.
 419 | 
 420 |     .. versionchanged:: 2.5
 421 |        This class has been renamed from ``PythonLexer``.  ``PythonLexer`` now
 422 |        refers to the Python 3 variant.  File name patterns like ``*.py`` have
 423 |        been moved to Python 3 as well.
 424 |     """
 425 | 
 426 |     name = 'Python 2.x'
 427 |     url = 'https://www.python.org'
 428 |     aliases = ['python2', 'py2']
 429 |     filenames = []  # now taken over by PythonLexer (3.x)
 430 |     mimetypes = ['text/x-python2', 'application/x-python2']
 431 |     version_added = ''
 432 | 
 433 |     def innerstring_rules(ttype):
 434 |         return [
 435 |             # the old style '%s' % (...) string formatting
 436 |             (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
 437 |              '[hlL]?[E-GXc-giorsux%]', String.Interpol),
 438 |             # backslashes, quotes and formatting signs must be parsed one at a time
 439 |             (r'[^\\\'"%\n]+', ttype),
 440 |             (r'[\'"\\]', ttype),
 441 |             # unhandled string formatting sign
 442 |             (r'%', ttype),
 443 |             # newlines are an error (use "nl" state)
 444 |         ]
 445 | 
 446 |     tokens = {
 447 |         'root': [
 448 |             (r'\n', Whitespace),
 449 |             (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
 450 |              bygroups(Whitespace, String.Affix, String.Doc)),
 451 |             (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
 452 |              bygroups(Whitespace, String.Affix, String.Doc)),
 453 |             (r'[^\S\n]+', Text),
 454 |             (r'\A#!.+$', Comment.Hashbang),
 455 |             (r'#.*$', Comment.Single),
 456 |             (r'[]{}:(),;[]', Punctuation),
 457 |             (r'\\\n', Text),
 458 |             (r'\\', Text),
 459 |             (r'(in|is|and|or|not)\b', Operator.Word),
 460 |             (r'!=|==|<<|>>|[-~+/*%=<>&^|.]', Operator),
 461 |             include('keywords'),
 462 |             (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'funcname'),
 463 |             (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'classname'),
 464 |             (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
 465 |              'fromimport'),
 466 |             (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Text),
 467 |              'import'),
 468 |             include('builtins'),
 469 |             include('magicfuncs'),
 470 |             include('magicvars'),
 471 |             include('backtick'),
 472 |             ('([rR]|[uUbB][rR]|[rR][uUbB])(""")',
 473 |              bygroups(String.Affix, String.Double), 'tdqs'),
 474 |             ("([rR]|[uUbB][rR]|[rR][uUbB])(''')",
 475 |              bygroups(String.Affix, String.Single), 'tsqs'),
 476 |             ('([rR]|[uUbB][rR]|[rR][uUbB])(")',
 477 |              bygroups(String.Affix, String.Double), 'dqs'),
 478 |             ("([rR]|[uUbB][rR]|[rR][uUbB])(')",
 479 |              bygroups(String.Affix, String.Single), 'sqs'),
 480 |             ('([uUbB]?)(""")', bygroups(String.Affix, String.Double),
 481 |              combined('stringescape', 'tdqs')),
 482 |             ("([uUbB]?)(''')", bygroups(String.Affix, String.Single),
 483 |              combined('stringescape', 'tsqs')),
 484 |             ('([uUbB]?)(")', bygroups(String.Affix, String.Double),
 485 |              combined('stringescape', 'dqs')),
 486 |             ("([uUbB]?)(')", bygroups(String.Affix, String.Single),
 487 |              combined('stringescape', 'sqs')),
 488 |             include('name'),
 489 |             include('numbers'),
 490 |         ],
 491 |         'keywords': [
 492 |             (words((
 493 |                 'assert', 'break', 'continue', 'del', 'elif', 'else', 'except',
 494 |                 'exec', 'finally', 'for', 'global', 'if', 'lambda', 'pass',
 495 |                 'print', 'raise', 'return', 'try', 'while', 'yield',
 496 |                 'yield from', 'as', 'with'), suffix=r'\b'),
 497 |              Keyword),
 498 |         ],
 499 |         'builtins': [
 500 |             (words((
 501 |                 '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin',
 502 |                 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod',
 503 |                 'cmp', 'coerce', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod',
 504 |                 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float',
 505 |                 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'hex', 'id',
 506 |                 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len',
 507 |                 'list', 'locals', 'long', 'map', 'max', 'min', 'next', 'object',
 508 |                 'oct', 'open', 'ord', 'pow', 'property', 'range', 'raw_input', 'reduce',
 509 |                 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
 510 |                 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
 511 |                 'unichr', 'unicode', 'vars', 'xrange', 'zip'),
 512 |                 prefix=r'(?<!\.)', suffix=r'\b'),
 513 |              Name.Builtin),
 514 |             (r'(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|cls'
 515 |              r')\b', Name.Builtin.Pseudo),
 516 |             (words((
 517 |                 'ArithmeticError', 'AssertionError', 'AttributeError',
 518 |                 'BaseException', 'DeprecationWarning', 'EOFError', 'EnvironmentError',
 519 |                 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit',
 520 |                 'IOError', 'ImportError', 'ImportWarning', 'IndentationError',
 521 |                 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError',
 522 |                 'MemoryError', 'NameError',
 523 |                 'NotImplementedError', 'OSError', 'OverflowError', 'OverflowWarning',
 524 |                 'PendingDeprecationWarning', 'ReferenceError',
 525 |                 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration',
 526 |                 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
 527 |                 'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
 528 |                 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
 529 |                 'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError', 'Warning',
 530 |                 'WindowsError', 'ZeroDivisionError'), prefix=r'(?<!\.)', suffix=r'\b'),
 531 |              Name.Exception),
 532 |         ],
 533 |         'magicfuncs': [
 534 |             (words((
 535 |                 '__abs__', '__add__', '__and__', '__call__', '__cmp__', '__coerce__',
 536 |                 '__complex__', '__contains__', '__del__', '__delattr__', '__delete__',
 537 |                 '__delitem__', '__delslice__', '__div__', '__divmod__', '__enter__',
 538 |                 '__eq__', '__exit__', '__float__', '__floordiv__', '__ge__', '__get__',
 539 |                 '__getattr__', '__getattribute__', '__getitem__', '__getslice__', '__gt__',
 540 |                 '__hash__', '__hex__', '__iadd__', '__iand__', '__idiv__', '__ifloordiv__',
 541 |                 '__ilshift__', '__imod__', '__imul__', '__index__', '__init__',
 542 |                 '__instancecheck__', '__int__', '__invert__', '__iop__', '__ior__',
 543 |                 '__ipow__', '__irshift__', '__isub__', '__iter__', '__itruediv__',
 544 |                 '__ixor__', '__le__', '__len__', '__long__', '__lshift__', '__lt__',
 545 |                 '__missing__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__',
 546 |                 '__nonzero__', '__oct__', '__op__', '__or__', '__pos__', '__pow__',
 547 |                 '__radd__', '__rand__', '__rcmp__', '__rdiv__', '__rdivmod__', '__repr__',
 548 |                 '__reversed__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__',
 549 |                 '__rop__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__',
 550 |                 '__rtruediv__', '__rxor__', '__set__', '__setattr__', '__setitem__',
 551 |                 '__setslice__', '__str__', '__sub__', '__subclasscheck__', '__truediv__',
 552 |                 '__unicode__', '__xor__'), suffix=r'\b'),
 553 |              Name.Function.Magic),
 554 |         ],
 555 |         'magicvars': [
 556 |             (words((
 557 |                 '__bases__', '__class__', '__closure__', '__code__', '__defaults__',
 558 |                 '__dict__', '__doc__', '__file__', '__func__', '__globals__',
 559 |                 '__metaclass__', '__module__', '__mro__', '__name__', '__self__',
 560 |                 '__slots__', '__weakref__'),
 561 |                 suffix=r'\b'),
 562 |              Name.Variable.Magic),
 563 |         ],
 564 |         'numbers': [
 565 |             (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
 566 |             (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
 567 |             (r'0[0-7]+j?', Number.Oct),
 568 |             (r'0[bB][01]+', Number.Bin),
 569 |             (r'0[xX][a-fA-F0-9]+', Number.Hex),
 570 |             (r'\d+L', Number.Integer.Long),
 571 |             (r'\d+j?', Number.Integer)
 572 |         ],
 573 |         'backtick': [
 574 |             ('`.*?`', String.Backtick),
 575 |         ],
 576 |         'name': [
 577 |             (r'@[\w.]+', Name.Decorator),
 578 |             (r'[a-zA-Z_]\w*', Name),
 579 |         ],
 580 |         'funcname': [
 581 |             include('magicfuncs'),
 582 |             (r'[a-zA-Z_]\w*', Name.Function, '#pop'),
 583 |             default('#pop'),
 584 |         ],
 585 |         'classname': [
 586 |             (r'[a-zA-Z_]\w*', Name.Class, '#pop')
 587 |         ],
 588 |         'import': [
 589 |             (r'(?:[ \t]|\\\n)+', Text),
 590 |             (r'as\b', Keyword.Namespace),
 591 |             (r',', Operator),
 592 |             (r'[a-zA-Z_][\w.]*', Name.Namespace),
 593 |             default('#pop')  # all else: go back
 594 |         ],
 595 |         'fromimport': [
 596 |             (r'(?:[ \t]|\\\n)+', Text),
 597 |             (r'import\b', Keyword.Namespace, '#pop'),
 598 |             # if None occurs here, it's "raise x from None", since None can
 599 |             # never be a module name
 600 |             (r'None\b', Name.Builtin.Pseudo, '#pop'),
 601 |             # sadly, in "raise x from y" y will be highlighted as namespace too
 602 |             (r'[a-zA-Z_.][\w.]*', Name.Namespace),
 603 |             # anything else here also means "raise x from y" and is therefore
 604 |             # not an error
 605 |             default('#pop'),
 606 |         ],
 607 |         'stringescape': [
 608 |             (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
 609 |              r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
 610 |         ],
 611 |         'strings-single': innerstring_rules(String.Single),
 612 |         'strings-double': innerstring_rules(String.Double),
 613 |         'dqs': [
 614 |             (r'"', String.Double, '#pop'),
 615 |             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
 616 |             include('strings-double')
 617 |         ],
 618 |         'sqs': [
 619 |             (r"'", String.Single, '#pop'),
 620 |             (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
 621 |             include('strings-single')
 622 |         ],
 623 |         'tdqs': [
 624 |             (r'"""', String.Double, '#pop'),
 625 |             include('strings-double'),
 626 |             (r'\n', String.Double)
 627 |         ],
 628 |         'tsqs': [
 629 |             (r"'''", String.Single, '#pop'),
 630 |             include('strings-single'),
 631 |             (r'\n', String.Single)
 632 |         ],
 633 |     }
 634 | 
 635 |     def analyse_text(text):
 636 |         return shebang_matches(text, r'pythonw?2(\.\d)?')
 637 | 
 638 | class _PythonConsoleLexerBase(RegexLexer):
 639 |     name = 'Python console session'
 640 |     aliases = ['pycon', 'python-console']
 641 |     mimetypes = ['text/x-python-doctest']
 642 | 
 643 |     """Auxiliary lexer for `PythonConsoleLexer`.
 644 | 
 645 |     Code tokens are output as ``Token.Other.Code``, traceback tokens as
 646 |     ``Token.Other.Traceback``.
 647 |     """
 648 |     tokens = {
 649 |         'root': [
 650 |             (r'(>>> )(.*\n)', bygroups(Generic.Prompt, Other.Code), 'continuations'),
 651 |             # This happens, e.g., when tracebacks are embedded in documentation;
 652 |             # trailing whitespaces are often stripped in such contexts.
 653 |             (r'(>>>)(\n)', bygroups(Generic.Prompt, Whitespace)),
 654 |             (r'(\^C)?Traceback \(most recent call last\):\n', Other.Traceback, 'traceback'),
 655 |             # SyntaxError starts with this
 656 |             (r'  File "[^"]+", line \d+', Other.Traceback, 'traceback'),
 657 |             (r'.*\n', Generic.Output),
 658 |         ],
 659 |         'continuations': [
 660 |             (r'(\.\.\. )(.*\n)', bygroups(Generic.Prompt, Other.Code)),
 661 |             # See above.
 662 |             (r'(\.\.\.)(\n)', bygroups(Generic.Prompt, Whitespace)),
 663 |             default('#pop'),
 664 |         ],
 665 |         'traceback': [
 666 |             # As soon as we see a traceback, consume everything until the next
 667 |             # >>> prompt.
 668 |             (r'(?=>>>( |$))', Text, '#pop'),
 669 |             (r'(KeyboardInterrupt)(\n)', bygroups(Name.Class, Whitespace)),
 670 |             (r'.*\n', Other.Traceback),
 671 |         ],
 672 |     }
 673 | 
 674 | class PythonConsoleLexer(DelegatingLexer):
 675 |     """
 676 |     For Python console output or doctests, such as:
 677 | 
 678 |     .. sourcecode:: pycon
 679 | 
 680 |         >>> a = 'foo'
 681 |         >>> print(a)
 682 |         foo
 683 |         >>> 1 / 0
 684 |         Traceback (most recent call last):
 685 |           File "<stdin>", line 1, in <module>
 686 |         ZeroDivisionError: integer division or modulo by zero
 687 | 
 688 |     Additional options:
 689 | 
 690 |     `python3`
 691 |         Use Python 3 lexer for code.  Default is ``True``.
 692 | 
 693 |         .. versionadded:: 1.0
 694 |         .. versionchanged:: 2.5
 695 |            Now defaults to ``True``.
 696 |     """
 697 | 
 698 |     name = 'Python console session'
 699 |     aliases = ['pycon', 'python-console']
 700 |     mimetypes = ['text/x-python-doctest']
 701 |     url = 'https://python.org'
 702 |     version_added = ''
 703 | 
 704 |     def __init__(self, **options):
 705 |         python3 = get_bool_opt(options, 'python3', True)
 706 |         if python3:
 707 |             pylexer = PythonLexer
 708 |             tblexer = PythonTracebackLexer
 709 |         else:
 710 |             pylexer = Python2Lexer
 711 |             tblexer = Python2TracebackLexer
 712 |         # We have two auxiliary lexers. Use DelegatingLexer twice with
 713 |         # different tokens.  TODO: DelegatingLexer should support this
 714 |         # directly, by accepting a tuplet of auxiliary lexers and a tuple of
 715 |         # distinguishing tokens. Then we wouldn't need this intermediary
 716 |         # class.
 717 |         class _ReplaceInnerCode(DelegatingLexer):
 718 |             def __init__(self, **options):
 719 |                 super().__init__(pylexer, _PythonConsoleLexerBase, Other.Code, **options)
 720 |         super().__init__(tblexer, _ReplaceInnerCode, Other.Traceback, **options)
 721 | 
 722 | class PythonTracebackLexer(RegexLexer):
 723 |     """
 724 |     For Python 3.x tracebacks, with support for chained exceptions.
 725 | 
 726 |     .. versionchanged:: 2.5
 727 |        This is now the default ``PythonTracebackLexer``.  It is still available
 728 |        as the alias ``Python3TracebackLexer``.
 729 |     """
 730 | 
 731 |     name = 'Python Traceback'
 732 |     aliases = ['pytb', 'py3tb']
 733 |     filenames = ['*.pytb', '*.py3tb']
 734 |     mimetypes = ['text/x-python-traceback', 'text/x-python3-traceback']
 735 |     url = 'https://python.org'
 736 |     version_added = '1.0'
 737 | 
 738 |     tokens = {
 739 |         'root': [
 740 |             (r'\n', Whitespace),
 741 |             (r'^(\^C)?Traceback \(most recent call last\):\n', Generic.Traceback, 'intb'),
 742 |             (r'^During handling of the above exception, another '
 743 |              r'exception occurred:\n\n', Generic.Traceback),
 744 |             (r'^The above exception was the direct cause of the '
 745 |              r'following exception:\n\n', Generic.Traceback),
 746 |             (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
 747 |             (r'^.*\n', Other),
 748 |         ],
 749 |         'intb': [
 750 |             (r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
 751 |              bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)),
 752 |             (r'^(  File )("[^"]+")(, line )(\d+)(\n)',
 753 |              bygroups(Text, Name.Builtin, Text, Number, Whitespace)),
 754 |             (r'^(    )(.+)(\n)',
 755 |              bygroups(Whitespace, using(PythonLexer), Whitespace), 'markers'),
 756 |             (r'^([ \t]*)(\.\.\.)(\n)',
 757 |              bygroups(Whitespace, Comment, Whitespace)),  # for doctests...
 758 |             (r'^([^:]+)(: )(.+)(\n)',
 759 |              bygroups(Generic.Error, Text, Name, Whitespace), '#pop'),
 760 |             (r'^([a-zA-Z_][\w.]*)(:?\n)',
 761 |              bygroups(Generic.Error, Whitespace), '#pop'),
 762 |             default('#pop'),
 763 |         ],
 764 |         'markers': [
 765 |             # Either `PEP 657 <https://www.python.org/dev/peps/pep-0657/>`
 766 |             # error locations in Python 3.11+, or single-caret markers
 767 |             # for syntax errors before that.
 768 |             (r'^( {4,})([~^]+)(\n)',
 769 |              bygroups(Whitespace, Punctuation.Marker, Whitespace),
 770 |              '#pop'),
 771 |             default('#pop'),
 772 |         ],
 773 |     }
 774 | 
 775 | 
 776 | Python3TracebackLexer = PythonTracebackLexer
 777 | 
 778 | 
 779 | class Python2TracebackLexer(RegexLexer):
 780 |     """
 781 |     For Python tracebacks.
 782 | 
 783 |     .. versionchanged:: 2.5
 784 |        This class has been renamed from ``PythonTracebackLexer``.
 785 |        ``PythonTracebackLexer`` now refers to the Python 3 variant.
 786 |     """
 787 | 
 788 |     name = 'Python 2.x Traceback'
 789 |     aliases = ['py2tb']
 790 |     filenames = ['*.py2tb']
 791 |     mimetypes = ['text/x-python2-traceback']
 792 |     url = 'https://python.org'
 793 |     version_added = '0.7'
 794 | 
 795 |     tokens = {
 796 |         'root': [
 797 |             # Cover both (most recent call last) and (innermost last)
 798 |             # The optional ^C allows us to catch keyboard interrupt signals.
 799 |             (r'^(\^C)?(Traceback.*\n)',
 800 |              bygroups(Text, Generic.Traceback), 'intb'),
 801 |             # SyntaxError starts with this.
 802 |             (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
 803 |             (r'^.*\n', Other),
 804 |         ],
 805 |         'intb': [
 806 |             (r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
 807 |              bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)),
 808 |             (r'^(  File )("[^"]+")(, line )(\d+)(\n)',
 809 |              bygroups(Text, Name.Builtin, Text, Number, Whitespace)),
 810 |             (r'^(    )(.+)(\n)',
 811 |              bygroups(Text, using(Python2Lexer), Whitespace), 'marker'),
 812 |             (r'^([ \t]*)(\.\.\.)(\n)',
 813 |              bygroups(Text, Comment, Whitespace)),  # for doctests...
 814 |             (r'^([^:]+)(: )(.+)(\n)',
 815 |              bygroups(Generic.Error, Text, Name, Whitespace), '#pop'),
 816 |             (r'^([a-zA-Z_]\w*)(:?\n)',
 817 |              bygroups(Generic.Error, Whitespace), '#pop')
 818 |         ],
 819 |         'marker': [
 820 |             # For syntax errors.
 821 |             (r'( {4,})(\^)', bygroups(Text, Punctuation.Marker), '#pop'),
 822 |             default('#pop'),
 823 |         ],
 824 |     }
 825 | 
 826 | 
 827 | class CythonLexer(RegexLexer):
 828 |     """
 829 |     For Pyrex and Cython source code.
 830 |     """
 831 | 
 832 |     name = 'Cython'
 833 |     url = 'https://cython.org'
 834 |     aliases = ['cython', 'pyx', 'pyrex']
 835 |     filenames = ['*.pyx', '*.pxd', '*.pxi']
 836 |     mimetypes = ['text/x-cython', 'application/x-cython']
 837 |     version_added = '1.1'
 838 | 
 839 |     tokens = {
 840 |         'root': [
 841 |             (r'\n', Whitespace),
 842 |             (r'^(\s*)("""(?:.|\n)*?""")', bygroups(Whitespace, String.Doc)),
 843 |             (r"^(\s*)('''(?:.|\n)*?''')", bygroups(Whitespace, String.Doc)),
 844 |             (r'[^\S\n]+', Text),
 845 |             (r'#.*$', Comment),
 846 |             (r'[]{}:(),;[]', Punctuation),
 847 |             (r'\\\n', Whitespace),
 848 |             (r'\\', Text),
 849 |             (r'(in|is|and|or|not)\b', Operator.Word),
 850 |             (r'(<)([a-zA-Z0-9.?]+)(>)',
 851 |              bygroups(Punctuation, Keyword.Type, Punctuation)),
 852 |             (r'!=|==|<<|>>|[-~+/*%=<>&^|.?]', Operator),
 853 |             (r'(from)(\d+)(<=)(\s+)(<)(\d+)(:)',
 854 |              bygroups(Keyword, Number.Integer, Operator, Name, Operator,
 855 |                       Name, Punctuation)),
 856 |             include('keywords'),
 857 |             (r'(def|property)(\s+)', bygroups(Keyword, Text), 'funcname'),
 858 |             (r'(cp?def)(\s+)', bygroups(Keyword, Text), 'cdef'),
 859 |             # (should actually start a block with only cdefs)
 860 |             (r'(cdef)(:)', bygroups(Keyword, Punctuation)),
 861 |             (r'(class|struct)(\s+)', bygroups(Keyword, Text), 'classname'),
 862 |             (r'(from)(\s+)', bygroups(Keyword, Text), 'fromimport'),
 863 |             (r'(c?import)(\s+)', bygroups(Keyword, Text), 'import'),
 864 |             include('builtins'),
 865 |             include('backtick'),
 866 |             ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, 'tdqs'),
 867 |             ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, 'tsqs'),
 868 |             ('(?:[rR]|[uU][rR]|[rR][uU])"', String, 'dqs'),
 869 |             ("(?:[rR]|[uU][rR]|[rR][uU])'", String, 'sqs'),
 870 |             ('[uU]?"""', String, combined('stringescape', 'tdqs')),
 871 |             ("[uU]?'''", String, combined('stringescape', 'tsqs')),
 872 |             ('[uU]?"', String, combined('stringescape', 'dqs')),
 873 |             ("[uU]?'", String, combined('stringescape', 'sqs')),
 874 |             include('name'),
 875 |             include('numbers'),
 876 |         ],
 877 |         'keywords': [
 878 |             (words((
 879 |                 'assert', 'async', 'await', 'break', 'by', 'continue', 'ctypedef', 'del', 'elif',
 880 |                 'else', 'except', 'except?', 'exec', 'finally', 'for', 'fused', 'gil',
 881 |                 'global', 'if', 'include', 'lambda', 'nogil', 'pass', 'print',
 882 |                 'raise', 'return', 'try', 'while', 'yield', 'as', 'with'), suffix=r'\b'),
 883 |              Keyword),
 884 |             (r'(DEF|IF|ELIF|ELSE)\b', Comment.Preproc),
 885 |         ],
 886 |         'builtins': [
 887 |             (words((
 888 |                 '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bint',
 889 |                 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr',
 890 |                 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'delattr',
 891 |                 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit',
 892 |                 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals',
 893 |                 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'intern', 'isinstance',
 894 |                 'issubclass', 'iter', 'len', 'list', 'locals', 'long', 'map', 'max',
 895 |                 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'Py_ssize_t',
 896 |                 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed',
 897 |                 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod',
 898 |                 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'unsigned',
 899 |                 'vars', 'xrange', 'zip'), prefix=r'(?<!\.)', suffix=r'\b'),
 900 |              Name.Builtin),
 901 |             (r'(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL'
 902 |              r')\b', Name.Builtin.Pseudo),
 903 |             (words((
 904 |                 'ArithmeticError', 'AssertionError', 'AttributeError',
 905 |                 'BaseException', 'DeprecationWarning', 'EOFError', 'EnvironmentError',
 906 |                 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit',
 907 |                 'IOError', 'ImportError', 'ImportWarning', 'IndentationError',
 908 |                 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError',
 909 |                 'MemoryError', 'NameError', 'NotImplemented', 'NotImplementedError',
 910 |                 'OSError', 'OverflowError', 'OverflowWarning',
 911 |                 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError',
 912 |                 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError',
 913 |                 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError',
 914 |                 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
 915 |                 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
 916 |                 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning',
 917 |                 'ZeroDivisionError'), prefix=r'(?<!\.)', suffix=r'\b'),
 918 |              Name.Exception),
 919 |         ],
 920 |         'numbers': [
 921 |             (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
 922 |             (r'0\d+', Number.Oct),
 923 |             (r'0[xX][a-fA-F0-9]+', Number.Hex),
 924 |             (r'\d+L', Number.Integer.Long),
 925 |             (r'\d+', Number.Integer)
 926 |         ],
 927 |         'backtick': [
 928 |             ('`.*?`', String.Backtick),
 929 |         ],
 930 |         'name': [
 931 |             (r'@\w+', Name.Decorator),
 932 |             (r'[a-zA-Z_]\w*', Name),
 933 |         ],
 934 |         'funcname': [
 935 |             (r'[a-zA-Z_]\w*', Name.Function, '#pop')
 936 |         ],
 937 |         'cdef': [
 938 |             (r'(public|readonly|extern|api|inline)\b', Keyword.Reserved),
 939 |             (r'(struct|enum|union|class)\b', Keyword),
 940 |             (r'([a-zA-Z_]\w*)(\s*)(?=[(:#=]|$)',
 941 |              bygroups(Name.Function, Text), '#pop'),
 942 |             (r'([a-zA-Z_]\w*)(\s*)(,)',
 943 |              bygroups(Name.Function, Text, Punctuation)),
 944 |             (r'from\b', Keyword, '#pop'),
 945 |             (r'as\b', Keyword),
 946 |             (r':', Punctuation, '#pop'),
 947 |             (r'(?=["\'])', Text, '#pop'),
 948 |             (r'[a-zA-Z_]\w*', Keyword.Type),
 949 |             (r'.', Text),
 950 |         ],
 951 |         'classname': [
 952 |             (r'[a-zA-Z_]\w*', Name.Class, '#pop')
 953 |         ],
 954 |         'import': [
 955 |             (r'(\s+)(as)(\s+)', bygroups(Text, Keyword, Text)),
 956 |             (r'[a-zA-Z_][\w.]*', Name.Namespace),
 957 |             (r'(\s*)(,)(\s*)', bygroups(Text, Operator, Text)),
 958 |             default('#pop')  # all else: go back
 959 |         ],
 960 |         'fromimport': [
 961 |             (r'(\s+)(c?import)\b', bygroups(Text, Keyword), '#pop'),
 962 |             (r'[a-zA-Z_.][\w.]*', Name.Namespace),
 963 |             # ``cdef foo from "header"``, or ``for foo from 0 < i < 10``
 964 |             default('#pop'),
 965 |         ],
 966 |         'stringescape': [
 967 |             (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
 968 |              r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
 969 |         ],
 970 |         'strings': [
 971 |             (r'%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
 972 |              '[hlL]?[E-GXc-giorsux%]', String.Interpol),
 973 |             (r'[^\\\'"%\n]+', String),
 974 |             # quotes, percents and backslashes must be parsed one at a time
 975 |             (r'[\'"\\]', String),
 976 |             # unhandled string formatting sign
 977 |             (r'%', String)
 978 |             # newlines are an error (use "nl" state)
 979 |         ],
 980 |         'nl': [
 981 |             (r'\n', String)
 982 |         ],
 983 |         'dqs': [
 984 |             (r'"', String, '#pop'),
 985 |             (r'\\\\|\\"|\\\n', String.Escape),  # included here again for raw strings
 986 |             include('strings')
 987 |         ],
 988 |         'sqs': [
 989 |             (r"'", String, '#pop'),
 990 |             (r"\\\\|\\'|\\\n", String.Escape),  # included here again for raw strings
 991 |             include('strings')
 992 |         ],
 993 |         'tdqs': [
 994 |             (r'"""', String, '#pop'),
 995 |             include('strings'),
 996 |             include('nl')
 997 |         ],
 998 |         'tsqs': [
 999 |             (r"'''", String, '#pop'),
1000 |             include('strings'),
1001 |             include('nl')
1002 |         ],
1003 |     }
1004 | 
1005 | 
1006 | class DgLexer(RegexLexer):
1007 |     """
1008 |     Lexer for dg,
1009 |     a functional and object-oriented programming language
1010 |     running on the CPython 3 VM.
1011 |     """
1012 |     name = 'dg'
1013 |     aliases = ['dg']
1014 |     filenames = ['*.dg']
1015 |     mimetypes = ['text/x-dg']
1016 |     url = 'http://pyos.github.io/dg'
1017 |     version_added = '1.6'
1018 | 
1019 |     tokens = {
1020 |         'root': [
1021 |             (r'\s+', Text),
1022 |             (r'#.*?$', Comment.Single),
1023 | 
1024 |             (r'(?i)0b[01]+', Number.Bin),
1025 |             (r'(?i)0o[0-7]+', Number.Oct),
1026 |             (r'(?i)0x[0-9a-f]+', Number.Hex),
1027 |             (r'(?i)[+-]?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?j?', Number.Float),
1028 |             (r'(?i)[+-]?[0-9]+e[+-]?\d+j?', Number.Float),
1029 |             (r'(?i)[+-]?[0-9]+j?', Number.Integer),
1030 | 
1031 |             (r"(?i)(br|r?b?)'''", String, combined('stringescape', 'tsqs', 'string')),
1032 |             (r'(?i)(br|r?b?)"""', String, combined('stringescape', 'tdqs', 'string')),
1033 |             (r"(?i)(br|r?b?)'", String, combined('stringescape', 'sqs', 'string')),
1034 |             (r'(?i)(br|r?b?)"', String, combined('stringescape', 'dqs', 'string')),
1035 | 
1036 |             (r"`\w+'*`", Operator),
1037 |             (r'\b(and|in|is|or|where)\b', Operator.Word),
1038 |             (r'[!$%&*+\-./:<-@\\^|~;,]+', Operator),
1039 | 
1040 |             (words((
1041 |                 'bool', 'bytearray', 'bytes', 'classmethod', 'complex', 'dict', 'dict\'',
1042 |                 'float', 'frozenset', 'int', 'list', 'list\'', 'memoryview', 'object',
1043 |                 'property', 'range', 'set', 'set\'', 'slice', 'staticmethod', 'str',
1044 |                 'super', 'tuple', 'tuple\'', 'type'),
1045 |                    prefix=r'(?<!\.)', suffix=r'(?![\'\w])'),
1046 |              Name.Builtin),
1047 |             (words((
1048 |                 '__import__', 'abs', 'all', 'any', 'bin', 'bind', 'chr', 'cmp', 'compile',
1049 |                 'complex', 'delattr', 'dir', 'divmod', 'drop', 'dropwhile', 'enumerate',
1050 |                 'eval', 'exhaust', 'filter', 'flip', 'foldl1?', 'format', 'fst',
1051 |                 'getattr', 'globals', 'hasattr', 'hash', 'head', 'hex', 'id', 'init',
1052 |                 'input', 'isinstance', 'issubclass', 'iter', 'iterate', 'last', 'len',
1053 |                 'locals', 'map', 'max', 'min', 'next', 'oct', 'open', 'ord', 'pow',
1054 |                 'print', 'repr', 'reversed', 'round', 'setattr', 'scanl1?', 'snd',
1055 |                 'sorted', 'sum', 'tail', 'take', 'takewhile', 'vars', 'zip'),
1056 |                    prefix=r'(?<!\.)', suffix=r'(?![\'\w])'),
1057 |              Name.Builtin),
1058 |             (r"(?<!\.)(self|Ellipsis|NotImplemented|None|True|False)(?!['\w])",
1059 |              Name.Builtin.Pseudo),
1060 | 
1061 |             (r"(?<!\.)[A-Z]\w*(Error|Exception|Warning)'*(?!['\w])",
1062 |              Name.Exception),
1063 |             (r"(?<!\.)(Exception|GeneratorExit|KeyboardInterrupt|StopIteration|"
1064 |              r"SystemExit)(?!['\w])", Name.Exception),
1065 | 
1066 |             (r"(?<![\w.])(except|finally|for|if|import|not|otherwise|raise|"
1067 |              r"subclass|while|with|yield)(?!['\w])", Keyword.Reserved),
1068 | 
1069 |             (r"[A-Z_]+'*(?!['\w])", Name),
1070 |             (r"[A-Z]\w+'*(?!['\w])", Keyword.Type),
1071 |             (r"\w+'*", Name),
1072 | 
1073 |             (r'[()]', Punctuation),
1074 |             (r'.', Error),
1075 |         ],
1076 |         'stringescape': [
1077 |             (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|'
1078 |              r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
1079 |         ],
1080 |         'string': [
1081 |             (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
1082 |              '[hlL]?[E-GXc-giorsux%]', String.Interpol),
1083 |             (r'[^\\\'"%\n]+', String),
1084 |             # quotes, percents and backslashes must be parsed one at a time
1085 |             (r'[\'"\\]', String),
1086 |             # unhandled string formatting sign
1087 |             (r'%', String),
1088 |             (r'\n', String)
1089 |         ],
1090 |         'dqs': [
1091 |             (r'"', String, '#pop')
1092 |         ],
1093 |         'sqs': [
1094 |             (r"'", String, '#pop')
1095 |         ],
1096 |         'tdqs': [
1097 |             (r'"""', String, '#pop')
1098 |         ],
1099 |         'tsqs': [
1100 |             (r"'''", String, '#pop')
1101 |         ],
1102 |     }
1103 | 
1104 | 
1105 | class NumPyLexer(PythonLexer):
1106 |     """
1107 |     A Python lexer recognizing Numerical Python builtins.
1108 |     """
1109 | 
1110 |     name = 'NumPy'
1111 |     url = 'https://numpy.org/'
1112 |     aliases = ['numpy']
1113 |     version_added = '0.10'
1114 | 
1115 |     # override the mimetypes to not inherit them from python
1116 |     mimetypes = []
1117 |     filenames = []
1118 | 
1119 |     EXTRA_KEYWORDS = {
1120 |         'abs', 'absolute', 'accumulate', 'add', 'alen', 'all', 'allclose',
1121 |         'alltrue', 'alterdot', 'amax', 'amin', 'angle', 'any', 'append',
1122 |         'apply_along_axis', 'apply_over_axes', 'arange', 'arccos', 'arccosh',
1123 |         'arcsin', 'arcsinh', 'arctan', 'arctan2', 'arctanh', 'argmax', 'argmin',
1124 |         'argsort', 'argwhere', 'around', 'array', 'array2string', 'array_equal',
1125 |         'array_equiv', 'array_repr', 'array_split', 'array_str', 'arrayrange',
1126 |         'asanyarray', 'asarray', 'asarray_chkfinite', 'ascontiguousarray',
1127 |         'asfarray', 'asfortranarray', 'asmatrix', 'asscalar', 'astype',
1128 |         'atleast_1d', 'atleast_2d', 'atleast_3d', 'average', 'bartlett',
1129 |         'base_repr', 'beta', 'binary_repr', 'bincount', 'binomial',
1130 |         'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'blackman',
1131 |         'bmat', 'broadcast', 'byte_bounds', 'bytes', 'byteswap', 'c_',
1132 |         'can_cast', 'ceil', 'choose', 'clip', 'column_stack', 'common_type',
1133 |         'compare_chararrays', 'compress', 'concatenate', 'conj', 'conjugate',
1134 |         'convolve', 'copy', 'corrcoef', 'correlate', 'cos', 'cosh', 'cov',
1135 |         'cross', 'cumprod', 'cumproduct', 'cumsum', 'delete', 'deprecate',
1136 |         'diag', 'diagflat', 'diagonal', 'diff', 'digitize', 'disp', 'divide',
1137 |         'dot', 'dsplit', 'dstack', 'dtype', 'dump', 'dumps', 'ediff1d', 'empty',
1138 |         'empty_like', 'equal', 'exp', 'expand_dims', 'expm1', 'extract', 'eye',
1139 |         'fabs', 'fastCopyAndTranspose', 'fft', 'fftfreq', 'fftshift', 'fill',
1140 |         'finfo', 'fix', 'flat', 'flatnonzero', 'flatten', 'fliplr', 'flipud',
1141 |         'floor', 'floor_divide', 'fmod', 'frexp', 'fromarrays', 'frombuffer',
1142 |         'fromfile', 'fromfunction', 'fromiter', 'frompyfunc', 'fromstring',
1143 |         'generic', 'get_array_wrap', 'get_include', 'get_numarray_include',
1144 |         'get_numpy_include', 'get_printoptions', 'getbuffer', 'getbufsize',
1145 |         'geterr', 'geterrcall', 'geterrobj', 'getfield', 'gradient', 'greater',
1146 |         'greater_equal', 'gumbel', 'hamming', 'hanning', 'histogram',
1147 |         'histogram2d', 'histogramdd', 'hsplit', 'hstack', 'hypot', 'i0',
1148 |         'identity', 'ifft', 'imag', 'index_exp', 'indices', 'inf', 'info',
1149 |         'inner', 'insert', 'int_asbuffer', 'interp', 'intersect1d',
1150 |         'intersect1d_nu', 'inv', 'invert', 'iscomplex', 'iscomplexobj',
1151 |         'isfinite', 'isfortran', 'isinf', 'isnan', 'isneginf', 'isposinf',
1152 |         'isreal', 'isrealobj', 'isscalar', 'issctype', 'issubclass_',
1153 |         'issubdtype', 'issubsctype', 'item', 'itemset', 'iterable', 'ix_',
1154 |         'kaiser', 'kron', 'ldexp', 'left_shift', 'less', 'less_equal', 'lexsort',
1155 |         'linspace', 'load', 'loads', 'loadtxt', 'log', 'log10', 'log1p', 'log2',
1156 |         'logical_and', 'logical_not', 'logical_or', 'logical_xor', 'logspace',
1157 |         'lstsq', 'mat', 'matrix', 'max', 'maximum', 'maximum_sctype',
1158 |         'may_share_memory', 'mean', 'median', 'meshgrid', 'mgrid', 'min',
1159 |         'minimum', 'mintypecode', 'mod', 'modf', 'msort', 'multiply', 'nan',
1160 |         'nan_to_num', 'nanargmax', 'nanargmin', 'nanmax', 'nanmin', 'nansum',
1161 |         'ndenumerate', 'ndim', 'ndindex', 'negative', 'newaxis', 'newbuffer',
1162 |         'newbyteorder', 'nonzero', 'not_equal', 'obj2sctype', 'ogrid', 'ones',
1163 |         'ones_like', 'outer', 'permutation', 'piecewise', 'pinv', 'pkgload',
1164 |         'place', 'poisson', 'poly', 'poly1d', 'polyadd', 'polyder', 'polydiv',
1165 |         'polyfit', 'polyint', 'polymul', 'polysub', 'polyval', 'power', 'prod',
1166 |         'product', 'ptp', 'put', 'putmask', 'r_', 'randint', 'random_integers',
1167 |         'random_sample', 'ranf', 'rank', 'ravel', 'real', 'real_if_close',
1168 |         'recarray', 'reciprocal', 'reduce', 'remainder', 'repeat', 'require',
1169 |         'reshape', 'resize', 'restoredot', 'right_shift', 'rint', 'roll',
1170 |         'rollaxis', 'roots', 'rot90', 'round', 'round_', 'row_stack', 's_',
1171 |         'sample', 'savetxt', 'sctype2char', 'searchsorted', 'seed', 'select',
1172 |         'set_numeric_ops', 'set_printoptions', 'set_string_function',
1173 |         'setbufsize', 'setdiff1d', 'seterr', 'seterrcall', 'seterrobj',
1174 |         'setfield', 'setflags', 'setmember1d', 'setxor1d', 'shape',
1175 |         'show_config', 'shuffle', 'sign', 'signbit', 'sin', 'sinc', 'sinh',
1176 |         'size', 'slice', 'solve', 'sometrue', 'sort', 'sort_complex', 'source',
1177 |         'split', 'sqrt', 'square', 'squeeze', 'standard_normal', 'std',
1178 |         'subtract', 'sum', 'svd', 'swapaxes', 'take', 'tan', 'tanh', 'tensordot',
1179 |         'test', 'tile', 'tofile', 'tolist', 'tostring', 'trace', 'transpose',
1180 |         'trapz', 'tri', 'tril', 'trim_zeros', 'triu', 'true_divide', 'typeDict',
1181 |         'typename', 'uniform', 'union1d', 'unique', 'unique1d', 'unravel_index',
1182 |         'unwrap', 'vander', 'var', 'vdot', 'vectorize', 'view', 'vonmises',
1183 |         'vsplit', 'vstack', 'weibull', 'where', 'who', 'zeros', 'zeros_like'
1184 |     }
1185 | 
1186 |     def get_tokens_unprocessed(self, text):
1187 |         for index, token, value in \
1188 |                 PythonLexer.get_tokens_unprocessed(self, text):
1189 |             if token is Name and value in self.EXTRA_KEYWORDS:
1190 |                 yield index, Keyword.Pseudo, value
1191 |             else:
1192 |                 yield index, token, value
1193 | 
1194 |     def analyse_text(text):
1195 |         ltext = text[:1000]
1196 |         return (shebang_matches(text, r'pythonw?(3(\.\d)?)?') or
1197 |                 'import ' in ltext) \
1198 |             and ('import numpy' in ltext or 'from numpy import' in ltext)
1199 | 
```
Page 147/168FirstPrevNextLast