This is page 31 of 168. Use http://codebase.md/romanshablio/mcp_server?lines=true&page={x} to view the full context.
# Directory Structure
```
├── .DS_Store
├── .venv
│ ├── __pycache__
│ │ └── hello.cpython-312.pyc
│ ├── bin
│ │ ├── activate
│ │ ├── activate.csh
│ │ ├── activate.fish
│ │ ├── Activate.ps1
│ │ ├── flask
│ │ ├── normalizer
│ │ ├── pip
│ │ ├── pip3
│ │ ├── pip3.12
│ │ ├── python
│ │ ├── python3
│ │ └── python3.12
│ ├── hello.py
│ ├── lib
│ │ └── python3.12
│ │ └── site-packages
│ │ ├── beautifulsoup4-4.12.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ ├── AUTHORS
│ │ │ │ └── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ └── WHEEL
│ │ ├── blinker
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _utilities.cpython-312.pyc
│ │ │ │ └── base.cpython-312.pyc
│ │ │ ├── _utilities.py
│ │ │ ├── base.py
│ │ │ └── py.typed
│ │ ├── blinker-1.8.2.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── bs4
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── css.cpython-312.pyc
│ │ │ │ ├── dammit.cpython-312.pyc
│ │ │ │ ├── diagnose.cpython-312.pyc
│ │ │ │ ├── element.cpython-312.pyc
│ │ │ │ └── formatter.cpython-312.pyc
│ │ │ ├── builder
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── _html5lib.cpython-312.pyc
│ │ │ │ │ ├── _htmlparser.cpython-312.pyc
│ │ │ │ │ └── _lxml.cpython-312.pyc
│ │ │ │ ├── _html5lib.py
│ │ │ │ ├── _htmlparser.py
│ │ │ │ └── _lxml.py
│ │ │ ├── css.py
│ │ │ ├── dammit.py
│ │ │ ├── diagnose.py
│ │ │ ├── element.py
│ │ │ ├── formatter.py
│ │ │ └── tests
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── test_builder_registry.cpython-312.pyc
│ │ │ │ ├── test_builder.cpython-312.pyc
│ │ │ │ ├── test_css.cpython-312.pyc
│ │ │ │ ├── test_dammit.cpython-312.pyc
│ │ │ │ ├── test_docs.cpython-312.pyc
│ │ │ │ ├── test_element.cpython-312.pyc
│ │ │ │ ├── test_formatter.cpython-312.pyc
│ │ │ │ ├── test_fuzz.cpython-312.pyc
│ │ │ │ ├── test_html5lib.cpython-312.pyc
│ │ │ │ ├── test_htmlparser.cpython-312.pyc
│ │ │ │ ├── test_lxml.cpython-312.pyc
│ │ │ │ ├── test_navigablestring.cpython-312.pyc
│ │ │ │ ├── test_pageelement.cpython-312.pyc
│ │ │ │ ├── test_soup.cpython-312.pyc
│ │ │ │ ├── test_tag.cpython-312.pyc
│ │ │ │ └── test_tree.cpython-312.pyc
│ │ │ ├── fuzz
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase
│ │ │ │ ├── crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase
│ │ │ │ └── crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase
│ │ │ ├── test_builder_registry.py
│ │ │ ├── test_builder.py
│ │ │ ├── test_css.py
│ │ │ ├── test_dammit.py
│ │ │ ├── test_docs.py
│ │ │ ├── test_element.py
│ │ │ ├── test_formatter.py
│ │ │ ├── test_fuzz.py
│ │ │ ├── test_html5lib.py
│ │ │ ├── test_htmlparser.py
│ │ │ ├── test_lxml.py
│ │ │ ├── test_navigablestring.py
│ │ │ ├── test_pageelement.py
│ │ │ ├── test_soup.py
│ │ │ ├── test_tag.py
│ │ │ └── test_tree.py
│ │ ├── certifi
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ └── core.cpython-312.pyc
│ │ │ ├── cacert.pem
│ │ │ ├── core.py
│ │ │ └── py.typed
│ │ ├── certifi-2024.8.30.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── charset_normalizer
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ ├── cd.cpython-312.pyc
│ │ │ │ ├── constant.cpython-312.pyc
│ │ │ │ ├── legacy.cpython-312.pyc
│ │ │ │ ├── md.cpython-312.pyc
│ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── version.cpython-312.pyc
│ │ │ ├── api.py
│ │ │ ├── cd.py
│ │ │ ├── cli
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __main__.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ └── __main__.cpython-312.pyc
│ │ │ ├── constant.py
│ │ │ ├── legacy.py
│ │ │ ├── md__mypyc.cpython-312-darwin.so
│ │ │ ├── md.cpython-312-darwin.so
│ │ │ ├── md.py
│ │ │ ├── models.py
│ │ │ ├── py.typed
│ │ │ ├── utils.py
│ │ │ └── version.py
│ │ ├── charset_normalizer-3.4.0.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── click
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ ├── _termui_impl.cpython-312.pyc
│ │ │ │ ├── _textwrap.cpython-312.pyc
│ │ │ │ ├── _winconsole.cpython-312.pyc
│ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ ├── decorators.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── formatting.cpython-312.pyc
│ │ │ │ ├── globals.cpython-312.pyc
│ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ ├── shell_completion.cpython-312.pyc
│ │ │ │ ├── termui.cpython-312.pyc
│ │ │ │ ├── testing.cpython-312.pyc
│ │ │ │ ├── types.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _termui_impl.py
│ │ │ ├── _textwrap.py
│ │ │ ├── _winconsole.py
│ │ │ ├── core.py
│ │ │ ├── decorators.py
│ │ │ ├── exceptions.py
│ │ │ ├── formatting.py
│ │ │ ├── globals.py
│ │ │ ├── parser.py
│ │ │ ├── py.typed
│ │ │ ├── shell_completion.py
│ │ │ ├── termui.py
│ │ │ ├── testing.py
│ │ │ ├── types.py
│ │ │ └── utils.py
│ │ ├── click-8.1.7.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.rst
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── fake_useragent
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── errors.cpython-312.pyc
│ │ │ │ ├── fake.cpython-312.pyc
│ │ │ │ ├── log.cpython-312.pyc
│ │ │ │ ├── settings.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── data
│ │ │ │ └── browsers.json
│ │ │ ├── errors.py
│ │ │ ├── fake.py
│ │ │ ├── log.py
│ │ │ ├── settings.py
│ │ │ └── utils.py
│ │ ├── fake_useragent-1.5.1.dist-info
│ │ │ ├── AUTHORS
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── flask
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ ├── app.cpython-312.pyc
│ │ │ │ ├── blueprints.cpython-312.pyc
│ │ │ │ ├── cli.cpython-312.pyc
│ │ │ │ ├── config.cpython-312.pyc
│ │ │ │ ├── ctx.cpython-312.pyc
│ │ │ │ ├── debughelpers.cpython-312.pyc
│ │ │ │ ├── globals.cpython-312.pyc
│ │ │ │ ├── helpers.cpython-312.pyc
│ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ ├── signals.cpython-312.pyc
│ │ │ │ ├── templating.cpython-312.pyc
│ │ │ │ ├── testing.cpython-312.pyc
│ │ │ │ ├── typing.cpython-312.pyc
│ │ │ │ ├── views.cpython-312.pyc
│ │ │ │ └── wrappers.cpython-312.pyc
│ │ │ ├── app.py
│ │ │ ├── blueprints.py
│ │ │ ├── cli.py
│ │ │ ├── config.py
│ │ │ ├── ctx.py
│ │ │ ├── debughelpers.py
│ │ │ ├── globals.py
│ │ │ ├── helpers.py
│ │ │ ├── json
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── provider.cpython-312.pyc
│ │ │ │ │ └── tag.cpython-312.pyc
│ │ │ │ ├── provider.py
│ │ │ │ └── tag.py
│ │ │ ├── logging.py
│ │ │ ├── py.typed
│ │ │ ├── sansio
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── app.cpython-312.pyc
│ │ │ │ │ ├── blueprints.cpython-312.pyc
│ │ │ │ │ └── scaffold.cpython-312.pyc
│ │ │ │ ├── app.py
│ │ │ │ ├── blueprints.py
│ │ │ │ ├── README.md
│ │ │ │ └── scaffold.py
│ │ │ ├── sessions.py
│ │ │ ├── signals.py
│ │ │ ├── templating.py
│ │ │ ├── testing.py
│ │ │ ├── typing.py
│ │ │ ├── views.py
│ │ │ └── wrappers.py
│ │ ├── flask-3.0.3.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ └── WHEEL
│ │ ├── idna
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── codec.cpython-312.pyc
│ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ ├── idnadata.cpython-312.pyc
│ │ │ │ ├── intranges.cpython-312.pyc
│ │ │ │ ├── package_data.cpython-312.pyc
│ │ │ │ └── uts46data.cpython-312.pyc
│ │ │ ├── codec.py
│ │ │ ├── compat.py
│ │ │ ├── core.py
│ │ │ ├── idnadata.py
│ │ │ ├── intranges.py
│ │ │ ├── package_data.py
│ │ │ ├── py.typed
│ │ │ └── uts46data.py
│ │ ├── idna-3.10.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.md
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── itsdangerous
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _json.cpython-312.pyc
│ │ │ │ ├── encoding.cpython-312.pyc
│ │ │ │ ├── exc.cpython-312.pyc
│ │ │ │ ├── serializer.cpython-312.pyc
│ │ │ │ ├── signer.cpython-312.pyc
│ │ │ │ ├── timed.cpython-312.pyc
│ │ │ │ └── url_safe.cpython-312.pyc
│ │ │ ├── _json.py
│ │ │ ├── encoding.py
│ │ │ ├── exc.py
│ │ │ ├── py.typed
│ │ │ ├── serializer.py
│ │ │ ├── signer.py
│ │ │ ├── timed.py
│ │ │ └── url_safe.py
│ │ ├── itsdangerous-2.2.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── jinja2
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _identifier.cpython-312.pyc
│ │ │ │ ├── async_utils.cpython-312.pyc
│ │ │ │ ├── bccache.cpython-312.pyc
│ │ │ │ ├── compiler.cpython-312.pyc
│ │ │ │ ├── constants.cpython-312.pyc
│ │ │ │ ├── debug.cpython-312.pyc
│ │ │ │ ├── defaults.cpython-312.pyc
│ │ │ │ ├── environment.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── ext.cpython-312.pyc
│ │ │ │ ├── filters.cpython-312.pyc
│ │ │ │ ├── idtracking.cpython-312.pyc
│ │ │ │ ├── lexer.cpython-312.pyc
│ │ │ │ ├── loaders.cpython-312.pyc
│ │ │ │ ├── meta.cpython-312.pyc
│ │ │ │ ├── nativetypes.cpython-312.pyc
│ │ │ │ ├── nodes.cpython-312.pyc
│ │ │ │ ├── optimizer.cpython-312.pyc
│ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ ├── runtime.cpython-312.pyc
│ │ │ │ ├── sandbox.cpython-312.pyc
│ │ │ │ ├── tests.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── visitor.cpython-312.pyc
│ │ │ ├── _identifier.py
│ │ │ ├── async_utils.py
│ │ │ ├── bccache.py
│ │ │ ├── compiler.py
│ │ │ ├── constants.py
│ │ │ ├── debug.py
│ │ │ ├── defaults.py
│ │ │ ├── environment.py
│ │ │ ├── exceptions.py
│ │ │ ├── ext.py
│ │ │ ├── filters.py
│ │ │ ├── idtracking.py
│ │ │ ├── lexer.py
│ │ │ ├── loaders.py
│ │ │ ├── meta.py
│ │ │ ├── nativetypes.py
│ │ │ ├── nodes.py
│ │ │ ├── optimizer.py
│ │ │ ├── parser.py
│ │ │ ├── py.typed
│ │ │ ├── runtime.py
│ │ │ ├── sandbox.py
│ │ │ ├── tests.py
│ │ │ ├── utils.py
│ │ │ └── visitor.py
│ │ ├── jinja2-3.1.4.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── lxml
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _elementpath.cpython-312.pyc
│ │ │ │ ├── builder.cpython-312.pyc
│ │ │ │ ├── cssselect.cpython-312.pyc
│ │ │ │ ├── doctestcompare.cpython-312.pyc
│ │ │ │ ├── ElementInclude.cpython-312.pyc
│ │ │ │ ├── pyclasslookup.cpython-312.pyc
│ │ │ │ ├── sax.cpython-312.pyc
│ │ │ │ └── usedoctest.cpython-312.pyc
│ │ │ ├── _elementpath.cpython-312-darwin.so
│ │ │ ├── _elementpath.py
│ │ │ ├── apihelpers.pxi
│ │ │ ├── builder.cpython-312-darwin.so
│ │ │ ├── builder.py
│ │ │ ├── classlookup.pxi
│ │ │ ├── cleanup.pxi
│ │ │ ├── cssselect.py
│ │ │ ├── debug.pxi
│ │ │ ├── docloader.pxi
│ │ │ ├── doctestcompare.py
│ │ │ ├── dtd.pxi
│ │ │ ├── ElementInclude.py
│ │ │ ├── etree_api.h
│ │ │ ├── etree.cpython-312-darwin.so
│ │ │ ├── etree.h
│ │ │ ├── etree.pyx
│ │ │ ├── extensions.pxi
│ │ │ ├── html
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── _diffcommand.cpython-312.pyc
│ │ │ │ │ ├── _html5builder.cpython-312.pyc
│ │ │ │ │ ├── _setmixin.cpython-312.pyc
│ │ │ │ │ ├── builder.cpython-312.pyc
│ │ │ │ │ ├── clean.cpython-312.pyc
│ │ │ │ │ ├── defs.cpython-312.pyc
│ │ │ │ │ ├── diff.cpython-312.pyc
│ │ │ │ │ ├── ElementSoup.cpython-312.pyc
│ │ │ │ │ ├── formfill.cpython-312.pyc
│ │ │ │ │ ├── html5parser.cpython-312.pyc
│ │ │ │ │ ├── soupparser.cpython-312.pyc
│ │ │ │ │ └── usedoctest.cpython-312.pyc
│ │ │ │ ├── _diffcommand.py
│ │ │ │ ├── _html5builder.py
│ │ │ │ ├── _setmixin.py
│ │ │ │ ├── builder.py
│ │ │ │ ├── clean.py
│ │ │ │ ├── defs.py
│ │ │ │ ├── diff.cpython-312-darwin.so
│ │ │ │ ├── diff.py
│ │ │ │ ├── ElementSoup.py
│ │ │ │ ├── formfill.py
│ │ │ │ ├── html5parser.py
│ │ │ │ ├── soupparser.py
│ │ │ │ └── usedoctest.py
│ │ │ ├── includes
│ │ │ │ ├── __init__.pxd
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ ├── c14n.pxd
│ │ │ │ ├── config.pxd
│ │ │ │ ├── dtdvalid.pxd
│ │ │ │ ├── etree_defs.h
│ │ │ │ ├── etreepublic.pxd
│ │ │ │ ├── extlibs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── libcharset.h
│ │ │ │ │ ├── localcharset.h
│ │ │ │ │ ├── zconf.h
│ │ │ │ │ └── zlib.h
│ │ │ │ ├── htmlparser.pxd
│ │ │ │ ├── libexslt
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── exslt.h
│ │ │ │ │ ├── exsltconfig.h
│ │ │ │ │ └── exsltexports.h
│ │ │ │ ├── libxml
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── c14n.h
│ │ │ │ │ ├── catalog.h
│ │ │ │ │ ├── chvalid.h
│ │ │ │ │ ├── debugXML.h
│ │ │ │ │ ├── dict.h
│ │ │ │ │ ├── encoding.h
│ │ │ │ │ ├── entities.h
│ │ │ │ │ ├── globals.h
│ │ │ │ │ ├── hash.h
│ │ │ │ │ ├── HTMLparser.h
│ │ │ │ │ ├── HTMLtree.h
│ │ │ │ │ ├── list.h
│ │ │ │ │ ├── nanoftp.h
│ │ │ │ │ ├── nanohttp.h
│ │ │ │ │ ├── parser.h
│ │ │ │ │ ├── parserInternals.h
│ │ │ │ │ ├── relaxng.h
│ │ │ │ │ ├── SAX.h
│ │ │ │ │ ├── SAX2.h
│ │ │ │ │ ├── schemasInternals.h
│ │ │ │ │ ├── schematron.h
│ │ │ │ │ ├── threads.h
│ │ │ │ │ ├── tree.h
│ │ │ │ │ ├── uri.h
│ │ │ │ │ ├── valid.h
│ │ │ │ │ ├── xinclude.h
│ │ │ │ │ ├── xlink.h
│ │ │ │ │ ├── xmlautomata.h
│ │ │ │ │ ├── xmlerror.h
│ │ │ │ │ ├── xmlexports.h
│ │ │ │ │ ├── xmlIO.h
│ │ │ │ │ ├── xmlmemory.h
│ │ │ │ │ ├── xmlmodule.h
│ │ │ │ │ ├── xmlreader.h
│ │ │ │ │ ├── xmlregexp.h
│ │ │ │ │ ├── xmlsave.h
│ │ │ │ │ ├── xmlschemas.h
│ │ │ │ │ ├── xmlschemastypes.h
│ │ │ │ │ ├── xmlstring.h
│ │ │ │ │ ├── xmlunicode.h
│ │ │ │ │ ├── xmlversion.h
│ │ │ │ │ ├── xmlwriter.h
│ │ │ │ │ ├── xpath.h
│ │ │ │ │ ├── xpathInternals.h
│ │ │ │ │ └── xpointer.h
│ │ │ │ ├── libxslt
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── attributes.h
│ │ │ │ │ ├── documents.h
│ │ │ │ │ ├── extensions.h
│ │ │ │ │ ├── extra.h
│ │ │ │ │ ├── functions.h
│ │ │ │ │ ├── imports.h
│ │ │ │ │ ├── keys.h
│ │ │ │ │ ├── namespaces.h
│ │ │ │ │ ├── numbersInternals.h
│ │ │ │ │ ├── pattern.h
│ │ │ │ │ ├── preproc.h
│ │ │ │ │ ├── security.h
│ │ │ │ │ ├── templates.h
│ │ │ │ │ ├── transform.h
│ │ │ │ │ ├── variables.h
│ │ │ │ │ ├── xslt.h
│ │ │ │ │ ├── xsltconfig.h
│ │ │ │ │ ├── xsltexports.h
│ │ │ │ │ ├── xsltInternals.h
│ │ │ │ │ ├── xsltlocale.h
│ │ │ │ │ └── xsltutils.h
│ │ │ │ ├── lxml-version.h
│ │ │ │ ├── relaxng.pxd
│ │ │ │ ├── schematron.pxd
│ │ │ │ ├── tree.pxd
│ │ │ │ ├── uri.pxd
│ │ │ │ ├── xinclude.pxd
│ │ │ │ ├── xmlerror.pxd
│ │ │ │ ├── xmlparser.pxd
│ │ │ │ ├── xmlschema.pxd
│ │ │ │ ├── xpath.pxd
│ │ │ │ └── xslt.pxd
│ │ │ ├── isoschematron
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ └── resources
│ │ │ │ ├── rng
│ │ │ │ │ └── iso-schematron.rng
│ │ │ │ └── xsl
│ │ │ │ ├── iso-schematron-xslt1
│ │ │ │ │ ├── iso_abstract_expand.xsl
│ │ │ │ │ ├── iso_dsdl_include.xsl
│ │ │ │ │ ├── iso_schematron_message.xsl
│ │ │ │ │ ├── iso_schematron_skeleton_for_xslt1.xsl
│ │ │ │ │ ├── iso_svrl_for_xslt1.xsl
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── RNG2Schtrn.xsl
│ │ │ │ └── XSD2Schtrn.xsl
│ │ │ ├── iterparse.pxi
│ │ │ ├── lxml.etree_api.h
│ │ │ ├── lxml.etree.h
│ │ │ ├── nsclasses.pxi
│ │ │ ├── objectify.cpython-312-darwin.so
│ │ │ ├── objectify.pyx
│ │ │ ├── objectpath.pxi
│ │ │ ├── parser.pxi
│ │ │ ├── parsertarget.pxi
│ │ │ ├── proxy.pxi
│ │ │ ├── public-api.pxi
│ │ │ ├── pyclasslookup.py
│ │ │ ├── readonlytree.pxi
│ │ │ ├── relaxng.pxi
│ │ │ ├── sax.cpython-312-darwin.so
│ │ │ ├── sax.py
│ │ │ ├── saxparser.pxi
│ │ │ ├── schematron.pxi
│ │ │ ├── serializer.pxi
│ │ │ ├── usedoctest.py
│ │ │ ├── xinclude.pxi
│ │ │ ├── xmlerror.pxi
│ │ │ ├── xmlid.pxi
│ │ │ ├── xmlschema.pxi
│ │ │ ├── xpath.pxi
│ │ │ ├── xslt.pxi
│ │ │ └── xsltext.pxi
│ │ ├── lxml-5.3.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── LICENSES.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── markupsafe
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ └── _native.cpython-312.pyc
│ │ │ ├── _native.py
│ │ │ ├── _speedups.c
│ │ │ ├── _speedups.cpython-312-darwin.so
│ │ │ ├── _speedups.pyi
│ │ │ └── py.typed
│ │ ├── MarkupSafe-3.0.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── pip
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pip-runner__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ └── __pip-runner__.cpython-312.pyc
│ │ │ ├── _internal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── build_env.cpython-312.pyc
│ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ ├── configuration.cpython-312.pyc
│ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ ├── main.cpython-312.pyc
│ │ │ │ │ ├── pyproject.cpython-312.pyc
│ │ │ │ │ ├── self_outdated_check.cpython-312.pyc
│ │ │ │ │ └── wheel_builder.cpython-312.pyc
│ │ │ │ ├── build_env.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── autocompletion.cpython-312.pyc
│ │ │ │ │ │ ├── base_command.cpython-312.pyc
│ │ │ │ │ │ ├── cmdoptions.cpython-312.pyc
│ │ │ │ │ │ ├── command_context.cpython-312.pyc
│ │ │ │ │ │ ├── index_command.cpython-312.pyc
│ │ │ │ │ │ ├── main_parser.cpython-312.pyc
│ │ │ │ │ │ ├── main.cpython-312.pyc
│ │ │ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ │ │ ├── progress_bars.cpython-312.pyc
│ │ │ │ │ │ ├── req_command.cpython-312.pyc
│ │ │ │ │ │ ├── spinners.cpython-312.pyc
│ │ │ │ │ │ └── status_codes.cpython-312.pyc
│ │ │ │ │ ├── autocompletion.py
│ │ │ │ │ ├── base_command.py
│ │ │ │ │ ├── cmdoptions.py
│ │ │ │ │ ├── command_context.py
│ │ │ │ │ ├── index_command.py
│ │ │ │ │ ├── main_parser.py
│ │ │ │ │ ├── main.py
│ │ │ │ │ ├── parser.py
│ │ │ │ │ ├── progress_bars.py
│ │ │ │ │ ├── req_command.py
│ │ │ │ │ ├── spinners.py
│ │ │ │ │ └── status_codes.py
│ │ │ │ ├── commands
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── check.cpython-312.pyc
│ │ │ │ │ │ ├── completion.cpython-312.pyc
│ │ │ │ │ │ ├── configuration.cpython-312.pyc
│ │ │ │ │ │ ├── debug.cpython-312.pyc
│ │ │ │ │ │ ├── download.cpython-312.pyc
│ │ │ │ │ │ ├── freeze.cpython-312.pyc
│ │ │ │ │ │ ├── hash.cpython-312.pyc
│ │ │ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── inspect.cpython-312.pyc
│ │ │ │ │ │ ├── install.cpython-312.pyc
│ │ │ │ │ │ ├── list.cpython-312.pyc
│ │ │ │ │ │ ├── search.cpython-312.pyc
│ │ │ │ │ │ ├── show.cpython-312.pyc
│ │ │ │ │ │ ├── uninstall.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── completion.py
│ │ │ │ │ ├── configuration.py
│ │ │ │ │ ├── debug.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── hash.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── inspect.py
│ │ │ │ │ ├── install.py
│ │ │ │ │ ├── list.py
│ │ │ │ │ ├── search.py
│ │ │ │ │ ├── show.py
│ │ │ │ │ ├── uninstall.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── configuration.py
│ │ │ │ ├── distributions
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ ├── installed.cpython-312.pyc
│ │ │ │ │ │ ├── sdist.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── installed.py
│ │ │ │ │ ├── sdist.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── index
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── collector.cpython-312.pyc
│ │ │ │ │ │ ├── package_finder.cpython-312.pyc
│ │ │ │ │ │ └── sources.cpython-312.pyc
│ │ │ │ │ ├── collector.py
│ │ │ │ │ ├── package_finder.py
│ │ │ │ │ └── sources.py
│ │ │ │ ├── locations
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _distutils.cpython-312.pyc
│ │ │ │ │ │ ├── _sysconfig.cpython-312.pyc
│ │ │ │ │ │ └── base.cpython-312.pyc
│ │ │ │ │ ├── _distutils.py
│ │ │ │ │ ├── _sysconfig.py
│ │ │ │ │ └── base.py
│ │ │ │ ├── main.py
│ │ │ │ ├── metadata
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _json.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ └── pkg_resources.cpython-312.pyc
│ │ │ │ │ ├── _json.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── importlib
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ │ │ │ ├── _dists.cpython-312.pyc
│ │ │ │ │ │ │ └── _envs.cpython-312.pyc
│ │ │ │ │ │ ├── _compat.py
│ │ │ │ │ │ ├── _dists.py
│ │ │ │ │ │ └── _envs.py
│ │ │ │ │ └── pkg_resources.py
│ │ │ │ ├── models
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── candidate.cpython-312.pyc
│ │ │ │ │ │ ├── direct_url.cpython-312.pyc
│ │ │ │ │ │ ├── format_control.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── installation_report.cpython-312.pyc
│ │ │ │ │ │ ├── link.cpython-312.pyc
│ │ │ │ │ │ ├── scheme.cpython-312.pyc
│ │ │ │ │ │ ├── search_scope.cpython-312.pyc
│ │ │ │ │ │ ├── selection_prefs.cpython-312.pyc
│ │ │ │ │ │ ├── target_python.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── candidate.py
│ │ │ │ │ ├── direct_url.py
│ │ │ │ │ ├── format_control.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── installation_report.py
│ │ │ │ │ ├── link.py
│ │ │ │ │ ├── scheme.py
│ │ │ │ │ ├── search_scope.py
│ │ │ │ │ ├── selection_prefs.py
│ │ │ │ │ ├── target_python.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── network
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── download.cpython-312.pyc
│ │ │ │ │ │ ├── lazy_wheel.cpython-312.pyc
│ │ │ │ │ │ ├── session.cpython-312.pyc
│ │ │ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ │ │ └── xmlrpc.cpython-312.pyc
│ │ │ │ │ ├── auth.py
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── lazy_wheel.py
│ │ │ │ │ ├── session.py
│ │ │ │ │ ├── utils.py
│ │ │ │ │ └── xmlrpc.py
│ │ │ │ ├── operations
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── check.cpython-312.pyc
│ │ │ │ │ │ ├── freeze.cpython-312.pyc
│ │ │ │ │ │ └── prepare.cpython-312.pyc
│ │ │ │ │ ├── build
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── build_tracker.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata_editable.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata_legacy.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ │ ├── wheel_editable.cpython-312.pyc
│ │ │ │ │ │ │ ├── wheel_legacy.cpython-312.pyc
│ │ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ │ ├── build_tracker.py
│ │ │ │ │ │ ├── metadata_editable.py
│ │ │ │ │ │ ├── metadata_legacy.py
│ │ │ │ │ │ ├── metadata.py
│ │ │ │ │ │ ├── wheel_editable.py
│ │ │ │ │ │ ├── wheel_legacy.py
│ │ │ │ │ │ └── wheel.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── install
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── editable_legacy.cpython-312.pyc
│ │ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ │ ├── editable_legacy.py
│ │ │ │ │ │ └── wheel.py
│ │ │ │ │ └── prepare.py
│ │ │ │ ├── pyproject.py
│ │ │ │ ├── req
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── constructors.cpython-312.pyc
│ │ │ │ │ │ ├── req_file.cpython-312.pyc
│ │ │ │ │ │ ├── req_install.cpython-312.pyc
│ │ │ │ │ │ ├── req_set.cpython-312.pyc
│ │ │ │ │ │ └── req_uninstall.cpython-312.pyc
│ │ │ │ │ ├── constructors.py
│ │ │ │ │ ├── req_file.py
│ │ │ │ │ ├── req_install.py
│ │ │ │ │ ├── req_set.py
│ │ │ │ │ └── req_uninstall.py
│ │ │ │ ├── resolution
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ └── base.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── legacy
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── resolver.cpython-312.pyc
│ │ │ │ │ │ └── resolver.py
│ │ │ │ │ └── resolvelib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ ├── candidates.cpython-312.pyc
│ │ │ │ │ │ ├── factory.cpython-312.pyc
│ │ │ │ │ │ ├── found_candidates.cpython-312.pyc
│ │ │ │ │ │ ├── provider.cpython-312.pyc
│ │ │ │ │ │ ├── reporter.cpython-312.pyc
│ │ │ │ │ │ ├── requirements.cpython-312.pyc
│ │ │ │ │ │ └── resolver.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── candidates.py
│ │ │ │ │ ├── factory.py
│ │ │ │ │ ├── found_candidates.py
│ │ │ │ │ ├── provider.py
│ │ │ │ │ ├── reporter.py
│ │ │ │ │ ├── requirements.py
│ │ │ │ │ └── resolver.py
│ │ │ │ ├── self_outdated_check.py
│ │ │ │ ├── utils
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _jaraco_text.cpython-312.pyc
│ │ │ │ │ │ ├── _log.cpython-312.pyc
│ │ │ │ │ │ ├── appdirs.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── compatibility_tags.cpython-312.pyc
│ │ │ │ │ │ ├── datetime.cpython-312.pyc
│ │ │ │ │ │ ├── deprecation.cpython-312.pyc
│ │ │ │ │ │ ├── direct_url_helpers.cpython-312.pyc
│ │ │ │ │ │ ├── egg_link.cpython-312.pyc
│ │ │ │ │ │ ├── encoding.cpython-312.pyc
│ │ │ │ │ │ ├── entrypoints.cpython-312.pyc
│ │ │ │ │ │ ├── filesystem.cpython-312.pyc
│ │ │ │ │ │ ├── filetypes.cpython-312.pyc
│ │ │ │ │ │ ├── glibc.cpython-312.pyc
│ │ │ │ │ │ ├── hashes.cpython-312.pyc
│ │ │ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ │ │ ├── misc.cpython-312.pyc
│ │ │ │ │ │ ├── packaging.cpython-312.pyc
│ │ │ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ │ │ ├── setuptools_build.cpython-312.pyc
│ │ │ │ │ │ ├── subprocess.cpython-312.pyc
│ │ │ │ │ │ ├── temp_dir.cpython-312.pyc
│ │ │ │ │ │ ├── unpacking.cpython-312.pyc
│ │ │ │ │ │ ├── urls.cpython-312.pyc
│ │ │ │ │ │ ├── virtualenv.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── _jaraco_text.py
│ │ │ │ │ ├── _log.py
│ │ │ │ │ ├── appdirs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── compatibility_tags.py
│ │ │ │ │ ├── datetime.py
│ │ │ │ │ ├── deprecation.py
│ │ │ │ │ ├── direct_url_helpers.py
│ │ │ │ │ ├── egg_link.py
│ │ │ │ │ ├── encoding.py
│ │ │ │ │ ├── entrypoints.py
│ │ │ │ │ ├── filesystem.py
│ │ │ │ │ ├── filetypes.py
│ │ │ │ │ ├── glibc.py
│ │ │ │ │ ├── hashes.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── packaging.py
│ │ │ │ │ ├── retry.py
│ │ │ │ │ ├── setuptools_build.py
│ │ │ │ │ ├── subprocess.py
│ │ │ │ │ ├── temp_dir.py
│ │ │ │ │ ├── unpacking.py
│ │ │ │ │ ├── urls.py
│ │ │ │ │ ├── virtualenv.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── vcs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── bazaar.cpython-312.pyc
│ │ │ │ │ │ ├── git.cpython-312.pyc
│ │ │ │ │ │ ├── mercurial.cpython-312.pyc
│ │ │ │ │ │ ├── subversion.cpython-312.pyc
│ │ │ │ │ │ └── versioncontrol.cpython-312.pyc
│ │ │ │ │ ├── bazaar.py
│ │ │ │ │ ├── git.py
│ │ │ │ │ ├── mercurial.py
│ │ │ │ │ ├── subversion.py
│ │ │ │ │ └── versioncontrol.py
│ │ │ │ └── wheel_builder.py
│ │ │ ├── _vendor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ └── typing_extensions.cpython-312.pyc
│ │ │ │ ├── cachecontrol
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _cmd.cpython-312.pyc
│ │ │ │ │ │ ├── adapter.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── controller.cpython-312.pyc
│ │ │ │ │ │ ├── filewrapper.cpython-312.pyc
│ │ │ │ │ │ ├── heuristics.cpython-312.pyc
│ │ │ │ │ │ ├── serialize.cpython-312.pyc
│ │ │ │ │ │ └── wrapper.cpython-312.pyc
│ │ │ │ │ ├── _cmd.py
│ │ │ │ │ ├── adapter.py
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── caches
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── file_cache.cpython-312.pyc
│ │ │ │ │ │ │ └── redis_cache.cpython-312.pyc
│ │ │ │ │ │ ├── file_cache.py
│ │ │ │ │ │ └── redis_cache.py
│ │ │ │ │ ├── controller.py
│ │ │ │ │ ├── filewrapper.py
│ │ │ │ │ ├── heuristics.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── serialize.py
│ │ │ │ │ └── wrapper.py
│ │ │ │ ├── certifi
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ └── core.cpython-312.pyc
│ │ │ │ │ ├── cacert.pem
│ │ │ │ │ ├── core.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── distlib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── database.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── locators.cpython-312.pyc
│ │ │ │ │ │ ├── manifest.cpython-312.pyc
│ │ │ │ │ │ ├── markers.cpython-312.pyc
│ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ ├── resources.cpython-312.pyc
│ │ │ │ │ │ ├── scripts.cpython-312.pyc
│ │ │ │ │ │ ├── util.cpython-312.pyc
│ │ │ │ │ │ ├── version.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── database.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── locators.py
│ │ │ │ │ ├── manifest.py
│ │ │ │ │ ├── markers.py
│ │ │ │ │ ├── metadata.py
│ │ │ │ │ ├── resources.py
│ │ │ │ │ ├── scripts.py
│ │ │ │ │ ├── t32.exe
│ │ │ │ │ ├── t64-arm.exe
│ │ │ │ │ ├── t64.exe
│ │ │ │ │ ├── util.py
│ │ │ │ │ ├── version.py
│ │ │ │ │ ├── w32.exe
│ │ │ │ │ ├── w64-arm.exe
│ │ │ │ │ ├── w64.exe
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── distro
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ └── distro.cpython-312.pyc
│ │ │ │ │ ├── distro.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── idna
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── codec.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ │ │ ├── idnadata.cpython-312.pyc
│ │ │ │ │ │ ├── intranges.cpython-312.pyc
│ │ │ │ │ │ ├── package_data.cpython-312.pyc
│ │ │ │ │ │ └── uts46data.cpython-312.pyc
│ │ │ │ │ ├── codec.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── core.py
│ │ │ │ │ ├── idnadata.py
│ │ │ │ │ ├── intranges.py
│ │ │ │ │ ├── package_data.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ └── uts46data.py
│ │ │ │ ├── msgpack
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── ext.cpython-312.pyc
│ │ │ │ │ │ └── fallback.cpython-312.pyc
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── ext.py
│ │ │ │ │ └── fallback.py
│ │ │ │ ├── packaging
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _elffile.cpython-312.pyc
│ │ │ │ │ │ ├── _manylinux.cpython-312.pyc
│ │ │ │ │ │ ├── _musllinux.cpython-312.pyc
│ │ │ │ │ │ ├── _parser.cpython-312.pyc
│ │ │ │ │ │ ├── _structures.cpython-312.pyc
│ │ │ │ │ │ ├── _tokenizer.cpython-312.pyc
│ │ │ │ │ │ ├── markers.cpython-312.pyc
│ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ ├── requirements.cpython-312.pyc
│ │ │ │ │ │ ├── specifiers.cpython-312.pyc
│ │ │ │ │ │ ├── tags.cpython-312.pyc
│ │ │ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ │ │ └── version.cpython-312.pyc
│ │ │ │ │ ├── _elffile.py
│ │ │ │ │ ├── _manylinux.py
│ │ │ │ │ ├── _musllinux.py
│ │ │ │ │ ├── _parser.py
│ │ │ │ │ ├── _structures.py
│ │ │ │ │ ├── _tokenizer.py
│ │ │ │ │ ├── markers.py
│ │ │ │ │ ├── metadata.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── requirements.py
│ │ │ │ │ ├── specifiers.py
│ │ │ │ │ ├── tags.py
│ │ │ │ │ ├── utils.py
│ │ │ │ │ └── version.py
│ │ │ │ ├── pkg_resources
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ ├── platformdirs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── android.cpython-312.pyc
│ │ │ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ │ │ ├── macos.cpython-312.pyc
│ │ │ │ │ │ ├── unix.cpython-312.pyc
│ │ │ │ │ │ ├── version.cpython-312.pyc
│ │ │ │ │ │ └── windows.cpython-312.pyc
│ │ │ │ │ ├── android.py
│ │ │ │ │ ├── api.py
│ │ │ │ │ ├── macos.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── unix.py
│ │ │ │ │ ├── version.py
│ │ │ │ │ └── windows.py
│ │ │ │ ├── pygments
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── cmdline.cpython-312.pyc
│ │ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ │ ├── filter.cpython-312.pyc
│ │ │ │ │ │ ├── formatter.cpython-312.pyc
│ │ │ │ │ │ ├── lexer.cpython-312.pyc
│ │ │ │ │ │ ├── modeline.cpython-312.pyc
│ │ │ │ │ │ ├── plugin.cpython-312.pyc
│ │ │ │ │ │ ├── regexopt.cpython-312.pyc
│ │ │ │ │ │ ├── scanner.cpython-312.pyc
│ │ │ │ │ │ ├── sphinxext.cpython-312.pyc
│ │ │ │ │ │ ├── style.cpython-312.pyc
│ │ │ │ │ │ ├── token.cpython-312.pyc
│ │ │ │ │ │ ├── unistring.cpython-312.pyc
│ │ │ │ │ │ └── util.cpython-312.pyc
│ │ │ │ │ ├── cmdline.py
│ │ │ │ │ ├── console.py
│ │ │ │ │ ├── filter.py
│ │ │ │ │ ├── filters
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── formatter.py
│ │ │ │ │ ├── formatters
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _mapping.cpython-312.pyc
│ │ │ │ │ │ │ ├── bbcode.cpython-312.pyc
│ │ │ │ │ │ │ ├── groff.cpython-312.pyc
│ │ │ │ │ │ │ ├── html.cpython-312.pyc
│ │ │ │ │ │ │ ├── img.cpython-312.pyc
│ │ │ │ │ │ │ ├── irc.cpython-312.pyc
│ │ │ │ │ │ │ ├── latex.cpython-312.pyc
│ │ │ │ │ │ │ ├── other.cpython-312.pyc
│ │ │ │ │ │ │ ├── pangomarkup.cpython-312.pyc
│ │ │ │ │ │ │ ├── rtf.cpython-312.pyc
│ │ │ │ │ │ │ ├── svg.cpython-312.pyc
│ │ │ │ │ │ │ ├── terminal.cpython-312.pyc
│ │ │ │ │ │ │ └── terminal256.cpython-312.pyc
│ │ │ │ │ │ ├── _mapping.py
│ │ │ │ │ │ ├── bbcode.py
│ │ │ │ │ │ ├── groff.py
│ │ │ │ │ │ ├── html.py
│ │ │ │ │ │ ├── img.py
│ │ │ │ │ │ ├── irc.py
│ │ │ │ │ │ ├── latex.py
│ │ │ │ │ │ ├── other.py
│ │ │ │ │ │ ├── pangomarkup.py
│ │ │ │ │ │ ├── rtf.py
│ │ │ │ │ │ ├── svg.py
│ │ │ │ │ │ ├── terminal.py
│ │ │ │ │ │ └── terminal256.py
│ │ │ │ │ ├── lexer.py
│ │ │ │ │ ├── lexers
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _mapping.cpython-312.pyc
│ │ │ │ │ │ │ └── python.cpython-312.pyc
│ │ │ │ │ │ ├── _mapping.py
│ │ │ │ │ │ └── python.py
│ │ │ │ │ ├── modeline.py
│ │ │ │ │ ├── plugin.py
│ │ │ │ │ ├── regexopt.py
│ │ │ │ │ ├── scanner.py
│ │ │ │ │ ├── sphinxext.py
│ │ │ │ │ ├── style.py
│ │ │ │ │ ├── styles
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── _mapping.cpython-312.pyc
│ │ │ │ │ │ └── _mapping.py
│ │ │ │ │ ├── token.py
│ │ │ │ │ ├── unistring.py
│ │ │ │ │ └── util.py
│ │ │ │ ├── pyproject_hooks
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ │ │ └── _impl.cpython-312.pyc
│ │ │ │ │ ├── _compat.py
│ │ │ │ │ ├── _impl.py
│ │ │ │ │ └── _in_process
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ └── _in_process.cpython-312.pyc
│ │ │ │ │ └── _in_process.py
│ │ │ │ ├── requests
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __version__.cpython-312.pyc
│ │ │ │ │ │ ├── _internal_utils.cpython-312.pyc
│ │ │ │ │ │ ├── adapters.cpython-312.pyc
│ │ │ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ │ ├── certs.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── cookies.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ │ │ ├── hooks.cpython-312.pyc
│ │ │ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ │ │ ├── packages.cpython-312.pyc
│ │ │ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ │ │ ├── status_codes.cpython-312.pyc
│ │ │ │ │ │ ├── structures.cpython-312.pyc
│ │ │ │ │ │ └── utils.cpython-312.pyc
│ │ │ │ │ ├── __version__.py
│ │ │ │ │ ├── _internal_utils.py
│ │ │ │ │ ├── adapters.py
│ │ │ │ │ ├── api.py
│ │ │ │ │ ├── auth.py
│ │ │ │ │ ├── certs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── cookies.py
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── hooks.py
│ │ │ │ │ ├── models.py
│ │ │ │ │ ├── packages.py
│ │ │ │ │ ├── sessions.py
│ │ │ │ │ ├── status_codes.py
│ │ │ │ │ ├── structures.py
│ │ │ │ │ └── utils.py
│ │ │ │ ├── resolvelib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── providers.cpython-312.pyc
│ │ │ │ │ │ ├── reporters.cpython-312.pyc
│ │ │ │ │ │ ├── resolvers.cpython-312.pyc
│ │ │ │ │ │ └── structs.cpython-312.pyc
│ │ │ │ │ ├── compat
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── collections_abc.cpython-312.pyc
│ │ │ │ │ │ └── collections_abc.py
│ │ │ │ │ ├── providers.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── reporters.py
│ │ │ │ │ ├── resolvers.py
│ │ │ │ │ └── structs.py
│ │ │ │ ├── rich
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── _cell_widths.cpython-312.pyc
│ │ │ │ │ │ ├── _emoji_codes.cpython-312.pyc
│ │ │ │ │ │ ├── _emoji_replace.cpython-312.pyc
│ │ │ │ │ │ ├── _export_format.cpython-312.pyc
│ │ │ │ │ │ ├── _extension.cpython-312.pyc
│ │ │ │ │ │ ├── _fileno.cpython-312.pyc
│ │ │ │ │ │ ├── _inspect.cpython-312.pyc
│ │ │ │ │ │ ├── _log_render.cpython-312.pyc
│ │ │ │ │ │ ├── _loop.cpython-312.pyc
│ │ │ │ │ │ ├── _null_file.cpython-312.pyc
│ │ │ │ │ │ ├── _palettes.cpython-312.pyc
│ │ │ │ │ │ ├── _pick.cpython-312.pyc
│ │ │ │ │ │ ├── _ratio.cpython-312.pyc
│ │ │ │ │ │ ├── _spinners.cpython-312.pyc
│ │ │ │ │ │ ├── _stack.cpython-312.pyc
│ │ │ │ │ │ ├── _timer.cpython-312.pyc
│ │ │ │ │ │ ├── _win32_console.cpython-312.pyc
│ │ │ │ │ │ ├── _windows_renderer.cpython-312.pyc
│ │ │ │ │ │ ├── _windows.cpython-312.pyc
│ │ │ │ │ │ ├── _wrap.cpython-312.pyc
│ │ │ │ │ │ ├── abc.cpython-312.pyc
│ │ │ │ │ │ ├── align.cpython-312.pyc
│ │ │ │ │ │ ├── ansi.cpython-312.pyc
│ │ │ │ │ │ ├── bar.cpython-312.pyc
│ │ │ │ │ │ ├── box.cpython-312.pyc
│ │ │ │ │ │ ├── cells.cpython-312.pyc
│ │ │ │ │ │ ├── color_triplet.cpython-312.pyc
│ │ │ │ │ │ ├── color.cpython-312.pyc
│ │ │ │ │ │ ├── columns.cpython-312.pyc
│ │ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ │ ├── constrain.cpython-312.pyc
│ │ │ │ │ │ ├── containers.cpython-312.pyc
│ │ │ │ │ │ ├── control.cpython-312.pyc
│ │ │ │ │ │ ├── default_styles.cpython-312.pyc
│ │ │ │ │ │ ├── diagnose.cpython-312.pyc
│ │ │ │ │ │ ├── emoji.cpython-312.pyc
│ │ │ │ │ │ ├── errors.cpython-312.pyc
│ │ │ │ │ │ ├── file_proxy.cpython-312.pyc
│ │ │ │ │ │ ├── filesize.cpython-312.pyc
│ │ │ │ │ │ ├── highlighter.cpython-312.pyc
│ │ │ │ │ │ ├── json.cpython-312.pyc
│ │ │ │ │ │ ├── jupyter.cpython-312.pyc
│ │ │ │ │ │ ├── layout.cpython-312.pyc
│ │ │ │ │ │ ├── live_render.cpython-312.pyc
│ │ │ │ │ │ ├── live.cpython-312.pyc
│ │ │ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ │ │ ├── markup.cpython-312.pyc
│ │ │ │ │ │ ├── measure.cpython-312.pyc
│ │ │ │ │ │ ├── padding.cpython-312.pyc
│ │ │ │ │ │ ├── pager.cpython-312.pyc
│ │ │ │ │ │ ├── palette.cpython-312.pyc
│ │ │ │ │ │ ├── panel.cpython-312.pyc
│ │ │ │ │ │ ├── pretty.cpython-312.pyc
│ │ │ │ │ │ ├── progress_bar.cpython-312.pyc
│ │ │ │ │ │ ├── progress.cpython-312.pyc
│ │ │ │ │ │ ├── prompt.cpython-312.pyc
│ │ │ │ │ │ ├── protocol.cpython-312.pyc
│ │ │ │ │ │ ├── region.cpython-312.pyc
│ │ │ │ │ │ ├── repr.cpython-312.pyc
│ │ │ │ │ │ ├── rule.cpython-312.pyc
│ │ │ │ │ │ ├── scope.cpython-312.pyc
│ │ │ │ │ │ ├── screen.cpython-312.pyc
│ │ │ │ │ │ ├── segment.cpython-312.pyc
│ │ │ │ │ │ ├── spinner.cpython-312.pyc
│ │ │ │ │ │ ├── status.cpython-312.pyc
│ │ │ │ │ │ ├── style.cpython-312.pyc
│ │ │ │ │ │ ├── styled.cpython-312.pyc
│ │ │ │ │ │ ├── syntax.cpython-312.pyc
│ │ │ │ │ │ ├── table.cpython-312.pyc
│ │ │ │ │ │ ├── terminal_theme.cpython-312.pyc
│ │ │ │ │ │ ├── text.cpython-312.pyc
│ │ │ │ │ │ ├── theme.cpython-312.pyc
│ │ │ │ │ │ ├── themes.cpython-312.pyc
│ │ │ │ │ │ ├── traceback.cpython-312.pyc
│ │ │ │ │ │ └── tree.cpython-312.pyc
│ │ │ │ │ ├── _cell_widths.py
│ │ │ │ │ ├── _emoji_codes.py
│ │ │ │ │ ├── _emoji_replace.py
│ │ │ │ │ ├── _export_format.py
│ │ │ │ │ ├── _extension.py
│ │ │ │ │ ├── _fileno.py
│ │ │ │ │ ├── _inspect.py
│ │ │ │ │ ├── _log_render.py
│ │ │ │ │ ├── _loop.py
│ │ │ │ │ ├── _null_file.py
│ │ │ │ │ ├── _palettes.py
│ │ │ │ │ ├── _pick.py
│ │ │ │ │ ├── _ratio.py
│ │ │ │ │ ├── _spinners.py
│ │ │ │ │ ├── _stack.py
│ │ │ │ │ ├── _timer.py
│ │ │ │ │ ├── _win32_console.py
│ │ │ │ │ ├── _windows_renderer.py
│ │ │ │ │ ├── _windows.py
│ │ │ │ │ ├── _wrap.py
│ │ │ │ │ ├── abc.py
│ │ │ │ │ ├── align.py
│ │ │ │ │ ├── ansi.py
│ │ │ │ │ ├── bar.py
│ │ │ │ │ ├── box.py
│ │ │ │ │ ├── cells.py
│ │ │ │ │ ├── color_triplet.py
│ │ │ │ │ ├── color.py
│ │ │ │ │ ├── columns.py
│ │ │ │ │ ├── console.py
│ │ │ │ │ ├── constrain.py
│ │ │ │ │ ├── containers.py
│ │ │ │ │ ├── control.py
│ │ │ │ │ ├── default_styles.py
│ │ │ │ │ ├── diagnose.py
│ │ │ │ │ ├── emoji.py
│ │ │ │ │ ├── errors.py
│ │ │ │ │ ├── file_proxy.py
│ │ │ │ │ ├── filesize.py
│ │ │ │ │ ├── highlighter.py
│ │ │ │ │ ├── json.py
│ │ │ │ │ ├── jupyter.py
│ │ │ │ │ ├── layout.py
│ │ │ │ │ ├── live_render.py
│ │ │ │ │ ├── live.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── markup.py
│ │ │ │ │ ├── measure.py
│ │ │ │ │ ├── padding.py
│ │ │ │ │ ├── pager.py
│ │ │ │ │ ├── palette.py
│ │ │ │ │ ├── panel.py
│ │ │ │ │ ├── pretty.py
│ │ │ │ │ ├── progress_bar.py
│ │ │ │ │ ├── progress.py
│ │ │ │ │ ├── prompt.py
│ │ │ │ │ ├── protocol.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── region.py
│ │ │ │ │ ├── repr.py
│ │ │ │ │ ├── rule.py
│ │ │ │ │ ├── scope.py
│ │ │ │ │ ├── screen.py
│ │ │ │ │ ├── segment.py
│ │ │ │ │ ├── spinner.py
│ │ │ │ │ ├── status.py
│ │ │ │ │ ├── style.py
│ │ │ │ │ ├── styled.py
│ │ │ │ │ ├── syntax.py
│ │ │ │ │ ├── table.py
│ │ │ │ │ ├── terminal_theme.py
│ │ │ │ │ ├── text.py
│ │ │ │ │ ├── theme.py
│ │ │ │ │ ├── themes.py
│ │ │ │ │ ├── traceback.py
│ │ │ │ │ └── tree.py
│ │ │ │ ├── tomli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _parser.cpython-312.pyc
│ │ │ │ │ │ ├── _re.cpython-312.pyc
│ │ │ │ │ │ └── _types.cpython-312.pyc
│ │ │ │ │ ├── _parser.py
│ │ │ │ │ ├── _re.py
│ │ │ │ │ ├── _types.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── truststore
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _api.cpython-312.pyc
│ │ │ │ │ │ ├── _macos.cpython-312.pyc
│ │ │ │ │ │ ├── _openssl.cpython-312.pyc
│ │ │ │ │ │ ├── _ssl_constants.cpython-312.pyc
│ │ │ │ │ │ └── _windows.cpython-312.pyc
│ │ │ │ │ ├── _api.py
│ │ │ │ │ ├── _macos.py
│ │ │ │ │ ├── _openssl.py
│ │ │ │ │ ├── _ssl_constants.py
│ │ │ │ │ ├── _windows.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── typing_extensions.py
│ │ │ │ ├── urllib3
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _collections.cpython-312.pyc
│ │ │ │ │ │ ├── _version.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── connectionpool.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── fields.cpython-312.pyc
│ │ │ │ │ │ ├── filepost.cpython-312.pyc
│ │ │ │ │ │ ├── poolmanager.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ │ ├── _collections.py
│ │ │ │ │ ├── _version.py
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── connectionpool.py
│ │ │ │ │ ├── contrib
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _appengine_environ.cpython-312.pyc
│ │ │ │ │ │ │ ├── appengine.cpython-312.pyc
│ │ │ │ │ │ │ ├── ntlmpool.cpython-312.pyc
│ │ │ │ │ │ │ ├── pyopenssl.cpython-312.pyc
│ │ │ │ │ │ │ ├── securetransport.cpython-312.pyc
│ │ │ │ │ │ │ └── socks.cpython-312.pyc
│ │ │ │ │ │ ├── _appengine_environ.py
│ │ │ │ │ │ ├── _securetransport
│ │ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ │ ├── bindings.cpython-312.pyc
│ │ │ │ │ │ │ │ └── low_level.cpython-312.pyc
│ │ │ │ │ │ │ ├── bindings.py
│ │ │ │ │ │ │ └── low_level.py
│ │ │ │ │ │ ├── appengine.py
│ │ │ │ │ │ ├── ntlmpool.py
│ │ │ │ │ │ ├── pyopenssl.py
│ │ │ │ │ │ ├── securetransport.py
│ │ │ │ │ │ └── socks.py
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── fields.py
│ │ │ │ │ ├── filepost.py
│ │ │ │ │ ├── packages
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── six.cpython-312.pyc
│ │ │ │ │ │ ├── backports
│ │ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ │ ├── makefile.cpython-312.pyc
│ │ │ │ │ │ │ │ └── weakref_finalize.cpython-312.pyc
│ │ │ │ │ │ │ ├── makefile.py
│ │ │ │ │ │ │ └── weakref_finalize.py
│ │ │ │ │ │ └── six.py
│ │ │ │ │ ├── poolmanager.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ ├── response.py
│ │ │ │ │ └── util
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── proxy.cpython-312.pyc
│ │ │ │ │ │ ├── queue.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ │ │ ├── ssl_.cpython-312.pyc
│ │ │ │ │ │ ├── ssl_match_hostname.cpython-312.pyc
│ │ │ │ │ │ ├── ssltransport.cpython-312.pyc
│ │ │ │ │ │ ├── timeout.cpython-312.pyc
│ │ │ │ │ │ ├── url.cpython-312.pyc
│ │ │ │ │ │ └── wait.cpython-312.pyc
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── proxy.py
│ │ │ │ │ ├── queue.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ ├── response.py
│ │ │ │ │ ├── retry.py
│ │ │ │ │ ├── ssl_.py
│ │ │ │ │ ├── ssl_match_hostname.py
│ │ │ │ │ ├── ssltransport.py
│ │ │ │ │ ├── timeout.py
│ │ │ │ │ ├── url.py
│ │ │ │ │ └── wait.py
│ │ │ │ └── vendor.txt
│ │ │ └── py.typed
│ │ ├── pip-24.2.dist-info
│ │ │ ├── AUTHORS.txt
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── requests
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __version__.cpython-312.pyc
│ │ │ │ ├── _internal_utils.cpython-312.pyc
│ │ │ │ ├── adapters.cpython-312.pyc
│ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ ├── certs.cpython-312.pyc
│ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ ├── cookies.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ ├── hooks.cpython-312.pyc
│ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ ├── packages.cpython-312.pyc
│ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ ├── status_codes.cpython-312.pyc
│ │ │ │ ├── structures.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── __version__.py
│ │ │ ├── _internal_utils.py
│ │ │ ├── adapters.py
│ │ │ ├── api.py
│ │ │ ├── auth.py
│ │ │ ├── certs.py
│ │ │ ├── compat.py
│ │ │ ├── cookies.py
│ │ │ ├── exceptions.py
│ │ │ ├── help.py
│ │ │ ├── hooks.py
│ │ │ ├── models.py
│ │ │ ├── packages.py
│ │ │ ├── sessions.py
│ │ │ ├── status_codes.py
│ │ │ ├── structures.py
│ │ │ └── utils.py
│ │ ├── requests-2.32.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── soupsieve
│ │ │ ├── __init__.py
│ │ │ ├── __meta__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __meta__.cpython-312.pyc
│ │ │ │ ├── css_match.cpython-312.pyc
│ │ │ │ ├── css_parser.cpython-312.pyc
│ │ │ │ ├── css_types.cpython-312.pyc
│ │ │ │ ├── pretty.cpython-312.pyc
│ │ │ │ └── util.cpython-312.pyc
│ │ │ ├── css_match.py
│ │ │ ├── css_parser.py
│ │ │ ├── css_types.py
│ │ │ ├── pretty.py
│ │ │ ├── py.typed
│ │ │ └── util.py
│ │ ├── soupsieve-2.6.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ └── LICENSE.md
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── urllib3
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _base_connection.cpython-312.pyc
│ │ │ │ ├── _collections.cpython-312.pyc
│ │ │ │ ├── _request_methods.cpython-312.pyc
│ │ │ │ ├── _version.cpython-312.pyc
│ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ ├── connectionpool.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── fields.cpython-312.pyc
│ │ │ │ ├── filepost.cpython-312.pyc
│ │ │ │ ├── poolmanager.cpython-312.pyc
│ │ │ │ └── response.cpython-312.pyc
│ │ │ ├── _base_connection.py
│ │ │ ├── _collections.py
│ │ │ ├── _request_methods.py
│ │ │ ├── _version.py
│ │ │ ├── connection.py
│ │ │ ├── connectionpool.py
│ │ │ ├── contrib
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── pyopenssl.cpython-312.pyc
│ │ │ │ │ └── socks.cpython-312.pyc
│ │ │ │ ├── emscripten
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── fetch.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── emscripten_fetch_worker.js
│ │ │ │ │ ├── fetch.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ └── response.py
│ │ │ │ ├── pyopenssl.py
│ │ │ │ └── socks.py
│ │ │ ├── exceptions.py
│ │ │ ├── fields.py
│ │ │ ├── filepost.py
│ │ │ ├── http2
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ └── probe.cpython-312.pyc
│ │ │ │ ├── connection.py
│ │ │ │ └── probe.py
│ │ │ ├── poolmanager.py
│ │ │ ├── py.typed
│ │ │ ├── response.py
│ │ │ └── util
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ ├── proxy.cpython-312.pyc
│ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ ├── ssl_.cpython-312.pyc
│ │ │ │ ├── ssl_match_hostname.cpython-312.pyc
│ │ │ │ ├── ssltransport.cpython-312.pyc
│ │ │ │ ├── timeout.cpython-312.pyc
│ │ │ │ ├── url.cpython-312.pyc
│ │ │ │ ├── util.cpython-312.pyc
│ │ │ │ └── wait.cpython-312.pyc
│ │ │ ├── connection.py
│ │ │ ├── proxy.py
│ │ │ ├── request.py
│ │ │ ├── response.py
│ │ │ ├── retry.py
│ │ │ ├── ssl_.py
│ │ │ ├── ssl_match_hostname.py
│ │ │ ├── ssltransport.py
│ │ │ ├── timeout.py
│ │ │ ├── url.py
│ │ │ ├── util.py
│ │ │ └── wait.py
│ │ ├── urllib3-2.2.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ └── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── useragent
│ │ │ ├── __init__.py
│ │ │ ├── __init__.pyc
│ │ │ ├── __pycache__
│ │ │ │ └── __init__.cpython-312.pyc
│ │ │ ├── resources
│ │ │ │ └── user_agent_data.json
│ │ │ └── test
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ └── __init__.cpython-312.pyc
│ │ │ ├── test_additional_os.json
│ │ │ ├── test_browser.json
│ │ │ ├── test_device.json
│ │ │ ├── test_firefox.json
│ │ │ ├── test_os.json
│ │ │ └── test_pgts_browser.json
│ │ ├── useragent-0.1.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── werkzeug
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _internal.cpython-312.pyc
│ │ │ │ ├── _reloader.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── formparser.cpython-312.pyc
│ │ │ │ ├── http.cpython-312.pyc
│ │ │ │ ├── local.cpython-312.pyc
│ │ │ │ ├── security.cpython-312.pyc
│ │ │ │ ├── serving.cpython-312.pyc
│ │ │ │ ├── test.cpython-312.pyc
│ │ │ │ ├── testapp.cpython-312.pyc
│ │ │ │ ├── urls.cpython-312.pyc
│ │ │ │ ├── user_agent.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── wsgi.cpython-312.pyc
│ │ │ ├── _internal.py
│ │ │ ├── _reloader.py
│ │ │ ├── datastructures
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── accept.cpython-312.pyc
│ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ ├── cache_control.cpython-312.pyc
│ │ │ │ │ ├── csp.cpython-312.pyc
│ │ │ │ │ ├── etag.cpython-312.pyc
│ │ │ │ │ ├── file_storage.cpython-312.pyc
│ │ │ │ │ ├── headers.cpython-312.pyc
│ │ │ │ │ ├── mixins.cpython-312.pyc
│ │ │ │ │ ├── range.cpython-312.pyc
│ │ │ │ │ └── structures.cpython-312.pyc
│ │ │ │ ├── accept.py
│ │ │ │ ├── accept.pyi
│ │ │ │ ├── auth.py
│ │ │ │ ├── cache_control.py
│ │ │ │ ├── cache_control.pyi
│ │ │ │ ├── csp.py
│ │ │ │ ├── csp.pyi
│ │ │ │ ├── etag.py
│ │ │ │ ├── etag.pyi
│ │ │ │ ├── file_storage.py
│ │ │ │ ├── file_storage.pyi
│ │ │ │ ├── headers.py
│ │ │ │ ├── headers.pyi
│ │ │ │ ├── mixins.py
│ │ │ │ ├── mixins.pyi
│ │ │ │ ├── range.py
│ │ │ │ ├── range.pyi
│ │ │ │ ├── structures.py
│ │ │ │ └── structures.pyi
│ │ │ ├── debug
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ ├── repr.cpython-312.pyc
│ │ │ │ │ └── tbtools.cpython-312.pyc
│ │ │ │ ├── console.py
│ │ │ │ ├── repr.py
│ │ │ │ ├── shared
│ │ │ │ │ ├── console.png
│ │ │ │ │ ├── debugger.js
│ │ │ │ │ ├── ICON_LICENSE.md
│ │ │ │ │ ├── less.png
│ │ │ │ │ ├── more.png
│ │ │ │ │ └── style.css
│ │ │ │ └── tbtools.py
│ │ │ ├── exceptions.py
│ │ │ ├── formparser.py
│ │ │ ├── http.py
│ │ │ ├── local.py
│ │ │ ├── middleware
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── dispatcher.cpython-312.pyc
│ │ │ │ │ ├── http_proxy.cpython-312.pyc
│ │ │ │ │ ├── lint.cpython-312.pyc
│ │ │ │ │ ├── profiler.cpython-312.pyc
│ │ │ │ │ ├── proxy_fix.cpython-312.pyc
│ │ │ │ │ └── shared_data.cpython-312.pyc
│ │ │ │ ├── dispatcher.py
│ │ │ │ ├── http_proxy.py
│ │ │ │ ├── lint.py
│ │ │ │ ├── profiler.py
│ │ │ │ ├── proxy_fix.py
│ │ │ │ └── shared_data.py
│ │ │ ├── py.typed
│ │ │ ├── routing
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── converters.cpython-312.pyc
│ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ ├── map.cpython-312.pyc
│ │ │ │ │ ├── matcher.cpython-312.pyc
│ │ │ │ │ └── rules.cpython-312.pyc
│ │ │ │ ├── converters.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── map.py
│ │ │ │ ├── matcher.py
│ │ │ │ └── rules.py
│ │ │ ├── sansio
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── http.cpython-312.pyc
│ │ │ │ │ ├── multipart.cpython-312.pyc
│ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ │ └── utils.cpython-312.pyc
│ │ │ │ ├── http.py
│ │ │ │ ├── multipart.py
│ │ │ │ ├── request.py
│ │ │ │ ├── response.py
│ │ │ │ └── utils.py
│ │ │ ├── security.py
│ │ │ ├── serving.py
│ │ │ ├── test.py
│ │ │ ├── testapp.py
│ │ │ ├── urls.py
│ │ │ ├── user_agent.py
│ │ │ ├── utils.py
│ │ │ ├── wrappers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ ├── request.py
│ │ │ │ └── response.py
│ │ │ └── wsgi.py
│ │ └── werkzeug-3.0.4.dist-info
│ │ ├── INSTALLER
│ │ ├── LICENSE.txt
│ │ ├── METADATA
│ │ ├── RECORD
│ │ └── WHEEL
│ ├── pyvenv.cfg
│ ├── static
│ │ └── styles.css
│ ├── templates
│ │ └── index.html
│ └── test.py
├── cline_config.json
├── mcp_server.py
├── README.md
├── search_results.json
├── settings.json
└── test_files
├── text1.txt
└── text2.txt
```
# Files
--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py:
--------------------------------------------------------------------------------
```python
1 | """Android."""
2 |
3 | from __future__ import annotations
4 |
5 | import os
6 | import re
7 | import sys
8 | from functools import lru_cache
9 | from typing import TYPE_CHECKING, cast
10 |
11 | from .api import PlatformDirsABC
12 |
13 |
14 | class Android(PlatformDirsABC):
15 | """
16 | Follows the guidance `from here <https://android.stackexchange.com/a/216132>`_.
17 |
18 | Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `version
19 | <platformdirs.api.PlatformDirsABC.version>`, `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
20 |
21 | """
22 |
23 | @property
24 | def user_data_dir(self) -> str:
25 | """:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``"""
26 | return self._append_app_name_and_version(cast(str, _android_folder()), "files")
27 |
28 | @property
29 | def site_data_dir(self) -> str:
30 | """:return: data directory shared by users, same as `user_data_dir`"""
31 | return self.user_data_dir
32 |
33 | @property
34 | def user_config_dir(self) -> str:
35 | """
36 | :return: config directory tied to the user, e.g. \
37 | ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
38 | """
39 | return self._append_app_name_and_version(cast(str, _android_folder()), "shared_prefs")
40 |
41 | @property
42 | def site_config_dir(self) -> str:
43 | """:return: config directory shared by the users, same as `user_config_dir`"""
44 | return self.user_config_dir
45 |
46 | @property
47 | def user_cache_dir(self) -> str:
48 | """:return: cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``"""
49 | return self._append_app_name_and_version(cast(str, _android_folder()), "cache")
50 |
51 | @property
52 | def site_cache_dir(self) -> str:
53 | """:return: cache directory shared by users, same as `user_cache_dir`"""
54 | return self.user_cache_dir
55 |
56 | @property
57 | def user_state_dir(self) -> str:
58 | """:return: state directory tied to the user, same as `user_data_dir`"""
59 | return self.user_data_dir
60 |
61 | @property
62 | def user_log_dir(self) -> str:
63 | """
64 | :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it,
65 | e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/log``
66 | """
67 | path = self.user_cache_dir
68 | if self.opinion:
69 | path = os.path.join(path, "log") # noqa: PTH118
70 | return path
71 |
72 | @property
73 | def user_documents_dir(self) -> str:
74 | """:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``"""
75 | return _android_documents_folder()
76 |
77 | @property
78 | def user_downloads_dir(self) -> str:
79 | """:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``"""
80 | return _android_downloads_folder()
81 |
82 | @property
83 | def user_pictures_dir(self) -> str:
84 | """:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``"""
85 | return _android_pictures_folder()
86 |
87 | @property
88 | def user_videos_dir(self) -> str:
89 | """:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``"""
90 | return _android_videos_folder()
91 |
92 | @property
93 | def user_music_dir(self) -> str:
94 | """:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``"""
95 | return _android_music_folder()
96 |
97 | @property
98 | def user_desktop_dir(self) -> str:
99 | """:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``"""
100 | return "/storage/emulated/0/Desktop"
101 |
102 | @property
103 | def user_runtime_dir(self) -> str:
104 | """
105 | :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it,
106 | e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/tmp``
107 | """
108 | path = self.user_cache_dir
109 | if self.opinion:
110 | path = os.path.join(path, "tmp") # noqa: PTH118
111 | return path
112 |
113 | @property
114 | def site_runtime_dir(self) -> str:
115 | """:return: runtime directory shared by users, same as `user_runtime_dir`"""
116 | return self.user_runtime_dir
117 |
118 |
119 | @lru_cache(maxsize=1)
120 | def _android_folder() -> str | None: # noqa: C901, PLR0912
121 | """:return: base folder for the Android OS or None if it cannot be found"""
122 | result: str | None = None
123 | # type checker isn't happy with our "import android", just don't do this when type checking see
124 | # https://stackoverflow.com/a/61394121
125 | if not TYPE_CHECKING:
126 | try:
127 | # First try to get a path to android app using python4android (if available)...
128 | from android import mActivity # noqa: PLC0415
129 |
130 | context = cast("android.content.Context", mActivity.getApplicationContext()) # noqa: F821
131 | result = context.getFilesDir().getParentFile().getAbsolutePath()
132 | except Exception: # noqa: BLE001
133 | result = None
134 | if result is None:
135 | try:
136 | # ...and fall back to using plain pyjnius, if python4android isn't available or doesn't deliver any useful
137 | # result...
138 | from jnius import autoclass # noqa: PLC0415
139 |
140 | context = autoclass("android.content.Context")
141 | result = context.getFilesDir().getParentFile().getAbsolutePath()
142 | except Exception: # noqa: BLE001
143 | result = None
144 | if result is None:
145 | # and if that fails, too, find an android folder looking at path on the sys.path
146 | # warning: only works for apps installed under /data, not adopted storage etc.
147 | pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files")
148 | for path in sys.path:
149 | if pattern.match(path):
150 | result = path.split("/files")[0]
151 | break
152 | else:
153 | result = None
154 | if result is None:
155 | # one last try: find an android folder looking at path on the sys.path taking adopted storage paths into
156 | # account
157 | pattern = re.compile(r"/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files")
158 | for path in sys.path:
159 | if pattern.match(path):
160 | result = path.split("/files")[0]
161 | break
162 | else:
163 | result = None
164 | return result
165 |
166 |
167 | @lru_cache(maxsize=1)
168 | def _android_documents_folder() -> str:
169 | """:return: documents folder for the Android OS"""
170 | # Get directories with pyjnius
171 | try:
172 | from jnius import autoclass # noqa: PLC0415
173 |
174 | context = autoclass("android.content.Context")
175 | environment = autoclass("android.os.Environment")
176 | documents_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOCUMENTS).getAbsolutePath()
177 | except Exception: # noqa: BLE001
178 | documents_dir = "/storage/emulated/0/Documents"
179 |
180 | return documents_dir
181 |
182 |
183 | @lru_cache(maxsize=1)
184 | def _android_downloads_folder() -> str:
185 | """:return: downloads folder for the Android OS"""
186 | # Get directories with pyjnius
187 | try:
188 | from jnius import autoclass # noqa: PLC0415
189 |
190 | context = autoclass("android.content.Context")
191 | environment = autoclass("android.os.Environment")
192 | downloads_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOWNLOADS).getAbsolutePath()
193 | except Exception: # noqa: BLE001
194 | downloads_dir = "/storage/emulated/0/Downloads"
195 |
196 | return downloads_dir
197 |
198 |
199 | @lru_cache(maxsize=1)
200 | def _android_pictures_folder() -> str:
201 | """:return: pictures folder for the Android OS"""
202 | # Get directories with pyjnius
203 | try:
204 | from jnius import autoclass # noqa: PLC0415
205 |
206 | context = autoclass("android.content.Context")
207 | environment = autoclass("android.os.Environment")
208 | pictures_dir: str = context.getExternalFilesDir(environment.DIRECTORY_PICTURES).getAbsolutePath()
209 | except Exception: # noqa: BLE001
210 | pictures_dir = "/storage/emulated/0/Pictures"
211 |
212 | return pictures_dir
213 |
214 |
215 | @lru_cache(maxsize=1)
216 | def _android_videos_folder() -> str:
217 | """:return: videos folder for the Android OS"""
218 | # Get directories with pyjnius
219 | try:
220 | from jnius import autoclass # noqa: PLC0415
221 |
222 | context = autoclass("android.content.Context")
223 | environment = autoclass("android.os.Environment")
224 | videos_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DCIM).getAbsolutePath()
225 | except Exception: # noqa: BLE001
226 | videos_dir = "/storage/emulated/0/DCIM/Camera"
227 |
228 | return videos_dir
229 |
230 |
231 | @lru_cache(maxsize=1)
232 | def _android_music_folder() -> str:
233 | """:return: music folder for the Android OS"""
234 | # Get directories with pyjnius
235 | try:
236 | from jnius import autoclass # noqa: PLC0415
237 |
238 | context = autoclass("android.content.Context")
239 | environment = autoclass("android.os.Environment")
240 | music_dir: str = context.getExternalFilesDir(environment.DIRECTORY_MUSIC).getAbsolutePath()
241 | except Exception: # noqa: BLE001
242 | music_dir = "/storage/emulated/0/Music"
243 |
244 | return music_dir
245 |
246 |
247 | __all__ = [
248 | "Android",
249 | ]
250 |
```
--------------------------------------------------------------------------------
/.venv/bin/Activate.ps1:
--------------------------------------------------------------------------------
```
1 | <#
2 | .Synopsis
3 | Activate a Python virtual environment for the current PowerShell session.
4 |
5 | .Description
6 | Pushes the python executable for a virtual environment to the front of the
7 | $Env:PATH environment variable and sets the prompt to signify that you are
8 | in a Python virtual environment. Makes use of the command line switches as
9 | well as the `pyvenv.cfg` file values present in the virtual environment.
10 |
11 | .Parameter VenvDir
12 | Path to the directory that contains the virtual environment to activate. The
13 | default value for this is the parent of the directory that the Activate.ps1
14 | script is located within.
15 |
16 | .Parameter Prompt
17 | The prompt prefix to display when this virtual environment is activated. By
18 | default, this prompt is the name of the virtual environment folder (VenvDir)
19 | surrounded by parentheses and followed by a single space (ie. '(.venv) ').
20 |
21 | .Example
22 | Activate.ps1
23 | Activates the Python virtual environment that contains the Activate.ps1 script.
24 |
25 | .Example
26 | Activate.ps1 -Verbose
27 | Activates the Python virtual environment that contains the Activate.ps1 script,
28 | and shows extra information about the activation as it executes.
29 |
30 | .Example
31 | Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
32 | Activates the Python virtual environment located in the specified location.
33 |
34 | .Example
35 | Activate.ps1 -Prompt "MyPython"
36 | Activates the Python virtual environment that contains the Activate.ps1 script,
37 | and prefixes the current prompt with the specified string (surrounded in
38 | parentheses) while the virtual environment is active.
39 |
40 | .Notes
41 | On Windows, it may be required to enable this Activate.ps1 script by setting the
42 | execution policy for the user. You can do this by issuing the following PowerShell
43 | command:
44 |
45 | PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
46 |
47 | For more information on Execution Policies:
48 | https://go.microsoft.com/fwlink/?LinkID=135170
49 |
50 | #>
51 | Param(
52 | [Parameter(Mandatory = $false)]
53 | [String]
54 | $VenvDir,
55 | [Parameter(Mandatory = $false)]
56 | [String]
57 | $Prompt
58 | )
59 |
60 | <# Function declarations --------------------------------------------------- #>
61 |
62 | <#
63 | .Synopsis
64 | Remove all shell session elements added by the Activate script, including the
65 | addition of the virtual environment's Python executable from the beginning of
66 | the PATH variable.
67 |
68 | .Parameter NonDestructive
69 | If present, do not remove this function from the global namespace for the
70 | session.
71 |
72 | #>
73 | function global:deactivate ([switch]$NonDestructive) {
74 | # Revert to original values
75 |
76 | # The prior prompt:
77 | if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
78 | Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
79 | Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
80 | }
81 |
82 | # The prior PYTHONHOME:
83 | if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
84 | Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
85 | Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
86 | }
87 |
88 | # The prior PATH:
89 | if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
90 | Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
91 | Remove-Item -Path Env:_OLD_VIRTUAL_PATH
92 | }
93 |
94 | # Just remove the VIRTUAL_ENV altogether:
95 | if (Test-Path -Path Env:VIRTUAL_ENV) {
96 | Remove-Item -Path env:VIRTUAL_ENV
97 | }
98 |
99 | # Just remove VIRTUAL_ENV_PROMPT altogether.
100 | if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
101 | Remove-Item -Path env:VIRTUAL_ENV_PROMPT
102 | }
103 |
104 | # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
105 | if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
106 | Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
107 | }
108 |
109 | # Leave deactivate function in the global namespace if requested:
110 | if (-not $NonDestructive) {
111 | Remove-Item -Path function:deactivate
112 | }
113 | }
114 |
115 | <#
116 | .Description
117 | Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
118 | given folder, and returns them in a map.
119 |
120 | For each line in the pyvenv.cfg file, if that line can be parsed into exactly
121 | two strings separated by `=` (with any amount of whitespace surrounding the =)
122 | then it is considered a `key = value` line. The left hand string is the key,
123 | the right hand is the value.
124 |
125 | If the value starts with a `'` or a `"` then the first and last character is
126 | stripped from the value before being captured.
127 |
128 | .Parameter ConfigDir
129 | Path to the directory that contains the `pyvenv.cfg` file.
130 | #>
131 | function Get-PyVenvConfig(
132 | [String]
133 | $ConfigDir
134 | ) {
135 | Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
136 |
137 | # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
138 | $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
139 |
140 | # An empty map will be returned if no config file is found.
141 | $pyvenvConfig = @{ }
142 |
143 | if ($pyvenvConfigPath) {
144 |
145 | Write-Verbose "File exists, parse `key = value` lines"
146 | $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
147 |
148 | $pyvenvConfigContent | ForEach-Object {
149 | $keyval = $PSItem -split "\s*=\s*", 2
150 | if ($keyval[0] -and $keyval[1]) {
151 | $val = $keyval[1]
152 |
153 | # Remove extraneous quotations around a string value.
154 | if ("'""".Contains($val.Substring(0, 1))) {
155 | $val = $val.Substring(1, $val.Length - 2)
156 | }
157 |
158 | $pyvenvConfig[$keyval[0]] = $val
159 | Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
160 | }
161 | }
162 | }
163 | return $pyvenvConfig
164 | }
165 |
166 |
167 | <# Begin Activate script --------------------------------------------------- #>
168 |
169 | # Determine the containing directory of this script
170 | $VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
171 | $VenvExecDir = Get-Item -Path $VenvExecPath
172 |
173 | Write-Verbose "Activation script is located in path: '$VenvExecPath'"
174 | Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
175 | Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
176 |
177 | # Set values required in priority: CmdLine, ConfigFile, Default
178 | # First, get the location of the virtual environment, it might not be
179 | # VenvExecDir if specified on the command line.
180 | if ($VenvDir) {
181 | Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
182 | }
183 | else {
184 | Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
185 | $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
186 | Write-Verbose "VenvDir=$VenvDir"
187 | }
188 |
189 | # Next, read the `pyvenv.cfg` file to determine any required value such
190 | # as `prompt`.
191 | $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
192 |
193 | # Next, set the prompt from the command line, or the config file, or
194 | # just use the name of the virtual environment folder.
195 | if ($Prompt) {
196 | Write-Verbose "Prompt specified as argument, using '$Prompt'"
197 | }
198 | else {
199 | Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
200 | if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
201 | Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
202 | $Prompt = $pyvenvCfg['prompt'];
203 | }
204 | else {
205 | Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
206 | Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
207 | $Prompt = Split-Path -Path $venvDir -Leaf
208 | }
209 | }
210 |
211 | Write-Verbose "Prompt = '$Prompt'"
212 | Write-Verbose "VenvDir='$VenvDir'"
213 |
214 | # Deactivate any currently active virtual environment, but leave the
215 | # deactivate function in place.
216 | deactivate -nondestructive
217 |
218 | # Now set the environment variable VIRTUAL_ENV, used by many tools to determine
219 | # that there is an activated venv.
220 | $env:VIRTUAL_ENV = $VenvDir
221 |
222 | if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
223 |
224 | Write-Verbose "Setting prompt to '$Prompt'"
225 |
226 | # Set the prompt to include the env name
227 | # Make sure _OLD_VIRTUAL_PROMPT is global
228 | function global:_OLD_VIRTUAL_PROMPT { "" }
229 | Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
230 | New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
231 |
232 | function global:prompt {
233 | Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
234 | _OLD_VIRTUAL_PROMPT
235 | }
236 | $env:VIRTUAL_ENV_PROMPT = $Prompt
237 | }
238 |
239 | # Clear PYTHONHOME
240 | if (Test-Path -Path Env:PYTHONHOME) {
241 | Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
242 | Remove-Item -Path Env:PYTHONHOME
243 | }
244 |
245 | # Add the venv to the PATH
246 | Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
247 | $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
248 |
```
--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxslt/xsltutils.h:
--------------------------------------------------------------------------------
```
1 | /*
2 | * Summary: set of utilities for the XSLT engine
3 | * Description: interfaces for the utilities module of the XSLT engine.
4 | * things like message handling, profiling, and other
5 | * generally useful routines.
6 | *
7 | * Copy: See Copyright for the status of this software.
8 | *
9 | * Author: Daniel Veillard
10 | */
11 |
12 | #ifndef __XML_XSLTUTILS_H__
13 | #define __XML_XSLTUTILS_H__
14 |
15 | #include <libxslt/xsltconfig.h>
16 | #include <libxml/xpath.h>
17 | #include <libxml/dict.h>
18 | #include <libxml/xmlerror.h>
19 | #include "xsltexports.h"
20 | #include "xsltInternals.h"
21 |
22 | #ifdef __cplusplus
23 | extern "C" {
24 | #endif
25 |
26 | /**
27 | * XSLT_TODO:
28 | *
29 | * Macro to flag unimplemented blocks.
30 | */
31 | #define XSLT_TODO \
32 | xsltGenericError(xsltGenericErrorContext, \
33 | "Unimplemented block at %s:%d\n", \
34 | __FILE__, __LINE__);
35 |
36 | /**
37 | * XSLT_STRANGE:
38 | *
39 | * Macro to flag that a problem was detected internally.
40 | */
41 | #define XSLT_STRANGE \
42 | xsltGenericError(xsltGenericErrorContext, \
43 | "Internal error at %s:%d\n", \
44 | __FILE__, __LINE__);
45 |
46 | /**
47 | * IS_XSLT_ELEM:
48 | *
49 | * Checks that the element pertains to XSLT namespace.
50 | */
51 | #define IS_XSLT_ELEM(n) \
52 | (((n) != NULL) && ((n)->type == XML_ELEMENT_NODE) && \
53 | ((n)->ns != NULL) && (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
54 |
55 | /**
56 | * IS_XSLT_NAME:
57 | *
58 | * Checks the value of an element in XSLT namespace.
59 | */
60 | #define IS_XSLT_NAME(n, val) \
61 | (xmlStrEqual((n)->name, (const xmlChar *) (val)))
62 |
63 | /**
64 | * IS_XSLT_REAL_NODE:
65 | *
66 | * Check that a node is a 'real' one: document, element, text or attribute.
67 | */
68 | #define IS_XSLT_REAL_NODE(n) \
69 | (((n) != NULL) && \
70 | (((n)->type == XML_ELEMENT_NODE) || \
71 | ((n)->type == XML_TEXT_NODE) || \
72 | ((n)->type == XML_CDATA_SECTION_NODE) || \
73 | ((n)->type == XML_ATTRIBUTE_NODE) || \
74 | ((n)->type == XML_DOCUMENT_NODE) || \
75 | ((n)->type == XML_HTML_DOCUMENT_NODE) || \
76 | ((n)->type == XML_COMMENT_NODE) || \
77 | ((n)->type == XML_PI_NODE)))
78 |
79 | /*
80 | * Our own version of namespaced attributes lookup.
81 | */
82 | XSLTPUBFUN xmlChar * XSLTCALL
83 | xsltGetNsProp (xmlNodePtr node,
84 | const xmlChar *name,
85 | const xmlChar *nameSpace);
86 | XSLTPUBFUN const xmlChar * XSLTCALL
87 | xsltGetCNsProp (xsltStylesheetPtr style,
88 | xmlNodePtr node,
89 | const xmlChar *name,
90 | const xmlChar *nameSpace);
91 | XSLTPUBFUN int XSLTCALL
92 | xsltGetUTF8Char (const unsigned char *utf,
93 | int *len);
94 | #ifdef IN_LIBXSLT
95 | /** DOC_DISABLE */
96 | XSLTPUBFUN int XSLTCALL
97 | xsltGetUTF8CharZ (const unsigned char *utf,
98 | int *len);
99 | /** DOC_ENABLE */
100 | #endif
101 |
102 | /*
103 | * XSLT Debug Tracing Tracing Types
104 | */
105 | typedef enum {
106 | XSLT_TRACE_ALL = -1,
107 | XSLT_TRACE_NONE = 0,
108 | XSLT_TRACE_COPY_TEXT = 1<<0,
109 | XSLT_TRACE_PROCESS_NODE = 1<<1,
110 | XSLT_TRACE_APPLY_TEMPLATE = 1<<2,
111 | XSLT_TRACE_COPY = 1<<3,
112 | XSLT_TRACE_COMMENT = 1<<4,
113 | XSLT_TRACE_PI = 1<<5,
114 | XSLT_TRACE_COPY_OF = 1<<6,
115 | XSLT_TRACE_VALUE_OF = 1<<7,
116 | XSLT_TRACE_CALL_TEMPLATE = 1<<8,
117 | XSLT_TRACE_APPLY_TEMPLATES = 1<<9,
118 | XSLT_TRACE_CHOOSE = 1<<10,
119 | XSLT_TRACE_IF = 1<<11,
120 | XSLT_TRACE_FOR_EACH = 1<<12,
121 | XSLT_TRACE_STRIP_SPACES = 1<<13,
122 | XSLT_TRACE_TEMPLATES = 1<<14,
123 | XSLT_TRACE_KEYS = 1<<15,
124 | XSLT_TRACE_VARIABLES = 1<<16
125 | } xsltDebugTraceCodes;
126 |
127 | /**
128 | * XSLT_TRACE:
129 | *
130 | * Control the type of xsl debugtrace messages emitted.
131 | */
132 | #define XSLT_TRACE(ctxt,code,call) \
133 | if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
134 | call
135 |
136 | XSLTPUBFUN void XSLTCALL
137 | xsltDebugSetDefaultTrace(xsltDebugTraceCodes val);
138 | XSLTPUBFUN xsltDebugTraceCodes XSLTCALL
139 | xsltDebugGetDefaultTrace(void);
140 |
141 | /*
142 | * XSLT specific error and debug reporting functions.
143 | */
144 | XSLTPUBVAR xmlGenericErrorFunc xsltGenericError;
145 | XSLTPUBVAR void *xsltGenericErrorContext;
146 | XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug;
147 | XSLTPUBVAR void *xsltGenericDebugContext;
148 |
149 | XSLTPUBFUN void XSLTCALL
150 | xsltPrintErrorContext (xsltTransformContextPtr ctxt,
151 | xsltStylesheetPtr style,
152 | xmlNodePtr node);
153 | XSLTPUBFUN void XSLTCALL
154 | xsltMessage (xsltTransformContextPtr ctxt,
155 | xmlNodePtr node,
156 | xmlNodePtr inst);
157 | XSLTPUBFUN void XSLTCALL
158 | xsltSetGenericErrorFunc (void *ctx,
159 | xmlGenericErrorFunc handler);
160 | XSLTPUBFUN void XSLTCALL
161 | xsltSetGenericDebugFunc (void *ctx,
162 | xmlGenericErrorFunc handler);
163 | XSLTPUBFUN void XSLTCALL
164 | xsltSetTransformErrorFunc (xsltTransformContextPtr ctxt,
165 | void *ctx,
166 | xmlGenericErrorFunc handler);
167 | XSLTPUBFUN void XSLTCALL
168 | xsltTransformError (xsltTransformContextPtr ctxt,
169 | xsltStylesheetPtr style,
170 | xmlNodePtr node,
171 | const char *msg,
172 | ...) LIBXSLT_ATTR_FORMAT(4,5);
173 |
174 | XSLTPUBFUN int XSLTCALL
175 | xsltSetCtxtParseOptions (xsltTransformContextPtr ctxt,
176 | int options);
177 | /*
178 | * Sorting.
179 | */
180 |
181 | XSLTPUBFUN void XSLTCALL
182 | xsltDocumentSortFunction (xmlNodeSetPtr list);
183 | XSLTPUBFUN void XSLTCALL
184 | xsltSetSortFunc (xsltSortFunc handler);
185 | XSLTPUBFUN void XSLTCALL
186 | xsltSetCtxtSortFunc (xsltTransformContextPtr ctxt,
187 | xsltSortFunc handler);
188 | XSLTPUBFUN void XSLTCALL
189 | xsltSetCtxtLocaleHandlers (xsltTransformContextPtr ctxt,
190 | xsltNewLocaleFunc newLocale,
191 | xsltFreeLocaleFunc freeLocale,
192 | xsltGenSortKeyFunc genSortKey);
193 | XSLTPUBFUN void XSLTCALL
194 | xsltDefaultSortFunction (xsltTransformContextPtr ctxt,
195 | xmlNodePtr *sorts,
196 | int nbsorts);
197 | XSLTPUBFUN void XSLTCALL
198 | xsltDoSortFunction (xsltTransformContextPtr ctxt,
199 | xmlNodePtr * sorts,
200 | int nbsorts);
201 | XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL
202 | xsltComputeSortResult (xsltTransformContextPtr ctxt,
203 | xmlNodePtr sort);
204 |
205 | /*
206 | * QNames handling.
207 | */
208 |
209 | XSLTPUBFUN const xmlChar * XSLTCALL
210 | xsltSplitQName (xmlDictPtr dict,
211 | const xmlChar *name,
212 | const xmlChar **prefix);
213 | XSLTPUBFUN const xmlChar * XSLTCALL
214 | xsltGetQNameURI (xmlNodePtr node,
215 | xmlChar **name);
216 |
217 | XSLTPUBFUN const xmlChar * XSLTCALL
218 | xsltGetQNameURI2 (xsltStylesheetPtr style,
219 | xmlNodePtr node,
220 | const xmlChar **name);
221 |
222 | /*
223 | * Output, reuse libxml I/O buffers.
224 | */
225 | XSLTPUBFUN int XSLTCALL
226 | xsltSaveResultTo (xmlOutputBufferPtr buf,
227 | xmlDocPtr result,
228 | xsltStylesheetPtr style);
229 | XSLTPUBFUN int XSLTCALL
230 | xsltSaveResultToFilename (const char *URI,
231 | xmlDocPtr result,
232 | xsltStylesheetPtr style,
233 | int compression);
234 | XSLTPUBFUN int XSLTCALL
235 | xsltSaveResultToFile (FILE *file,
236 | xmlDocPtr result,
237 | xsltStylesheetPtr style);
238 | XSLTPUBFUN int XSLTCALL
239 | xsltSaveResultToFd (int fd,
240 | xmlDocPtr result,
241 | xsltStylesheetPtr style);
242 | XSLTPUBFUN int XSLTCALL
243 | xsltSaveResultToString (xmlChar **doc_txt_ptr,
244 | int * doc_txt_len,
245 | xmlDocPtr result,
246 | xsltStylesheetPtr style);
247 |
248 | /*
249 | * XPath interface
250 | */
251 | XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
252 | xsltXPathCompile (xsltStylesheetPtr style,
253 | const xmlChar *str);
254 | XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
255 | xsltXPathCompileFlags (xsltStylesheetPtr style,
256 | const xmlChar *str,
257 | int flags);
258 |
259 | #ifdef IN_LIBXSLT
260 | /** DOC_DISABLE */
261 | #define XSLT_SOURCE_NODE_MASK 15u
262 | #define XSLT_SOURCE_NODE_HAS_KEY 1u
263 | #define XSLT_SOURCE_NODE_HAS_ID 2u
264 | int
265 | xsltGetSourceNodeFlags(xmlNodePtr node);
266 | int
267 | xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr node,
268 | int flags);
269 | int
270 | xsltClearSourceNodeFlags(xmlNodePtr node, int flags);
271 | void **
272 | xsltGetPSVIPtr(xmlNodePtr cur);
273 | /** DOC_ENABLE */
274 | #endif
275 |
276 | #ifdef WITH_PROFILER
277 | /*
278 | * Profiling.
279 | */
280 | XSLTPUBFUN void XSLTCALL
281 | xsltSaveProfiling (xsltTransformContextPtr ctxt,
282 | FILE *output);
283 | XSLTPUBFUN xmlDocPtr XSLTCALL
284 | xsltGetProfileInformation (xsltTransformContextPtr ctxt);
285 |
286 | XSLTPUBFUN long XSLTCALL
287 | xsltTimestamp (void);
288 | XSLTPUBFUN void XSLTCALL
289 | xsltCalibrateAdjust (long delta);
290 | #endif
291 |
292 | /**
293 | * XSLT_TIMESTAMP_TICS_PER_SEC:
294 | *
295 | * Sampling precision for profiling
296 | */
297 | #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
298 |
299 | /*
300 | * Hooks for the debugger.
301 | */
302 |
303 | typedef enum {
304 | XSLT_DEBUG_NONE = 0, /* no debugging allowed */
305 | XSLT_DEBUG_INIT,
306 | XSLT_DEBUG_STEP,
307 | XSLT_DEBUG_STEPOUT,
308 | XSLT_DEBUG_NEXT,
309 | XSLT_DEBUG_STOP,
310 | XSLT_DEBUG_CONT,
311 | XSLT_DEBUG_RUN,
312 | XSLT_DEBUG_RUN_RESTART,
313 | XSLT_DEBUG_QUIT
314 | } xsltDebugStatusCodes;
315 |
316 | XSLTPUBVAR int xslDebugStatus;
317 |
318 | typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,
319 | xsltTemplatePtr templ, xsltTransformContextPtr ctxt);
320 | typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
321 | typedef void (*xsltDropCallCallback) (void);
322 |
323 | XSLTPUBFUN int XSLTCALL
324 | xsltGetDebuggerStatus (void);
325 | #ifdef WITH_DEBUGGER
326 | XSLTPUBFUN void XSLTCALL
327 | xsltSetDebuggerStatus (int value);
328 | XSLTPUBFUN int XSLTCALL
329 | xsltSetDebuggerCallbacks (int no, void *block);
330 | XSLTPUBFUN int XSLTCALL
331 | xslAddCall (xsltTemplatePtr templ,
332 | xmlNodePtr source);
333 | XSLTPUBFUN void XSLTCALL
334 | xslDropCall (void);
335 | #endif
336 |
337 | #ifdef __cplusplus
338 | }
339 | #endif
340 |
341 | #endif /* __XML_XSLTUTILS_H__ */
342 |
343 |
344 |
```
--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py:
--------------------------------------------------------------------------------
```python
1 | from typing import Iterator, List, Optional, Tuple
2 |
3 | from ._loop import loop_first, loop_last
4 | from .console import Console, ConsoleOptions, RenderableType, RenderResult
5 | from .jupyter import JupyterMixin
6 | from .measure import Measurement
7 | from .segment import Segment
8 | from .style import Style, StyleStack, StyleType
9 | from .styled import Styled
10 |
11 |
12 | class Tree(JupyterMixin):
13 | """A renderable for a tree structure.
14 |
15 | Args:
16 | label (RenderableType): The renderable or str for the tree label.
17 | style (StyleType, optional): Style of this tree. Defaults to "tree".
18 | guide_style (StyleType, optional): Style of the guide lines. Defaults to "tree.line".
19 | expanded (bool, optional): Also display children. Defaults to True.
20 | highlight (bool, optional): Highlight renderable (if str). Defaults to False.
21 | """
22 |
23 | def __init__(
24 | self,
25 | label: RenderableType,
26 | *,
27 | style: StyleType = "tree",
28 | guide_style: StyleType = "tree.line",
29 | expanded: bool = True,
30 | highlight: bool = False,
31 | hide_root: bool = False,
32 | ) -> None:
33 | self.label = label
34 | self.style = style
35 | self.guide_style = guide_style
36 | self.children: List[Tree] = []
37 | self.expanded = expanded
38 | self.highlight = highlight
39 | self.hide_root = hide_root
40 |
41 | def add(
42 | self,
43 | label: RenderableType,
44 | *,
45 | style: Optional[StyleType] = None,
46 | guide_style: Optional[StyleType] = None,
47 | expanded: bool = True,
48 | highlight: Optional[bool] = False,
49 | ) -> "Tree":
50 | """Add a child tree.
51 |
52 | Args:
53 | label (RenderableType): The renderable or str for the tree label.
54 | style (StyleType, optional): Style of this tree. Defaults to "tree".
55 | guide_style (StyleType, optional): Style of the guide lines. Defaults to "tree.line".
56 | expanded (bool, optional): Also display children. Defaults to True.
57 | highlight (Optional[bool], optional): Highlight renderable (if str). Defaults to False.
58 |
59 | Returns:
60 | Tree: A new child Tree, which may be further modified.
61 | """
62 | node = Tree(
63 | label,
64 | style=self.style if style is None else style,
65 | guide_style=self.guide_style if guide_style is None else guide_style,
66 | expanded=expanded,
67 | highlight=self.highlight if highlight is None else highlight,
68 | )
69 | self.children.append(node)
70 | return node
71 |
72 | def __rich_console__(
73 | self, console: "Console", options: "ConsoleOptions"
74 | ) -> "RenderResult":
75 | stack: List[Iterator[Tuple[bool, Tree]]] = []
76 | pop = stack.pop
77 | push = stack.append
78 | new_line = Segment.line()
79 |
80 | get_style = console.get_style
81 | null_style = Style.null()
82 | guide_style = get_style(self.guide_style, default="") or null_style
83 | SPACE, CONTINUE, FORK, END = range(4)
84 |
85 | ASCII_GUIDES = (" ", "| ", "+-- ", "`-- ")
86 | TREE_GUIDES = [
87 | (" ", "│ ", "├── ", "└── "),
88 | (" ", "┃ ", "┣━━ ", "┗━━ "),
89 | (" ", "║ ", "╠══ ", "╚══ "),
90 | ]
91 | _Segment = Segment
92 |
93 | def make_guide(index: int, style: Style) -> Segment:
94 | """Make a Segment for a level of the guide lines."""
95 | if options.ascii_only:
96 | line = ASCII_GUIDES[index]
97 | else:
98 | guide = 1 if style.bold else (2 if style.underline2 else 0)
99 | line = TREE_GUIDES[0 if options.legacy_windows else guide][index]
100 | return _Segment(line, style)
101 |
102 | levels: List[Segment] = [make_guide(CONTINUE, guide_style)]
103 | push(iter(loop_last([self])))
104 |
105 | guide_style_stack = StyleStack(get_style(self.guide_style))
106 | style_stack = StyleStack(get_style(self.style))
107 | remove_guide_styles = Style(bold=False, underline2=False)
108 |
109 | depth = 0
110 |
111 | while stack:
112 | stack_node = pop()
113 | try:
114 | last, node = next(stack_node)
115 | except StopIteration:
116 | levels.pop()
117 | if levels:
118 | guide_style = levels[-1].style or null_style
119 | levels[-1] = make_guide(FORK, guide_style)
120 | guide_style_stack.pop()
121 | style_stack.pop()
122 | continue
123 | push(stack_node)
124 | if last:
125 | levels[-1] = make_guide(END, levels[-1].style or null_style)
126 |
127 | guide_style = guide_style_stack.current + get_style(node.guide_style)
128 | style = style_stack.current + get_style(node.style)
129 | prefix = levels[(2 if self.hide_root else 1) :]
130 | renderable_lines = console.render_lines(
131 | Styled(node.label, style),
132 | options.update(
133 | width=options.max_width
134 | - sum(level.cell_length for level in prefix),
135 | highlight=self.highlight,
136 | height=None,
137 | ),
138 | pad=options.justify is not None,
139 | )
140 |
141 | if not (depth == 0 and self.hide_root):
142 | for first, line in loop_first(renderable_lines):
143 | if prefix:
144 | yield from _Segment.apply_style(
145 | prefix,
146 | style.background_style,
147 | post_style=remove_guide_styles,
148 | )
149 | yield from line
150 | yield new_line
151 | if first and prefix:
152 | prefix[-1] = make_guide(
153 | SPACE if last else CONTINUE, prefix[-1].style or null_style
154 | )
155 |
156 | if node.expanded and node.children:
157 | levels[-1] = make_guide(
158 | SPACE if last else CONTINUE, levels[-1].style or null_style
159 | )
160 | levels.append(
161 | make_guide(END if len(node.children) == 1 else FORK, guide_style)
162 | )
163 | style_stack.push(get_style(node.style))
164 | guide_style_stack.push(get_style(node.guide_style))
165 | push(iter(loop_last(node.children)))
166 | depth += 1
167 |
168 | def __rich_measure__(
169 | self, console: "Console", options: "ConsoleOptions"
170 | ) -> "Measurement":
171 | stack: List[Iterator[Tree]] = [iter([self])]
172 | pop = stack.pop
173 | push = stack.append
174 | minimum = 0
175 | maximum = 0
176 | measure = Measurement.get
177 | level = 0
178 | while stack:
179 | iter_tree = pop()
180 | try:
181 | tree = next(iter_tree)
182 | except StopIteration:
183 | level -= 1
184 | continue
185 | push(iter_tree)
186 | min_measure, max_measure = measure(console, options, tree.label)
187 | indent = level * 4
188 | minimum = max(min_measure + indent, minimum)
189 | maximum = max(max_measure + indent, maximum)
190 | if tree.expanded and tree.children:
191 | push(iter(tree.children))
192 | level += 1
193 | return Measurement(minimum, maximum)
194 |
195 |
196 | if __name__ == "__main__": # pragma: no cover
197 | from pip._vendor.rich.console import Group
198 | from pip._vendor.rich.markdown import Markdown
199 | from pip._vendor.rich.panel import Panel
200 | from pip._vendor.rich.syntax import Syntax
201 | from pip._vendor.rich.table import Table
202 |
203 | table = Table(row_styles=["", "dim"])
204 |
205 | table.add_column("Released", style="cyan", no_wrap=True)
206 | table.add_column("Title", style="magenta")
207 | table.add_column("Box Office", justify="right", style="green")
208 |
209 | table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$952,110,690")
210 | table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347")
211 | table.add_row("Dec 15, 2017", "Star Wars Ep. V111: The Last Jedi", "$1,332,539,889")
212 | table.add_row("Dec 16, 2016", "Rogue One: A Star Wars Story", "$1,332,439,889")
213 |
214 | code = """\
215 | class Segment(NamedTuple):
216 | text: str = ""
217 | style: Optional[Style] = None
218 | is_control: bool = False
219 | """
220 | syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
221 |
222 | markdown = Markdown(
223 | """\
224 | ### example.md
225 | > Hello, World!
226 | >
227 | > Markdown _all_ the things
228 | """
229 | )
230 |
231 | root = Tree("🌲 [b green]Rich Tree", highlight=True, hide_root=True)
232 |
233 | node = root.add(":file_folder: Renderables", guide_style="red")
234 | simple_node = node.add(":file_folder: [bold yellow]Atomic", guide_style="uu green")
235 | simple_node.add(Group("📄 Syntax", syntax))
236 | simple_node.add(Group("📄 Markdown", Panel(markdown, border_style="green")))
237 |
238 | containers_node = node.add(
239 | ":file_folder: [bold magenta]Containers", guide_style="bold magenta"
240 | )
241 | containers_node.expanded = True
242 | panel = Panel.fit("Just a panel", border_style="red")
243 | containers_node.add(Group("📄 Panels", panel))
244 |
245 | containers_node.add(Group("📄 [b magenta]Table", table))
246 |
247 | console = Console()
248 |
249 | console.print(root)
250 |
```
--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/xmlversion.h:
--------------------------------------------------------------------------------
```
1 | /*
2 | * Summary: compile-time version information
3 | * Description: compile-time version information for the XML library
4 | *
5 | * Copy: See Copyright for the status of this software.
6 | *
7 | * Author: Daniel Veillard
8 | */
9 |
10 | #ifndef __XML_VERSION_H__
11 | #define __XML_VERSION_H__
12 |
13 | #include <libxml/xmlexports.h>
14 |
15 | #ifdef __cplusplus
16 | extern "C" {
17 | #endif
18 |
19 | /*
20 | * use those to be sure nothing nasty will happen if
21 | * your library and includes mismatch
22 | */
23 | #ifndef LIBXML2_COMPILING_MSCCDEF
24 | XMLPUBFUN void xmlCheckVersion(int version);
25 | #endif /* LIBXML2_COMPILING_MSCCDEF */
26 |
27 | /**
28 | * LIBXML_DOTTED_VERSION:
29 | *
30 | * the version string like "1.2.3"
31 | */
32 | #define LIBXML_DOTTED_VERSION "2.12.9"
33 |
34 | /**
35 | * LIBXML_VERSION:
36 | *
37 | * the version number: 1.2.3 value is 10203
38 | */
39 | #define LIBXML_VERSION 21209
40 |
41 | /**
42 | * LIBXML_VERSION_STRING:
43 | *
44 | * the version number string, 1.2.3 value is "10203"
45 | */
46 | #define LIBXML_VERSION_STRING "21209"
47 |
48 | /**
49 | * LIBXML_VERSION_EXTRA:
50 | *
51 | * extra version information, used to show a git commit description
52 | */
53 | #define LIBXML_VERSION_EXTRA ""
54 |
55 | /**
56 | * LIBXML_TEST_VERSION:
57 | *
58 | * Macro to check that the libxml version in use is compatible with
59 | * the version the software has been compiled against
60 | */
61 | #define LIBXML_TEST_VERSION xmlCheckVersion(21209);
62 |
63 | #ifndef VMS
64 | #if 0
65 | /**
66 | * WITH_TRIO:
67 | *
68 | * defined if the trio support need to be configured in
69 | */
70 | #define WITH_TRIO
71 | #else
72 | /**
73 | * WITHOUT_TRIO:
74 | *
75 | * defined if the trio support should not be configured in
76 | */
77 | #define WITHOUT_TRIO
78 | #endif
79 | #else /* VMS */
80 | /**
81 | * WITH_TRIO:
82 | *
83 | * defined if the trio support need to be configured in
84 | */
85 | #define WITH_TRIO 1
86 | #endif /* VMS */
87 |
88 | /**
89 | * LIBXML_THREAD_ENABLED:
90 | *
91 | * Whether the thread support is configured in
92 | */
93 | #if 1
94 | #define LIBXML_THREAD_ENABLED
95 | #endif
96 |
97 | /**
98 | * LIBXML_THREAD_ALLOC_ENABLED:
99 | *
100 | * Whether the allocation hooks are per-thread
101 | */
102 | #if 0
103 | #define LIBXML_THREAD_ALLOC_ENABLED
104 | #endif
105 |
106 | /**
107 | * LIBXML_TREE_ENABLED:
108 | *
109 | * Whether the DOM like tree manipulation API support is configured in
110 | */
111 | #if 1
112 | #define LIBXML_TREE_ENABLED
113 | #endif
114 |
115 | /**
116 | * LIBXML_OUTPUT_ENABLED:
117 | *
118 | * Whether the serialization/saving support is configured in
119 | */
120 | #if 1
121 | #define LIBXML_OUTPUT_ENABLED
122 | #endif
123 |
124 | /**
125 | * LIBXML_PUSH_ENABLED:
126 | *
127 | * Whether the push parsing interfaces are configured in
128 | */
129 | #if 1
130 | #define LIBXML_PUSH_ENABLED
131 | #endif
132 |
133 | /**
134 | * LIBXML_READER_ENABLED:
135 | *
136 | * Whether the xmlReader parsing interface is configured in
137 | */
138 | #if 1
139 | #define LIBXML_READER_ENABLED
140 | #endif
141 |
142 | /**
143 | * LIBXML_PATTERN_ENABLED:
144 | *
145 | * Whether the xmlPattern node selection interface is configured in
146 | */
147 | #if 1
148 | #define LIBXML_PATTERN_ENABLED
149 | #endif
150 |
151 | /**
152 | * LIBXML_WRITER_ENABLED:
153 | *
154 | * Whether the xmlWriter saving interface is configured in
155 | */
156 | #if 1
157 | #define LIBXML_WRITER_ENABLED
158 | #endif
159 |
160 | /**
161 | * LIBXML_SAX1_ENABLED:
162 | *
163 | * Whether the older SAX1 interface is configured in
164 | */
165 | #if 1
166 | #define LIBXML_SAX1_ENABLED
167 | #endif
168 |
169 | /**
170 | * LIBXML_FTP_ENABLED:
171 | *
172 | * Whether the FTP support is configured in
173 | */
174 | #if 0
175 | #define LIBXML_FTP_ENABLED
176 | #endif
177 |
178 | /**
179 | * LIBXML_HTTP_ENABLED:
180 | *
181 | * Whether the HTTP support is configured in
182 | */
183 | #if 1
184 | #define LIBXML_HTTP_ENABLED
185 | #endif
186 |
187 | /**
188 | * LIBXML_VALID_ENABLED:
189 | *
190 | * Whether the DTD validation support is configured in
191 | */
192 | #if 1
193 | #define LIBXML_VALID_ENABLED
194 | #endif
195 |
196 | /**
197 | * LIBXML_HTML_ENABLED:
198 | *
199 | * Whether the HTML support is configured in
200 | */
201 | #if 1
202 | #define LIBXML_HTML_ENABLED
203 | #endif
204 |
205 | /**
206 | * LIBXML_LEGACY_ENABLED:
207 | *
208 | * Whether the deprecated APIs are compiled in for compatibility
209 | */
210 | #if 0
211 | #define LIBXML_LEGACY_ENABLED
212 | #endif
213 |
214 | /**
215 | * LIBXML_C14N_ENABLED:
216 | *
217 | * Whether the Canonicalization support is configured in
218 | */
219 | #if 1
220 | #define LIBXML_C14N_ENABLED
221 | #endif
222 |
223 | /**
224 | * LIBXML_CATALOG_ENABLED:
225 | *
226 | * Whether the Catalog support is configured in
227 | */
228 | #if 1
229 | #define LIBXML_CATALOG_ENABLED
230 | #endif
231 |
232 | /**
233 | * LIBXML_XPATH_ENABLED:
234 | *
235 | * Whether XPath is configured in
236 | */
237 | #if 1
238 | #define LIBXML_XPATH_ENABLED
239 | #endif
240 |
241 | /**
242 | * LIBXML_XPTR_ENABLED:
243 | *
244 | * Whether XPointer is configured in
245 | */
246 | #if 1
247 | #define LIBXML_XPTR_ENABLED
248 | #endif
249 |
250 | /**
251 | * LIBXML_XPTR_LOCS_ENABLED:
252 | *
253 | * Whether support for XPointer locations is configured in
254 | */
255 | #if 0
256 | #define LIBXML_XPTR_LOCS_ENABLED
257 | #endif
258 |
259 | /**
260 | * LIBXML_XINCLUDE_ENABLED:
261 | *
262 | * Whether XInclude is configured in
263 | */
264 | #if 1
265 | #define LIBXML_XINCLUDE_ENABLED
266 | #endif
267 |
268 | /**
269 | * LIBXML_ICONV_ENABLED:
270 | *
271 | * Whether iconv support is available
272 | */
273 | #if 1
274 | #define LIBXML_ICONV_ENABLED
275 | #endif
276 |
277 | /**
278 | * LIBXML_ICU_ENABLED:
279 | *
280 | * Whether icu support is available
281 | */
282 | #if 0
283 | #define LIBXML_ICU_ENABLED
284 | #endif
285 |
286 | /**
287 | * LIBXML_ISO8859X_ENABLED:
288 | *
289 | * Whether ISO-8859-* support is made available in case iconv is not
290 | */
291 | #if 1
292 | #define LIBXML_ISO8859X_ENABLED
293 | #endif
294 |
295 | /**
296 | * LIBXML_DEBUG_ENABLED:
297 | *
298 | * Whether Debugging module is configured in
299 | */
300 | #if 1
301 | #define LIBXML_DEBUG_ENABLED
302 | #endif
303 |
304 | /**
305 | * DEBUG_MEMORY_LOCATION:
306 | *
307 | * Whether the memory debugging is configured in
308 | */
309 | #if 0
310 | #define DEBUG_MEMORY_LOCATION
311 | #endif
312 |
313 | /**
314 | * LIBXML_DEBUG_RUNTIME:
315 | *
316 | * Removed
317 | */
318 | #if 0
319 | #define LIBXML_DEBUG_RUNTIME
320 | #endif
321 |
322 | /**
323 | * LIBXML_UNICODE_ENABLED:
324 | *
325 | * Whether the Unicode related interfaces are compiled in
326 | */
327 | #if 1
328 | #define LIBXML_UNICODE_ENABLED
329 | #endif
330 |
331 | /**
332 | * LIBXML_REGEXP_ENABLED:
333 | *
334 | * Whether the regular expressions interfaces are compiled in
335 | */
336 | #if 1
337 | #define LIBXML_REGEXP_ENABLED
338 | #endif
339 |
340 | /**
341 | * LIBXML_AUTOMATA_ENABLED:
342 | *
343 | * Whether the automata interfaces are compiled in
344 | */
345 | #if 1
346 | #define LIBXML_AUTOMATA_ENABLED
347 | #endif
348 |
349 | /**
350 | * LIBXML_EXPR_ENABLED:
351 | *
352 | * Whether the formal expressions interfaces are compiled in
353 | *
354 | * This code is unused and disabled unconditionally for now.
355 | */
356 | #if 0
357 | #define LIBXML_EXPR_ENABLED
358 | #endif
359 |
360 | /**
361 | * LIBXML_SCHEMAS_ENABLED:
362 | *
363 | * Whether the Schemas validation interfaces are compiled in
364 | */
365 | #if 1
366 | #define LIBXML_SCHEMAS_ENABLED
367 | #endif
368 |
369 | /**
370 | * LIBXML_SCHEMATRON_ENABLED:
371 | *
372 | * Whether the Schematron validation interfaces are compiled in
373 | */
374 | #if 1
375 | #define LIBXML_SCHEMATRON_ENABLED
376 | #endif
377 |
378 | /**
379 | * LIBXML_MODULES_ENABLED:
380 | *
381 | * Whether the module interfaces are compiled in
382 | */
383 | #if 1
384 | #define LIBXML_MODULES_ENABLED
385 | /**
386 | * LIBXML_MODULE_EXTENSION:
387 | *
388 | * the string suffix used by dynamic modules (usually shared libraries)
389 | */
390 | #define LIBXML_MODULE_EXTENSION ".so"
391 | #endif
392 |
393 | /**
394 | * LIBXML_ZLIB_ENABLED:
395 | *
396 | * Whether the Zlib support is compiled in
397 | */
398 | #if 1
399 | #define LIBXML_ZLIB_ENABLED
400 | #endif
401 |
402 | /**
403 | * LIBXML_LZMA_ENABLED:
404 | *
405 | * Whether the Lzma support is compiled in
406 | */
407 | #if 0
408 | #define LIBXML_LZMA_ENABLED
409 | #endif
410 |
411 | #ifdef __GNUC__
412 | /** DOC_DISABLE */
413 |
414 | #ifndef ATTRIBUTE_UNUSED
415 | # if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
416 | # define ATTRIBUTE_UNUSED __attribute__((unused))
417 | # else
418 | # define ATTRIBUTE_UNUSED
419 | # endif
420 | #endif
421 |
422 | #ifndef LIBXML_ATTR_ALLOC_SIZE
423 | # if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
424 | # define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
425 | # else
426 | # define LIBXML_ATTR_ALLOC_SIZE(x)
427 | # endif
428 | #else
429 | # define LIBXML_ATTR_ALLOC_SIZE(x)
430 | #endif
431 |
432 | #ifndef LIBXML_ATTR_FORMAT
433 | # if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
434 | # define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
435 | # else
436 | # define LIBXML_ATTR_FORMAT(fmt,args)
437 | # endif
438 | #else
439 | # define LIBXML_ATTR_FORMAT(fmt,args)
440 | #endif
441 |
442 | #ifndef XML_DEPRECATED
443 | # if defined (IN_LIBXML) || (__GNUC__ * 100 + __GNUC_MINOR__ < 301)
444 | # define XML_DEPRECATED
445 | /* Available since at least GCC 3.1 */
446 | # else
447 | # define XML_DEPRECATED __attribute__((deprecated))
448 | # endif
449 | #endif
450 |
451 | #if defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)
452 | #if defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 800)
453 | #define XML_IGNORE_FPTR_CAST_WARNINGS \
454 | _Pragma("GCC diagnostic push") \
455 | _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
456 | _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"")
457 | #else
458 | #define XML_IGNORE_FPTR_CAST_WARNINGS \
459 | _Pragma("GCC diagnostic push") \
460 | _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
461 | #endif
462 | #define XML_POP_WARNINGS \
463 | _Pragma("GCC diagnostic pop")
464 | #else
465 | #define XML_IGNORE_FPTR_CAST_WARNINGS
466 | #define XML_POP_WARNINGS
467 | #endif
468 |
469 | #else /* ! __GNUC__ */
470 | #define ATTRIBUTE_UNUSED
471 | #define LIBXML_ATTR_ALLOC_SIZE(x)
472 | #define LIBXML_ATTR_FORMAT(fmt,args)
473 | #ifndef XML_DEPRECATED
474 | # if defined (IN_LIBXML) || !defined (_MSC_VER)
475 | # define XML_DEPRECATED
476 | /* Available since Visual Studio 2005 */
477 | # elif defined (_MSC_VER) && (_MSC_VER >= 1400)
478 | # define XML_DEPRECATED __declspec(deprecated)
479 | # endif
480 | #endif
481 | #if defined (_MSC_VER) && (_MSC_VER >= 1400)
482 | # define XML_IGNORE_FPTR_CAST_WARNINGS __pragma(warning(push))
483 | #else
484 | # define XML_IGNORE_FPTR_CAST_WARNINGS
485 | #endif
486 | #ifndef XML_POP_WARNINGS
487 | # if defined (_MSC_VER) && (_MSC_VER >= 1400)
488 | # define XML_POP_WARNINGS __pragma(warning(pop))
489 | # else
490 | # define XML_POP_WARNINGS
491 | # endif
492 | #endif
493 | #endif /* __GNUC__ */
494 |
495 | #define XML_NO_ATTR
496 |
497 | #ifdef LIBXML_THREAD_ENABLED
498 | #define XML_DECLARE_GLOBAL(name, type, attrs) \
499 | attrs XMLPUBFUN type *__##name(void);
500 | #define XML_GLOBAL_MACRO(name) (*__##name())
501 | #else
502 | #define XML_DECLARE_GLOBAL(name, type, attrs) \
503 | attrs XMLPUBVAR type name;
504 | #endif
505 |
506 | #ifdef __cplusplus
507 | }
508 | #endif /* __cplusplus */
509 | #endif
510 |
511 |
512 |
```