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

# Directory Structure

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

# Files

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

```
  1 | /*
  2 |  * Summary: internal interfaces for XML Schemas
  3 |  * Description: internal interfaces for the XML Schemas handling
  4 |  *              and schema validity checking
  5 |  *		The Schemas development is a Work In Progress.
  6 |  *              Some of those interfaces are not guaranteed to be API or ABI stable !
  7 |  *
  8 |  * Copy: See Copyright for the status of this software.
  9 |  *
 10 |  * Author: Daniel Veillard
 11 |  */
 12 | 
 13 | 
 14 | #ifndef __XML_SCHEMA_INTERNALS_H__
 15 | #define __XML_SCHEMA_INTERNALS_H__
 16 | 
 17 | #include <libxml/xmlversion.h>
 18 | 
 19 | #ifdef LIBXML_SCHEMAS_ENABLED
 20 | 
 21 | #include <libxml/xmlregexp.h>
 22 | #include <libxml/hash.h>
 23 | #include <libxml/dict.h>
 24 | #include <libxml/tree.h>
 25 | 
 26 | #ifdef __cplusplus
 27 | extern "C" {
 28 | #endif
 29 | 
 30 | typedef enum {
 31 |     XML_SCHEMAS_UNKNOWN = 0,
 32 |     XML_SCHEMAS_STRING = 1,
 33 |     XML_SCHEMAS_NORMSTRING = 2,
 34 |     XML_SCHEMAS_DECIMAL = 3,
 35 |     XML_SCHEMAS_TIME = 4,
 36 |     XML_SCHEMAS_GDAY = 5,
 37 |     XML_SCHEMAS_GMONTH = 6,
 38 |     XML_SCHEMAS_GMONTHDAY = 7,
 39 |     XML_SCHEMAS_GYEAR = 8,
 40 |     XML_SCHEMAS_GYEARMONTH = 9,
 41 |     XML_SCHEMAS_DATE = 10,
 42 |     XML_SCHEMAS_DATETIME = 11,
 43 |     XML_SCHEMAS_DURATION = 12,
 44 |     XML_SCHEMAS_FLOAT = 13,
 45 |     XML_SCHEMAS_DOUBLE = 14,
 46 |     XML_SCHEMAS_BOOLEAN = 15,
 47 |     XML_SCHEMAS_TOKEN = 16,
 48 |     XML_SCHEMAS_LANGUAGE = 17,
 49 |     XML_SCHEMAS_NMTOKEN = 18,
 50 |     XML_SCHEMAS_NMTOKENS = 19,
 51 |     XML_SCHEMAS_NAME = 20,
 52 |     XML_SCHEMAS_QNAME = 21,
 53 |     XML_SCHEMAS_NCNAME = 22,
 54 |     XML_SCHEMAS_ID = 23,
 55 |     XML_SCHEMAS_IDREF = 24,
 56 |     XML_SCHEMAS_IDREFS = 25,
 57 |     XML_SCHEMAS_ENTITY = 26,
 58 |     XML_SCHEMAS_ENTITIES = 27,
 59 |     XML_SCHEMAS_NOTATION = 28,
 60 |     XML_SCHEMAS_ANYURI = 29,
 61 |     XML_SCHEMAS_INTEGER = 30,
 62 |     XML_SCHEMAS_NPINTEGER = 31,
 63 |     XML_SCHEMAS_NINTEGER = 32,
 64 |     XML_SCHEMAS_NNINTEGER = 33,
 65 |     XML_SCHEMAS_PINTEGER = 34,
 66 |     XML_SCHEMAS_INT = 35,
 67 |     XML_SCHEMAS_UINT = 36,
 68 |     XML_SCHEMAS_LONG = 37,
 69 |     XML_SCHEMAS_ULONG = 38,
 70 |     XML_SCHEMAS_SHORT = 39,
 71 |     XML_SCHEMAS_USHORT = 40,
 72 |     XML_SCHEMAS_BYTE = 41,
 73 |     XML_SCHEMAS_UBYTE = 42,
 74 |     XML_SCHEMAS_HEXBINARY = 43,
 75 |     XML_SCHEMAS_BASE64BINARY = 44,
 76 |     XML_SCHEMAS_ANYTYPE = 45,
 77 |     XML_SCHEMAS_ANYSIMPLETYPE = 46
 78 | } xmlSchemaValType;
 79 | 
 80 | /*
 81 |  * XML Schemas defines multiple type of types.
 82 |  */
 83 | typedef enum {
 84 |     XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
 85 |     XML_SCHEMA_TYPE_ANY,
 86 |     XML_SCHEMA_TYPE_FACET,
 87 |     XML_SCHEMA_TYPE_SIMPLE,
 88 |     XML_SCHEMA_TYPE_COMPLEX,
 89 |     XML_SCHEMA_TYPE_SEQUENCE = 6,
 90 |     XML_SCHEMA_TYPE_CHOICE,
 91 |     XML_SCHEMA_TYPE_ALL,
 92 |     XML_SCHEMA_TYPE_SIMPLE_CONTENT,
 93 |     XML_SCHEMA_TYPE_COMPLEX_CONTENT,
 94 |     XML_SCHEMA_TYPE_UR,
 95 |     XML_SCHEMA_TYPE_RESTRICTION,
 96 |     XML_SCHEMA_TYPE_EXTENSION,
 97 |     XML_SCHEMA_TYPE_ELEMENT,
 98 |     XML_SCHEMA_TYPE_ATTRIBUTE,
 99 |     XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
100 |     XML_SCHEMA_TYPE_GROUP,
101 |     XML_SCHEMA_TYPE_NOTATION,
102 |     XML_SCHEMA_TYPE_LIST,
103 |     XML_SCHEMA_TYPE_UNION,
104 |     XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
105 |     XML_SCHEMA_TYPE_IDC_UNIQUE,
106 |     XML_SCHEMA_TYPE_IDC_KEY,
107 |     XML_SCHEMA_TYPE_IDC_KEYREF,
108 |     XML_SCHEMA_TYPE_PARTICLE = 25,
109 |     XML_SCHEMA_TYPE_ATTRIBUTE_USE,
110 |     XML_SCHEMA_FACET_MININCLUSIVE = 1000,
111 |     XML_SCHEMA_FACET_MINEXCLUSIVE,
112 |     XML_SCHEMA_FACET_MAXINCLUSIVE,
113 |     XML_SCHEMA_FACET_MAXEXCLUSIVE,
114 |     XML_SCHEMA_FACET_TOTALDIGITS,
115 |     XML_SCHEMA_FACET_FRACTIONDIGITS,
116 |     XML_SCHEMA_FACET_PATTERN,
117 |     XML_SCHEMA_FACET_ENUMERATION,
118 |     XML_SCHEMA_FACET_WHITESPACE,
119 |     XML_SCHEMA_FACET_LENGTH,
120 |     XML_SCHEMA_FACET_MAXLENGTH,
121 |     XML_SCHEMA_FACET_MINLENGTH,
122 |     XML_SCHEMA_EXTRA_QNAMEREF = 2000,
123 |     XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
124 | } xmlSchemaTypeType;
125 | 
126 | typedef enum {
127 |     XML_SCHEMA_CONTENT_UNKNOWN = 0,
128 |     XML_SCHEMA_CONTENT_EMPTY = 1,
129 |     XML_SCHEMA_CONTENT_ELEMENTS,
130 |     XML_SCHEMA_CONTENT_MIXED,
131 |     XML_SCHEMA_CONTENT_SIMPLE,
132 |     XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */
133 |     XML_SCHEMA_CONTENT_BASIC,
134 |     XML_SCHEMA_CONTENT_ANY
135 | } xmlSchemaContentType;
136 | 
137 | typedef struct _xmlSchemaVal xmlSchemaVal;
138 | typedef xmlSchemaVal *xmlSchemaValPtr;
139 | 
140 | typedef struct _xmlSchemaType xmlSchemaType;
141 | typedef xmlSchemaType *xmlSchemaTypePtr;
142 | 
143 | typedef struct _xmlSchemaFacet xmlSchemaFacet;
144 | typedef xmlSchemaFacet *xmlSchemaFacetPtr;
145 | 
146 | /**
147 |  * Annotation
148 |  */
149 | typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
150 | typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;
151 | struct _xmlSchemaAnnot {
152 |     struct _xmlSchemaAnnot *next;
153 |     xmlNodePtr content;         /* the annotation */
154 | };
155 | 
156 | /**
157 |  * XML_SCHEMAS_ANYATTR_SKIP:
158 |  *
159 |  * Skip unknown attribute from validation
160 |  * Obsolete, not used anymore.
161 |  */
162 | #define XML_SCHEMAS_ANYATTR_SKIP        1
163 | /**
164 |  * XML_SCHEMAS_ANYATTR_LAX:
165 |  *
166 |  * Ignore validation non definition on attributes
167 |  * Obsolete, not used anymore.
168 |  */
169 | #define XML_SCHEMAS_ANYATTR_LAX                2
170 | /**
171 |  * XML_SCHEMAS_ANYATTR_STRICT:
172 |  *
173 |  * Apply strict validation rules on attributes
174 |  * Obsolete, not used anymore.
175 |  */
176 | #define XML_SCHEMAS_ANYATTR_STRICT        3
177 | /**
178 |  * XML_SCHEMAS_ANY_SKIP:
179 |  *
180 |  * Skip unknown attribute from validation
181 |  */
182 | #define XML_SCHEMAS_ANY_SKIP        1
183 | /**
184 |  * XML_SCHEMAS_ANY_LAX:
185 |  *
186 |  * Used by wildcards.
187 |  * Validate if type found, don't worry if not found
188 |  */
189 | #define XML_SCHEMAS_ANY_LAX                2
190 | /**
191 |  * XML_SCHEMAS_ANY_STRICT:
192 |  *
193 |  * Used by wildcards.
194 |  * Apply strict validation rules
195 |  */
196 | #define XML_SCHEMAS_ANY_STRICT        3
197 | /**
198 |  * XML_SCHEMAS_ATTR_USE_PROHIBITED:
199 |  *
200 |  * Used by wildcards.
201 |  * The attribute is prohibited.
202 |  */
203 | #define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
204 | /**
205 |  * XML_SCHEMAS_ATTR_USE_REQUIRED:
206 |  *
207 |  * The attribute is required.
208 |  */
209 | #define XML_SCHEMAS_ATTR_USE_REQUIRED 1
210 | /**
211 |  * XML_SCHEMAS_ATTR_USE_OPTIONAL:
212 |  *
213 |  * The attribute is optional.
214 |  */
215 | #define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
216 | /**
217 |  * XML_SCHEMAS_ATTR_GLOBAL:
218 |  *
219 |  * allow elements in no namespace
220 |  */
221 | #define XML_SCHEMAS_ATTR_GLOBAL        1 << 0
222 | /**
223 |  * XML_SCHEMAS_ATTR_NSDEFAULT:
224 |  *
225 |  * allow elements in no namespace
226 |  */
227 | #define XML_SCHEMAS_ATTR_NSDEFAULT        1 << 7
228 | /**
229 |  * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
230 |  *
231 |  * this is set when the "type" and "ref" references
232 |  * have been resolved.
233 |  */
234 | #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED        1 << 8
235 | /**
236 |  * XML_SCHEMAS_ATTR_FIXED:
237 |  *
238 |  * the attribute has a fixed value
239 |  */
240 | #define XML_SCHEMAS_ATTR_FIXED        1 << 9
241 | 
242 | /**
243 |  * xmlSchemaAttribute:
244 |  * An attribute definition.
245 |  */
246 | 
247 | typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
248 | typedef xmlSchemaAttribute *xmlSchemaAttributePtr;
249 | struct _xmlSchemaAttribute {
250 |     xmlSchemaTypeType type;
251 |     struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */
252 |     const xmlChar *name; /* the name of the declaration */
253 |     const xmlChar *id; /* Deprecated; not used */
254 |     const xmlChar *ref; /* Deprecated; not used */
255 |     const xmlChar *refNs; /* Deprecated; not used */
256 |     const xmlChar *typeName; /* the local name of the type definition */
257 |     const xmlChar *typeNs; /* the ns URI of the type definition */
258 |     xmlSchemaAnnotPtr annot;
259 | 
260 |     xmlSchemaTypePtr base; /* Deprecated; not used */
261 |     int occurs; /* Deprecated; not used */
262 |     const xmlChar *defValue; /* The initial value of the value constraint */
263 |     xmlSchemaTypePtr subtypes; /* the type definition */
264 |     xmlNodePtr node;
265 |     const xmlChar *targetNamespace;
266 |     int flags;
267 |     const xmlChar *refPrefix; /* Deprecated; not used */
268 |     xmlSchemaValPtr defVal; /* The compiled value constraint */
269 |     xmlSchemaAttributePtr refDecl; /* Deprecated; not used */
270 | };
271 | 
272 | /**
273 |  * xmlSchemaAttributeLink:
274 |  * Used to build a list of attribute uses on complexType definitions.
275 |  * WARNING: Deprecated; not used.
276 |  */
277 | typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
278 | typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
279 | struct _xmlSchemaAttributeLink {
280 |     struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
281 |     struct _xmlSchemaAttribute *attr;/* the linked attribute */
282 | };
283 | 
284 | /**
285 |  * XML_SCHEMAS_WILDCARD_COMPLETE:
286 |  *
287 |  * If the wildcard is complete.
288 |  */
289 | #define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
290 | 
291 | /**
292 |  * xmlSchemaCharValueLink:
293 |  * Used to build a list of namespaces on wildcards.
294 |  */
295 | typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
296 | typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
297 | struct _xmlSchemaWildcardNs {
298 |     struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
299 |     const xmlChar *value;/* the value */
300 | };
301 | 
302 | /**
303 |  * xmlSchemaWildcard.
304 |  * A wildcard.
305 |  */
306 | typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
307 | typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
308 | struct _xmlSchemaWildcard {
309 |     xmlSchemaTypeType type;        /* The kind of type */
310 |     const xmlChar *id; /* Deprecated; not used */
311 |     xmlSchemaAnnotPtr annot;
312 |     xmlNodePtr node;
313 |     int minOccurs; /* Deprecated; not used */
314 |     int maxOccurs; /* Deprecated; not used */
315 |     int processContents;
316 |     int any; /* Indicates if the ns constraint is of ##any */
317 |     xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
318 |     xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
319 |     int flags;
320 | };
321 | 
322 | /**
323 |  * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
324 |  *
325 |  * The attribute wildcard has been built.
326 |  */
327 | #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
328 | /**
329 |  * XML_SCHEMAS_ATTRGROUP_GLOBAL:
330 |  *
331 |  * The attribute group has been defined.
332 |  */
333 | #define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
334 | /**
335 |  * XML_SCHEMAS_ATTRGROUP_MARKED:
336 |  *
337 |  * Marks the attr group as marked; used for circular checks.
338 |  */
339 | #define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2
340 | 
341 | /**
342 |  * XML_SCHEMAS_ATTRGROUP_REDEFINED:
343 |  *
344 |  * The attr group was redefined.
345 |  */
346 | #define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3
347 | /**
348 |  * XML_SCHEMAS_ATTRGROUP_HAS_REFS:
349 |  *
350 |  * Whether this attr. group contains attr. group references.
351 |  */
352 | #define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4
353 | 
354 | /**
355 |  * An attribute group definition.
356 |  *
357 |  * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
358 |  * must be kept similar
359 |  */
360 | typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
361 | typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;
362 | struct _xmlSchemaAttributeGroup {
363 |     xmlSchemaTypeType type;        /* The kind of type */
364 |     struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
365 |     const xmlChar *name;
366 |     const xmlChar *id;
367 |     const xmlChar *ref; /* Deprecated; not used */
368 |     const xmlChar *refNs; /* Deprecated; not used */
369 |     xmlSchemaAnnotPtr annot;
370 | 
371 |     xmlSchemaAttributePtr attributes; /* Deprecated; not used */
372 |     xmlNodePtr node;
373 |     int flags;
374 |     xmlSchemaWildcardPtr attributeWildcard;
375 |     const xmlChar *refPrefix; /* Deprecated; not used */
376 |     xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */
377 |     const xmlChar *targetNamespace;
378 |     void *attrUses;
379 | };
380 | 
381 | /**
382 |  * xmlSchemaTypeLink:
383 |  * Used to build a list of types (e.g. member types of
384 |  * simpleType with variety "union").
385 |  */
386 | typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
387 | typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
388 | struct _xmlSchemaTypeLink {
389 |     struct _xmlSchemaTypeLink *next;/* the next type link ... */
390 |     xmlSchemaTypePtr type;/* the linked type */
391 | };
392 | 
393 | /**
394 |  * xmlSchemaFacetLink:
395 |  * Used to build a list of facets.
396 |  */
397 | typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
398 | typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
399 | struct _xmlSchemaFacetLink {
400 |     struct _xmlSchemaFacetLink *next;/* the next facet link ... */
401 |     xmlSchemaFacetPtr facet;/* the linked facet */
402 | };
403 | 
404 | /**
405 |  * XML_SCHEMAS_TYPE_MIXED:
406 |  *
407 |  * the element content type is mixed
408 |  */
409 | #define XML_SCHEMAS_TYPE_MIXED                1 << 0
410 | /**
411 |  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
412 |  *
413 |  * the simple or complex type has a derivation method of "extension".
414 |  */
415 | #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION                1 << 1
416 | /**
417 |  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
418 |  *
419 |  * the simple or complex type has a derivation method of "restriction".
420 |  */
421 | #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION                1 << 2
422 | /**
423 |  * XML_SCHEMAS_TYPE_GLOBAL:
424 |  *
425 |  * the type is global
426 |  */
427 | #define XML_SCHEMAS_TYPE_GLOBAL                1 << 3
428 | /**
429 |  * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
430 |  *
431 |  * the complexType owns an attribute wildcard, i.e.
432 |  * it can be freed by the complexType
433 |  */
434 | #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD    1 << 4 /* Obsolete. */
435 | /**
436 |  * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
437 |  *
438 |  * the simpleType has a variety of "absent".
439 |  * TODO: Actually not necessary :-/, since if
440 |  * none of the variety flags occur then it's
441 |  * automatically absent.
442 |  */
443 | #define XML_SCHEMAS_TYPE_VARIETY_ABSENT    1 << 5
444 | /**
445 |  * XML_SCHEMAS_TYPE_VARIETY_LIST:
446 |  *
447 |  * the simpleType has a variety of "list".
448 |  */
449 | #define XML_SCHEMAS_TYPE_VARIETY_LIST    1 << 6
450 | /**
451 |  * XML_SCHEMAS_TYPE_VARIETY_UNION:
452 |  *
453 |  * the simpleType has a variety of "union".
454 |  */
455 | #define XML_SCHEMAS_TYPE_VARIETY_UNION    1 << 7
456 | /**
457 |  * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
458 |  *
459 |  * the simpleType has a variety of "union".
460 |  */
461 | #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC    1 << 8
462 | /**
463 |  * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
464 |  *
465 |  * the complexType has a final of "extension".
466 |  */
467 | #define XML_SCHEMAS_TYPE_FINAL_EXTENSION    1 << 9
468 | /**
469 |  * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
470 |  *
471 |  * the simpleType/complexType has a final of "restriction".
472 |  */
473 | #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION    1 << 10
474 | /**
475 |  * XML_SCHEMAS_TYPE_FINAL_LIST:
476 |  *
477 |  * the simpleType has a final of "list".
478 |  */
479 | #define XML_SCHEMAS_TYPE_FINAL_LIST    1 << 11
480 | /**
481 |  * XML_SCHEMAS_TYPE_FINAL_UNION:
482 |  *
483 |  * the simpleType has a final of "union".
484 |  */
485 | #define XML_SCHEMAS_TYPE_FINAL_UNION    1 << 12
486 | /**
487 |  * XML_SCHEMAS_TYPE_FINAL_DEFAULT:
488 |  *
489 |  * the simpleType has a final of "default".
490 |  */
491 | #define XML_SCHEMAS_TYPE_FINAL_DEFAULT    1 << 13
492 | /**
493 |  * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
494 |  *
495 |  * Marks the item as a builtin primitive.
496 |  */
497 | #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE    1 << 14
498 | /**
499 |  * XML_SCHEMAS_TYPE_MARKED:
500 |  *
501 |  * Marks the item as marked; used for circular checks.
502 |  */
503 | #define XML_SCHEMAS_TYPE_MARKED        1 << 16
504 | /**
505 |  * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
506 |  *
507 |  * the complexType did not specify 'block' so use the default of the
508 |  * <schema> item.
509 |  */
510 | #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT    1 << 17
511 | /**
512 |  * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
513 |  *
514 |  * the complexType has a 'block' of "extension".
515 |  */
516 | #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION    1 << 18
517 | /**
518 |  * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
519 |  *
520 |  * the complexType has a 'block' of "restriction".
521 |  */
522 | #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION    1 << 19
523 | /**
524 |  * XML_SCHEMAS_TYPE_ABSTRACT:
525 |  *
526 |  * the simple/complexType is abstract.
527 |  */
528 | #define XML_SCHEMAS_TYPE_ABSTRACT    1 << 20
529 | /**
530 |  * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
531 |  *
532 |  * indicates if the facets need a computed value
533 |  */
534 | #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE    1 << 21
535 | /**
536 |  * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
537 |  *
538 |  * indicates that the type was typefixed
539 |  */
540 | #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED    1 << 22
541 | /**
542 |  * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
543 |  *
544 |  * indicates that the type is invalid
545 |  */
546 | #define XML_SCHEMAS_TYPE_INTERNAL_INVALID    1 << 23
547 | /**
548 |  * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
549 |  *
550 |  * a whitespace-facet value of "preserve"
551 |  */
552 | #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE    1 << 24
553 | /**
554 |  * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
555 |  *
556 |  * a whitespace-facet value of "replace"
557 |  */
558 | #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE    1 << 25
559 | /**
560 |  * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
561 |  *
562 |  * a whitespace-facet value of "collapse"
563 |  */
564 | #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE    1 << 26
565 | /**
566 |  * XML_SCHEMAS_TYPE_HAS_FACETS:
567 |  *
568 |  * has facets
569 |  */
570 | #define XML_SCHEMAS_TYPE_HAS_FACETS    1 << 27
571 | /**
572 |  * XML_SCHEMAS_TYPE_NORMVALUENEEDED:
573 |  *
574 |  * indicates if the facets (pattern) need a normalized value
575 |  */
576 | #define XML_SCHEMAS_TYPE_NORMVALUENEEDED    1 << 28
577 | 
578 | /**
579 |  * XML_SCHEMAS_TYPE_FIXUP_1:
580 |  *
581 |  * First stage of fixup was done.
582 |  */
583 | #define XML_SCHEMAS_TYPE_FIXUP_1    1 << 29
584 | 
585 | /**
586 |  * XML_SCHEMAS_TYPE_REDEFINED:
587 |  *
588 |  * The type was redefined.
589 |  */
590 | #define XML_SCHEMAS_TYPE_REDEFINED    1 << 30
591 | /**
592 |  * XML_SCHEMAS_TYPE_REDEFINING:
593 |  *
594 |  * The type redefines an other type.
595 |  */
596 | /* #define XML_SCHEMAS_TYPE_REDEFINING    1 << 31 */
597 | 
598 | /**
599 |  * _xmlSchemaType:
600 |  *
601 |  * Schemas type definition.
602 |  */
603 | struct _xmlSchemaType {
604 |     xmlSchemaTypeType type; /* The kind of type */
605 |     struct _xmlSchemaType *next; /* the next type if in a sequence ... */
606 |     const xmlChar *name;
607 |     const xmlChar *id ; /* Deprecated; not used */
608 |     const xmlChar *ref; /* Deprecated; not used */
609 |     const xmlChar *refNs; /* Deprecated; not used */
610 |     xmlSchemaAnnotPtr annot;
611 |     xmlSchemaTypePtr subtypes;
612 |     xmlSchemaAttributePtr attributes; /* Deprecated; not used */
613 |     xmlNodePtr node;
614 |     int minOccurs; /* Deprecated; not used */
615 |     int maxOccurs; /* Deprecated; not used */
616 | 
617 |     int flags;
618 |     xmlSchemaContentType contentType;
619 |     const xmlChar *base; /* Base type's local name */
620 |     const xmlChar *baseNs; /* Base type's target namespace */
621 |     xmlSchemaTypePtr baseType; /* The base type component */
622 |     xmlSchemaFacetPtr facets; /* Local facets */
623 |     struct _xmlSchemaType *redef; /* Deprecated; not used */
624 |     int recurse; /* Obsolete */
625 |     xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */
626 |     xmlSchemaWildcardPtr attributeWildcard;
627 |     int builtInType; /* Type of built-in types. */
628 |     xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */
629 |     xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */
630 |     const xmlChar *refPrefix; /* Deprecated; not used */
631 |     xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types.
632 |                                         Could we use @subtypes for this? */
633 |     xmlRegexpPtr contModel; /* Holds the automaton of the content model */
634 |     const xmlChar *targetNamespace;
635 |     void *attrUses;
636 | };
637 | 
638 | /*
639 |  * xmlSchemaElement:
640 |  * An element definition.
641 |  *
642 |  * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
643 |  * structures must be kept similar
644 |  */
645 | /**
646 |  * XML_SCHEMAS_ELEM_NILLABLE:
647 |  *
648 |  * the element is nillable
649 |  */
650 | #define XML_SCHEMAS_ELEM_NILLABLE        1 << 0
651 | /**
652 |  * XML_SCHEMAS_ELEM_GLOBAL:
653 |  *
654 |  * the element is global
655 |  */
656 | #define XML_SCHEMAS_ELEM_GLOBAL                1 << 1
657 | /**
658 |  * XML_SCHEMAS_ELEM_DEFAULT:
659 |  *
660 |  * the element has a default value
661 |  */
662 | #define XML_SCHEMAS_ELEM_DEFAULT        1 << 2
663 | /**
664 |  * XML_SCHEMAS_ELEM_FIXED:
665 |  *
666 |  * the element has a fixed value
667 |  */
668 | #define XML_SCHEMAS_ELEM_FIXED                1 << 3
669 | /**
670 |  * XML_SCHEMAS_ELEM_ABSTRACT:
671 |  *
672 |  * the element is abstract
673 |  */
674 | #define XML_SCHEMAS_ELEM_ABSTRACT        1 << 4
675 | /**
676 |  * XML_SCHEMAS_ELEM_TOPLEVEL:
677 |  *
678 |  * the element is top level
679 |  * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
680 |  */
681 | #define XML_SCHEMAS_ELEM_TOPLEVEL        1 << 5
682 | /**
683 |  * XML_SCHEMAS_ELEM_REF:
684 |  *
685 |  * the element is a reference to a type
686 |  */
687 | #define XML_SCHEMAS_ELEM_REF                1 << 6
688 | /**
689 |  * XML_SCHEMAS_ELEM_NSDEFAULT:
690 |  *
691 |  * allow elements in no namespace
692 |  * Obsolete, not used anymore.
693 |  */
694 | #define XML_SCHEMAS_ELEM_NSDEFAULT        1 << 7
695 | /**
696 |  * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
697 |  *
698 |  * this is set when "type", "ref", "substitutionGroup"
699 |  * references have been resolved.
700 |  */
701 | #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED        1 << 8
702 |  /**
703 |  * XML_SCHEMAS_ELEM_CIRCULAR:
704 |  *
705 |  * a helper flag for the search of circular references.
706 |  */
707 | #define XML_SCHEMAS_ELEM_CIRCULAR        1 << 9
708 | /**
709 |  * XML_SCHEMAS_ELEM_BLOCK_ABSENT:
710 |  *
711 |  * the "block" attribute is absent
712 |  */
713 | #define XML_SCHEMAS_ELEM_BLOCK_ABSENT        1 << 10
714 | /**
715 |  * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
716 |  *
717 |  * disallowed substitutions are absent
718 |  */
719 | #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION        1 << 11
720 | /**
721 |  * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
722 |  *
723 |  * disallowed substitutions: "restriction"
724 |  */
725 | #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION        1 << 12
726 | /**
727 |  * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
728 |  *
729 |  * disallowed substitutions: "substitution"
730 |  */
731 | #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION        1 << 13
732 | /**
733 |  * XML_SCHEMAS_ELEM_FINAL_ABSENT:
734 |  *
735 |  * substitution group exclusions are absent
736 |  */
737 | #define XML_SCHEMAS_ELEM_FINAL_ABSENT        1 << 14
738 | /**
739 |  * XML_SCHEMAS_ELEM_FINAL_EXTENSION:
740 |  *
741 |  * substitution group exclusions: "extension"
742 |  */
743 | #define XML_SCHEMAS_ELEM_FINAL_EXTENSION        1 << 15
744 | /**
745 |  * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
746 |  *
747 |  * substitution group exclusions: "restriction"
748 |  */
749 | #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION        1 << 16
750 | /**
751 |  * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
752 |  *
753 |  * the declaration is a substitution group head
754 |  */
755 | #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD        1 << 17
756 | /**
757 |  * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
758 |  *
759 |  * this is set when the elem decl has been checked against
760 |  * all constraints
761 |  */
762 | #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED        1 << 18
763 | 
764 | typedef struct _xmlSchemaElement xmlSchemaElement;
765 | typedef xmlSchemaElement *xmlSchemaElementPtr;
766 | struct _xmlSchemaElement {
767 |     xmlSchemaTypeType type; /* The kind of type */
768 |     struct _xmlSchemaType *next; /* Not used? */
769 |     const xmlChar *name;
770 |     const xmlChar *id; /* Deprecated; not used */
771 |     const xmlChar *ref; /* Deprecated; not used */
772 |     const xmlChar *refNs; /* Deprecated; not used */
773 |     xmlSchemaAnnotPtr annot;
774 |     xmlSchemaTypePtr subtypes; /* the type definition */
775 |     xmlSchemaAttributePtr attributes;
776 |     xmlNodePtr node;
777 |     int minOccurs; /* Deprecated; not used */
778 |     int maxOccurs; /* Deprecated; not used */
779 | 
780 |     int flags;
781 |     const xmlChar *targetNamespace;
782 |     const xmlChar *namedType;
783 |     const xmlChar *namedTypeNs;
784 |     const xmlChar *substGroup;
785 |     const xmlChar *substGroupNs;
786 |     const xmlChar *scope;
787 |     const xmlChar *value; /* The original value of the value constraint. */
788 |     struct _xmlSchemaElement *refDecl; /* This will now be used for the
789 |                                           substitution group affiliation */
790 |     xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */
791 |     xmlSchemaContentType contentType;
792 |     const xmlChar *refPrefix; /* Deprecated; not used */
793 |     xmlSchemaValPtr defVal; /* The compiled value constraint. */
794 |     void *idcs; /* The identity-constraint defs */
795 | };
796 | 
797 | /*
798 |  * XML_SCHEMAS_FACET_UNKNOWN:
799 |  *
800 |  * unknown facet handling
801 |  */
802 | #define XML_SCHEMAS_FACET_UNKNOWN        0
803 | /*
804 |  * XML_SCHEMAS_FACET_PRESERVE:
805 |  *
806 |  * preserve the type of the facet
807 |  */
808 | #define XML_SCHEMAS_FACET_PRESERVE        1
809 | /*
810 |  * XML_SCHEMAS_FACET_REPLACE:
811 |  *
812 |  * replace the type of the facet
813 |  */
814 | #define XML_SCHEMAS_FACET_REPLACE        2
815 | /*
816 |  * XML_SCHEMAS_FACET_COLLAPSE:
817 |  *
818 |  * collapse the types of the facet
819 |  */
820 | #define XML_SCHEMAS_FACET_COLLAPSE        3
821 | /**
822 |  * A facet definition.
823 |  */
824 | struct _xmlSchemaFacet {
825 |     xmlSchemaTypeType type;        /* The kind of type */
826 |     struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
827 |     const xmlChar *value; /* The original value */
828 |     const xmlChar *id; /* Obsolete */
829 |     xmlSchemaAnnotPtr annot;
830 |     xmlNodePtr node;
831 |     int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */
832 |     int whitespace;
833 |     xmlSchemaValPtr val; /* The compiled value */
834 |     xmlRegexpPtr    regexp; /* The regex for patterns */
835 | };
836 | 
837 | /**
838 |  * A notation definition.
839 |  */
840 | typedef struct _xmlSchemaNotation xmlSchemaNotation;
841 | typedef xmlSchemaNotation *xmlSchemaNotationPtr;
842 | struct _xmlSchemaNotation {
843 |     xmlSchemaTypeType type; /* The kind of type */
844 |     const xmlChar *name;
845 |     xmlSchemaAnnotPtr annot;
846 |     const xmlChar *identifier;
847 |     const xmlChar *targetNamespace;
848 | };
849 | 
850 | /*
851 | * TODO: Actually all those flags used for the schema should sit
852 | * on the schema parser context, since they are used only
853 | * during parsing an XML schema document, and not available
854 | * on the component level as per spec.
855 | */
856 | /**
857 |  * XML_SCHEMAS_QUALIF_ELEM:
858 |  *
859 |  * Reflects elementFormDefault == qualified in
860 |  * an XML schema document.
861 |  */
862 | #define XML_SCHEMAS_QUALIF_ELEM                1 << 0
863 | /**
864 |  * XML_SCHEMAS_QUALIF_ATTR:
865 |  *
866 |  * Reflects attributeFormDefault == qualified in
867 |  * an XML schema document.
868 |  */
869 | #define XML_SCHEMAS_QUALIF_ATTR            1 << 1
870 | /**
871 |  * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
872 |  *
873 |  * the schema has "extension" in the set of finalDefault.
874 |  */
875 | #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION        1 << 2
876 | /**
877 |  * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
878 |  *
879 |  * the schema has "restriction" in the set of finalDefault.
880 |  */
881 | #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION            1 << 3
882 | /**
883 |  * XML_SCHEMAS_FINAL_DEFAULT_LIST:
884 |  *
885 |  * the schema has "list" in the set of finalDefault.
886 |  */
887 | #define XML_SCHEMAS_FINAL_DEFAULT_LIST            1 << 4
888 | /**
889 |  * XML_SCHEMAS_FINAL_DEFAULT_UNION:
890 |  *
891 |  * the schema has "union" in the set of finalDefault.
892 |  */
893 | #define XML_SCHEMAS_FINAL_DEFAULT_UNION            1 << 5
894 | /**
895 |  * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
896 |  *
897 |  * the schema has "extension" in the set of blockDefault.
898 |  */
899 | #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION            1 << 6
900 | /**
901 |  * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
902 |  *
903 |  * the schema has "restriction" in the set of blockDefault.
904 |  */
905 | #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION            1 << 7
906 | /**
907 |  * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
908 |  *
909 |  * the schema has "substitution" in the set of blockDefault.
910 |  */
911 | #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION            1 << 8
912 | /**
913 |  * XML_SCHEMAS_INCLUDING_CONVERT_NS:
914 |  *
915 |  * the schema is currently including an other schema with
916 |  * no target namespace.
917 |  */
918 | #define XML_SCHEMAS_INCLUDING_CONVERT_NS            1 << 9
919 | /**
920 |  * _xmlSchema:
921 |  *
922 |  * A Schemas definition
923 |  */
924 | struct _xmlSchema {
925 |     const xmlChar *name; /* schema name */
926 |     const xmlChar *targetNamespace; /* the target namespace */
927 |     const xmlChar *version;
928 |     const xmlChar *id; /* Obsolete */
929 |     xmlDocPtr doc;
930 |     xmlSchemaAnnotPtr annot;
931 |     int flags;
932 | 
933 |     xmlHashTablePtr typeDecl;
934 |     xmlHashTablePtr attrDecl;
935 |     xmlHashTablePtr attrgrpDecl;
936 |     xmlHashTablePtr elemDecl;
937 |     xmlHashTablePtr notaDecl;
938 | 
939 |     xmlHashTablePtr schemasImports;
940 | 
941 |     void *_private;        /* unused by the library for users or bindings */
942 |     xmlHashTablePtr groupDecl;
943 |     xmlDictPtr      dict;
944 |     void *includes;     /* the includes, this is opaque for now */
945 |     int preserve;        /* whether to free the document */
946 |     int counter; /* used to give anonymous components unique names */
947 |     xmlHashTablePtr idcDef; /* All identity-constraint defs. */
948 |     void *volatiles; /* Obsolete */
949 | };
950 | 
951 | XMLPUBFUN void         xmlSchemaFreeType        (xmlSchemaTypePtr type);
952 | XMLPUBFUN void         xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
953 | 
954 | #ifdef __cplusplus
955 | }
956 | #endif
957 | 
958 | #endif /* LIBXML_SCHEMAS_ENABLED */
959 | #endif /* __XML_SCHEMA_INTERNALS_H__ */
960 | 
```

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

