This is page 120 of 168. Use http://codebase.md/romanshablio/mcp_server?lines=true&page={x} to view the full context.
# Directory Structure
```
├── .DS_Store
├── .venv
│ ├── __pycache__
│ │ └── hello.cpython-312.pyc
│ ├── bin
│ │ ├── activate
│ │ ├── activate.csh
│ │ ├── activate.fish
│ │ ├── Activate.ps1
│ │ ├── flask
│ │ ├── normalizer
│ │ ├── pip
│ │ ├── pip3
│ │ ├── pip3.12
│ │ ├── python
│ │ ├── python3
│ │ └── python3.12
│ ├── hello.py
│ ├── lib
│ │ └── python3.12
│ │ └── site-packages
│ │ ├── beautifulsoup4-4.12.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ ├── AUTHORS
│ │ │ │ └── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ └── WHEEL
│ │ ├── blinker
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _utilities.cpython-312.pyc
│ │ │ │ └── base.cpython-312.pyc
│ │ │ ├── _utilities.py
│ │ │ ├── base.py
│ │ │ └── py.typed
│ │ ├── blinker-1.8.2.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── bs4
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── css.cpython-312.pyc
│ │ │ │ ├── dammit.cpython-312.pyc
│ │ │ │ ├── diagnose.cpython-312.pyc
│ │ │ │ ├── element.cpython-312.pyc
│ │ │ │ └── formatter.cpython-312.pyc
│ │ │ ├── builder
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── _html5lib.cpython-312.pyc
│ │ │ │ │ ├── _htmlparser.cpython-312.pyc
│ │ │ │ │ └── _lxml.cpython-312.pyc
│ │ │ │ ├── _html5lib.py
│ │ │ │ ├── _htmlparser.py
│ │ │ │ └── _lxml.py
│ │ │ ├── css.py
│ │ │ ├── dammit.py
│ │ │ ├── diagnose.py
│ │ │ ├── element.py
│ │ │ ├── formatter.py
│ │ │ └── tests
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── test_builder_registry.cpython-312.pyc
│ │ │ │ ├── test_builder.cpython-312.pyc
│ │ │ │ ├── test_css.cpython-312.pyc
│ │ │ │ ├── test_dammit.cpython-312.pyc
│ │ │ │ ├── test_docs.cpython-312.pyc
│ │ │ │ ├── test_element.cpython-312.pyc
│ │ │ │ ├── test_formatter.cpython-312.pyc
│ │ │ │ ├── test_fuzz.cpython-312.pyc
│ │ │ │ ├── test_html5lib.cpython-312.pyc
│ │ │ │ ├── test_htmlparser.cpython-312.pyc
│ │ │ │ ├── test_lxml.cpython-312.pyc
│ │ │ │ ├── test_navigablestring.cpython-312.pyc
│ │ │ │ ├── test_pageelement.cpython-312.pyc
│ │ │ │ ├── test_soup.cpython-312.pyc
│ │ │ │ ├── test_tag.cpython-312.pyc
│ │ │ │ └── test_tree.cpython-312.pyc
│ │ │ ├── fuzz
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase
│ │ │ │ ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase
│ │ │ │ ├── crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase
│ │ │ │ └── crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase
│ │ │ ├── test_builder_registry.py
│ │ │ ├── test_builder.py
│ │ │ ├── test_css.py
│ │ │ ├── test_dammit.py
│ │ │ ├── test_docs.py
│ │ │ ├── test_element.py
│ │ │ ├── test_formatter.py
│ │ │ ├── test_fuzz.py
│ │ │ ├── test_html5lib.py
│ │ │ ├── test_htmlparser.py
│ │ │ ├── test_lxml.py
│ │ │ ├── test_navigablestring.py
│ │ │ ├── test_pageelement.py
│ │ │ ├── test_soup.py
│ │ │ ├── test_tag.py
│ │ │ └── test_tree.py
│ │ ├── certifi
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ └── core.cpython-312.pyc
│ │ │ ├── cacert.pem
│ │ │ ├── core.py
│ │ │ └── py.typed
│ │ ├── certifi-2024.8.30.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── charset_normalizer
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ ├── cd.cpython-312.pyc
│ │ │ │ ├── constant.cpython-312.pyc
│ │ │ │ ├── legacy.cpython-312.pyc
│ │ │ │ ├── md.cpython-312.pyc
│ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── version.cpython-312.pyc
│ │ │ ├── api.py
│ │ │ ├── cd.py
│ │ │ ├── cli
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __main__.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ └── __main__.cpython-312.pyc
│ │ │ ├── constant.py
│ │ │ ├── legacy.py
│ │ │ ├── md__mypyc.cpython-312-darwin.so
│ │ │ ├── md.cpython-312-darwin.so
│ │ │ ├── md.py
│ │ │ ├── models.py
│ │ │ ├── py.typed
│ │ │ ├── utils.py
│ │ │ └── version.py
│ │ ├── charset_normalizer-3.4.0.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── click
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ ├── _termui_impl.cpython-312.pyc
│ │ │ │ ├── _textwrap.cpython-312.pyc
│ │ │ │ ├── _winconsole.cpython-312.pyc
│ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ ├── decorators.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── formatting.cpython-312.pyc
│ │ │ │ ├── globals.cpython-312.pyc
│ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ ├── shell_completion.cpython-312.pyc
│ │ │ │ ├── termui.cpython-312.pyc
│ │ │ │ ├── testing.cpython-312.pyc
│ │ │ │ ├── types.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _termui_impl.py
│ │ │ ├── _textwrap.py
│ │ │ ├── _winconsole.py
│ │ │ ├── core.py
│ │ │ ├── decorators.py
│ │ │ ├── exceptions.py
│ │ │ ├── formatting.py
│ │ │ ├── globals.py
│ │ │ ├── parser.py
│ │ │ ├── py.typed
│ │ │ ├── shell_completion.py
│ │ │ ├── termui.py
│ │ │ ├── testing.py
│ │ │ ├── types.py
│ │ │ └── utils.py
│ │ ├── click-8.1.7.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.rst
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── fake_useragent
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── errors.cpython-312.pyc
│ │ │ │ ├── fake.cpython-312.pyc
│ │ │ │ ├── log.cpython-312.pyc
│ │ │ │ ├── settings.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── data
│ │ │ │ └── browsers.json
│ │ │ ├── errors.py
│ │ │ ├── fake.py
│ │ │ ├── log.py
│ │ │ ├── settings.py
│ │ │ └── utils.py
│ │ ├── fake_useragent-1.5.1.dist-info
│ │ │ ├── AUTHORS
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── flask
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ ├── app.cpython-312.pyc
│ │ │ │ ├── blueprints.cpython-312.pyc
│ │ │ │ ├── cli.cpython-312.pyc
│ │ │ │ ├── config.cpython-312.pyc
│ │ │ │ ├── ctx.cpython-312.pyc
│ │ │ │ ├── debughelpers.cpython-312.pyc
│ │ │ │ ├── globals.cpython-312.pyc
│ │ │ │ ├── helpers.cpython-312.pyc
│ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ ├── signals.cpython-312.pyc
│ │ │ │ ├── templating.cpython-312.pyc
│ │ │ │ ├── testing.cpython-312.pyc
│ │ │ │ ├── typing.cpython-312.pyc
│ │ │ │ ├── views.cpython-312.pyc
│ │ │ │ └── wrappers.cpython-312.pyc
│ │ │ ├── app.py
│ │ │ ├── blueprints.py
│ │ │ ├── cli.py
│ │ │ ├── config.py
│ │ │ ├── ctx.py
│ │ │ ├── debughelpers.py
│ │ │ ├── globals.py
│ │ │ ├── helpers.py
│ │ │ ├── json
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── provider.cpython-312.pyc
│ │ │ │ │ └── tag.cpython-312.pyc
│ │ │ │ ├── provider.py
│ │ │ │ └── tag.py
│ │ │ ├── logging.py
│ │ │ ├── py.typed
│ │ │ ├── sansio
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── app.cpython-312.pyc
│ │ │ │ │ ├── blueprints.cpython-312.pyc
│ │ │ │ │ └── scaffold.cpython-312.pyc
│ │ │ │ ├── app.py
│ │ │ │ ├── blueprints.py
│ │ │ │ ├── README.md
│ │ │ │ └── scaffold.py
│ │ │ ├── sessions.py
│ │ │ ├── signals.py
│ │ │ ├── templating.py
│ │ │ ├── testing.py
│ │ │ ├── typing.py
│ │ │ ├── views.py
│ │ │ └── wrappers.py
│ │ ├── flask-3.0.3.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ └── WHEEL
│ │ ├── idna
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── codec.cpython-312.pyc
│ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ ├── idnadata.cpython-312.pyc
│ │ │ │ ├── intranges.cpython-312.pyc
│ │ │ │ ├── package_data.cpython-312.pyc
│ │ │ │ └── uts46data.cpython-312.pyc
│ │ │ ├── codec.py
│ │ │ ├── compat.py
│ │ │ ├── core.py
│ │ │ ├── idnadata.py
│ │ │ ├── intranges.py
│ │ │ ├── package_data.py
│ │ │ ├── py.typed
│ │ │ └── uts46data.py
│ │ ├── idna-3.10.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.md
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── itsdangerous
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _json.cpython-312.pyc
│ │ │ │ ├── encoding.cpython-312.pyc
│ │ │ │ ├── exc.cpython-312.pyc
│ │ │ │ ├── serializer.cpython-312.pyc
│ │ │ │ ├── signer.cpython-312.pyc
│ │ │ │ ├── timed.cpython-312.pyc
│ │ │ │ └── url_safe.cpython-312.pyc
│ │ │ ├── _json.py
│ │ │ ├── encoding.py
│ │ │ ├── exc.py
│ │ │ ├── py.typed
│ │ │ ├── serializer.py
│ │ │ ├── signer.py
│ │ │ ├── timed.py
│ │ │ └── url_safe.py
│ │ ├── itsdangerous-2.2.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── jinja2
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _identifier.cpython-312.pyc
│ │ │ │ ├── async_utils.cpython-312.pyc
│ │ │ │ ├── bccache.cpython-312.pyc
│ │ │ │ ├── compiler.cpython-312.pyc
│ │ │ │ ├── constants.cpython-312.pyc
│ │ │ │ ├── debug.cpython-312.pyc
│ │ │ │ ├── defaults.cpython-312.pyc
│ │ │ │ ├── environment.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── ext.cpython-312.pyc
│ │ │ │ ├── filters.cpython-312.pyc
│ │ │ │ ├── idtracking.cpython-312.pyc
│ │ │ │ ├── lexer.cpython-312.pyc
│ │ │ │ ├── loaders.cpython-312.pyc
│ │ │ │ ├── meta.cpython-312.pyc
│ │ │ │ ├── nativetypes.cpython-312.pyc
│ │ │ │ ├── nodes.cpython-312.pyc
│ │ │ │ ├── optimizer.cpython-312.pyc
│ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ ├── runtime.cpython-312.pyc
│ │ │ │ ├── sandbox.cpython-312.pyc
│ │ │ │ ├── tests.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── visitor.cpython-312.pyc
│ │ │ ├── _identifier.py
│ │ │ ├── async_utils.py
│ │ │ ├── bccache.py
│ │ │ ├── compiler.py
│ │ │ ├── constants.py
│ │ │ ├── debug.py
│ │ │ ├── defaults.py
│ │ │ ├── environment.py
│ │ │ ├── exceptions.py
│ │ │ ├── ext.py
│ │ │ ├── filters.py
│ │ │ ├── idtracking.py
│ │ │ ├── lexer.py
│ │ │ ├── loaders.py
│ │ │ ├── meta.py
│ │ │ ├── nativetypes.py
│ │ │ ├── nodes.py
│ │ │ ├── optimizer.py
│ │ │ ├── parser.py
│ │ │ ├── py.typed
│ │ │ ├── runtime.py
│ │ │ ├── sandbox.py
│ │ │ ├── tests.py
│ │ │ ├── utils.py
│ │ │ └── visitor.py
│ │ ├── jinja2-3.1.4.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── lxml
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _elementpath.cpython-312.pyc
│ │ │ │ ├── builder.cpython-312.pyc
│ │ │ │ ├── cssselect.cpython-312.pyc
│ │ │ │ ├── doctestcompare.cpython-312.pyc
│ │ │ │ ├── ElementInclude.cpython-312.pyc
│ │ │ │ ├── pyclasslookup.cpython-312.pyc
│ │ │ │ ├── sax.cpython-312.pyc
│ │ │ │ └── usedoctest.cpython-312.pyc
│ │ │ ├── _elementpath.cpython-312-darwin.so
│ │ │ ├── _elementpath.py
│ │ │ ├── apihelpers.pxi
│ │ │ ├── builder.cpython-312-darwin.so
│ │ │ ├── builder.py
│ │ │ ├── classlookup.pxi
│ │ │ ├── cleanup.pxi
│ │ │ ├── cssselect.py
│ │ │ ├── debug.pxi
│ │ │ ├── docloader.pxi
│ │ │ ├── doctestcompare.py
│ │ │ ├── dtd.pxi
│ │ │ ├── ElementInclude.py
│ │ │ ├── etree_api.h
│ │ │ ├── etree.cpython-312-darwin.so
│ │ │ ├── etree.h
│ │ │ ├── etree.pyx
│ │ │ ├── extensions.pxi
│ │ │ ├── html
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── _diffcommand.cpython-312.pyc
│ │ │ │ │ ├── _html5builder.cpython-312.pyc
│ │ │ │ │ ├── _setmixin.cpython-312.pyc
│ │ │ │ │ ├── builder.cpython-312.pyc
│ │ │ │ │ ├── clean.cpython-312.pyc
│ │ │ │ │ ├── defs.cpython-312.pyc
│ │ │ │ │ ├── diff.cpython-312.pyc
│ │ │ │ │ ├── ElementSoup.cpython-312.pyc
│ │ │ │ │ ├── formfill.cpython-312.pyc
│ │ │ │ │ ├── html5parser.cpython-312.pyc
│ │ │ │ │ ├── soupparser.cpython-312.pyc
│ │ │ │ │ └── usedoctest.cpython-312.pyc
│ │ │ │ ├── _diffcommand.py
│ │ │ │ ├── _html5builder.py
│ │ │ │ ├── _setmixin.py
│ │ │ │ ├── builder.py
│ │ │ │ ├── clean.py
│ │ │ │ ├── defs.py
│ │ │ │ ├── diff.cpython-312-darwin.so
│ │ │ │ ├── diff.py
│ │ │ │ ├── ElementSoup.py
│ │ │ │ ├── formfill.py
│ │ │ │ ├── html5parser.py
│ │ │ │ ├── soupparser.py
│ │ │ │ └── usedoctest.py
│ │ │ ├── includes
│ │ │ │ ├── __init__.pxd
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ ├── c14n.pxd
│ │ │ │ ├── config.pxd
│ │ │ │ ├── dtdvalid.pxd
│ │ │ │ ├── etree_defs.h
│ │ │ │ ├── etreepublic.pxd
│ │ │ │ ├── extlibs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── libcharset.h
│ │ │ │ │ ├── localcharset.h
│ │ │ │ │ ├── zconf.h
│ │ │ │ │ └── zlib.h
│ │ │ │ ├── htmlparser.pxd
│ │ │ │ ├── libexslt
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── exslt.h
│ │ │ │ │ ├── exsltconfig.h
│ │ │ │ │ └── exsltexports.h
│ │ │ │ ├── libxml
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── c14n.h
│ │ │ │ │ ├── catalog.h
│ │ │ │ │ ├── chvalid.h
│ │ │ │ │ ├── debugXML.h
│ │ │ │ │ ├── dict.h
│ │ │ │ │ ├── encoding.h
│ │ │ │ │ ├── entities.h
│ │ │ │ │ ├── globals.h
│ │ │ │ │ ├── hash.h
│ │ │ │ │ ├── HTMLparser.h
│ │ │ │ │ ├── HTMLtree.h
│ │ │ │ │ ├── list.h
│ │ │ │ │ ├── nanoftp.h
│ │ │ │ │ ├── nanohttp.h
│ │ │ │ │ ├── parser.h
│ │ │ │ │ ├── parserInternals.h
│ │ │ │ │ ├── relaxng.h
│ │ │ │ │ ├── SAX.h
│ │ │ │ │ ├── SAX2.h
│ │ │ │ │ ├── schemasInternals.h
│ │ │ │ │ ├── schematron.h
│ │ │ │ │ ├── threads.h
│ │ │ │ │ ├── tree.h
│ │ │ │ │ ├── uri.h
│ │ │ │ │ ├── valid.h
│ │ │ │ │ ├── xinclude.h
│ │ │ │ │ ├── xlink.h
│ │ │ │ │ ├── xmlautomata.h
│ │ │ │ │ ├── xmlerror.h
│ │ │ │ │ ├── xmlexports.h
│ │ │ │ │ ├── xmlIO.h
│ │ │ │ │ ├── xmlmemory.h
│ │ │ │ │ ├── xmlmodule.h
│ │ │ │ │ ├── xmlreader.h
│ │ │ │ │ ├── xmlregexp.h
│ │ │ │ │ ├── xmlsave.h
│ │ │ │ │ ├── xmlschemas.h
│ │ │ │ │ ├── xmlschemastypes.h
│ │ │ │ │ ├── xmlstring.h
│ │ │ │ │ ├── xmlunicode.h
│ │ │ │ │ ├── xmlversion.h
│ │ │ │ │ ├── xmlwriter.h
│ │ │ │ │ ├── xpath.h
│ │ │ │ │ ├── xpathInternals.h
│ │ │ │ │ └── xpointer.h
│ │ │ │ ├── libxslt
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── attributes.h
│ │ │ │ │ ├── documents.h
│ │ │ │ │ ├── extensions.h
│ │ │ │ │ ├── extra.h
│ │ │ │ │ ├── functions.h
│ │ │ │ │ ├── imports.h
│ │ │ │ │ ├── keys.h
│ │ │ │ │ ├── namespaces.h
│ │ │ │ │ ├── numbersInternals.h
│ │ │ │ │ ├── pattern.h
│ │ │ │ │ ├── preproc.h
│ │ │ │ │ ├── security.h
│ │ │ │ │ ├── templates.h
│ │ │ │ │ ├── transform.h
│ │ │ │ │ ├── variables.h
│ │ │ │ │ ├── xslt.h
│ │ │ │ │ ├── xsltconfig.h
│ │ │ │ │ ├── xsltexports.h
│ │ │ │ │ ├── xsltInternals.h
│ │ │ │ │ ├── xsltlocale.h
│ │ │ │ │ └── xsltutils.h
│ │ │ │ ├── lxml-version.h
│ │ │ │ ├── relaxng.pxd
│ │ │ │ ├── schematron.pxd
│ │ │ │ ├── tree.pxd
│ │ │ │ ├── uri.pxd
│ │ │ │ ├── xinclude.pxd
│ │ │ │ ├── xmlerror.pxd
│ │ │ │ ├── xmlparser.pxd
│ │ │ │ ├── xmlschema.pxd
│ │ │ │ ├── xpath.pxd
│ │ │ │ └── xslt.pxd
│ │ │ ├── isoschematron
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ └── resources
│ │ │ │ ├── rng
│ │ │ │ │ └── iso-schematron.rng
│ │ │ │ └── xsl
│ │ │ │ ├── iso-schematron-xslt1
│ │ │ │ │ ├── iso_abstract_expand.xsl
│ │ │ │ │ ├── iso_dsdl_include.xsl
│ │ │ │ │ ├── iso_schematron_message.xsl
│ │ │ │ │ ├── iso_schematron_skeleton_for_xslt1.xsl
│ │ │ │ │ ├── iso_svrl_for_xslt1.xsl
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── RNG2Schtrn.xsl
│ │ │ │ └── XSD2Schtrn.xsl
│ │ │ ├── iterparse.pxi
│ │ │ ├── lxml.etree_api.h
│ │ │ ├── lxml.etree.h
│ │ │ ├── nsclasses.pxi
│ │ │ ├── objectify.cpython-312-darwin.so
│ │ │ ├── objectify.pyx
│ │ │ ├── objectpath.pxi
│ │ │ ├── parser.pxi
│ │ │ ├── parsertarget.pxi
│ │ │ ├── proxy.pxi
│ │ │ ├── public-api.pxi
│ │ │ ├── pyclasslookup.py
│ │ │ ├── readonlytree.pxi
│ │ │ ├── relaxng.pxi
│ │ │ ├── sax.cpython-312-darwin.so
│ │ │ ├── sax.py
│ │ │ ├── saxparser.pxi
│ │ │ ├── schematron.pxi
│ │ │ ├── serializer.pxi
│ │ │ ├── usedoctest.py
│ │ │ ├── xinclude.pxi
│ │ │ ├── xmlerror.pxi
│ │ │ ├── xmlid.pxi
│ │ │ ├── xmlschema.pxi
│ │ │ ├── xpath.pxi
│ │ │ ├── xslt.pxi
│ │ │ └── xsltext.pxi
│ │ ├── lxml-5.3.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── LICENSES.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── markupsafe
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ └── _native.cpython-312.pyc
│ │ │ ├── _native.py
│ │ │ ├── _speedups.c
│ │ │ ├── _speedups.cpython-312-darwin.so
│ │ │ ├── _speedups.pyi
│ │ │ └── py.typed
│ │ ├── MarkupSafe-3.0.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── pip
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pip-runner__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ └── __pip-runner__.cpython-312.pyc
│ │ │ ├── _internal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── build_env.cpython-312.pyc
│ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ ├── configuration.cpython-312.pyc
│ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ ├── main.cpython-312.pyc
│ │ │ │ │ ├── pyproject.cpython-312.pyc
│ │ │ │ │ ├── self_outdated_check.cpython-312.pyc
│ │ │ │ │ └── wheel_builder.cpython-312.pyc
│ │ │ │ ├── build_env.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── autocompletion.cpython-312.pyc
│ │ │ │ │ │ ├── base_command.cpython-312.pyc
│ │ │ │ │ │ ├── cmdoptions.cpython-312.pyc
│ │ │ │ │ │ ├── command_context.cpython-312.pyc
│ │ │ │ │ │ ├── index_command.cpython-312.pyc
│ │ │ │ │ │ ├── main_parser.cpython-312.pyc
│ │ │ │ │ │ ├── main.cpython-312.pyc
│ │ │ │ │ │ ├── parser.cpython-312.pyc
│ │ │ │ │ │ ├── progress_bars.cpython-312.pyc
│ │ │ │ │ │ ├── req_command.cpython-312.pyc
│ │ │ │ │ │ ├── spinners.cpython-312.pyc
│ │ │ │ │ │ └── status_codes.cpython-312.pyc
│ │ │ │ │ ├── autocompletion.py
│ │ │ │ │ ├── base_command.py
│ │ │ │ │ ├── cmdoptions.py
│ │ │ │ │ ├── command_context.py
│ │ │ │ │ ├── index_command.py
│ │ │ │ │ ├── main_parser.py
│ │ │ │ │ ├── main.py
│ │ │ │ │ ├── parser.py
│ │ │ │ │ ├── progress_bars.py
│ │ │ │ │ ├── req_command.py
│ │ │ │ │ ├── spinners.py
│ │ │ │ │ └── status_codes.py
│ │ │ │ ├── commands
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── check.cpython-312.pyc
│ │ │ │ │ │ ├── completion.cpython-312.pyc
│ │ │ │ │ │ ├── configuration.cpython-312.pyc
│ │ │ │ │ │ ├── debug.cpython-312.pyc
│ │ │ │ │ │ ├── download.cpython-312.pyc
│ │ │ │ │ │ ├── freeze.cpython-312.pyc
│ │ │ │ │ │ ├── hash.cpython-312.pyc
│ │ │ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── inspect.cpython-312.pyc
│ │ │ │ │ │ ├── install.cpython-312.pyc
│ │ │ │ │ │ ├── list.cpython-312.pyc
│ │ │ │ │ │ ├── search.cpython-312.pyc
│ │ │ │ │ │ ├── show.cpython-312.pyc
│ │ │ │ │ │ ├── uninstall.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── completion.py
│ │ │ │ │ ├── configuration.py
│ │ │ │ │ ├── debug.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── hash.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── inspect.py
│ │ │ │ │ ├── install.py
│ │ │ │ │ ├── list.py
│ │ │ │ │ ├── search.py
│ │ │ │ │ ├── show.py
│ │ │ │ │ ├── uninstall.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── configuration.py
│ │ │ │ ├── distributions
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ ├── installed.cpython-312.pyc
│ │ │ │ │ │ ├── sdist.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── installed.py
│ │ │ │ │ ├── sdist.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── index
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── collector.cpython-312.pyc
│ │ │ │ │ │ ├── package_finder.cpython-312.pyc
│ │ │ │ │ │ └── sources.cpython-312.pyc
│ │ │ │ │ ├── collector.py
│ │ │ │ │ ├── package_finder.py
│ │ │ │ │ └── sources.py
│ │ │ │ ├── locations
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _distutils.cpython-312.pyc
│ │ │ │ │ │ ├── _sysconfig.cpython-312.pyc
│ │ │ │ │ │ └── base.cpython-312.pyc
│ │ │ │ │ ├── _distutils.py
│ │ │ │ │ ├── _sysconfig.py
│ │ │ │ │ └── base.py
│ │ │ │ ├── main.py
│ │ │ │ ├── metadata
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _json.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ └── pkg_resources.cpython-312.pyc
│ │ │ │ │ ├── _json.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── importlib
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ │ │ │ ├── _dists.cpython-312.pyc
│ │ │ │ │ │ │ └── _envs.cpython-312.pyc
│ │ │ │ │ │ ├── _compat.py
│ │ │ │ │ │ ├── _dists.py
│ │ │ │ │ │ └── _envs.py
│ │ │ │ │ └── pkg_resources.py
│ │ │ │ ├── models
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── candidate.cpython-312.pyc
│ │ │ │ │ │ ├── direct_url.cpython-312.pyc
│ │ │ │ │ │ ├── format_control.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── installation_report.cpython-312.pyc
│ │ │ │ │ │ ├── link.cpython-312.pyc
│ │ │ │ │ │ ├── scheme.cpython-312.pyc
│ │ │ │ │ │ ├── search_scope.cpython-312.pyc
│ │ │ │ │ │ ├── selection_prefs.cpython-312.pyc
│ │ │ │ │ │ ├── target_python.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── candidate.py
│ │ │ │ │ ├── direct_url.py
│ │ │ │ │ ├── format_control.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── installation_report.py
│ │ │ │ │ ├── link.py
│ │ │ │ │ ├── scheme.py
│ │ │ │ │ ├── search_scope.py
│ │ │ │ │ ├── selection_prefs.py
│ │ │ │ │ ├── target_python.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── network
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── download.cpython-312.pyc
│ │ │ │ │ │ ├── lazy_wheel.cpython-312.pyc
│ │ │ │ │ │ ├── session.cpython-312.pyc
│ │ │ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ │ │ └── xmlrpc.cpython-312.pyc
│ │ │ │ │ ├── auth.py
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── lazy_wheel.py
│ │ │ │ │ ├── session.py
│ │ │ │ │ ├── utils.py
│ │ │ │ │ └── xmlrpc.py
│ │ │ │ ├── operations
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── check.cpython-312.pyc
│ │ │ │ │ │ ├── freeze.cpython-312.pyc
│ │ │ │ │ │ └── prepare.cpython-312.pyc
│ │ │ │ │ ├── build
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── build_tracker.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata_editable.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata_legacy.cpython-312.pyc
│ │ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ │ ├── wheel_editable.cpython-312.pyc
│ │ │ │ │ │ │ ├── wheel_legacy.cpython-312.pyc
│ │ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ │ ├── build_tracker.py
│ │ │ │ │ │ ├── metadata_editable.py
│ │ │ │ │ │ ├── metadata_legacy.py
│ │ │ │ │ │ ├── metadata.py
│ │ │ │ │ │ ├── wheel_editable.py
│ │ │ │ │ │ ├── wheel_legacy.py
│ │ │ │ │ │ └── wheel.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── install
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── editable_legacy.cpython-312.pyc
│ │ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ │ ├── editable_legacy.py
│ │ │ │ │ │ └── wheel.py
│ │ │ │ │ └── prepare.py
│ │ │ │ ├── pyproject.py
│ │ │ │ ├── req
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── constructors.cpython-312.pyc
│ │ │ │ │ │ ├── req_file.cpython-312.pyc
│ │ │ │ │ │ ├── req_install.cpython-312.pyc
│ │ │ │ │ │ ├── req_set.cpython-312.pyc
│ │ │ │ │ │ └── req_uninstall.cpython-312.pyc
│ │ │ │ │ ├── constructors.py
│ │ │ │ │ ├── req_file.py
│ │ │ │ │ ├── req_install.py
│ │ │ │ │ ├── req_set.py
│ │ │ │ │ └── req_uninstall.py
│ │ │ │ ├── resolution
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ └── base.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── legacy
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── resolver.cpython-312.pyc
│ │ │ │ │ │ └── resolver.py
│ │ │ │ │ └── resolvelib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── base.cpython-312.pyc
│ │ │ │ │ │ ├── candidates.cpython-312.pyc
│ │ │ │ │ │ ├── factory.cpython-312.pyc
│ │ │ │ │ │ ├── found_candidates.cpython-312.pyc
│ │ │ │ │ │ ├── provider.cpython-312.pyc
│ │ │ │ │ │ ├── reporter.cpython-312.pyc
│ │ │ │ │ │ ├── requirements.cpython-312.pyc
│ │ │ │ │ │ └── resolver.cpython-312.pyc
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── candidates.py
│ │ │ │ │ ├── factory.py
│ │ │ │ │ ├── found_candidates.py
│ │ │ │ │ ├── provider.py
│ │ │ │ │ ├── reporter.py
│ │ │ │ │ ├── requirements.py
│ │ │ │ │ └── resolver.py
│ │ │ │ ├── self_outdated_check.py
│ │ │ │ ├── utils
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _jaraco_text.cpython-312.pyc
│ │ │ │ │ │ ├── _log.cpython-312.pyc
│ │ │ │ │ │ ├── appdirs.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── compatibility_tags.cpython-312.pyc
│ │ │ │ │ │ ├── datetime.cpython-312.pyc
│ │ │ │ │ │ ├── deprecation.cpython-312.pyc
│ │ │ │ │ │ ├── direct_url_helpers.cpython-312.pyc
│ │ │ │ │ │ ├── egg_link.cpython-312.pyc
│ │ │ │ │ │ ├── encoding.cpython-312.pyc
│ │ │ │ │ │ ├── entrypoints.cpython-312.pyc
│ │ │ │ │ │ ├── filesystem.cpython-312.pyc
│ │ │ │ │ │ ├── filetypes.cpython-312.pyc
│ │ │ │ │ │ ├── glibc.cpython-312.pyc
│ │ │ │ │ │ ├── hashes.cpython-312.pyc
│ │ │ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ │ │ ├── misc.cpython-312.pyc
│ │ │ │ │ │ ├── packaging.cpython-312.pyc
│ │ │ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ │ │ ├── setuptools_build.cpython-312.pyc
│ │ │ │ │ │ ├── subprocess.cpython-312.pyc
│ │ │ │ │ │ ├── temp_dir.cpython-312.pyc
│ │ │ │ │ │ ├── unpacking.cpython-312.pyc
│ │ │ │ │ │ ├── urls.cpython-312.pyc
│ │ │ │ │ │ ├── virtualenv.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── _jaraco_text.py
│ │ │ │ │ ├── _log.py
│ │ │ │ │ ├── appdirs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── compatibility_tags.py
│ │ │ │ │ ├── datetime.py
│ │ │ │ │ ├── deprecation.py
│ │ │ │ │ ├── direct_url_helpers.py
│ │ │ │ │ ├── egg_link.py
│ │ │ │ │ ├── encoding.py
│ │ │ │ │ ├── entrypoints.py
│ │ │ │ │ ├── filesystem.py
│ │ │ │ │ ├── filetypes.py
│ │ │ │ │ ├── glibc.py
│ │ │ │ │ ├── hashes.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── packaging.py
│ │ │ │ │ ├── retry.py
│ │ │ │ │ ├── setuptools_build.py
│ │ │ │ │ ├── subprocess.py
│ │ │ │ │ ├── temp_dir.py
│ │ │ │ │ ├── unpacking.py
│ │ │ │ │ ├── urls.py
│ │ │ │ │ ├── virtualenv.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── vcs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── bazaar.cpython-312.pyc
│ │ │ │ │ │ ├── git.cpython-312.pyc
│ │ │ │ │ │ ├── mercurial.cpython-312.pyc
│ │ │ │ │ │ ├── subversion.cpython-312.pyc
│ │ │ │ │ │ └── versioncontrol.cpython-312.pyc
│ │ │ │ │ ├── bazaar.py
│ │ │ │ │ ├── git.py
│ │ │ │ │ ├── mercurial.py
│ │ │ │ │ ├── subversion.py
│ │ │ │ │ └── versioncontrol.py
│ │ │ │ └── wheel_builder.py
│ │ │ ├── _vendor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ └── typing_extensions.cpython-312.pyc
│ │ │ │ ├── cachecontrol
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _cmd.cpython-312.pyc
│ │ │ │ │ │ ├── adapter.cpython-312.pyc
│ │ │ │ │ │ ├── cache.cpython-312.pyc
│ │ │ │ │ │ ├── controller.cpython-312.pyc
│ │ │ │ │ │ ├── filewrapper.cpython-312.pyc
│ │ │ │ │ │ ├── heuristics.cpython-312.pyc
│ │ │ │ │ │ ├── serialize.cpython-312.pyc
│ │ │ │ │ │ └── wrapper.cpython-312.pyc
│ │ │ │ │ ├── _cmd.py
│ │ │ │ │ ├── adapter.py
│ │ │ │ │ ├── cache.py
│ │ │ │ │ ├── caches
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── file_cache.cpython-312.pyc
│ │ │ │ │ │ │ └── redis_cache.cpython-312.pyc
│ │ │ │ │ │ ├── file_cache.py
│ │ │ │ │ │ └── redis_cache.py
│ │ │ │ │ ├── controller.py
│ │ │ │ │ ├── filewrapper.py
│ │ │ │ │ ├── heuristics.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── serialize.py
│ │ │ │ │ └── wrapper.py
│ │ │ │ ├── certifi
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ └── core.cpython-312.pyc
│ │ │ │ │ ├── cacert.pem
│ │ │ │ │ ├── core.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── distlib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── database.cpython-312.pyc
│ │ │ │ │ │ ├── index.cpython-312.pyc
│ │ │ │ │ │ ├── locators.cpython-312.pyc
│ │ │ │ │ │ ├── manifest.cpython-312.pyc
│ │ │ │ │ │ ├── markers.cpython-312.pyc
│ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ ├── resources.cpython-312.pyc
│ │ │ │ │ │ ├── scripts.cpython-312.pyc
│ │ │ │ │ │ ├── util.cpython-312.pyc
│ │ │ │ │ │ ├── version.cpython-312.pyc
│ │ │ │ │ │ └── wheel.cpython-312.pyc
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── database.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── locators.py
│ │ │ │ │ ├── manifest.py
│ │ │ │ │ ├── markers.py
│ │ │ │ │ ├── metadata.py
│ │ │ │ │ ├── resources.py
│ │ │ │ │ ├── scripts.py
│ │ │ │ │ ├── t32.exe
│ │ │ │ │ ├── t64-arm.exe
│ │ │ │ │ ├── t64.exe
│ │ │ │ │ ├── util.py
│ │ │ │ │ ├── version.py
│ │ │ │ │ ├── w32.exe
│ │ │ │ │ ├── w64-arm.exe
│ │ │ │ │ ├── w64.exe
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── distro
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ └── distro.cpython-312.pyc
│ │ │ │ │ ├── distro.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── idna
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── codec.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── core.cpython-312.pyc
│ │ │ │ │ │ ├── idnadata.cpython-312.pyc
│ │ │ │ │ │ ├── intranges.cpython-312.pyc
│ │ │ │ │ │ ├── package_data.cpython-312.pyc
│ │ │ │ │ │ └── uts46data.cpython-312.pyc
│ │ │ │ │ ├── codec.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── core.py
│ │ │ │ │ ├── idnadata.py
│ │ │ │ │ ├── intranges.py
│ │ │ │ │ ├── package_data.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ └── uts46data.py
│ │ │ │ ├── msgpack
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── ext.cpython-312.pyc
│ │ │ │ │ │ └── fallback.cpython-312.pyc
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── ext.py
│ │ │ │ │ └── fallback.py
│ │ │ │ ├── packaging
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _elffile.cpython-312.pyc
│ │ │ │ │ │ ├── _manylinux.cpython-312.pyc
│ │ │ │ │ │ ├── _musllinux.cpython-312.pyc
│ │ │ │ │ │ ├── _parser.cpython-312.pyc
│ │ │ │ │ │ ├── _structures.cpython-312.pyc
│ │ │ │ │ │ ├── _tokenizer.cpython-312.pyc
│ │ │ │ │ │ ├── markers.cpython-312.pyc
│ │ │ │ │ │ ├── metadata.cpython-312.pyc
│ │ │ │ │ │ ├── requirements.cpython-312.pyc
│ │ │ │ │ │ ├── specifiers.cpython-312.pyc
│ │ │ │ │ │ ├── tags.cpython-312.pyc
│ │ │ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ │ │ └── version.cpython-312.pyc
│ │ │ │ │ ├── _elffile.py
│ │ │ │ │ ├── _manylinux.py
│ │ │ │ │ ├── _musllinux.py
│ │ │ │ │ ├── _parser.py
│ │ │ │ │ ├── _structures.py
│ │ │ │ │ ├── _tokenizer.py
│ │ │ │ │ ├── markers.py
│ │ │ │ │ ├── metadata.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── requirements.py
│ │ │ │ │ ├── specifiers.py
│ │ │ │ │ ├── tags.py
│ │ │ │ │ ├── utils.py
│ │ │ │ │ └── version.py
│ │ │ │ ├── pkg_resources
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ ├── platformdirs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── android.cpython-312.pyc
│ │ │ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ │ │ ├── macos.cpython-312.pyc
│ │ │ │ │ │ ├── unix.cpython-312.pyc
│ │ │ │ │ │ ├── version.cpython-312.pyc
│ │ │ │ │ │ └── windows.cpython-312.pyc
│ │ │ │ │ ├── android.py
│ │ │ │ │ ├── api.py
│ │ │ │ │ ├── macos.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── unix.py
│ │ │ │ │ ├── version.py
│ │ │ │ │ └── windows.py
│ │ │ │ ├── pygments
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── cmdline.cpython-312.pyc
│ │ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ │ ├── filter.cpython-312.pyc
│ │ │ │ │ │ ├── formatter.cpython-312.pyc
│ │ │ │ │ │ ├── lexer.cpython-312.pyc
│ │ │ │ │ │ ├── modeline.cpython-312.pyc
│ │ │ │ │ │ ├── plugin.cpython-312.pyc
│ │ │ │ │ │ ├── regexopt.cpython-312.pyc
│ │ │ │ │ │ ├── scanner.cpython-312.pyc
│ │ │ │ │ │ ├── sphinxext.cpython-312.pyc
│ │ │ │ │ │ ├── style.cpython-312.pyc
│ │ │ │ │ │ ├── token.cpython-312.pyc
│ │ │ │ │ │ ├── unistring.cpython-312.pyc
│ │ │ │ │ │ └── util.cpython-312.pyc
│ │ │ │ │ ├── cmdline.py
│ │ │ │ │ ├── console.py
│ │ │ │ │ ├── filter.py
│ │ │ │ │ ├── filters
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── __pycache__
│ │ │ │ │ │ └── __init__.cpython-312.pyc
│ │ │ │ │ ├── formatter.py
│ │ │ │ │ ├── formatters
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _mapping.cpython-312.pyc
│ │ │ │ │ │ │ ├── bbcode.cpython-312.pyc
│ │ │ │ │ │ │ ├── groff.cpython-312.pyc
│ │ │ │ │ │ │ ├── html.cpython-312.pyc
│ │ │ │ │ │ │ ├── img.cpython-312.pyc
│ │ │ │ │ │ │ ├── irc.cpython-312.pyc
│ │ │ │ │ │ │ ├── latex.cpython-312.pyc
│ │ │ │ │ │ │ ├── other.cpython-312.pyc
│ │ │ │ │ │ │ ├── pangomarkup.cpython-312.pyc
│ │ │ │ │ │ │ ├── rtf.cpython-312.pyc
│ │ │ │ │ │ │ ├── svg.cpython-312.pyc
│ │ │ │ │ │ │ ├── terminal.cpython-312.pyc
│ │ │ │ │ │ │ └── terminal256.cpython-312.pyc
│ │ │ │ │ │ ├── _mapping.py
│ │ │ │ │ │ ├── bbcode.py
│ │ │ │ │ │ ├── groff.py
│ │ │ │ │ │ ├── html.py
│ │ │ │ │ │ ├── img.py
│ │ │ │ │ │ ├── irc.py
│ │ │ │ │ │ ├── latex.py
│ │ │ │ │ │ ├── other.py
│ │ │ │ │ │ ├── pangomarkup.py
│ │ │ │ │ │ ├── rtf.py
│ │ │ │ │ │ ├── svg.py
│ │ │ │ │ │ ├── terminal.py
│ │ │ │ │ │ └── terminal256.py
│ │ │ │ │ ├── lexer.py
│ │ │ │ │ ├── lexers
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _mapping.cpython-312.pyc
│ │ │ │ │ │ │ └── python.cpython-312.pyc
│ │ │ │ │ │ ├── _mapping.py
│ │ │ │ │ │ └── python.py
│ │ │ │ │ ├── modeline.py
│ │ │ │ │ ├── plugin.py
│ │ │ │ │ ├── regexopt.py
│ │ │ │ │ ├── scanner.py
│ │ │ │ │ ├── sphinxext.py
│ │ │ │ │ ├── style.py
│ │ │ │ │ ├── styles
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── _mapping.cpython-312.pyc
│ │ │ │ │ │ └── _mapping.py
│ │ │ │ │ ├── token.py
│ │ │ │ │ ├── unistring.py
│ │ │ │ │ └── util.py
│ │ │ │ ├── pyproject_hooks
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _compat.cpython-312.pyc
│ │ │ │ │ │ └── _impl.cpython-312.pyc
│ │ │ │ │ ├── _compat.py
│ │ │ │ │ ├── _impl.py
│ │ │ │ │ └── _in_process
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ └── _in_process.cpython-312.pyc
│ │ │ │ │ └── _in_process.py
│ │ │ │ ├── requests
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __version__.cpython-312.pyc
│ │ │ │ │ │ ├── _internal_utils.cpython-312.pyc
│ │ │ │ │ │ ├── adapters.cpython-312.pyc
│ │ │ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ │ ├── certs.cpython-312.pyc
│ │ │ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ │ │ ├── cookies.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ │ │ ├── hooks.cpython-312.pyc
│ │ │ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ │ │ ├── packages.cpython-312.pyc
│ │ │ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ │ │ ├── status_codes.cpython-312.pyc
│ │ │ │ │ │ ├── structures.cpython-312.pyc
│ │ │ │ │ │ └── utils.cpython-312.pyc
│ │ │ │ │ ├── __version__.py
│ │ │ │ │ ├── _internal_utils.py
│ │ │ │ │ ├── adapters.py
│ │ │ │ │ ├── api.py
│ │ │ │ │ ├── auth.py
│ │ │ │ │ ├── certs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── cookies.py
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── hooks.py
│ │ │ │ │ ├── models.py
│ │ │ │ │ ├── packages.py
│ │ │ │ │ ├── sessions.py
│ │ │ │ │ ├── status_codes.py
│ │ │ │ │ ├── structures.py
│ │ │ │ │ └── utils.py
│ │ │ │ ├── resolvelib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── providers.cpython-312.pyc
│ │ │ │ │ │ ├── reporters.cpython-312.pyc
│ │ │ │ │ │ ├── resolvers.cpython-312.pyc
│ │ │ │ │ │ └── structs.cpython-312.pyc
│ │ │ │ │ ├── compat
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── collections_abc.cpython-312.pyc
│ │ │ │ │ │ └── collections_abc.py
│ │ │ │ │ ├── providers.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── reporters.py
│ │ │ │ │ ├── resolvers.py
│ │ │ │ │ └── structs.py
│ │ │ │ ├── rich
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __main__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── __main__.cpython-312.pyc
│ │ │ │ │ │ ├── _cell_widths.cpython-312.pyc
│ │ │ │ │ │ ├── _emoji_codes.cpython-312.pyc
│ │ │ │ │ │ ├── _emoji_replace.cpython-312.pyc
│ │ │ │ │ │ ├── _export_format.cpython-312.pyc
│ │ │ │ │ │ ├── _extension.cpython-312.pyc
│ │ │ │ │ │ ├── _fileno.cpython-312.pyc
│ │ │ │ │ │ ├── _inspect.cpython-312.pyc
│ │ │ │ │ │ ├── _log_render.cpython-312.pyc
│ │ │ │ │ │ ├── _loop.cpython-312.pyc
│ │ │ │ │ │ ├── _null_file.cpython-312.pyc
│ │ │ │ │ │ ├── _palettes.cpython-312.pyc
│ │ │ │ │ │ ├── _pick.cpython-312.pyc
│ │ │ │ │ │ ├── _ratio.cpython-312.pyc
│ │ │ │ │ │ ├── _spinners.cpython-312.pyc
│ │ │ │ │ │ ├── _stack.cpython-312.pyc
│ │ │ │ │ │ ├── _timer.cpython-312.pyc
│ │ │ │ │ │ ├── _win32_console.cpython-312.pyc
│ │ │ │ │ │ ├── _windows_renderer.cpython-312.pyc
│ │ │ │ │ │ ├── _windows.cpython-312.pyc
│ │ │ │ │ │ ├── _wrap.cpython-312.pyc
│ │ │ │ │ │ ├── abc.cpython-312.pyc
│ │ │ │ │ │ ├── align.cpython-312.pyc
│ │ │ │ │ │ ├── ansi.cpython-312.pyc
│ │ │ │ │ │ ├── bar.cpython-312.pyc
│ │ │ │ │ │ ├── box.cpython-312.pyc
│ │ │ │ │ │ ├── cells.cpython-312.pyc
│ │ │ │ │ │ ├── color_triplet.cpython-312.pyc
│ │ │ │ │ │ ├── color.cpython-312.pyc
│ │ │ │ │ │ ├── columns.cpython-312.pyc
│ │ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ │ ├── constrain.cpython-312.pyc
│ │ │ │ │ │ ├── containers.cpython-312.pyc
│ │ │ │ │ │ ├── control.cpython-312.pyc
│ │ │ │ │ │ ├── default_styles.cpython-312.pyc
│ │ │ │ │ │ ├── diagnose.cpython-312.pyc
│ │ │ │ │ │ ├── emoji.cpython-312.pyc
│ │ │ │ │ │ ├── errors.cpython-312.pyc
│ │ │ │ │ │ ├── file_proxy.cpython-312.pyc
│ │ │ │ │ │ ├── filesize.cpython-312.pyc
│ │ │ │ │ │ ├── highlighter.cpython-312.pyc
│ │ │ │ │ │ ├── json.cpython-312.pyc
│ │ │ │ │ │ ├── jupyter.cpython-312.pyc
│ │ │ │ │ │ ├── layout.cpython-312.pyc
│ │ │ │ │ │ ├── live_render.cpython-312.pyc
│ │ │ │ │ │ ├── live.cpython-312.pyc
│ │ │ │ │ │ ├── logging.cpython-312.pyc
│ │ │ │ │ │ ├── markup.cpython-312.pyc
│ │ │ │ │ │ ├── measure.cpython-312.pyc
│ │ │ │ │ │ ├── padding.cpython-312.pyc
│ │ │ │ │ │ ├── pager.cpython-312.pyc
│ │ │ │ │ │ ├── palette.cpython-312.pyc
│ │ │ │ │ │ ├── panel.cpython-312.pyc
│ │ │ │ │ │ ├── pretty.cpython-312.pyc
│ │ │ │ │ │ ├── progress_bar.cpython-312.pyc
│ │ │ │ │ │ ├── progress.cpython-312.pyc
│ │ │ │ │ │ ├── prompt.cpython-312.pyc
│ │ │ │ │ │ ├── protocol.cpython-312.pyc
│ │ │ │ │ │ ├── region.cpython-312.pyc
│ │ │ │ │ │ ├── repr.cpython-312.pyc
│ │ │ │ │ │ ├── rule.cpython-312.pyc
│ │ │ │ │ │ ├── scope.cpython-312.pyc
│ │ │ │ │ │ ├── screen.cpython-312.pyc
│ │ │ │ │ │ ├── segment.cpython-312.pyc
│ │ │ │ │ │ ├── spinner.cpython-312.pyc
│ │ │ │ │ │ ├── status.cpython-312.pyc
│ │ │ │ │ │ ├── style.cpython-312.pyc
│ │ │ │ │ │ ├── styled.cpython-312.pyc
│ │ │ │ │ │ ├── syntax.cpython-312.pyc
│ │ │ │ │ │ ├── table.cpython-312.pyc
│ │ │ │ │ │ ├── terminal_theme.cpython-312.pyc
│ │ │ │ │ │ ├── text.cpython-312.pyc
│ │ │ │ │ │ ├── theme.cpython-312.pyc
│ │ │ │ │ │ ├── themes.cpython-312.pyc
│ │ │ │ │ │ ├── traceback.cpython-312.pyc
│ │ │ │ │ │ └── tree.cpython-312.pyc
│ │ │ │ │ ├── _cell_widths.py
│ │ │ │ │ ├── _emoji_codes.py
│ │ │ │ │ ├── _emoji_replace.py
│ │ │ │ │ ├── _export_format.py
│ │ │ │ │ ├── _extension.py
│ │ │ │ │ ├── _fileno.py
│ │ │ │ │ ├── _inspect.py
│ │ │ │ │ ├── _log_render.py
│ │ │ │ │ ├── _loop.py
│ │ │ │ │ ├── _null_file.py
│ │ │ │ │ ├── _palettes.py
│ │ │ │ │ ├── _pick.py
│ │ │ │ │ ├── _ratio.py
│ │ │ │ │ ├── _spinners.py
│ │ │ │ │ ├── _stack.py
│ │ │ │ │ ├── _timer.py
│ │ │ │ │ ├── _win32_console.py
│ │ │ │ │ ├── _windows_renderer.py
│ │ │ │ │ ├── _windows.py
│ │ │ │ │ ├── _wrap.py
│ │ │ │ │ ├── abc.py
│ │ │ │ │ ├── align.py
│ │ │ │ │ ├── ansi.py
│ │ │ │ │ ├── bar.py
│ │ │ │ │ ├── box.py
│ │ │ │ │ ├── cells.py
│ │ │ │ │ ├── color_triplet.py
│ │ │ │ │ ├── color.py
│ │ │ │ │ ├── columns.py
│ │ │ │ │ ├── console.py
│ │ │ │ │ ├── constrain.py
│ │ │ │ │ ├── containers.py
│ │ │ │ │ ├── control.py
│ │ │ │ │ ├── default_styles.py
│ │ │ │ │ ├── diagnose.py
│ │ │ │ │ ├── emoji.py
│ │ │ │ │ ├── errors.py
│ │ │ │ │ ├── file_proxy.py
│ │ │ │ │ ├── filesize.py
│ │ │ │ │ ├── highlighter.py
│ │ │ │ │ ├── json.py
│ │ │ │ │ ├── jupyter.py
│ │ │ │ │ ├── layout.py
│ │ │ │ │ ├── live_render.py
│ │ │ │ │ ├── live.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── markup.py
│ │ │ │ │ ├── measure.py
│ │ │ │ │ ├── padding.py
│ │ │ │ │ ├── pager.py
│ │ │ │ │ ├── palette.py
│ │ │ │ │ ├── panel.py
│ │ │ │ │ ├── pretty.py
│ │ │ │ │ ├── progress_bar.py
│ │ │ │ │ ├── progress.py
│ │ │ │ │ ├── prompt.py
│ │ │ │ │ ├── protocol.py
│ │ │ │ │ ├── py.typed
│ │ │ │ │ ├── region.py
│ │ │ │ │ ├── repr.py
│ │ │ │ │ ├── rule.py
│ │ │ │ │ ├── scope.py
│ │ │ │ │ ├── screen.py
│ │ │ │ │ ├── segment.py
│ │ │ │ │ ├── spinner.py
│ │ │ │ │ ├── status.py
│ │ │ │ │ ├── style.py
│ │ │ │ │ ├── styled.py
│ │ │ │ │ ├── syntax.py
│ │ │ │ │ ├── table.py
│ │ │ │ │ ├── terminal_theme.py
│ │ │ │ │ ├── text.py
│ │ │ │ │ ├── theme.py
│ │ │ │ │ ├── themes.py
│ │ │ │ │ ├── traceback.py
│ │ │ │ │ └── tree.py
│ │ │ │ ├── tomli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _parser.cpython-312.pyc
│ │ │ │ │ │ ├── _re.cpython-312.pyc
│ │ │ │ │ │ └── _types.cpython-312.pyc
│ │ │ │ │ ├── _parser.py
│ │ │ │ │ ├── _re.py
│ │ │ │ │ ├── _types.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── truststore
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _api.cpython-312.pyc
│ │ │ │ │ │ ├── _macos.cpython-312.pyc
│ │ │ │ │ │ ├── _openssl.cpython-312.pyc
│ │ │ │ │ │ ├── _ssl_constants.cpython-312.pyc
│ │ │ │ │ │ └── _windows.cpython-312.pyc
│ │ │ │ │ ├── _api.py
│ │ │ │ │ ├── _macos.py
│ │ │ │ │ ├── _openssl.py
│ │ │ │ │ ├── _ssl_constants.py
│ │ │ │ │ ├── _windows.py
│ │ │ │ │ └── py.typed
│ │ │ │ ├── typing_extensions.py
│ │ │ │ ├── urllib3
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── _collections.cpython-312.pyc
│ │ │ │ │ │ ├── _version.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── connectionpool.cpython-312.pyc
│ │ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ │ ├── fields.cpython-312.pyc
│ │ │ │ │ │ ├── filepost.cpython-312.pyc
│ │ │ │ │ │ ├── poolmanager.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ │ ├── _collections.py
│ │ │ │ │ ├── _version.py
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── connectionpool.py
│ │ │ │ │ ├── contrib
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ ├── _appengine_environ.cpython-312.pyc
│ │ │ │ │ │ │ ├── appengine.cpython-312.pyc
│ │ │ │ │ │ │ ├── ntlmpool.cpython-312.pyc
│ │ │ │ │ │ │ ├── pyopenssl.cpython-312.pyc
│ │ │ │ │ │ │ ├── securetransport.cpython-312.pyc
│ │ │ │ │ │ │ └── socks.cpython-312.pyc
│ │ │ │ │ │ ├── _appengine_environ.py
│ │ │ │ │ │ ├── _securetransport
│ │ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ │ ├── bindings.cpython-312.pyc
│ │ │ │ │ │ │ │ └── low_level.cpython-312.pyc
│ │ │ │ │ │ │ ├── bindings.py
│ │ │ │ │ │ │ └── low_level.py
│ │ │ │ │ │ ├── appengine.py
│ │ │ │ │ │ ├── ntlmpool.py
│ │ │ │ │ │ ├── pyopenssl.py
│ │ │ │ │ │ ├── securetransport.py
│ │ │ │ │ │ └── socks.py
│ │ │ │ │ ├── exceptions.py
│ │ │ │ │ ├── fields.py
│ │ │ │ │ ├── filepost.py
│ │ │ │ │ ├── packages
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ └── six.cpython-312.pyc
│ │ │ │ │ │ ├── backports
│ │ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ │ │ ├── makefile.cpython-312.pyc
│ │ │ │ │ │ │ │ └── weakref_finalize.cpython-312.pyc
│ │ │ │ │ │ │ ├── makefile.py
│ │ │ │ │ │ │ └── weakref_finalize.py
│ │ │ │ │ │ └── six.py
│ │ │ │ │ ├── poolmanager.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ ├── response.py
│ │ │ │ │ └── util
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── proxy.cpython-312.pyc
│ │ │ │ │ │ ├── queue.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ │ │ ├── ssl_.cpython-312.pyc
│ │ │ │ │ │ ├── ssl_match_hostname.cpython-312.pyc
│ │ │ │ │ │ ├── ssltransport.cpython-312.pyc
│ │ │ │ │ │ ├── timeout.cpython-312.pyc
│ │ │ │ │ │ ├── url.cpython-312.pyc
│ │ │ │ │ │ └── wait.cpython-312.pyc
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── proxy.py
│ │ │ │ │ ├── queue.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ ├── response.py
│ │ │ │ │ ├── retry.py
│ │ │ │ │ ├── ssl_.py
│ │ │ │ │ ├── ssl_match_hostname.py
│ │ │ │ │ ├── ssltransport.py
│ │ │ │ │ ├── timeout.py
│ │ │ │ │ ├── url.py
│ │ │ │ │ └── wait.py
│ │ │ │ └── vendor.txt
│ │ │ └── py.typed
│ │ ├── pip-24.2.dist-info
│ │ │ ├── AUTHORS.txt
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── requests
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __version__.cpython-312.pyc
│ │ │ │ ├── _internal_utils.cpython-312.pyc
│ │ │ │ ├── adapters.cpython-312.pyc
│ │ │ │ ├── api.cpython-312.pyc
│ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ ├── certs.cpython-312.pyc
│ │ │ │ ├── compat.cpython-312.pyc
│ │ │ │ ├── cookies.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── help.cpython-312.pyc
│ │ │ │ ├── hooks.cpython-312.pyc
│ │ │ │ ├── models.cpython-312.pyc
│ │ │ │ ├── packages.cpython-312.pyc
│ │ │ │ ├── sessions.cpython-312.pyc
│ │ │ │ ├── status_codes.cpython-312.pyc
│ │ │ │ ├── structures.cpython-312.pyc
│ │ │ │ └── utils.cpython-312.pyc
│ │ │ ├── __version__.py
│ │ │ ├── _internal_utils.py
│ │ │ ├── adapters.py
│ │ │ ├── api.py
│ │ │ ├── auth.py
│ │ │ ├── certs.py
│ │ │ ├── compat.py
│ │ │ ├── cookies.py
│ │ │ ├── exceptions.py
│ │ │ ├── help.py
│ │ │ ├── hooks.py
│ │ │ ├── models.py
│ │ │ ├── packages.py
│ │ │ ├── sessions.py
│ │ │ ├── status_codes.py
│ │ │ ├── structures.py
│ │ │ └── utils.py
│ │ ├── requests-2.32.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── soupsieve
│ │ │ ├── __init__.py
│ │ │ ├── __meta__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── __meta__.cpython-312.pyc
│ │ │ │ ├── css_match.cpython-312.pyc
│ │ │ │ ├── css_parser.cpython-312.pyc
│ │ │ │ ├── css_types.cpython-312.pyc
│ │ │ │ ├── pretty.cpython-312.pyc
│ │ │ │ └── util.cpython-312.pyc
│ │ │ ├── css_match.py
│ │ │ ├── css_parser.py
│ │ │ ├── css_types.py
│ │ │ ├── pretty.py
│ │ │ ├── py.typed
│ │ │ └── util.py
│ │ ├── soupsieve-2.6.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ └── LICENSE.md
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── urllib3
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _base_connection.cpython-312.pyc
│ │ │ │ ├── _collections.cpython-312.pyc
│ │ │ │ ├── _request_methods.cpython-312.pyc
│ │ │ │ ├── _version.cpython-312.pyc
│ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ ├── connectionpool.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── fields.cpython-312.pyc
│ │ │ │ ├── filepost.cpython-312.pyc
│ │ │ │ ├── poolmanager.cpython-312.pyc
│ │ │ │ └── response.cpython-312.pyc
│ │ │ ├── _base_connection.py
│ │ │ ├── _collections.py
│ │ │ ├── _request_methods.py
│ │ │ ├── _version.py
│ │ │ ├── connection.py
│ │ │ ├── connectionpool.py
│ │ │ ├── contrib
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── pyopenssl.cpython-312.pyc
│ │ │ │ │ └── socks.cpython-312.pyc
│ │ │ │ ├── emscripten
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ │ ├── fetch.cpython-312.pyc
│ │ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── emscripten_fetch_worker.js
│ │ │ │ │ ├── fetch.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ └── response.py
│ │ │ │ ├── pyopenssl.py
│ │ │ │ └── socks.py
│ │ │ ├── exceptions.py
│ │ │ ├── fields.py
│ │ │ ├── filepost.py
│ │ │ ├── http2
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ │ └── probe.cpython-312.pyc
│ │ │ │ ├── connection.py
│ │ │ │ └── probe.py
│ │ │ ├── poolmanager.py
│ │ │ ├── py.typed
│ │ │ ├── response.py
│ │ │ └── util
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── connection.cpython-312.pyc
│ │ │ │ ├── proxy.cpython-312.pyc
│ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ ├── retry.cpython-312.pyc
│ │ │ │ ├── ssl_.cpython-312.pyc
│ │ │ │ ├── ssl_match_hostname.cpython-312.pyc
│ │ │ │ ├── ssltransport.cpython-312.pyc
│ │ │ │ ├── timeout.cpython-312.pyc
│ │ │ │ ├── url.cpython-312.pyc
│ │ │ │ ├── util.cpython-312.pyc
│ │ │ │ └── wait.cpython-312.pyc
│ │ │ ├── connection.py
│ │ │ ├── proxy.py
│ │ │ ├── request.py
│ │ │ ├── response.py
│ │ │ ├── retry.py
│ │ │ ├── ssl_.py
│ │ │ ├── ssl_match_hostname.py
│ │ │ ├── ssltransport.py
│ │ │ ├── timeout.py
│ │ │ ├── url.py
│ │ │ ├── util.py
│ │ │ └── wait.py
│ │ ├── urllib3-2.2.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── licenses
│ │ │ │ └── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ └── WHEEL
│ │ ├── useragent
│ │ │ ├── __init__.py
│ │ │ ├── __init__.pyc
│ │ │ ├── __pycache__
│ │ │ │ └── __init__.cpython-312.pyc
│ │ │ ├── resources
│ │ │ │ └── user_agent_data.json
│ │ │ └── test
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ └── __init__.cpython-312.pyc
│ │ │ ├── test_additional_os.json
│ │ │ ├── test_browser.json
│ │ │ ├── test_device.json
│ │ │ ├── test_firefox.json
│ │ │ ├── test_os.json
│ │ │ └── test_pgts_browser.json
│ │ ├── useragent-0.1.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── REQUESTED
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── werkzeug
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ ├── _internal.cpython-312.pyc
│ │ │ │ ├── _reloader.cpython-312.pyc
│ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ ├── formparser.cpython-312.pyc
│ │ │ │ ├── http.cpython-312.pyc
│ │ │ │ ├── local.cpython-312.pyc
│ │ │ │ ├── security.cpython-312.pyc
│ │ │ │ ├── serving.cpython-312.pyc
│ │ │ │ ├── test.cpython-312.pyc
│ │ │ │ ├── testapp.cpython-312.pyc
│ │ │ │ ├── urls.cpython-312.pyc
│ │ │ │ ├── user_agent.cpython-312.pyc
│ │ │ │ ├── utils.cpython-312.pyc
│ │ │ │ └── wsgi.cpython-312.pyc
│ │ │ ├── _internal.py
│ │ │ ├── _reloader.py
│ │ │ ├── datastructures
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── accept.cpython-312.pyc
│ │ │ │ │ ├── auth.cpython-312.pyc
│ │ │ │ │ ├── cache_control.cpython-312.pyc
│ │ │ │ │ ├── csp.cpython-312.pyc
│ │ │ │ │ ├── etag.cpython-312.pyc
│ │ │ │ │ ├── file_storage.cpython-312.pyc
│ │ │ │ │ ├── headers.cpython-312.pyc
│ │ │ │ │ ├── mixins.cpython-312.pyc
│ │ │ │ │ ├── range.cpython-312.pyc
│ │ │ │ │ └── structures.cpython-312.pyc
│ │ │ │ ├── accept.py
│ │ │ │ ├── accept.pyi
│ │ │ │ ├── auth.py
│ │ │ │ ├── cache_control.py
│ │ │ │ ├── cache_control.pyi
│ │ │ │ ├── csp.py
│ │ │ │ ├── csp.pyi
│ │ │ │ ├── etag.py
│ │ │ │ ├── etag.pyi
│ │ │ │ ├── file_storage.py
│ │ │ │ ├── file_storage.pyi
│ │ │ │ ├── headers.py
│ │ │ │ ├── headers.pyi
│ │ │ │ ├── mixins.py
│ │ │ │ ├── mixins.pyi
│ │ │ │ ├── range.py
│ │ │ │ ├── range.pyi
│ │ │ │ ├── structures.py
│ │ │ │ └── structures.pyi
│ │ │ ├── debug
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── console.cpython-312.pyc
│ │ │ │ │ ├── repr.cpython-312.pyc
│ │ │ │ │ └── tbtools.cpython-312.pyc
│ │ │ │ ├── console.py
│ │ │ │ ├── repr.py
│ │ │ │ ├── shared
│ │ │ │ │ ├── console.png
│ │ │ │ │ ├── debugger.js
│ │ │ │ │ ├── ICON_LICENSE.md
│ │ │ │ │ ├── less.png
│ │ │ │ │ ├── more.png
│ │ │ │ │ └── style.css
│ │ │ │ └── tbtools.py
│ │ │ ├── exceptions.py
│ │ │ ├── formparser.py
│ │ │ ├── http.py
│ │ │ ├── local.py
│ │ │ ├── middleware
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── dispatcher.cpython-312.pyc
│ │ │ │ │ ├── http_proxy.cpython-312.pyc
│ │ │ │ │ ├── lint.cpython-312.pyc
│ │ │ │ │ ├── profiler.cpython-312.pyc
│ │ │ │ │ ├── proxy_fix.cpython-312.pyc
│ │ │ │ │ └── shared_data.cpython-312.pyc
│ │ │ │ ├── dispatcher.py
│ │ │ │ ├── http_proxy.py
│ │ │ │ ├── lint.py
│ │ │ │ ├── profiler.py
│ │ │ │ ├── proxy_fix.py
│ │ │ │ └── shared_data.py
│ │ │ ├── py.typed
│ │ │ ├── routing
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── converters.cpython-312.pyc
│ │ │ │ │ ├── exceptions.cpython-312.pyc
│ │ │ │ │ ├── map.cpython-312.pyc
│ │ │ │ │ ├── matcher.cpython-312.pyc
│ │ │ │ │ └── rules.cpython-312.pyc
│ │ │ │ ├── converters.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── map.py
│ │ │ │ ├── matcher.py
│ │ │ │ └── rules.py
│ │ │ ├── sansio
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── http.cpython-312.pyc
│ │ │ │ │ ├── multipart.cpython-312.pyc
│ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ ├── response.cpython-312.pyc
│ │ │ │ │ └── utils.cpython-312.pyc
│ │ │ │ ├── http.py
│ │ │ │ ├── multipart.py
│ │ │ │ ├── request.py
│ │ │ │ ├── response.py
│ │ │ │ └── utils.py
│ │ │ ├── security.py
│ │ │ ├── serving.py
│ │ │ ├── test.py
│ │ │ ├── testapp.py
│ │ │ ├── urls.py
│ │ │ ├── user_agent.py
│ │ │ ├── utils.py
│ │ │ ├── wrappers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-312.pyc
│ │ │ │ │ ├── request.cpython-312.pyc
│ │ │ │ │ └── response.cpython-312.pyc
│ │ │ │ ├── request.py
│ │ │ │ └── response.py
│ │ │ └── wsgi.py
│ │ └── werkzeug-3.0.4.dist-info
│ │ ├── INSTALLER
│ │ ├── LICENSE.txt
│ │ ├── METADATA
│ │ ├── RECORD
│ │ └── WHEEL
│ ├── pyvenv.cfg
│ ├── static
│ │ └── styles.css
│ ├── templates
│ │ └── index.html
│ └── test.py
├── cline_config.json
├── mcp_server.py
├── README.md
├── search_results.json
├── settings.json
└── test_files
├── text1.txt
└── text2.txt
```
# Files
--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/tree.h:
--------------------------------------------------------------------------------
```
1 | /*
2 | * Summary: interfaces for tree manipulation
3 | * Description: this module describes the structures found in an tree resulting
4 | * from an XML or HTML parsing, as well as the API provided for
5 | * various processing on that tree
6 | *
7 | * Copy: See Copyright for the status of this software.
8 | *
9 | * Author: Daniel Veillard
10 | */
11 |
12 | #ifndef XML_TREE_INTERNALS
13 |
14 | /*
15 | * Emulate circular dependency for backward compatibility
16 | */
17 | #include <libxml/parser.h>
18 |
19 | #else /* XML_TREE_INTERNALS */
20 |
21 | #ifndef __XML_TREE_H__
22 | #define __XML_TREE_H__
23 |
24 | #include <stdio.h>
25 | #include <limits.h>
26 | #include <libxml/xmlversion.h>
27 | #include <libxml/xmlstring.h>
28 | #include <libxml/xmlmemory.h>
29 | #include <libxml/xmlregexp.h>
30 |
31 | #ifdef __cplusplus
32 | extern "C" {
33 | #endif
34 |
35 | /*
36 | * Some of the basic types pointer to structures:
37 | */
38 | /* xmlIO.h */
39 | typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
40 | typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
41 |
42 | typedef struct _xmlOutputBuffer xmlOutputBuffer;
43 | typedef xmlOutputBuffer *xmlOutputBufferPtr;
44 |
45 | /* parser.h */
46 | typedef struct _xmlParserInput xmlParserInput;
47 | typedef xmlParserInput *xmlParserInputPtr;
48 |
49 | typedef struct _xmlParserCtxt xmlParserCtxt;
50 | typedef xmlParserCtxt *xmlParserCtxtPtr;
51 |
52 | typedef struct _xmlSAXLocator xmlSAXLocator;
53 | typedef xmlSAXLocator *xmlSAXLocatorPtr;
54 |
55 | typedef struct _xmlSAXHandler xmlSAXHandler;
56 | typedef xmlSAXHandler *xmlSAXHandlerPtr;
57 |
58 | /* entities.h */
59 | typedef struct _xmlEntity xmlEntity;
60 | typedef xmlEntity *xmlEntityPtr;
61 |
62 | /**
63 | * BASE_BUFFER_SIZE:
64 | *
65 | * default buffer size 4000.
66 | */
67 | #define BASE_BUFFER_SIZE 4096
68 |
69 | /**
70 | * LIBXML_NAMESPACE_DICT:
71 | *
72 | * Defines experimental behaviour:
73 | * 1) xmlNs gets an additional field @context (a xmlDoc)
74 | * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
75 | */
76 | /* #define LIBXML_NAMESPACE_DICT */
77 |
78 | /**
79 | * xmlBufferAllocationScheme:
80 | *
81 | * A buffer allocation scheme can be defined to either match exactly the
82 | * need or double it's allocated size each time it is found too small.
83 | */
84 |
85 | typedef enum {
86 | XML_BUFFER_ALLOC_DOUBLEIT, /* double each time one need to grow */
87 | XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */
88 | XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer, deprecated */
89 | XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */
90 | XML_BUFFER_ALLOC_HYBRID, /* exact up to a threshold, and doubleit thereafter */
91 | XML_BUFFER_ALLOC_BOUNDED /* limit the upper size of the buffer */
92 | } xmlBufferAllocationScheme;
93 |
94 | /**
95 | * xmlBuffer:
96 | *
97 | * A buffer structure, this old construct is limited to 2GB and
98 | * is being deprecated, use API with xmlBuf instead
99 | */
100 | typedef struct _xmlBuffer xmlBuffer;
101 | typedef xmlBuffer *xmlBufferPtr;
102 | struct _xmlBuffer {
103 | xmlChar *content; /* The buffer content UTF8 */
104 | unsigned int use; /* The buffer size used */
105 | unsigned int size; /* The buffer size */
106 | xmlBufferAllocationScheme alloc; /* The realloc method */
107 | xmlChar *contentIO; /* in IO mode we may have a different base */
108 | };
109 |
110 | /**
111 | * xmlBuf:
112 | *
113 | * A buffer structure, new one, the actual structure internals are not public
114 | */
115 |
116 | typedef struct _xmlBuf xmlBuf;
117 |
118 | /**
119 | * xmlBufPtr:
120 | *
121 | * A pointer to a buffer structure, the actual structure internals are not
122 | * public
123 | */
124 |
125 | typedef xmlBuf *xmlBufPtr;
126 |
127 | /*
128 | * A few public routines for xmlBuf. As those are expected to be used
129 | * mostly internally the bulk of the routines are internal in buf.h
130 | */
131 | XMLPUBFUN xmlChar* xmlBufContent (const xmlBuf* buf);
132 | XMLPUBFUN xmlChar* xmlBufEnd (xmlBufPtr buf);
133 | XMLPUBFUN size_t xmlBufUse (const xmlBufPtr buf);
134 | XMLPUBFUN size_t xmlBufShrink (xmlBufPtr buf, size_t len);
135 |
136 | /*
137 | * LIBXML2_NEW_BUFFER:
138 | *
139 | * Macro used to express that the API use the new buffers for
140 | * xmlParserInputBuffer and xmlOutputBuffer. The change was
141 | * introduced in 2.9.0.
142 | */
143 | #define LIBXML2_NEW_BUFFER
144 |
145 | /**
146 | * XML_XML_NAMESPACE:
147 | *
148 | * This is the namespace for the special xml: prefix predefined in the
149 | * XML Namespace specification.
150 | */
151 | #define XML_XML_NAMESPACE \
152 | (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
153 |
154 | /**
155 | * XML_XML_ID:
156 | *
157 | * This is the name for the special xml:id attribute
158 | */
159 | #define XML_XML_ID (const xmlChar *) "xml:id"
160 |
161 | /*
162 | * The different element types carried by an XML tree.
163 | *
164 | * NOTE: This is synchronized with DOM Level1 values
165 | * See http://www.w3.org/TR/REC-DOM-Level-1/
166 | *
167 | * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
168 | * be deprecated to use an XML_DTD_NODE.
169 | */
170 | typedef enum {
171 | XML_ELEMENT_NODE= 1,
172 | XML_ATTRIBUTE_NODE= 2,
173 | XML_TEXT_NODE= 3,
174 | XML_CDATA_SECTION_NODE= 4,
175 | XML_ENTITY_REF_NODE= 5,
176 | XML_ENTITY_NODE= 6,
177 | XML_PI_NODE= 7,
178 | XML_COMMENT_NODE= 8,
179 | XML_DOCUMENT_NODE= 9,
180 | XML_DOCUMENT_TYPE_NODE= 10,
181 | XML_DOCUMENT_FRAG_NODE= 11,
182 | XML_NOTATION_NODE= 12,
183 | XML_HTML_DOCUMENT_NODE= 13,
184 | XML_DTD_NODE= 14,
185 | XML_ELEMENT_DECL= 15,
186 | XML_ATTRIBUTE_DECL= 16,
187 | XML_ENTITY_DECL= 17,
188 | XML_NAMESPACE_DECL= 18,
189 | XML_XINCLUDE_START= 19,
190 | XML_XINCLUDE_END= 20
191 | /* XML_DOCB_DOCUMENT_NODE= 21 */ /* removed */
192 | } xmlElementType;
193 |
194 | /** DOC_DISABLE */
195 | /* For backward compatibility */
196 | #define XML_DOCB_DOCUMENT_NODE 21
197 | /** DOC_ENABLE */
198 |
199 | /**
200 | * xmlNotation:
201 | *
202 | * A DTD Notation definition.
203 | */
204 |
205 | typedef struct _xmlNotation xmlNotation;
206 | typedef xmlNotation *xmlNotationPtr;
207 | struct _xmlNotation {
208 | const xmlChar *name; /* Notation name */
209 | const xmlChar *PublicID; /* Public identifier, if any */
210 | const xmlChar *SystemID; /* System identifier, if any */
211 | };
212 |
213 | /**
214 | * xmlAttributeType:
215 | *
216 | * A DTD Attribute type definition.
217 | */
218 |
219 | typedef enum {
220 | XML_ATTRIBUTE_CDATA = 1,
221 | XML_ATTRIBUTE_ID,
222 | XML_ATTRIBUTE_IDREF ,
223 | XML_ATTRIBUTE_IDREFS,
224 | XML_ATTRIBUTE_ENTITY,
225 | XML_ATTRIBUTE_ENTITIES,
226 | XML_ATTRIBUTE_NMTOKEN,
227 | XML_ATTRIBUTE_NMTOKENS,
228 | XML_ATTRIBUTE_ENUMERATION,
229 | XML_ATTRIBUTE_NOTATION
230 | } xmlAttributeType;
231 |
232 | /**
233 | * xmlAttributeDefault:
234 | *
235 | * A DTD Attribute default definition.
236 | */
237 |
238 | typedef enum {
239 | XML_ATTRIBUTE_NONE = 1,
240 | XML_ATTRIBUTE_REQUIRED,
241 | XML_ATTRIBUTE_IMPLIED,
242 | XML_ATTRIBUTE_FIXED
243 | } xmlAttributeDefault;
244 |
245 | /**
246 | * xmlEnumeration:
247 | *
248 | * List structure used when there is an enumeration in DTDs.
249 | */
250 |
251 | typedef struct _xmlEnumeration xmlEnumeration;
252 | typedef xmlEnumeration *xmlEnumerationPtr;
253 | struct _xmlEnumeration {
254 | struct _xmlEnumeration *next; /* next one */
255 | const xmlChar *name; /* Enumeration name */
256 | };
257 |
258 | /**
259 | * xmlAttribute:
260 | *
261 | * An Attribute declaration in a DTD.
262 | */
263 |
264 | typedef struct _xmlAttribute xmlAttribute;
265 | typedef xmlAttribute *xmlAttributePtr;
266 | struct _xmlAttribute {
267 | void *_private; /* application data */
268 | xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */
269 | const xmlChar *name; /* Attribute name */
270 | struct _xmlNode *children; /* NULL */
271 | struct _xmlNode *last; /* NULL */
272 | struct _xmlDtd *parent; /* -> DTD */
273 | struct _xmlNode *next; /* next sibling link */
274 | struct _xmlNode *prev; /* previous sibling link */
275 | struct _xmlDoc *doc; /* the containing document */
276 |
277 | struct _xmlAttribute *nexth; /* next in hash table */
278 | xmlAttributeType atype; /* The attribute type */
279 | xmlAttributeDefault def; /* the default */
280 | const xmlChar *defaultValue; /* or the default value */
281 | xmlEnumerationPtr tree; /* or the enumeration tree if any */
282 | const xmlChar *prefix; /* the namespace prefix if any */
283 | const xmlChar *elem; /* Element holding the attribute */
284 | };
285 |
286 | /**
287 | * xmlElementContentType:
288 | *
289 | * Possible definitions of element content types.
290 | */
291 | typedef enum {
292 | XML_ELEMENT_CONTENT_PCDATA = 1,
293 | XML_ELEMENT_CONTENT_ELEMENT,
294 | XML_ELEMENT_CONTENT_SEQ,
295 | XML_ELEMENT_CONTENT_OR
296 | } xmlElementContentType;
297 |
298 | /**
299 | * xmlElementContentOccur:
300 | *
301 | * Possible definitions of element content occurrences.
302 | */
303 | typedef enum {
304 | XML_ELEMENT_CONTENT_ONCE = 1,
305 | XML_ELEMENT_CONTENT_OPT,
306 | XML_ELEMENT_CONTENT_MULT,
307 | XML_ELEMENT_CONTENT_PLUS
308 | } xmlElementContentOccur;
309 |
310 | /**
311 | * xmlElementContent:
312 | *
313 | * An XML Element content as stored after parsing an element definition
314 | * in a DTD.
315 | */
316 |
317 | typedef struct _xmlElementContent xmlElementContent;
318 | typedef xmlElementContent *xmlElementContentPtr;
319 | struct _xmlElementContent {
320 | xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */
321 | xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */
322 | const xmlChar *name; /* Element name */
323 | struct _xmlElementContent *c1; /* first child */
324 | struct _xmlElementContent *c2; /* second child */
325 | struct _xmlElementContent *parent; /* parent */
326 | const xmlChar *prefix; /* Namespace prefix */
327 | };
328 |
329 | /**
330 | * xmlElementTypeVal:
331 | *
332 | * The different possibilities for an element content type.
333 | */
334 |
335 | typedef enum {
336 | XML_ELEMENT_TYPE_UNDEFINED = 0,
337 | XML_ELEMENT_TYPE_EMPTY = 1,
338 | XML_ELEMENT_TYPE_ANY,
339 | XML_ELEMENT_TYPE_MIXED,
340 | XML_ELEMENT_TYPE_ELEMENT
341 | } xmlElementTypeVal;
342 |
343 | /**
344 | * xmlElement:
345 | *
346 | * An XML Element declaration from a DTD.
347 | */
348 |
349 | typedef struct _xmlElement xmlElement;
350 | typedef xmlElement *xmlElementPtr;
351 | struct _xmlElement {
352 | void *_private; /* application data */
353 | xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */
354 | const xmlChar *name; /* Element name */
355 | struct _xmlNode *children; /* NULL */
356 | struct _xmlNode *last; /* NULL */
357 | struct _xmlDtd *parent; /* -> DTD */
358 | struct _xmlNode *next; /* next sibling link */
359 | struct _xmlNode *prev; /* previous sibling link */
360 | struct _xmlDoc *doc; /* the containing document */
361 |
362 | xmlElementTypeVal etype; /* The type */
363 | xmlElementContentPtr content; /* the allowed element content */
364 | xmlAttributePtr attributes; /* List of the declared attributes */
365 | const xmlChar *prefix; /* the namespace prefix if any */
366 | #ifdef LIBXML_REGEXP_ENABLED
367 | xmlRegexpPtr contModel; /* the validating regexp */
368 | #else
369 | void *contModel;
370 | #endif
371 | };
372 |
373 |
374 | /**
375 | * XML_LOCAL_NAMESPACE:
376 | *
377 | * A namespace declaration node.
378 | */
379 | #define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
380 | typedef xmlElementType xmlNsType;
381 |
382 | /**
383 | * xmlNs:
384 | *
385 | * An XML namespace.
386 | * Note that prefix == NULL is valid, it defines the default namespace
387 | * within the subtree (until overridden).
388 | *
389 | * xmlNsType is unified with xmlElementType.
390 | */
391 |
392 | typedef struct _xmlNs xmlNs;
393 | typedef xmlNs *xmlNsPtr;
394 | struct _xmlNs {
395 | struct _xmlNs *next; /* next Ns link for this node */
396 | xmlNsType type; /* global or local */
397 | const xmlChar *href; /* URL for the namespace */
398 | const xmlChar *prefix; /* prefix for the namespace */
399 | void *_private; /* application data */
400 | struct _xmlDoc *context; /* normally an xmlDoc */
401 | };
402 |
403 | /**
404 | * xmlDtd:
405 | *
406 | * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
407 | * the internal subset and for the external subset.
408 | */
409 | typedef struct _xmlDtd xmlDtd;
410 | typedef xmlDtd *xmlDtdPtr;
411 | struct _xmlDtd {
412 | void *_private; /* application data */
413 | xmlElementType type; /* XML_DTD_NODE, must be second ! */
414 | const xmlChar *name; /* Name of the DTD */
415 | struct _xmlNode *children; /* the value of the property link */
416 | struct _xmlNode *last; /* last child link */
417 | struct _xmlDoc *parent; /* child->parent link */
418 | struct _xmlNode *next; /* next sibling link */
419 | struct _xmlNode *prev; /* previous sibling link */
420 | struct _xmlDoc *doc; /* the containing document */
421 |
422 | /* End of common part */
423 | void *notations; /* Hash table for notations if any */
424 | void *elements; /* Hash table for elements if any */
425 | void *attributes; /* Hash table for attributes if any */
426 | void *entities; /* Hash table for entities if any */
427 | const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */
428 | const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */
429 | void *pentities; /* Hash table for param entities if any */
430 | };
431 |
432 | /**
433 | * xmlAttr:
434 | *
435 | * An attribute on an XML node.
436 | */
437 | typedef struct _xmlAttr xmlAttr;
438 | typedef xmlAttr *xmlAttrPtr;
439 | struct _xmlAttr {
440 | void *_private; /* application data */
441 | xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */
442 | const xmlChar *name; /* the name of the property */
443 | struct _xmlNode *children; /* the value of the property */
444 | struct _xmlNode *last; /* NULL */
445 | struct _xmlNode *parent; /* child->parent link */
446 | struct _xmlAttr *next; /* next sibling link */
447 | struct _xmlAttr *prev; /* previous sibling link */
448 | struct _xmlDoc *doc; /* the containing document */
449 | xmlNs *ns; /* pointer to the associated namespace */
450 | xmlAttributeType atype; /* the attribute type if validating */
451 | void *psvi; /* for type/PSVI information */
452 | };
453 |
454 | /**
455 | * xmlID:
456 | *
457 | * An XML ID instance.
458 | */
459 |
460 | typedef struct _xmlID xmlID;
461 | typedef xmlID *xmlIDPtr;
462 | struct _xmlID {
463 | struct _xmlID *next; /* next ID */
464 | const xmlChar *value; /* The ID name */
465 | xmlAttrPtr attr; /* The attribute holding it */
466 | const xmlChar *name; /* The attribute if attr is not available */
467 | int lineno; /* The line number if attr is not available */
468 | struct _xmlDoc *doc; /* The document holding the ID */
469 | };
470 |
471 | /**
472 | * xmlRef:
473 | *
474 | * An XML IDREF instance.
475 | */
476 |
477 | typedef struct _xmlRef xmlRef;
478 | typedef xmlRef *xmlRefPtr;
479 | struct _xmlRef {
480 | struct _xmlRef *next; /* next Ref */
481 | const xmlChar *value; /* The Ref name */
482 | xmlAttrPtr attr; /* The attribute holding it */
483 | const xmlChar *name; /* The attribute if attr is not available */
484 | int lineno; /* The line number if attr is not available */
485 | };
486 |
487 | /**
488 | * xmlNode:
489 | *
490 | * A node in an XML tree.
491 | */
492 | typedef struct _xmlNode xmlNode;
493 | typedef xmlNode *xmlNodePtr;
494 | struct _xmlNode {
495 | void *_private; /* application data */
496 | xmlElementType type; /* type number, must be second ! */
497 | const xmlChar *name; /* the name of the node, or the entity */
498 | struct _xmlNode *children; /* parent->childs link */
499 | struct _xmlNode *last; /* last child link */
500 | struct _xmlNode *parent; /* child->parent link */
501 | struct _xmlNode *next; /* next sibling link */
502 | struct _xmlNode *prev; /* previous sibling link */
503 | struct _xmlDoc *doc; /* the containing document */
504 |
505 | /* End of common part */
506 | xmlNs *ns; /* pointer to the associated namespace */
507 | xmlChar *content; /* the content */
508 | struct _xmlAttr *properties;/* properties list */
509 | xmlNs *nsDef; /* namespace definitions on this node */
510 | void *psvi; /* for type/PSVI information */
511 | unsigned short line; /* line number */
512 | unsigned short extra; /* extra data for XPath/XSLT */
513 | };
514 |
515 | /**
516 | * XML_GET_CONTENT:
517 | *
518 | * Macro to extract the content pointer of a node.
519 | */
520 | #define XML_GET_CONTENT(n) \
521 | ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
522 |
523 | /**
524 | * XML_GET_LINE:
525 | *
526 | * Macro to extract the line number of an element node.
527 | */
528 | #define XML_GET_LINE(n) \
529 | (xmlGetLineNo(n))
530 |
531 | /**
532 | * xmlDocProperty
533 | *
534 | * Set of properties of the document as found by the parser
535 | * Some of them are linked to similarly named xmlParserOption
536 | */
537 | typedef enum {
538 | XML_DOC_WELLFORMED = 1<<0, /* document is XML well formed */
539 | XML_DOC_NSVALID = 1<<1, /* document is Namespace valid */
540 | XML_DOC_OLD10 = 1<<2, /* parsed with old XML-1.0 parser */
541 | XML_DOC_DTDVALID = 1<<3, /* DTD validation was successful */
542 | XML_DOC_XINCLUDE = 1<<4, /* XInclude substitution was done */
543 | XML_DOC_USERBUILT = 1<<5, /* Document was built using the API
544 | and not by parsing an instance */
545 | XML_DOC_INTERNAL = 1<<6, /* built for internal processing */
546 | XML_DOC_HTML = 1<<7 /* parsed or built HTML document */
547 | } xmlDocProperties;
548 |
549 | /**
550 | * xmlDoc:
551 | *
552 | * An XML document.
553 | */
554 | typedef struct _xmlDoc xmlDoc;
555 | typedef xmlDoc *xmlDocPtr;
556 | struct _xmlDoc {
557 | void *_private; /* application data */
558 | xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */
559 | char *name; /* name/filename/URI of the document */
560 | struct _xmlNode *children; /* the document tree */
561 | struct _xmlNode *last; /* last child link */
562 | struct _xmlNode *parent; /* child->parent link */
563 | struct _xmlNode *next; /* next sibling link */
564 | struct _xmlNode *prev; /* previous sibling link */
565 | struct _xmlDoc *doc; /* autoreference to itself */
566 |
567 | /* End of common part */
568 | int compression;/* level of zlib compression */
569 | int standalone; /* standalone document (no external refs)
570 | 1 if standalone="yes"
571 | 0 if standalone="no"
572 | -1 if there is no XML declaration
573 | -2 if there is an XML declaration, but no
574 | standalone attribute was specified */
575 | struct _xmlDtd *intSubset; /* the document internal subset */
576 | struct _xmlDtd *extSubset; /* the document external subset */
577 | struct _xmlNs *oldNs; /* Global namespace, the old way */
578 | const xmlChar *version; /* the XML version string */
579 | const xmlChar *encoding; /* actual encoding, if any */
580 | void *ids; /* Hash table for ID attributes if any */
581 | void *refs; /* Hash table for IDREFs attributes if any */
582 | const xmlChar *URL; /* The URI for that document */
583 | int charset; /* unused */
584 | struct _xmlDict *dict; /* dict used to allocate names or NULL */
585 | void *psvi; /* for type/PSVI information */
586 | int parseFlags; /* set of xmlParserOption used to parse the
587 | document */
588 | int properties; /* set of xmlDocProperties for this document
589 | set at the end of parsing */
590 | };
591 |
592 |
593 | typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
594 | typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
595 |
596 | /**
597 | * xmlDOMWrapAcquireNsFunction:
598 | * @ctxt: a DOM wrapper context
599 | * @node: the context node (element or attribute)
600 | * @nsName: the requested namespace name
601 | * @nsPrefix: the requested namespace prefix
602 | *
603 | * A function called to acquire namespaces (xmlNs) from the wrapper.
604 | *
605 | * Returns an xmlNsPtr or NULL in case of an error.
606 | */
607 | typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
608 | xmlNodePtr node,
609 | const xmlChar *nsName,
610 | const xmlChar *nsPrefix);
611 |
612 | /**
613 | * xmlDOMWrapCtxt:
614 | *
615 | * Context for DOM wrapper-operations.
616 | */
617 | struct _xmlDOMWrapCtxt {
618 | void * _private;
619 | /*
620 | * The type of this context, just in case we need specialized
621 | * contexts in the future.
622 | */
623 | int type;
624 | /*
625 | * Internal namespace map used for various operations.
626 | */
627 | void * namespaceMap;
628 | /*
629 | * Use this one to acquire an xmlNsPtr intended for node->ns.
630 | * (Note that this is not intended for elem->nsDef).
631 | */
632 | xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
633 | };
634 |
635 | /**
636 | * xmlRegisterNodeFunc:
637 | * @node: the current node
638 | *
639 | * Signature for the registration callback of a created node
640 | */
641 | typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
642 |
643 | /**
644 | * xmlDeregisterNodeFunc:
645 | * @node: the current node
646 | *
647 | * Signature for the deregistration callback of a discarded node
648 | */
649 | typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
650 |
651 | /**
652 | * xmlChildrenNode:
653 | *
654 | * Macro for compatibility naming layer with libxml1. Maps
655 | * to "children."
656 | */
657 | #ifndef xmlChildrenNode
658 | #define xmlChildrenNode children
659 | #endif
660 |
661 | /**
662 | * xmlRootNode:
663 | *
664 | * Macro for compatibility naming layer with libxml1. Maps
665 | * to "children".
666 | */
667 | #ifndef xmlRootNode
668 | #define xmlRootNode children
669 | #endif
670 |
671 | /*
672 | * Variables.
673 | */
674 |
675 | /** DOC_DISABLE */
676 | #define XML_GLOBALS_TREE \
677 | XML_OP(xmlBufferAllocScheme, xmlBufferAllocationScheme, XML_DEPRECATED) \
678 | XML_OP(xmlDefaultBufferSize, int, XML_DEPRECATED) \
679 | XML_OP(xmlRegisterNodeDefaultValue, xmlRegisterNodeFunc, XML_DEPRECATED) \
680 | XML_OP(xmlDeregisterNodeDefaultValue, xmlDeregisterNodeFunc, \
681 | XML_DEPRECATED)
682 |
683 | #define XML_OP XML_DECLARE_GLOBAL
684 | XML_GLOBALS_TREE
685 | #undef XML_OP
686 |
687 | #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
688 | #define xmlBufferAllocScheme XML_GLOBAL_MACRO(xmlBufferAllocScheme)
689 | #define xmlDefaultBufferSize XML_GLOBAL_MACRO(xmlDefaultBufferSize)
690 | #define xmlRegisterNodeDefaultValue \
691 | XML_GLOBAL_MACRO(xmlRegisterNodeDefaultValue)
692 | #define xmlDeregisterNodeDefaultValue \
693 | XML_GLOBAL_MACRO(xmlDeregisterNodeDefaultValue)
694 | #endif
695 | /** DOC_ENABLE */
696 |
697 | /*
698 | * Some helper functions
699 | */
700 | XMLPUBFUN int
701 | xmlValidateNCName (const xmlChar *value,
702 | int space);
703 |
704 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
705 | XMLPUBFUN int
706 | xmlValidateQName (const xmlChar *value,
707 | int space);
708 | XMLPUBFUN int
709 | xmlValidateName (const xmlChar *value,
710 | int space);
711 | XMLPUBFUN int
712 | xmlValidateNMToken (const xmlChar *value,
713 | int space);
714 | #endif
715 |
716 | XMLPUBFUN xmlChar *
717 | xmlBuildQName (const xmlChar *ncname,
718 | const xmlChar *prefix,
719 | xmlChar *memory,
720 | int len);
721 | XMLPUBFUN xmlChar *
722 | xmlSplitQName2 (const xmlChar *name,
723 | xmlChar **prefix);
724 | XMLPUBFUN const xmlChar *
725 | xmlSplitQName3 (const xmlChar *name,
726 | int *len);
727 |
728 | /*
729 | * Handling Buffers, the old ones see @xmlBuf for the new ones.
730 | */
731 |
732 | XMLPUBFUN void
733 | xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
734 | XMLPUBFUN xmlBufferAllocationScheme
735 | xmlGetBufferAllocationScheme(void);
736 |
737 | XMLPUBFUN xmlBufferPtr
738 | xmlBufferCreate (void);
739 | XMLPUBFUN xmlBufferPtr
740 | xmlBufferCreateSize (size_t size);
741 | XMLPUBFUN xmlBufferPtr
742 | xmlBufferCreateStatic (void *mem,
743 | size_t size);
744 | XMLPUBFUN int
745 | xmlBufferResize (xmlBufferPtr buf,
746 | unsigned int size);
747 | XMLPUBFUN void
748 | xmlBufferFree (xmlBufferPtr buf);
749 | XMLPUBFUN int
750 | xmlBufferDump (FILE *file,
751 | xmlBufferPtr buf);
752 | XMLPUBFUN int
753 | xmlBufferAdd (xmlBufferPtr buf,
754 | const xmlChar *str,
755 | int len);
756 | XMLPUBFUN int
757 | xmlBufferAddHead (xmlBufferPtr buf,
758 | const xmlChar *str,
759 | int len);
760 | XMLPUBFUN int
761 | xmlBufferCat (xmlBufferPtr buf,
762 | const xmlChar *str);
763 | XMLPUBFUN int
764 | xmlBufferCCat (xmlBufferPtr buf,
765 | const char *str);
766 | XMLPUBFUN int
767 | xmlBufferShrink (xmlBufferPtr buf,
768 | unsigned int len);
769 | XMLPUBFUN int
770 | xmlBufferGrow (xmlBufferPtr buf,
771 | unsigned int len);
772 | XMLPUBFUN void
773 | xmlBufferEmpty (xmlBufferPtr buf);
774 | XMLPUBFUN const xmlChar*
775 | xmlBufferContent (const xmlBuffer *buf);
776 | XMLPUBFUN xmlChar*
777 | xmlBufferDetach (xmlBufferPtr buf);
778 | XMLPUBFUN void
779 | xmlBufferSetAllocationScheme(xmlBufferPtr buf,
780 | xmlBufferAllocationScheme scheme);
781 | XMLPUBFUN int
782 | xmlBufferLength (const xmlBuffer *buf);
783 |
784 | /*
785 | * Creating/freeing new structures.
786 | */
787 | XMLPUBFUN xmlDtdPtr
788 | xmlCreateIntSubset (xmlDocPtr doc,
789 | const xmlChar *name,
790 | const xmlChar *ExternalID,
791 | const xmlChar *SystemID);
792 | XMLPUBFUN xmlDtdPtr
793 | xmlNewDtd (xmlDocPtr doc,
794 | const xmlChar *name,
795 | const xmlChar *ExternalID,
796 | const xmlChar *SystemID);
797 | XMLPUBFUN xmlDtdPtr
798 | xmlGetIntSubset (const xmlDoc *doc);
799 | XMLPUBFUN void
800 | xmlFreeDtd (xmlDtdPtr cur);
801 | #ifdef LIBXML_LEGACY_ENABLED
802 | XML_DEPRECATED
803 | XMLPUBFUN xmlNsPtr
804 | xmlNewGlobalNs (xmlDocPtr doc,
805 | const xmlChar *href,
806 | const xmlChar *prefix);
807 | #endif /* LIBXML_LEGACY_ENABLED */
808 | XMLPUBFUN xmlNsPtr
809 | xmlNewNs (xmlNodePtr node,
810 | const xmlChar *href,
811 | const xmlChar *prefix);
812 | XMLPUBFUN void
813 | xmlFreeNs (xmlNsPtr cur);
814 | XMLPUBFUN void
815 | xmlFreeNsList (xmlNsPtr cur);
816 | XMLPUBFUN xmlDocPtr
817 | xmlNewDoc (const xmlChar *version);
818 | XMLPUBFUN void
819 | xmlFreeDoc (xmlDocPtr cur);
820 | XMLPUBFUN xmlAttrPtr
821 | xmlNewDocProp (xmlDocPtr doc,
822 | const xmlChar *name,
823 | const xmlChar *value);
824 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
825 | defined(LIBXML_SCHEMAS_ENABLED)
826 | XMLPUBFUN xmlAttrPtr
827 | xmlNewProp (xmlNodePtr node,
828 | const xmlChar *name,
829 | const xmlChar *value);
830 | #endif
831 | XMLPUBFUN xmlAttrPtr
832 | xmlNewNsProp (xmlNodePtr node,
833 | xmlNsPtr ns,
834 | const xmlChar *name,
835 | const xmlChar *value);
836 | XMLPUBFUN xmlAttrPtr
837 | xmlNewNsPropEatName (xmlNodePtr node,
838 | xmlNsPtr ns,
839 | xmlChar *name,
840 | const xmlChar *value);
841 | XMLPUBFUN void
842 | xmlFreePropList (xmlAttrPtr cur);
843 | XMLPUBFUN void
844 | xmlFreeProp (xmlAttrPtr cur);
845 | XMLPUBFUN xmlAttrPtr
846 | xmlCopyProp (xmlNodePtr target,
847 | xmlAttrPtr cur);
848 | XMLPUBFUN xmlAttrPtr
849 | xmlCopyPropList (xmlNodePtr target,
850 | xmlAttrPtr cur);
851 | #ifdef LIBXML_TREE_ENABLED
852 | XMLPUBFUN xmlDtdPtr
853 | xmlCopyDtd (xmlDtdPtr dtd);
854 | #endif /* LIBXML_TREE_ENABLED */
855 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
856 | XMLPUBFUN xmlDocPtr
857 | xmlCopyDoc (xmlDocPtr doc,
858 | int recursive);
859 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
860 | /*
861 | * Creating new nodes.
862 | */
863 | XMLPUBFUN xmlNodePtr
864 | xmlNewDocNode (xmlDocPtr doc,
865 | xmlNsPtr ns,
866 | const xmlChar *name,
867 | const xmlChar *content);
868 | XMLPUBFUN xmlNodePtr
869 | xmlNewDocNodeEatName (xmlDocPtr doc,
870 | xmlNsPtr ns,
871 | xmlChar *name,
872 | const xmlChar *content);
873 | XMLPUBFUN xmlNodePtr
874 | xmlNewNode (xmlNsPtr ns,
875 | const xmlChar *name);
876 | XMLPUBFUN xmlNodePtr
877 | xmlNewNodeEatName (xmlNsPtr ns,
878 | xmlChar *name);
879 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
880 | XMLPUBFUN xmlNodePtr
881 | xmlNewChild (xmlNodePtr parent,
882 | xmlNsPtr ns,
883 | const xmlChar *name,
884 | const xmlChar *content);
885 | #endif
886 | XMLPUBFUN xmlNodePtr
887 | xmlNewDocText (const xmlDoc *doc,
888 | const xmlChar *content);
889 | XMLPUBFUN xmlNodePtr
890 | xmlNewText (const xmlChar *content);
891 | XMLPUBFUN xmlNodePtr
892 | xmlNewDocPI (xmlDocPtr doc,
893 | const xmlChar *name,
894 | const xmlChar *content);
895 | XMLPUBFUN xmlNodePtr
896 | xmlNewPI (const xmlChar *name,
897 | const xmlChar *content);
898 | XMLPUBFUN xmlNodePtr
899 | xmlNewDocTextLen (xmlDocPtr doc,
900 | const xmlChar *content,
901 | int len);
902 | XMLPUBFUN xmlNodePtr
903 | xmlNewTextLen (const xmlChar *content,
904 | int len);
905 | XMLPUBFUN xmlNodePtr
906 | xmlNewDocComment (xmlDocPtr doc,
907 | const xmlChar *content);
908 | XMLPUBFUN xmlNodePtr
909 | xmlNewComment (const xmlChar *content);
910 | XMLPUBFUN xmlNodePtr
911 | xmlNewCDataBlock (xmlDocPtr doc,
912 | const xmlChar *content,
913 | int len);
914 | XMLPUBFUN xmlNodePtr
915 | xmlNewCharRef (xmlDocPtr doc,
916 | const xmlChar *name);
917 | XMLPUBFUN xmlNodePtr
918 | xmlNewReference (const xmlDoc *doc,
919 | const xmlChar *name);
920 | XMLPUBFUN xmlNodePtr
921 | xmlCopyNode (xmlNodePtr node,
922 | int recursive);
923 | XMLPUBFUN xmlNodePtr
924 | xmlDocCopyNode (xmlNodePtr node,
925 | xmlDocPtr doc,
926 | int recursive);
927 | XMLPUBFUN xmlNodePtr
928 | xmlDocCopyNodeList (xmlDocPtr doc,
929 | xmlNodePtr node);
930 | XMLPUBFUN xmlNodePtr
931 | xmlCopyNodeList (xmlNodePtr node);
932 | #ifdef LIBXML_TREE_ENABLED
933 | XMLPUBFUN xmlNodePtr
934 | xmlNewTextChild (xmlNodePtr parent,
935 | xmlNsPtr ns,
936 | const xmlChar *name,
937 | const xmlChar *content);
938 | XMLPUBFUN xmlNodePtr
939 | xmlNewDocRawNode (xmlDocPtr doc,
940 | xmlNsPtr ns,
941 | const xmlChar *name,
942 | const xmlChar *content);
943 | XMLPUBFUN xmlNodePtr
944 | xmlNewDocFragment (xmlDocPtr doc);
945 | #endif /* LIBXML_TREE_ENABLED */
946 |
947 | /*
948 | * Navigating.
949 | */
950 | XMLPUBFUN long
951 | xmlGetLineNo (const xmlNode *node);
952 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
953 | XMLPUBFUN xmlChar *
954 | xmlGetNodePath (const xmlNode *node);
955 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
956 | XMLPUBFUN xmlNodePtr
957 | xmlDocGetRootElement (const xmlDoc *doc);
958 | XMLPUBFUN xmlNodePtr
959 | xmlGetLastChild (const xmlNode *parent);
960 | XMLPUBFUN int
961 | xmlNodeIsText (const xmlNode *node);
962 | XMLPUBFUN int
963 | xmlIsBlankNode (const xmlNode *node);
964 |
965 | /*
966 | * Changing the structure.
967 | */
968 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
969 | XMLPUBFUN xmlNodePtr
970 | xmlDocSetRootElement (xmlDocPtr doc,
971 | xmlNodePtr root);
972 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
973 | #ifdef LIBXML_TREE_ENABLED
974 | XMLPUBFUN void
975 | xmlNodeSetName (xmlNodePtr cur,
976 | const xmlChar *name);
977 | #endif /* LIBXML_TREE_ENABLED */
978 | XMLPUBFUN xmlNodePtr
979 | xmlAddChild (xmlNodePtr parent,
980 | xmlNodePtr cur);
981 | XMLPUBFUN xmlNodePtr
982 | xmlAddChildList (xmlNodePtr parent,
983 | xmlNodePtr cur);
984 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
985 | XMLPUBFUN xmlNodePtr
986 | xmlReplaceNode (xmlNodePtr old,
987 | xmlNodePtr cur);
988 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
989 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
990 | defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
991 | XMLPUBFUN xmlNodePtr
992 | xmlAddPrevSibling (xmlNodePtr cur,
993 | xmlNodePtr elem);
994 | #endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
995 | XMLPUBFUN xmlNodePtr
996 | xmlAddSibling (xmlNodePtr cur,
997 | xmlNodePtr elem);
998 | XMLPUBFUN xmlNodePtr
999 | xmlAddNextSibling (xmlNodePtr cur,
1000 | xmlNodePtr elem);
1001 | XMLPUBFUN void
1002 | xmlUnlinkNode (xmlNodePtr cur);
1003 | XMLPUBFUN xmlNodePtr
1004 | xmlTextMerge (xmlNodePtr first,
1005 | xmlNodePtr second);
1006 | XMLPUBFUN int
1007 | xmlTextConcat (xmlNodePtr node,
1008 | const xmlChar *content,
1009 | int len);
1010 | XMLPUBFUN void
1011 | xmlFreeNodeList (xmlNodePtr cur);
1012 | XMLPUBFUN void
1013 | xmlFreeNode (xmlNodePtr cur);
1014 | XMLPUBFUN void
1015 | xmlSetTreeDoc (xmlNodePtr tree,
1016 | xmlDocPtr doc);
1017 | XMLPUBFUN void
1018 | xmlSetListDoc (xmlNodePtr list,
1019 | xmlDocPtr doc);
1020 | /*
1021 | * Namespaces.
1022 | */
1023 | XMLPUBFUN xmlNsPtr
1024 | xmlSearchNs (xmlDocPtr doc,
1025 | xmlNodePtr node,
1026 | const xmlChar *nameSpace);
1027 | XMLPUBFUN xmlNsPtr
1028 | xmlSearchNsByHref (xmlDocPtr doc,
1029 | xmlNodePtr node,
1030 | const xmlChar *href);
1031 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
1032 | defined(LIBXML_SCHEMAS_ENABLED)
1033 | XMLPUBFUN xmlNsPtr *
1034 | xmlGetNsList (const xmlDoc *doc,
1035 | const xmlNode *node);
1036 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
1037 |
1038 | XMLPUBFUN void
1039 | xmlSetNs (xmlNodePtr node,
1040 | xmlNsPtr ns);
1041 | XMLPUBFUN xmlNsPtr
1042 | xmlCopyNamespace (xmlNsPtr cur);
1043 | XMLPUBFUN xmlNsPtr
1044 | xmlCopyNamespaceList (xmlNsPtr cur);
1045 |
1046 | /*
1047 | * Changing the content.
1048 | */
1049 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1050 | defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
1051 | XMLPUBFUN xmlAttrPtr
1052 | xmlSetProp (xmlNodePtr node,
1053 | const xmlChar *name,
1054 | const xmlChar *value);
1055 | XMLPUBFUN xmlAttrPtr
1056 | xmlSetNsProp (xmlNodePtr node,
1057 | xmlNsPtr ns,
1058 | const xmlChar *name,
1059 | const xmlChar *value);
1060 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1061 | defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
1062 | XMLPUBFUN xmlChar *
1063 | xmlGetNoNsProp (const xmlNode *node,
1064 | const xmlChar *name);
1065 | XMLPUBFUN xmlChar *
1066 | xmlGetProp (const xmlNode *node,
1067 | const xmlChar *name);
1068 | XMLPUBFUN xmlAttrPtr
1069 | xmlHasProp (const xmlNode *node,
1070 | const xmlChar *name);
1071 | XMLPUBFUN xmlAttrPtr
1072 | xmlHasNsProp (const xmlNode *node,
1073 | const xmlChar *name,
1074 | const xmlChar *nameSpace);
1075 | XMLPUBFUN xmlChar *
1076 | xmlGetNsProp (const xmlNode *node,
1077 | const xmlChar *name,
1078 | const xmlChar *nameSpace);
1079 | XMLPUBFUN xmlNodePtr
1080 | xmlStringGetNodeList (const xmlDoc *doc,
1081 | const xmlChar *value);
1082 | XMLPUBFUN xmlNodePtr
1083 | xmlStringLenGetNodeList (const xmlDoc *doc,
1084 | const xmlChar *value,
1085 | int len);
1086 | XMLPUBFUN xmlChar *
1087 | xmlNodeListGetString (xmlDocPtr doc,
1088 | const xmlNode *list,
1089 | int inLine);
1090 | #ifdef LIBXML_TREE_ENABLED
1091 | XMLPUBFUN xmlChar *
1092 | xmlNodeListGetRawString (const xmlDoc *doc,
1093 | const xmlNode *list,
1094 | int inLine);
1095 | #endif /* LIBXML_TREE_ENABLED */
1096 | XMLPUBFUN void
1097 | xmlNodeSetContent (xmlNodePtr cur,
1098 | const xmlChar *content);
1099 | #ifdef LIBXML_TREE_ENABLED
1100 | XMLPUBFUN void
1101 | xmlNodeSetContentLen (xmlNodePtr cur,
1102 | const xmlChar *content,
1103 | int len);
1104 | #endif /* LIBXML_TREE_ENABLED */
1105 | XMLPUBFUN void
1106 | xmlNodeAddContent (xmlNodePtr cur,
1107 | const xmlChar *content);
1108 | XMLPUBFUN void
1109 | xmlNodeAddContentLen (xmlNodePtr cur,
1110 | const xmlChar *content,
1111 | int len);
1112 | XMLPUBFUN xmlChar *
1113 | xmlNodeGetContent (const xmlNode *cur);
1114 |
1115 | XMLPUBFUN int
1116 | xmlNodeBufGetContent (xmlBufferPtr buffer,
1117 | const xmlNode *cur);
1118 | XMLPUBFUN int
1119 | xmlBufGetNodeContent (xmlBufPtr buf,
1120 | const xmlNode *cur);
1121 |
1122 | XMLPUBFUN xmlChar *
1123 | xmlNodeGetLang (const xmlNode *cur);
1124 | XMLPUBFUN int
1125 | xmlNodeGetSpacePreserve (const xmlNode *cur);
1126 | #ifdef LIBXML_TREE_ENABLED
1127 | XMLPUBFUN void
1128 | xmlNodeSetLang (xmlNodePtr cur,
1129 | const xmlChar *lang);
1130 | XMLPUBFUN void
1131 | xmlNodeSetSpacePreserve (xmlNodePtr cur,
1132 | int val);
1133 | #endif /* LIBXML_TREE_ENABLED */
1134 | XMLPUBFUN xmlChar *
1135 | xmlNodeGetBase (const xmlDoc *doc,
1136 | const xmlNode *cur);
1137 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
1138 | XMLPUBFUN void
1139 | xmlNodeSetBase (xmlNodePtr cur,
1140 | const xmlChar *uri);
1141 | #endif
1142 |
1143 | /*
1144 | * Removing content.
1145 | */
1146 | XMLPUBFUN int
1147 | xmlRemoveProp (xmlAttrPtr cur);
1148 | #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
1149 | XMLPUBFUN int
1150 | xmlUnsetNsProp (xmlNodePtr node,
1151 | xmlNsPtr ns,
1152 | const xmlChar *name);
1153 | XMLPUBFUN int
1154 | xmlUnsetProp (xmlNodePtr node,
1155 | const xmlChar *name);
1156 | #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
1157 |
1158 | /*
1159 | * Internal, don't use.
1160 | */
1161 | XMLPUBFUN void
1162 | xmlBufferWriteCHAR (xmlBufferPtr buf,
1163 | const xmlChar *string);
1164 | XMLPUBFUN void
1165 | xmlBufferWriteChar (xmlBufferPtr buf,
1166 | const char *string);
1167 | XMLPUBFUN void
1168 | xmlBufferWriteQuotedString(xmlBufferPtr buf,
1169 | const xmlChar *string);
1170 |
1171 | #ifdef LIBXML_OUTPUT_ENABLED
1172 | XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
1173 | xmlDocPtr doc,
1174 | xmlAttrPtr attr,
1175 | const xmlChar *string);
1176 | #endif /* LIBXML_OUTPUT_ENABLED */
1177 |
1178 | #ifdef LIBXML_TREE_ENABLED
1179 | /*
1180 | * Namespace handling.
1181 | */
1182 | XMLPUBFUN int
1183 | xmlReconciliateNs (xmlDocPtr doc,
1184 | xmlNodePtr tree);
1185 | #endif
1186 |
1187 | #ifdef LIBXML_OUTPUT_ENABLED
1188 | /*
1189 | * Saving.
1190 | */
1191 | XMLPUBFUN void
1192 | xmlDocDumpFormatMemory (xmlDocPtr cur,
1193 | xmlChar **mem,
1194 | int *size,
1195 | int format);
1196 | XMLPUBFUN void
1197 | xmlDocDumpMemory (xmlDocPtr cur,
1198 | xmlChar **mem,
1199 | int *size);
1200 | XMLPUBFUN void
1201 | xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
1202 | xmlChar **doc_txt_ptr,
1203 | int * doc_txt_len,
1204 | const char *txt_encoding);
1205 | XMLPUBFUN void
1206 | xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
1207 | xmlChar **doc_txt_ptr,
1208 | int * doc_txt_len,
1209 | const char *txt_encoding,
1210 | int format);
1211 | XMLPUBFUN int
1212 | xmlDocFormatDump (FILE *f,
1213 | xmlDocPtr cur,
1214 | int format);
1215 | XMLPUBFUN int
1216 | xmlDocDump (FILE *f,
1217 | xmlDocPtr cur);
1218 | XMLPUBFUN void
1219 | xmlElemDump (FILE *f,
1220 | xmlDocPtr doc,
1221 | xmlNodePtr cur);
1222 | XMLPUBFUN int
1223 | xmlSaveFile (const char *filename,
1224 | xmlDocPtr cur);
1225 | XMLPUBFUN int
1226 | xmlSaveFormatFile (const char *filename,
1227 | xmlDocPtr cur,
1228 | int format);
1229 | XMLPUBFUN size_t
1230 | xmlBufNodeDump (xmlBufPtr buf,
1231 | xmlDocPtr doc,
1232 | xmlNodePtr cur,
1233 | int level,
1234 | int format);
1235 | XMLPUBFUN int
1236 | xmlNodeDump (xmlBufferPtr buf,
1237 | xmlDocPtr doc,
1238 | xmlNodePtr cur,
1239 | int level,
1240 | int format);
1241 |
1242 | XMLPUBFUN int
1243 | xmlSaveFileTo (xmlOutputBufferPtr buf,
1244 | xmlDocPtr cur,
1245 | const char *encoding);
1246 | XMLPUBFUN int
1247 | xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
1248 | xmlDocPtr cur,
1249 | const char *encoding,
1250 | int format);
1251 | XMLPUBFUN void
1252 | xmlNodeDumpOutput (xmlOutputBufferPtr buf,
1253 | xmlDocPtr doc,
1254 | xmlNodePtr cur,
1255 | int level,
1256 | int format,
1257 | const char *encoding);
1258 |
1259 | XMLPUBFUN int
1260 | xmlSaveFormatFileEnc (const char *filename,
1261 | xmlDocPtr cur,
1262 | const char *encoding,
1263 | int format);
1264 |
1265 | XMLPUBFUN int
1266 | xmlSaveFileEnc (const char *filename,
1267 | xmlDocPtr cur,
1268 | const char *encoding);
1269 |
1270 | #endif /* LIBXML_OUTPUT_ENABLED */
1271 | /*
1272 | * XHTML
1273 | */
1274 | XMLPUBFUN int
1275 | xmlIsXHTML (const xmlChar *systemID,
1276 | const xmlChar *publicID);
1277 |
1278 | /*
1279 | * Compression.
1280 | */
1281 | XMLPUBFUN int
1282 | xmlGetDocCompressMode (const xmlDoc *doc);
1283 | XMLPUBFUN void
1284 | xmlSetDocCompressMode (xmlDocPtr doc,
1285 | int mode);
1286 | XMLPUBFUN int
1287 | xmlGetCompressMode (void);
1288 | XMLPUBFUN void
1289 | xmlSetCompressMode (int mode);
1290 |
1291 | /*
1292 | * DOM-wrapper helper functions.
1293 | */
1294 | XMLPUBFUN xmlDOMWrapCtxtPtr
1295 | xmlDOMWrapNewCtxt (void);
1296 | XMLPUBFUN void
1297 | xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
1298 | XMLPUBFUN int
1299 | xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
1300 | xmlNodePtr elem,
1301 | int options);
1302 | XMLPUBFUN int
1303 | xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
1304 | xmlDocPtr sourceDoc,
1305 | xmlNodePtr node,
1306 | xmlDocPtr destDoc,
1307 | xmlNodePtr destParent,
1308 | int options);
1309 | XMLPUBFUN int
1310 | xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
1311 | xmlDocPtr doc,
1312 | xmlNodePtr node,
1313 | int options);
1314 | XMLPUBFUN int
1315 | xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
1316 | xmlDocPtr sourceDoc,
1317 | xmlNodePtr node,
1318 | xmlNodePtr *clonedNode,
1319 | xmlDocPtr destDoc,
1320 | xmlNodePtr destParent,
1321 | int deep,
1322 | int options);
1323 |
1324 | #ifdef LIBXML_TREE_ENABLED
1325 | /*
1326 | * 5 interfaces from DOM ElementTraversal, but different in entities
1327 | * traversal.
1328 | */
1329 | XMLPUBFUN unsigned long
1330 | xmlChildElementCount (xmlNodePtr parent);
1331 | XMLPUBFUN xmlNodePtr
1332 | xmlNextElementSibling (xmlNodePtr node);
1333 | XMLPUBFUN xmlNodePtr
1334 | xmlFirstElementChild (xmlNodePtr parent);
1335 | XMLPUBFUN xmlNodePtr
1336 | xmlLastElementChild (xmlNodePtr parent);
1337 | XMLPUBFUN xmlNodePtr
1338 | xmlPreviousElementSibling (xmlNodePtr node);
1339 | #endif
1340 |
1341 | XMLPUBFUN xmlRegisterNodeFunc
1342 | xmlRegisterNodeDefault (xmlRegisterNodeFunc func);
1343 | XMLPUBFUN xmlDeregisterNodeFunc
1344 | xmlDeregisterNodeDefault (xmlDeregisterNodeFunc func);
1345 | XMLPUBFUN xmlRegisterNodeFunc
1346 | xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
1347 | XMLPUBFUN xmlDeregisterNodeFunc
1348 | xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
1349 |
1350 | XML_DEPRECATED XMLPUBFUN xmlBufferAllocationScheme
1351 | xmlThrDefBufferAllocScheme (xmlBufferAllocationScheme v);
1352 | XML_DEPRECATED XMLPUBFUN int
1353 | xmlThrDefDefaultBufferSize (int v);
1354 |
1355 | #ifdef __cplusplus
1356 | }
1357 | #endif
1358 |
1359 | #endif /* __XML_TREE_H__ */
1360 |
1361 | #endif /* XML_TREE_INTERNALS */
1362 |
1363 |
```