```python
  1 | import sys
  2 | from functools import lru_cache
  3 | from marshal import dumps, loads
  4 | from random import randint
  5 | from typing import Any, Dict, Iterable, List, Optional, Type, Union, cast
  6 | 
  7 | from . import errors
  8 | from .color import Color, ColorParseError, ColorSystem, blend_rgb
  9 | from .repr import Result, rich_repr
 10 | from .terminal_theme import DEFAULT_TERMINAL_THEME, TerminalTheme
 11 | 
 12 | # Style instances and style definitions are often interchangeable
 13 | StyleType = Union[str, "Style"]
 14 | 
 15 | 
 16 | class _Bit:
 17 |     """A descriptor to get/set a style attribute bit."""
 18 | 
 19 |     __slots__ = ["bit"]
 20 | 
 21 |     def __init__(self, bit_no: int) -> None:
 22 |         self.bit = 1 << bit_no
 23 | 
 24 |     def __get__(self, obj: "Style", objtype: Type["Style"]) -> Optional[bool]:
 25 |         if obj._set_attributes & self.bit:
 26 |             return obj._attributes & self.bit != 0
 27 |         return None
 28 | 
 29 | 
 30 | @rich_repr
 31 | class Style:
 32 |     """A terminal style.
 33 | 
 34 |     A terminal style consists of a color (`color`), a background color (`bgcolor`), and a number of attributes, such
 35 |     as bold, italic etc. The attributes have 3 states: they can either be on
 36 |     (``True``), off (``False``), or not set (``None``).
 37 | 
 38 |     Args:
 39 |         color (Union[Color, str], optional): Color of terminal text. Defaults to None.
 40 |         bgcolor (Union[Color, str], optional): Color of terminal background. Defaults to None.
 41 |         bold (bool, optional): Enable bold text. Defaults to None.
 42 |         dim (bool, optional): Enable dim text. Defaults to None.
 43 |         italic (bool, optional): Enable italic text. Defaults to None.
 44 |         underline (bool, optional): Enable underlined text. Defaults to None.
 45 |         blink (bool, optional): Enabled blinking text. Defaults to None.
 46 |         blink2 (bool, optional): Enable fast blinking text. Defaults to None.
 47 |         reverse (bool, optional): Enabled reverse text. Defaults to None.
 48 |         conceal (bool, optional): Enable concealed text. Defaults to None.
 49 |         strike (bool, optional): Enable strikethrough text. Defaults to None.
 50 |         underline2 (bool, optional): Enable doubly underlined text. Defaults to None.
 51 |         frame (bool, optional): Enable framed text. Defaults to None.
 52 |         encircle (bool, optional): Enable encircled text. Defaults to None.
 53 |         overline (bool, optional): Enable overlined text. Defaults to None.
 54 |         link (str, link): Link URL. Defaults to None.
 55 | 
 56 |     """
 57 | 
 58 |     _color: Optional[Color]
 59 |     _bgcolor: Optional[Color]
 60 |     _attributes: int
 61 |     _set_attributes: int
 62 |     _hash: Optional[int]
 63 |     _null: bool
 64 |     _meta: Optional[bytes]
 65 | 
 66 |     __slots__ = [
 67 |         "_color",
 68 |         "_bgcolor",
 69 |         "_attributes",
 70 |         "_set_attributes",
 71 |         "_link",
 72 |         "_link_id",
 73 |         "_ansi",
 74 |         "_style_definition",
 75 |         "_hash",
 76 |         "_null",
 77 |         "_meta",
 78 |     ]
 79 | 
 80 |     # maps bits on to SGR parameter
 81 |     _style_map = {
 82 |         0: "1",
 83 |         1: "2",
 84 |         2: "3",
 85 |         3: "4",
 86 |         4: "5",
 87 |         5: "6",
 88 |         6: "7",
 89 |         7: "8",
 90 |         8: "9",
 91 |         9: "21",
 92 |         10: "51",
 93 |         11: "52",
 94 |         12: "53",
 95 |     }
 96 | 
 97 |     STYLE_ATTRIBUTES = {
 98 |         "dim": "dim",
 99 |         "d": "dim",
100 |         "bold": "bold",
101 |         "b": "bold",
102 |         "italic": "italic",
103 |         "i": "italic",
104 |         "underline": "underline",
105 |         "u": "underline",
106 |         "blink": "blink",
107 |         "blink2": "blink2",
108 |         "reverse": "reverse",
109 |         "r": "reverse",
110 |         "conceal": "conceal",
111 |         "c": "conceal",
112 |         "strike": "strike",
113 |         "s": "strike",
114 |         "underline2": "underline2",
115 |         "uu": "underline2",
116 |         "frame": "frame",
117 |         "encircle": "encircle",
118 |         "overline": "overline",
119 |         "o": "overline",
120 |     }
121 | 
122 |     def __init__(
123 |         self,
124 |         *,
125 |         color: Optional[Union[Color, str]] = None,
126 |         bgcolor: Optional[Union[Color, str]] = None,
127 |         bold: Optional[bool] = None,
128 |         dim: Optional[bool] = None,
129 |         italic: Optional[bool] = None,
130 |         underline: Optional[bool] = None,
131 |         blink: Optional[bool] = None,
132 |         blink2: Optional[bool] = None,
133 |         reverse: Optional[bool] = None,
134 |         conceal: Optional[bool] = None,
135 |         strike: Optional[bool] = None,
136 |         underline2: Optional[bool] = None,
137 |         frame: Optional[bool] = None,
138 |         encircle: Optional[bool] = None,
139 |         overline: Optional[bool] = None,
140 |         link: Optional[str] = None,
141 |         meta: Optional[Dict[str, Any]] = None,
142 |     ):
143 |         self._ansi: Optional[str] = None
144 |         self._style_definition: Optional[str] = None
145 | 
146 |         def _make_color(color: Union[Color, str]) -> Color:
147 |             return color if isinstance(color, Color) else Color.parse(color)
148 | 
149 |         self._color = None if color is None else _make_color(color)
150 |         self._bgcolor = None if bgcolor is None else _make_color(bgcolor)
151 |         self._set_attributes = sum(
152 |             (
153 |                 bold is not None,
154 |                 dim is not None and 2,
155 |                 italic is not None and 4,
156 |                 underline is not None and 8,
157 |                 blink is not None and 16,
158 |                 blink2 is not None and 32,
159 |                 reverse is not None and 64,
160 |                 conceal is not None and 128,
161 |                 strike is not None and 256,
162 |                 underline2 is not None and 512,
163 |                 frame is not None and 1024,
164 |                 encircle is not None and 2048,
165 |                 overline is not None and 4096,
166 |             )
167 |         )
168 |         self._attributes = (
169 |             sum(
170 |                 (
171 |                     bold and 1 or 0,
172 |                     dim and 2 or 0,
173 |                     italic and 4 or 0,
174 |                     underline and 8 or 0,
175 |                     blink and 16 or 0,
176 |                     blink2 and 32 or 0,
177 |                     reverse and 64 or 0,
178 |                     conceal and 128 or 0,
179 |                     strike and 256 or 0,
180 |                     underline2 and 512 or 0,
181 |                     frame and 1024 or 0,
182 |                     encircle and 2048 or 0,
183 |                     overline and 4096 or 0,
184 |                 )
185 |             )
186 |             if self._set_attributes
187 |             else 0
188 |         )
189 | 
190 |         self._link = link
191 |         self._meta = None if meta is None else dumps(meta)
192 |         self._link_id = (
193 |             f"{randint(0, 999999)}{hash(self._meta)}" if (link or meta) else ""
194 |         )
195 |         self._hash: Optional[int] = None
196 |         self._null = not (self._set_attributes or color or bgcolor or link or meta)
197 | 
198 |     @classmethod
199 |     def null(cls) -> "Style":
200 |         """Create an 'null' style, equivalent to Style(), but more performant."""
201 |         return NULL_STYLE
202 | 
203 |     @classmethod
204 |     def from_color(
205 |         cls, color: Optional[Color] = None, bgcolor: Optional[Color] = None
206 |     ) -> "Style":
207 |         """Create a new style with colors and no attributes.
208 | 
209 |         Returns:
210 |             color (Optional[Color]): A (foreground) color, or None for no color. Defaults to None.
211 |             bgcolor (Optional[Color]): A (background) color, or None for no color. Defaults to None.
212 |         """
213 |         style: Style = cls.__new__(Style)
214 |         style._ansi = None
215 |         style._style_definition = None
216 |         style._color = color
217 |         style._bgcolor = bgcolor
218 |         style._set_attributes = 0
219 |         style._attributes = 0
220 |         style._link = None
221 |         style._link_id = ""
222 |         style._meta = None
223 |         style._null = not (color or bgcolor)
224 |         style._hash = None
225 |         return style
226 | 
227 |     @classmethod
228 |     def from_meta(cls, meta: Optional[Dict[str, Any]]) -> "Style":
229 |         """Create a new style with meta data.
230 | 
231 |         Returns:
232 |             meta (Optional[Dict[str, Any]]): A dictionary of meta data. Defaults to None.
233 |         """
234 |         style: Style = cls.__new__(Style)
235 |         style._ansi = None
236 |         style._style_definition = None
237 |         style._color = None
238 |         style._bgcolor = None
239 |         style._set_attributes = 0
240 |         style._attributes = 0
241 |         style._link = None
242 |         style._meta = dumps(meta)
243 |         style._link_id = f"{randint(0, 999999)}{hash(style._meta)}"
244 |         style._hash = None
245 |         style._null = not (meta)
246 |         return style
247 | 
248 |     @classmethod
249 |     def on(cls, meta: Optional[Dict[str, Any]] = None, **handlers: Any) -> "Style":
250 |         """Create a blank style with meta information.
251 | 
252 |         Example:
253 |             style = Style.on(click=self.on_click)
254 | 
255 |         Args:
256 |             meta (Optional[Dict[str, Any]], optional): An optional dict of meta information.
257 |             **handlers (Any): Keyword arguments are translated in to handlers.
258 | 
259 |         Returns:
260 |             Style: A Style with meta information attached.
261 |         """
262 |         meta = {} if meta is None else meta
263 |         meta.update({f"@{key}": value for key, value in handlers.items()})
264 |         return cls.from_meta(meta)
265 | 
266 |     bold = _Bit(0)
267 |     dim = _Bit(1)
268 |     italic = _Bit(2)
269 |     underline = _Bit(3)
270 |     blink = _Bit(4)
271 |     blink2 = _Bit(5)
272 |     reverse = _Bit(6)
273 |     conceal = _Bit(7)
274 |     strike = _Bit(8)
275 |     underline2 = _Bit(9)
276 |     frame = _Bit(10)
277 |     encircle = _Bit(11)
278 |     overline = _Bit(12)
279 | 
280 |     @property
281 |     def link_id(self) -> str:
282 |         """Get a link id, used in ansi code for links."""
283 |         return self._link_id
284 | 
285 |     def __str__(self) -> str:
286 |         """Re-generate style definition from attributes."""
287 |         if self._style_definition is None:
288 |             attributes: List[str] = []
289 |             append = attributes.append
290 |             bits = self._set_attributes
291 |             if bits & 0b0000000001111:
292 |                 if bits & 1:
293 |                     append("bold" if self.bold else "not bold")
294 |                 if bits & (1 << 1):
295 |                     append("dim" if self.dim else "not dim")
296 |                 if bits & (1 << 2):
297 |                     append("italic" if self.italic else "not italic")
298 |                 if bits & (1 << 3):
299 |                     append("underline" if self.underline else "not underline")
300 |             if bits & 0b0000111110000:
301 |                 if bits & (1 << 4):
302 |                     append("blink" if self.blink else "not blink")
303 |                 if bits & (1 << 5):
304 |                     append("blink2" if self.blink2 else "not blink2")
305 |                 if bits & (1 << 6):
306 |                     append("reverse" if self.reverse else "not reverse")
307 |                 if bits & (1 << 7):
308 |                     append("conceal" if self.conceal else "not conceal")
309 |                 if bits & (1 << 8):
310 |                     append("strike" if self.strike else "not strike")
311 |             if bits & 0b1111000000000:
312 |                 if bits & (1 << 9):
313 |                     append("underline2" if self.underline2 else "not underline2")
314 |                 if bits & (1 << 10):
315 |                     append("frame" if self.frame else "not frame")
316 |                 if bits & (1 << 11):
317 |                     append("encircle" if self.encircle else "not encircle")
318 |                 if bits & (1 << 12):
319 |                     append("overline" if self.overline else "not overline")
320 |             if self._color is not None:
321 |                 append(self._color.name)
322 |             if self._bgcolor is not None:
323 |                 append("on")
324 |                 append(self._bgcolor.name)
325 |             if self._link:
326 |                 append("link")
327 |                 append(self._link)
328 |             self._style_definition = " ".join(attributes) or "none"
329 |         return self._style_definition
330 | 
331 |     def __bool__(self) -> bool:
332 |         """A Style is false if it has no attributes, colors, or links."""
333 |         return not self._null
334 | 
335 |     def _make_ansi_codes(self, color_system: ColorSystem) -> str:
336 |         """Generate ANSI codes for this style.
337 | 
338 |         Args:
339 |             color_system (ColorSystem): Color system.
340 | 
341 |         Returns:
342 |             str: String containing codes.
343 |         """
344 | 
345 |         if self._ansi is None:
346 |             sgr: List[str] = []
347 |             append = sgr.append
348 |             _style_map = self._style_map
349 |             attributes = self._attributes & self._set_attributes
350 |             if attributes:
351 |                 if attributes & 1:
352 |                     append(_style_map[0])
353 |                 if attributes & 2:
354 |                     append(_style_map[1])
355 |                 if attributes & 4:
356 |                     append(_style_map[2])
357 |                 if attributes & 8:
358 |                     append(_style_map[3])
359 |                 if attributes & 0b0000111110000:
360 |                     for bit in range(4, 9):
361 |                         if attributes & (1 << bit):
362 |                             append(_style_map[bit])
363 |                 if attributes & 0b1111000000000:
364 |                     for bit in range(9, 13):
365 |                         if attributes & (1 << bit):
366 |                             append(_style_map[bit])
367 |             if self._color is not None:
368 |                 sgr.extend(self._color.downgrade(color_system).get_ansi_codes())
369 |             if self._bgcolor is not None:
370 |                 sgr.extend(
371 |                     self._bgcolor.downgrade(color_system).get_ansi_codes(
372 |                         foreground=False
373 |                     )
374 |                 )
375 |             self._ansi = ";".join(sgr)
376 |         return self._ansi
377 | 
378 |     @classmethod
379 |     @lru_cache(maxsize=1024)
380 |     def normalize(cls, style: str) -> str:
381 |         """Normalize a style definition so that styles with the same effect have the same string
382 |         representation.
383 | 
384 |         Args:
385 |             style (str): A style definition.
386 | 
387 |         Returns:
388 |             str: Normal form of style definition.
389 |         """
390 |         try:
391 |             return str(cls.parse(style))
392 |         except errors.StyleSyntaxError:
393 |             return style.strip().lower()
394 | 
395 |     @classmethod
396 |     def pick_first(cls, *values: Optional[StyleType]) -> StyleType:
397 |         """Pick first non-None style."""
398 |         for value in values:
399 |             if value is not None:
400 |                 return value
401 |         raise ValueError("expected at least one non-None style")
402 | 
403 |     def __rich_repr__(self) -> Result:
404 |         yield "color", self.color, None
405 |         yield "bgcolor", self.bgcolor, None
406 |         yield "bold", self.bold, None,
407 |         yield "dim", self.dim, None,
408 |         yield "italic", self.italic, None
409 |         yield "underline", self.underline, None,
410 |         yield "blink", self.blink, None
411 |         yield "blink2", self.blink2, None
412 |         yield "reverse", self.reverse, None
413 |         yield "conceal", self.conceal, None
414 |         yield "strike", self.strike, None
415 |         yield "underline2", self.underline2, None
416 |         yield "frame", self.frame, None
417 |         yield "encircle", self.encircle, None
418 |         yield "link", self.link, None
419 |         if self._meta:
420 |             yield "meta", self.meta
421 | 
422 |     def __eq__(self, other: Any) -> bool:
423 |         if not isinstance(other, Style):
424 |             return NotImplemented
425 |         return self.__hash__() == other.__hash__()
426 | 
427 |     def __ne__(self, other: Any) -> bool:
428 |         if not isinstance(other, Style):
429 |             return NotImplemented
430 |         return self.__hash__() != other.__hash__()
431 | 
432 |     def __hash__(self) -> int:
433 |         if self._hash is not None:
434 |             return self._hash
435 |         self._hash = hash(
436 |             (
437 |                 self._color,
438 |                 self._bgcolor,
439 |                 self._attributes,
440 |                 self._set_attributes,
441 |                 self._link,
442 |                 self._meta,
443 |             )
444 |         )
445 |         return self._hash
446 | 
447 |     @property
448 |     def color(self) -> Optional[Color]:
449 |         """The foreground color or None if it is not set."""
450 |         return self._color
451 | 
452 |     @property
453 |     def bgcolor(self) -> Optional[Color]:
454 |         """The background color or None if it is not set."""
455 |         return self._bgcolor
456 | 
457 |     @property
458 |     def link(self) -> Optional[str]:
459 |         """Link text, if set."""
460 |         return self._link
461 | 
462 |     @property
463 |     def transparent_background(self) -> bool:
464 |         """Check if the style specified a transparent background."""
465 |         return self.bgcolor is None or self.bgcolor.is_default
466 | 
467 |     @property
468 |     def background_style(self) -> "Style":
469 |         """A Style with background only."""
470 |         return Style(bgcolor=self.bgcolor)
471 | 
472 |     @property
473 |     def meta(self) -> Dict[str, Any]:
474 |         """Get meta information (can not be changed after construction)."""
475 |         return {} if self._meta is None else cast(Dict[str, Any], loads(self._meta))
476 | 
477 |     @property
478 |     def without_color(self) -> "Style":
479 |         """Get a copy of the style with color removed."""
480 |         if self._null:
481 |             return NULL_STYLE
482 |         style: Style = self.__new__(Style)
483 |         style._ansi = None
484 |         style._style_definition = None
485 |         style._color = None
486 |         style._bgcolor = None
487 |         style._attributes = self._attributes
488 |         style._set_attributes = self._set_attributes
489 |         style._link = self._link
490 |         style._link_id = f"{randint(0, 999999)}" if self._link else ""
491 |         style._null = False
492 |         style._meta = None
493 |         style._hash = None
494 |         return style
495 | 
496 |     @classmethod
497 |     @lru_cache(maxsize=4096)
498 |     def parse(cls, style_definition: str) -> "Style":
499 |         """Parse a style definition.
500 | 
501 |         Args:
502 |             style_definition (str): A string containing a style.
503 | 
504 |         Raises:
505 |             errors.StyleSyntaxError: If the style definition syntax is invalid.
506 | 
507 |         Returns:
508 |             `Style`: A Style instance.
509 |         """
510 |         if style_definition.strip() == "none" or not style_definition:
511 |             return cls.null()
512 | 
513 |         STYLE_ATTRIBUTES = cls.STYLE_ATTRIBUTES
514 |         color: Optional[str] = None
515 |         bgcolor: Optional[str] = None
516 |         attributes: Dict[str, Optional[Any]] = {}
517 |         link: Optional[str] = None
518 | 
519 |         words = iter(style_definition.split())
520 |         for original_word in words:
521 |             word = original_word.lower()
522 |             if word == "on":
523 |                 word = next(words, "")
524 |                 if not word:
525 |                     raise errors.StyleSyntaxError("color expected after 'on'")
526 |                 try:
527 |                     Color.parse(word) is None
528 |                 except ColorParseError as error:
529 |                     raise errors.StyleSyntaxError(
530 |                         f"unable to parse {word!r} as background color; {error}"
531 |                     ) from None
532 |                 bgcolor = word
533 | 
534 |             elif word == "not":
535 |                 word = next(words, "")
536 |                 attribute = STYLE_ATTRIBUTES.get(word)
537 |                 if attribute is None:
538 |                     raise errors.StyleSyntaxError(
539 |                         f"expected style attribute after 'not', found {word!r}"
540 |                     )
541 |                 attributes[attribute] = False
542 | 
543 |             elif word == "link":
544 |                 word = next(words, "")
545 |                 if not word:
546 |                     raise errors.StyleSyntaxError("URL expected after 'link'")
547 |                 link = word
548 | 
549 |             elif word in STYLE_ATTRIBUTES:
550 |                 attributes[STYLE_ATTRIBUTES[word]] = True
551 | 
552 |             else:
553 |                 try:
554 |                     Color.parse(word)
555 |                 except ColorParseError as error:
556 |                     raise errors.StyleSyntaxError(
557 |                         f"unable to parse {word!r} as color; {error}"
558 |                     ) from None
559 |                 color = word
560 |         style = Style(color=color, bgcolor=bgcolor, link=link, **attributes)
561 |         return style
562 | 
563 |     @lru_cache(maxsize=1024)
564 |     def get_html_style(self, theme: Optional[TerminalTheme] = None) -> str:
565 |         """Get a CSS style rule."""
566 |         theme = theme or DEFAULT_TERMINAL_THEME
567 |         css: List[str] = []
568 |         append = css.append
569 | 
570 |         color = self.color
571 |         bgcolor = self.bgcolor
572 |         if self.reverse:
573 |             color, bgcolor = bgcolor, color
574 |         if self.dim:
575 |             foreground_color = (
576 |                 theme.foreground_color if color is None else color.get_truecolor(theme)
577 |             )
578 |             color = Color.from_triplet(
579 |                 blend_rgb(foreground_color, theme.background_color, 0.5)
580 |             )
581 |         if color is not None:
582 |             theme_color = color.get_truecolor(theme)
583 |             append(f"color: {theme_color.hex}")
584 |             append(f"text-decoration-color: {theme_color.hex}")
585 |         if bgcolor is not None:
586 |             theme_color = bgcolor.get_truecolor(theme, foreground=False)
587 |             append(f"background-color: {theme_color.hex}")
588 |         if self.bold:
589 |             append("font-weight: bold")
590 |         if self.italic:
591 |             append("font-style: italic")
592 |         if self.underline:
593 |             append("text-decoration: underline")
594 |         if self.strike:
595 |             append("text-decoration: line-through")
596 |         if self.overline:
597 |             append("text-decoration: overline")
598 |         return "; ".join(css)
599 | 
600 |     @classmethod
601 |     def combine(cls, styles: Iterable["Style"]) -> "Style":
602 |         """Combine styles and get result.
603 | 
604 |         Args:
605 |             styles (Iterable[Style]): Styles to combine.
606 | 
607 |         Returns:
608 |             Style: A new style instance.
609 |         """
610 |         iter_styles = iter(styles)
611 |         return sum(iter_styles, next(iter_styles))
612 | 
613 |     @classmethod
614 |     def chain(cls, *styles: "Style") -> "Style":
615 |         """Combine styles from positional argument in to a single style.
616 | 
617 |         Args:
618 |             *styles (Iterable[Style]): Styles to combine.
619 | 
620 |         Returns:
621 |             Style: A new style instance.
622 |         """
623 |         iter_styles = iter(styles)
624 |         return sum(iter_styles, next(iter_styles))
625 | 
626 |     def copy(self) -> "Style":
627 |         """Get a copy of this style.
628 | 
629 |         Returns:
630 |             Style: A new Style instance with identical attributes.
631 |         """
632 |         if self._null:
633 |             return NULL_STYLE
634 |         style: Style = self.__new__(Style)
635 |         style._ansi = self._ansi
636 |         style._style_definition = self._style_definition
637 |         style._color = self._color
638 |         style._bgcolor = self._bgcolor
639 |         style._attributes = self._attributes
640 |         style._set_attributes = self._set_attributes
641 |         style._link = self._link
642 |         style._link_id = f"{randint(0, 999999)}" if self._link else ""
643 |         style._hash = self._hash
644 |         style._null = False
645 |         style._meta = self._meta
646 |         return style
647 | 
648 |     @lru_cache(maxsize=128)
649 |     def clear_meta_and_links(self) -> "Style":
650 |         """Get a copy of this style with link and meta information removed.
651 | 
652 |         Returns:
653 |             Style: New style object.
654 |         """
655 |         if self._null:
656 |             return NULL_STYLE
657 |         style: Style = self.__new__(Style)
658 |         style._ansi = self._ansi
659 |         style._style_definition = self._style_definition
660 |         style._color = self._color
661 |         style._bgcolor = self._bgcolor
662 |         style._attributes = self._attributes
663 |         style._set_attributes = self._set_attributes
664 |         style._link = None
665 |         style._link_id = ""
666 |         style._hash = self._hash
667 |         style._null = False
668 |         style._meta = None
669 |         return style
670 | 
671 |     def update_link(self, link: Optional[str] = None) -> "Style":
672 |         """Get a copy with a different value for link.
673 | 
674 |         Args:
675 |             link (str, optional): New value for link. Defaults to None.
676 | 
677 |         Returns:
678 |             Style: A new Style instance.
679 |         """
680 |         style: Style = self.__new__(Style)
681 |         style._ansi = self._ansi
682 |         style._style_definition = self._style_definition
683 |         style._color = self._color
684 |         style._bgcolor = self._bgcolor
685 |         style._attributes = self._attributes
686 |         style._set_attributes = self._set_attributes
687 |         style._link = link
688 |         style._link_id = f"{randint(0, 999999)}" if link else ""
689 |         style._hash = None
690 |         style._null = False
691 |         style._meta = self._meta
692 |         return style
693 | 
694 |     def render(
695 |         self,
696 |         text: str = "",
697 |         *,
698 |         color_system: Optional[ColorSystem] = ColorSystem.TRUECOLOR,
699 |         legacy_windows: bool = False,
700 |     ) -> str:
701 |         """Render the ANSI codes for the style.
702 | 
703 |         Args:
704 |             text (str, optional): A string to style. Defaults to "".
705 |             color_system (Optional[ColorSystem], optional): Color system to render to. Defaults to ColorSystem.TRUECOLOR.
706 | 
707 |         Returns:
708 |             str: A string containing ANSI style codes.
709 |         """
710 |         if not text or color_system is None:
711 |             return text
712 |         attrs = self._ansi or self._make_ansi_codes(color_system)
713 |         rendered = f"\x1b[{attrs}m{text}\x1b[0m" if attrs else text
714 |         if self._link and not legacy_windows:
715 |             rendered = (
716 |                 f"\x1b]8;id={self._link_id};{self._link}\x1b\\{rendered}\x1b]8;;\x1b\\"
717 |             )
718 |         return rendered
719 | 
720 |     def test(self, text: Optional[str] = None) -> None:
721 |         """Write text with style directly to terminal.
722 | 
723 |         This method is for testing purposes only.
724 | 
725 |         Args:
726 |             text (Optional[str], optional): Text to style or None for style name.
727 | 
728 |         """
729 |         text = text or str(self)
730 |         sys.stdout.write(f"{self.render(text)}\n")
731 | 
732 |     @lru_cache(maxsize=1024)
733 |     def _add(self, style: Optional["Style"]) -> "Style":
734 |         if style is None or style._null:
735 |             return self
736 |         if self._null:
737 |             return style
738 |         new_style: Style = self.__new__(Style)
739 |         new_style._ansi = None
740 |         new_style._style_definition = None
741 |         new_style._color = style._color or self._color
742 |         new_style._bgcolor = style._bgcolor or self._bgcolor
743 |         new_style._attributes = (self._attributes & ~style._set_attributes) | (
744 |             style._attributes & style._set_attributes
745 |         )
746 |         new_style._set_attributes = self._set_attributes | style._set_attributes
747 |         new_style._link = style._link or self._link
748 |         new_style._link_id = style._link_id or self._link_id
749 |         new_style._null = style._null
750 |         if self._meta and style._meta:
751 |             new_style._meta = dumps({**self.meta, **style.meta})
752 |         else:
753 |             new_style._meta = self._meta or style._meta
754 |         new_style._hash = None
755 |         return new_style
756 | 
757 |     def __add__(self, style: Optional["Style"]) -> "Style":
758 |         combined_style = self._add(style)
759 |         return combined_style.copy() if combined_style.link else combined_style
760 | 
761 | 
762 | NULL_STYLE = Style()
763 | 
764 | 
765 | class StyleStack:
766 |     """A stack of styles."""
767 | 
768 |     __slots__ = ["_stack"]
769 | 
770 |     def __init__(self, default_style: "Style") -> None:
771 |         self._stack: List[Style] = [default_style]
772 | 
773 |     def __repr__(self) -> str:
774 |         return f"<stylestack {self._stack!r}>"
775 | 
776 |     @property
777 |     def current(self) -> Style:
778 |         """Get the Style at the top of the stack."""
779 |         return self._stack[-1]
780 | 
781 |     def push(self, style: Style) -> None:
782 |         """Push a new style on to the stack.
783 | 
784 |         Args:
785 |             style (Style): New style to combine with current style.
786 |         """
787 |         self._stack.append(self._stack[-1] + style)
788 | 
789 |     def pop(self) -> Style:
790 |         """Pop last style and discard.
791 | 
792 |         Returns:
793 |             Style: New current style (also available as stack.current)
794 |         """
795 |         self._stack.pop()
796 |         return self._stack[-1]
797 | 
```
Page 86/168FirstPrevNextLast