diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css
index 556d37d..a9e1b1e 100644
--- a/docs/_static/css/custom.css
+++ b/docs/_static/css/custom.css
@@ -1,7 +1,46 @@
-.table-wrapper {
+table.autosummary.longtable.docutils.align-default {
+ margin-left: 0 !important;
+ margin-bottom: 0 !important;
+ border-collapse: collapse;
+ width: 100%;
+}
+
+table.autosummary.longtable.docutils.align-default tbody>tr.row-odd>td {
+ white-space: normal;
+ overflow-wrap: break-word;
+}
+
+table.autosummary.longtable.docutils.align-default tbody>tr.row-even>td {
+ white-space: normal;
+ overflow-wrap: break-word;
+}
+
+.admonition {
+ font-size: 0.8rem;
+ margin-bottom: 12px !important;
+}
+
+li.toctree-l1>ul {
margin-top: 0 !important;
+ margin-bottom: 0 !important;
}
-table.autosummary.longtable.docutils.align-default {
- margin-left: 0 !important;
+section>h2 {
+ margin-top: 1.5em !important;
+ margin-bottom: 0.5em !important;
+ padding-bottom: 0.25em !important;
+ border-bottom: 1px solid #d8dee4;
+}
+
+section>h3 {
+ margin-top: 1em !important;
+ margin-bottom: 0.5em !important;
+}
+
+section>section>p {
+ margin-bottom: 0.5em !important;
+}
+
+section>ul.simple {
+ margin-bottom: 1em !important;
}
diff --git a/docs/_templates/autosummary/base.rst b/docs/_templates/autosummary/base.rst
new file mode 100644
index 0000000..b7556eb
--- /dev/null
+++ b/docs/_templates/autosummary/base.rst
@@ -0,0 +1,5 @@
+{{ fullname | escape | underline}}
+
+.. currentmodule:: {{ module }}
+
+.. auto{{ objtype }}:: {{ objname }}
diff --git a/docs/_templates/autosummary/class.rst b/docs/_templates/autosummary/class.rst
new file mode 100644
index 0000000..9080252
--- /dev/null
+++ b/docs/_templates/autosummary/class.rst
@@ -0,0 +1,39 @@
+{{ fullname | escape | underline}}
+
+.. currentmodule:: {{ module }}
+
+.. autoclass:: {{ objname }}
+ {%- set ns = namespace(has_own_methods=false, has_own_attrs=false) -%}
+ {%- set exclude_members = ['__annotations_cache__', '__annotate_func__', '__doc__', '__format__', '__module__', '__new__', '__repr__', '_pybind11_conduit_v1_', '__pybind11_native_enum__'] -%}
+
+ {%- for item in members -%}
+ {%- if item not in attributes and
+ item not in inherited_members and
+ item not in exclude_members -%}
+ {%- set ns.has_own_methods = true -%}
+ {%- endif -%}
+ {%- if item in attributes and item not in inherited_members -%}
+ {%- set ns.has_own_attrs = true -%}
+ {%- endif -%}
+ {%- endfor -%}
+
+ {% block METHODS %}
+ {% if ns.has_own_methods %}
+ .. rubric:: {{ _('Methods') }}
+
+ .. autosummary::
+ {% for item in members %}
+ {% if item not in attributes and
+ item not in inherited_members and
+ item not in exclude_members %}
+ ~{{ name }}.{{ item }}
+ {% endif %}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
+
+ {% block DESCRIPTION %}
+ {% if ns.has_own_methods %}
+ .. rubric:: {{ _('Member Documentation') }}
+ {% endif %}
+ {% endblock %}
diff --git a/docs/_templates/autosummary/module.rst b/docs/_templates/autosummary/module.rst
new file mode 100644
index 0000000..86c19ab
--- /dev/null
+++ b/docs/_templates/autosummary/module.rst
@@ -0,0 +1,47 @@
+{{ fullname | escape | underline}}
+
+.. automodule:: {{ fullname }}
+
+ {%- block exceptions %}
+ {% if exceptions %}
+ .. rubric:: {{ _('Exceptions') }}
+
+ .. autosummary::
+ {% for item in exceptions %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {%- endblock %}
+
+ {%- block classes %}
+ {% if classes %}
+ .. rubric:: {{ _('Classes') }}
+
+ .. autosummary::
+ {% for item in classes %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {%- endblock %}
+
+ {%- block functions %}
+ {% if functions %}
+ .. rubric:: {{ _('Functions') }}
+
+ .. autosummary::
+ {% for item in functions %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {%- endblock %}
+
+ {%- block attributes %}
+ {% if attributes %}
+ .. rubric:: {{ _('Module Attributes') }}
+
+ .. autosummary::
+ {% for item in attributes %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {%- endblock %}
diff --git a/docs/_templates/class.rst b/docs/_templates/class.rst
deleted file mode 100644
index a1254ec..0000000
--- a/docs/_templates/class.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-{{ fullname | escape | underline}}
-
-.. currentmodule:: {{ module }}
-
-.. autoclass:: {{ objname }}
- :noindex:
-
- {% block methods %}
- {% if methods %}
- Members:
-
- {# Show implemented members #}
- .. autosummary::
- {% for item in members %}
- {% if item not in inherited_members and item not in ['__annotations__', '__doc__', '__module__', '__repr__', '_pybind11_conduit_v1_'] %}
- ~{{ name }}.{{ item }}
- {% endif %}
- {%- endfor %}
- {% endif %}
- {% endblock %}
diff --git a/docs/_templates/enum.rst b/docs/_templates/enum.rst
deleted file mode 100644
index 7e9501d..0000000
--- a/docs/_templates/enum.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-{{ fullname | escape | underline}}
-
-.. currentmodule:: {{ module }}
-
-.. autoclass:: {{ objname }}
- :noindex:
- :no-members:
-
-{% block attributes %}
-{% if attributes %}
-{% for item in attributes %}
-{% if item not in ['name', 'value'] %}
-.. autoattribute:: {{ module }}.{{ item }}
- :noindex:
-{% endif %}
-{%- endfor %}
-{% endif %}
-{% endblock %}
diff --git a/docs/_templates/inner-enum.rst b/docs/_templates/inner-enum.rst
deleted file mode 100644
index d44541b..0000000
--- a/docs/_templates/inner-enum.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-{{ fullname | escape | underline}}
-
-.. currentmodule:: {{ module }}
-
-.. autoclass:: {{ module }}.{{ objname }}
- :noindex:
- :no-members:
diff --git a/docs/attributes.rst b/docs/attributes.rst
deleted file mode 100644
index a7052ec..0000000
--- a/docs/attributes.rst
+++ /dev/null
@@ -1,423 +0,0 @@
-pugixml.pugi
-============
-
-.. currentmodule:: pugixml.pugi
-
-.. rubric:: Attributes
-
-Encodings
----------
-
-These flags determine the encoding of input/output data for XML document.
-
-.. seealso::
-
- :meth:`XMLDocument.load_buffer`,
- :meth:`XMLDocument.load_file`,
- :meth:`XMLDocument.save`,
- :meth:`XMLDocument.save_file`,
- :meth:`XMLNode.append_buffer`,
- :meth:`XMLNode.print`
-
-.. autoattribute:: pugixml.pugi.ENCODING_AUTO
-
- Auto-detect input encoding using BOM or ``‘<’`` / ``‘’`` detection; use UTF8 if BOM is not found.
-
-.. autoattribute:: pugixml.pugi.ENCODING_LATIN1
-
- ISO-8859-1 encoding (also known as Latin-1).
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF16
-
- UTF16 with native endianness.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF16_BE
-
- Big-endian UTF16.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF16_LE
-
- Little-endian UTF16.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF32
-
- UTF32 with native endianness.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF32_BE
-
- Big-endian UTF32.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF32_LE
-
- Little-endian UTF32.
-
-.. autoattribute:: pugixml.pugi.ENCODING_UTF8
-
- UTF8 encoding.
-
-.. autoattribute:: pugixml.pugi.ENCODING_WCHAR
-
- The same encoding ``wchar_t`` has (either UTF16 or UTF32).
-
-Output Options
---------------
-
-These flags control the contents of the resulting tree for all saving functions.
-
-.. note::
-
- This is a bitmask that customizes the output format:
- to enable a flag, use ``mask | flag``; to disable a flag, use ``mask & ~flag``.
-
-.. seealso::
-
- :meth:`XMLDocument.save`,
- :meth:`XMLDocument.save_file`,
- :meth:`XMLNode.print`
-
-.. autoattribute:: pugixml.pugi.FORMAT_ATTRIBUTE_SINGLE_QUOTE
-
- Use U+0027 (') instead of U+0022 (") for enclosing attribute values.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_DEFAULT
-
- The default set of formatting flags.
- Nodes are indented depending on their depth in DOM tree, a default declaration is output if document has none.
-
-.. autoattribute:: pugixml.pugi.FORMAT_INDENT
-
- Indent the nodes that are written to output stream with as many indentation strings as deep the node is in DOM tree.
- This flag is on by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_INDENT_ATTRIBUTES
-
- Write every attribute on a new line with appropriate indentation. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_NO_DECLARATION
-
- Omit default XML declaration even if there is no declaration in the document. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_NO_EMPTY_ELEMENT_TAGS
-
- Don't output empty element tags, instead writing an explicit start and end tag even if there are no children.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_NO_ESCAPES
-
- Don't escape attribute values and PCDATA contents. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_RAW
-
- Use raw output mode (no indentation and no line breaks are written). This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_SAVE_FILE_TEXT
-
- Open file using text mode in :meth:`XMLDocument.save_file`.
- This enables special character (i.e. new-line) conversions on some systems.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_SKIP_CONTROL_CHARS
-
- Skip characters belonging to range [0, 32) instead of "NN;" encoding. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.FORMAT_WRITE_BOM
-
- Write encoding-specific BOM to the output stream. This flag is off by default.
-
-Node Types
-----------
-
-.. autoattribute:: pugixml.pugi.NODE_CDATA
-
- Character data, i.e. ``‘’``
-
-.. autoattribute:: pugixml.pugi.NODE_COMMENT
-
- Comment tag, i.e. ``‘’``
-
-.. autoattribute:: pugixml.pugi.NODE_DECLARATION
-
- Document declaration, i.e. ``‘’``
-
-.. autoattribute:: pugixml.pugi.NODE_DOCTYPE
-
- Document type declaration, i.e. ``‘’``
-
-.. autoattribute:: pugixml.pugi.NODE_DOCUMENT
-
- A document tree’s absolute root.
-
-.. autoattribute:: pugixml.pugi.NODE_ELEMENT
-
- Element tag, i.e. ``‘’``
-
-.. autoattribute:: pugixml.pugi.NODE_NULL
-
- Empty (null) node handle.
-
-.. autoattribute:: pugixml.pugi.NODE_PCDATA
-
- Plain character data, i.e. ``‘text’``
-
-.. autoattribute:: pugixml.pugi.NODE_PI
-
- Processing instruction, i.e. ``‘’``
-
-Parsing Options
----------------
-
-These flags control the contents of the resulting tree for all loading functions.
-
-.. note::
-
- This is a bitmask that customizes the parsing process:
- to enable a flag, use ``mask | flag``; to disable a flag, use ``mask & ~flag``.
-
-.. seealso::
-
- :meth:`XMLDocument.load_buffer`,
- :meth:`XMLDocument.load_file`,
- :meth:`XMLDocument.load_string`,
- :meth:`XMLNode.append_buffer`
-
-.. autoattribute:: pugixml.pugi.PARSE_CDATA
-
- This flag determines if CDATA sections (:attr:`NODE_CDATA`) are added to the DOM tree. This flag is on by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_COMMENTS
-
- This flag determines if comments (:attr:`NODE_COMMENT`) are added to the DOM tree. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_DECLARATION
-
- This flag determines if document declaration (:attr:`NODE_DECLARATION`) is added to the DOM tree.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_DEFAULT
-
- The default parsing mode.
- Elements, PCDATA and CDATA sections are added to the DOM tree, character/reference entities are expanded,
- End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules.
-
-.. autoattribute:: pugixml.pugi.PARSE_DOCTYPE
-
- This flag determines if document type declaration (:attr:`NODE_DOCTYPE`) is added to the DOM tree. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_EMBED_PCDATA
-
- This flag determines if plain character data is be stored in the parent element's value.
- This significantly changes the structure of the document;
- this flag is only recommended for parsing documents with many PCDATA nodes in memory-constrained environments.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_EOL
-
- This flag determines if EOL characters are normalized (converted to #xA) during parsing. This flag is on by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_ESCAPES
-
- This flag determines if character and entity references are expanded during parsing. This flag is on by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_FRAGMENT
-
- This flag determines if plain character data that does not have a parent node is added to the DOM tree,
- and if an empty document is a valid document. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_FULL
-
- The full parsing mode.
- Nodes of all types are added to the DOM tree, character/reference entities are expanded,
- End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules.
-
-.. autoattribute:: pugixml.pugi.PARSE_MERGE_PCDATA
-
- This flag determines whether determines whether the the two PCDATA should be merged or not, if no intermediatory data are parsed in the document.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_MINIMAL
-
- Minimal parsing mode (equivalent to turning all other flags off).
- Only elements and PCDATA sections are added to the DOM tree, no text conversions are performed.
-
-.. autoattribute:: pugixml.pugi.PARSE_PI
-
- This flag determines if processing instructions (:attr:`NODE_PI`) are added to the DOM tree. This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_TRIM_PCDATA
-
- This flag determines if leading and trailing whitespace is to be removed from plain character data.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_WCONV_ATTRIBUTE
-
- This flag determines if attribute values are normalized using CDATA normalization rules during parsing.
- This flag is on by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_WNORM_ATTRIBUTE
-
- This flag determines if attribute values are normalized using NMTOKENS normalization rules during parsing.
- This flag is off by default.
-
-.. autoattribute:: pugixml.pugi.PARSE_WS_PCDATA
-
- This flag determines if plain character data (:attr:`NODE_PCDATA`) that consist only of whitespace are added to the DOM tree.
- This flag is off by default; turning it on usually results in slower parsing and more memory consumption.
-
-.. autoattribute:: pugixml.pugi.PARSE_WS_PCDATA_SINGLE
-
- This flag determines if plain character data (:attr:`NODE_PCDATA`) that is the only child of the parent node and that consists only
- of whitespace is added to the DOM tree.
- This flag is off by default; turning it on may result in slower parsing and more memory consumption.
-
-Parsing Status
---------------
-
-Parsing status, returned as part of :class:`XMLParseResult` object.
-
-.. autoattribute:: pugixml.pugi.STATUS_APPEND_INVALID_ROOT
-
- Unable to append nodes since root type is not :attr:`NODE_ELEMENT` or :attr:`NODE_DOCUMENT`
- (exclusive to :meth:`XMLNode.append_buffer`).
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_ATTRIBUTE
-
- Parsing error occurred while parsing element attribute.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_CDATA
-
- Parsing error occurred while parsing CDATA section.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_COMMENT
-
- Parsing error occurred while parsing comment.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_DOCTYPE
-
- Parsing error occurred while parsing document type declaration.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_END_ELEMENT
-
- Parsing error occurred while parsing end element tag.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_PCDATA
-
- Parsing error occurred while parsing PCDATA section.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_PI
-
- Parsing error occurred while parsing document declaration/processing instruction.
-
-.. autoattribute:: pugixml.pugi.STATUS_BAD_START_ELEMENT
-
- Parsing error occurred while parsing start element tag.
-
-.. autoattribute:: pugixml.pugi.STATUS_END_ELEMENT_MISMATCH
-
- There was a mismatch of start-end tags
- (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag).
-
-.. autoattribute:: pugixml.pugi.STATUS_FILE_NOT_FOUND
-
- File was not found during :meth:`XMLDocument.load_file`.
-
-.. autoattribute:: pugixml.pugi.STATUS_INTERNAL_ERROR
-
- Internal error occurred.
-
-.. autoattribute:: pugixml.pugi.STATUS_IO_ERROR
-
- Error reading from file/stream.
-
-.. autoattribute:: pugixml.pugi.STATUS_NO_DOCUMENT_ELEMENT
-
- Parsing resulted in a document without element nodes.
-
-.. autoattribute:: pugixml.pugi.STATUS_OK
-
- No error.
-
-.. autoattribute:: pugixml.pugi.STATUS_OUT_OF_MEMORY
-
- Could not allocate memory.
-
-.. autoattribute:: pugixml.pugi.STATUS_UNRECOGNIZED_TAG
-
- Parser could not determine tag type.
-
-XPath Query Return Type
------------------------
-
-.. autoattribute:: pugixml.pugi.XPATH_TYPE_BOOLEAN
-
- Boolean.
-
-.. autoattribute:: pugixml.pugi.XPATH_TYPE_NODE_SET
-
- Node set (:class:`XPathNodeSet`).
-
-.. autoattribute:: pugixml.pugi.XPATH_TYPE_NONE
-
- Unknown type (query failed to compile).
-
-.. autoattribute:: pugixml.pugi.XPATH_TYPE_NUMBER
-
- Number.
-
-.. autoattribute:: pugixml.pugi.XPATH_TYPE_STRING
-
- String.
-
-Misc.
------
-
-.. autoattribute:: pugixml.pugi.PUGIXML_VERSION
-
- An integer literal representing the version of ``pugixml``; major * 1000 + minor * 10 + patch.
-
-pugixml.pugi.limits
-===================
-
-.. automodule:: pugixml.pugi.limits
-
-.. rubric:: Attributes
-
-.. autoattribute:: pugixml.pugi.limits.DBL_MAX
-
- Maximum value of type ``double`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.DBL_MIN
-
- Minimum value of type ``double`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.FLT_MAX
-
- Maximum value of type ``float`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.FLT_MIN
-
- Minimum value of type ``float`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.INT_MAX
-
- Maximum value of type ``int`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.INT_MIN
-
- Minimum value of type ``int`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.LLONG_MAX
-
- Maximum value of type ``long long`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.LLONG_MIN
-
- Minimum value of type ``long long`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.UINT_MAX
-
- Maximum value of type ``unsigned int`` in C/C++.
-
-.. autoattribute:: pugixml.pugi.limits.ULLONG_MAX
-
- Maximum value of type ``unsigned long long`` in C/C++.
diff --git a/docs/conf.py b/docs/conf.py
index 96ac9a9..1ad3868 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,19 +1,16 @@
# Configuration file for the Sphinx documentation builder.
-#
-# This file only contains a selection of the most common options. For a full
-# list see the documentation:
-# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
+import enum
+import inspect
import sys
from importlib.metadata import metadata
from pathlib import Path
-path = str((Path(__file__).parent / ".." / "src").resolve())
+path = str((Path(__file__).parent.parent / "src").resolve())
if path not in sys.path:
- sys.path.append(path)
-del path
+ sys.path.insert(0, path)
# -- Project information -----------------------------------------------------
@@ -28,9 +25,6 @@
# -- General configuration ---------------------------------------------------
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
@@ -51,44 +45,88 @@
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
-# -- Options for HTML output -------------------------------------------------
+# -- Options for sphinx.ext.autodoc ------------------------------------------
+
+exclude_members = [
+ "__annotate_func__",
+ "__annotations__",
+ "__annotations_cache__",
+ "__doc__",
+ "__entries",
+ "__format__",
+ "__module__",
+ "__new__",
+ "__pybind11_native_enum__",
+ "__repr__",
+ "__weakref__",
+ "_pybind11_conduit_v1_",
+]
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-html_theme = "furo"
+autodoc_class_signature = "separated"
+autodoc_default_options = {
+ "members": True,
+ "undoc-members": True,
+ "private-members": True,
+ "special-members": True,
+ "inherited-members": False,
+ "exclude-members": ",".join(exclude_members),
+ "member-order": "groupwise",
+ "show-inheritance": True,
+ "class-doc-from": "class",
+}
+suppress_warnings = [
+ "autosummary.import_cycle",
+]
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ["_static"]
-html_css_files = [
- "css/custom.css",
-]
+# -- Options for HTML output -------------------------------------------------
-html_title = f"{project} {version}"
+html_theme = "sphinx_rtd_theme"
+html_static_path = ["_static"]
+html_css_files = ["css/custom.css"]
intersphinx_mapping = {"python": ("https://docs.python.org/3", None)}
extlinks = {"pugixml": ("https://pugixml.org/docs/%s", None)}
-napoleon_use_admonition_for_examples = True
-# napoleon_use_rtype = False
-
copybutton_prompt_is_regexp = True
copybutton_prompt_text = (
r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: "
)
-autodoc_default_options = {
- "show-inheritance": True,
- "undoc-members": True,
- "special-members": True,
- "private-members": True,
- "exclude-members": "__annotations__, __module__, __repr__, _pybind11_conduit_v1_",
-}
-suppress_warnings = [
- "autosummary.import_cycle",
-]
+def process_docstring(app, obj_type, name, obj, options, lines): # noqa: ANN001, ANN201, PLR0913
+ _ = app, options
+ if obj_type == "class":
+ items = inspect.getmembers(obj, lambda x: isinstance(x, enum.Enum))
+ if len(items) > 0:
+ items = sorted(items, key=lambda x: x[1])
+ lines.append(".. rubric:: Attributes")
+ lines.append("")
+ for member_name, member in items:
+ lines.append(f".. autodata:: {name}.{member_name}")
+ lines.append(f" :annotation: = {member.value}")
+ lines.append("")
+
+ items = inspect.getmembers(obj, lambda x: isinstance(x, property))
+ if len(items) > 0:
+ lines.append(".. rubric:: Properties")
+ lines.append("")
+ for member_name, _ in items:
+ lines.append(f".. autoattribute:: {member_name}")
+ lines.append("")
+
+
+def skip_member(app, obj_type, name, obj, skip, options): # noqa: ANN001, ANN201, PLR0913
+ _ = app, name, skip, options
+ match obj_type:
+ case "class":
+ if isinstance(obj, enum.Enum) or not callable(obj):
+ # Skip enum members and class attributes / properties.
+ return True
+ return None
+
+
+def setup(app): # noqa: ANN001, ANN201
+ app.connect("autodoc-process-docstring", process_docstring)
+ app.connect("autodoc-skip-member", skip_member)
diff --git a/docs/index.md b/docs/index.md
index b29a315..7b60624 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -9,10 +9,10 @@
[pugixml](http://pugixml.org/) is a light-weight C++ XML processing library. It features:
-- DOM-like interface with rich traversal/modification capabilities
-- [Extremely fast](https://pugixml.org/benchmark.html) non-validating XML parser which constructs the DOM tree from an XML file/buffer
-- XPath 1.0 implementation for complex data-driven tree queries
-- Full Unicode support with Unicode interface variants and automatic encoding conversions
+> - DOM-like interface with rich traversal/modification capabilities
+> - [Extremely fast](https://pugixml.org/benchmark.html) non-validating XML parser which constructs the DOM tree from an XML file/buffer
+> - XPath 1.0 implementation for complex data-driven tree queries
+> - Full Unicode support with Unicode interface variants and automatic encoding conversions
For more information, see pugixml's documentation.
@@ -27,11 +27,7 @@ maxdepth: 2
---
limits
install
-summary
+reference
changelog
+Index
```
-
-## Indices and tables
-
-- {ref}`genindex`
-- {ref}`search`
diff --git a/docs/install.md b/docs/install.md
index 88e9bff..aaf5480 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -9,7 +9,7 @@ pip install pugixml
## Installing a package from source
- Requirements:
- - C++17 compatible compiler (see [supported compilers](https://github.com/pybind/pybind11#supported-compilers))
+ - C++17 compatible compiler (see [supported compilers](https://github.com/pybind/pybind11#supported-platforms--compilers))
- [CMake](https://cmake.org/) ≥ 3.15
- Installing a package from PyPI:
diff --git a/docs/pugi.ENCODING.rst b/docs/pugi.ENCODING.rst
new file mode 100644
index 0000000..6be67d3
--- /dev/null
+++ b/docs/pugi.ENCODING.rst
@@ -0,0 +1,58 @@
+Encodings
+=========
+
+.. currentmodule:: pugixml.pugi
+
+These flags determine the encoding of input/output data for XML document.
+
+.. seealso::
+
+ :class:`XMLEncoding`
+ :meth:`XMLDocument.load_buffer`
+ :meth:`XMLDocument.load_file`
+ :meth:`XMLDocument.save`
+ :meth:`XMLDocument.save_file`
+ :meth:`XMLNode.append_buffer`
+ :meth:`XMLNode.print`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.ENCODING_AUTO
+
+ Auto-detect input encoding using BOM or ‘<’ / ‘’ detection; use UTF8 if BOM is not found.
+
+.. autoattribute:: pugixml.pugi.ENCODING_LATIN1
+
+ ISO-8859-1 encoding (also known as Latin-1).
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF16
+
+ UTF16 with native endianness.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF16_BE
+
+ Big-endian UTF16.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF16_LE
+
+ Little-endian UTF16.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF32
+
+ UTF32 with native endianness.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF32_BE
+
+ Big-endian UTF32.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF32_LE
+
+ Little-endian UTF32.
+
+.. autoattribute:: pugixml.pugi.ENCODING_UTF8
+
+ UTF8 encoding.
+
+.. autoattribute:: pugixml.pugi.ENCODING_WCHAR
+
+ The same encoding ``wchar_t`` has (either UTF16 or UTF32).
diff --git a/docs/pugi.FORMAT.rst b/docs/pugi.FORMAT.rst
new file mode 100644
index 0000000..00591c8
--- /dev/null
+++ b/docs/pugi.FORMAT.rst
@@ -0,0 +1,69 @@
+Output Options
+==============
+
+.. currentmodule:: pugixml.pugi
+
+These flags control the contents of the resulting tree for all saving functions.
+
+.. note::
+
+ This is a bitmask that customizes the output format:
+ to enable a flag, use ``mask | flag``; to disable a flag, use ``mask & ~flag``.
+
+.. seealso::
+
+ :meth:`XMLDocument.save`
+ :meth:`XMLDocument.save_file`
+ :meth:`XMLNode.print`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.FORMAT_ATTRIBUTE_SINGLE_QUOTE
+
+ Use U+0027 (') instead of U+0022 (") for enclosing attribute values.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_DEFAULT
+
+ The default set of formatting flags.
+ Nodes are indented depending on their depth in DOM tree, a default declaration is output if document has none.
+
+.. autoattribute:: pugixml.pugi.FORMAT_INDENT
+
+ Indent the nodes that are written to output stream with as many indentation strings as deep the node is in DOM tree.
+ This flag is on by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_INDENT_ATTRIBUTES
+
+ Write every attribute on a new line with appropriate indentation. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_NO_DECLARATION
+
+ Omit default XML declaration even if there is no declaration in the document. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_NO_EMPTY_ELEMENT_TAGS
+
+ Don't output empty element tags, instead writing an explicit start and end tag even if there are no children.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_NO_ESCAPES
+
+ Don't escape attribute values and PCDATA contents. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_RAW
+
+ Use raw output mode (no indentation and no line breaks are written). This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_SAVE_FILE_TEXT
+
+ Open file using text mode in :meth:`XMLDocument.save_file`.
+ This enables special character (i.e. new-line) conversions on some systems.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_SKIP_CONTROL_CHARS
+
+ Skip characters belonging to range [0, 32) instead of "NN;" encoding. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.FORMAT_WRITE_BOM
+
+ Write encoding-specific BOM to the output stream. This flag is off by default.
diff --git a/docs/pugi.MISC.rst b/docs/pugi.MISC.rst
new file mode 100644
index 0000000..436ca46
--- /dev/null
+++ b/docs/pugi.MISC.rst
@@ -0,0 +1,8 @@
+Miscellaneous
+=============
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.PUGIXML_VERSION
+
+ An integer literal representing the version of ``pugixml``; major * 1000 + minor * 10 + patch.
diff --git a/docs/pugi.NODE.rst b/docs/pugi.NODE.rst
new file mode 100644
index 0000000..5a1a87c
--- /dev/null
+++ b/docs/pugi.NODE.rst
@@ -0,0 +1,46 @@
+Node Types
+==========
+
+.. currentmodule:: pugixml.pugi
+
+.. seealso::
+
+ :class:`XMLNodeType`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.NODE_CDATA
+
+ Character data, i.e. ‘’
+
+.. autoattribute:: pugixml.pugi.NODE_COMMENT
+
+ Comment tag, i.e. ‘’
+
+.. autoattribute:: pugixml.pugi.NODE_DECLARATION
+
+ Document declaration, i.e. ‘’
+
+.. autoattribute:: pugixml.pugi.NODE_DOCTYPE
+
+ Document type declaration, i.e. ‘’
+
+.. autoattribute:: pugixml.pugi.NODE_DOCUMENT
+
+ A document tree’s absolute root.
+
+.. autoattribute:: pugixml.pugi.NODE_ELEMENT
+
+ Element tag, i.e. ‘’
+
+.. autoattribute:: pugixml.pugi.NODE_NULL
+
+ Empty (null) node handle.
+
+.. autoattribute:: pugixml.pugi.NODE_PCDATA
+
+ Plain character data, i.e. ‘text’
+
+.. autoattribute:: pugixml.pugi.NODE_PI
+
+ Processing instruction, i.e. ‘’
diff --git a/docs/pugi.PARSE.rst b/docs/pugi.PARSE.rst
new file mode 100644
index 0000000..a67d4f1
--- /dev/null
+++ b/docs/pugi.PARSE.rst
@@ -0,0 +1,109 @@
+Parsing Options
+===============
+
+.. currentmodule:: pugixml.pugi
+
+These flags control the contents of the resulting tree for all loading functions.
+
+.. note::
+
+ This is a bitmask that customizes the parsing process:
+ to enable a flag, use ``mask | flag``; to disable a flag, use ``mask & ~flag``.
+
+.. seealso::
+
+ :meth:`XMLDocument.load_buffer`
+ :meth:`XMLDocument.load_file`
+ :meth:`XMLDocument.load_string`
+ :meth:`XMLNode.append_buffer`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.PARSE_CDATA
+
+ This flag determines if CDATA sections (:attr:`NODE_CDATA`) are added to the DOM tree. This flag is on by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_COMMENTS
+
+ This flag determines if comments (:attr:`NODE_COMMENT`) are added to the DOM tree. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_DECLARATION
+
+ This flag determines if document declaration (:attr:`NODE_DECLARATION`) is added to the DOM tree.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_DEFAULT
+
+ The default parsing mode.
+ Elements, PCDATA and CDATA sections are added to the DOM tree, character/reference entities are expanded,
+ End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules.
+
+.. autoattribute:: pugixml.pugi.PARSE_DOCTYPE
+
+ This flag determines if document type declaration (:attr:`NODE_DOCTYPE`) is added to the DOM tree. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_EMBED_PCDATA
+
+ This flag determines if plain character data is be stored in the parent element's value.
+ This significantly changes the structure of the document;
+ this flag is only recommended for parsing documents with many PCDATA nodes in memory-constrained environments.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_EOL
+
+ This flag determines if EOL characters are normalized (converted to #xA) during parsing. This flag is on by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_ESCAPES
+
+ This flag determines if character and entity references are expanded during parsing. This flag is on by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_FRAGMENT
+
+ This flag determines if plain character data that does not have a parent node is added to the DOM tree,
+ and if an empty document is a valid document. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_FULL
+
+ The full parsing mode.
+ Nodes of all types are added to the DOM tree, character/reference entities are expanded,
+ End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules.
+
+.. autoattribute:: pugixml.pugi.PARSE_MERGE_PCDATA
+
+ This flag determines whether determines whether the the two PCDATA should be merged or not, if no intermediatory data are parsed in the document.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_MINIMAL
+
+ Minimal parsing mode (equivalent to turning all other flags off).
+ Only elements and PCDATA sections are added to the DOM tree, no text conversions are performed.
+
+.. autoattribute:: pugixml.pugi.PARSE_PI
+
+ This flag determines if processing instructions (:attr:`NODE_PI`) are added to the DOM tree. This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_TRIM_PCDATA
+
+ This flag determines if leading and trailing whitespace is to be removed from plain character data.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_WCONV_ATTRIBUTE
+
+ This flag determines if attribute values are normalized using CDATA normalization rules during parsing.
+ This flag is on by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_WNORM_ATTRIBUTE
+
+ This flag determines if attribute values are normalized using NMTOKENS normalization rules during parsing.
+ This flag is off by default.
+
+.. autoattribute:: pugixml.pugi.PARSE_WS_PCDATA
+
+ This flag determines if plain character data (:attr:`NODE_PCDATA`) that consist only of whitespace are added to the DOM tree.
+ This flag is off by default; turning it on usually results in slower parsing and more memory consumption.
+
+.. autoattribute:: pugixml.pugi.PARSE_WS_PCDATA_SINGLE
+
+ This flag determines if plain character data (:attr:`NODE_PCDATA`) that is the only child of the parent node and that consists only
+ of whitespace is added to the DOM tree.
+ This flag is off by default; turning it on may result in slower parsing and more memory consumption.
diff --git a/docs/pugi.STATUS.rst b/docs/pugi.STATUS.rst
new file mode 100644
index 0000000..3a6aa57
--- /dev/null
+++ b/docs/pugi.STATUS.rst
@@ -0,0 +1,82 @@
+Parsing Status
+==============
+
+.. currentmodule:: pugixml.pugi
+
+Parsing status, returned as part of :class:`XMLParseResult` object.
+
+.. seealso::
+
+ :class:`XMLParseStatus`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.STATUS_APPEND_INVALID_ROOT
+
+ Unable to append nodes since root type is not :attr:`NODE_ELEMENT` or :attr:`NODE_DOCUMENT`
+ (exclusive to :meth:`XMLNode.append_buffer`).
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_ATTRIBUTE
+
+ Parsing error occurred while parsing element attribute.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_CDATA
+
+ Parsing error occurred while parsing CDATA section.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_COMMENT
+
+ Parsing error occurred while parsing comment.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_DOCTYPE
+
+ Parsing error occurred while parsing document type declaration.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_END_ELEMENT
+
+ Parsing error occurred while parsing end element tag.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_PCDATA
+
+ Parsing error occurred while parsing PCDATA section.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_PI
+
+ Parsing error occurred while parsing document declaration/processing instruction.
+
+.. autoattribute:: pugixml.pugi.STATUS_BAD_START_ELEMENT
+
+ Parsing error occurred while parsing start element tag.
+
+.. autoattribute:: pugixml.pugi.STATUS_END_ELEMENT_MISMATCH
+
+ There was a mismatch of start-end tags
+ (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag).
+
+.. autoattribute:: pugixml.pugi.STATUS_FILE_NOT_FOUND
+
+ File was not found during :meth:`XMLDocument.load_file`.
+
+.. autoattribute:: pugixml.pugi.STATUS_INTERNAL_ERROR
+
+ Internal error occurred.
+
+.. autoattribute:: pugixml.pugi.STATUS_IO_ERROR
+
+ Error reading from file/stream.
+
+.. autoattribute:: pugixml.pugi.STATUS_NO_DOCUMENT_ELEMENT
+
+ Parsing resulted in a document without element nodes.
+
+.. autoattribute:: pugixml.pugi.STATUS_OK
+
+ No error.
+
+.. autoattribute:: pugixml.pugi.STATUS_OUT_OF_MEMORY
+
+ Could not allocate memory.
+
+.. autoattribute:: pugixml.pugi.STATUS_UNRECOGNIZED_TAG
+
+ Parser could not determine tag type.
diff --git a/docs/pugi.XPATH_TYPE.rst b/docs/pugi.XPATH_TYPE.rst
new file mode 100644
index 0000000..b16cf31
--- /dev/null
+++ b/docs/pugi.XPATH_TYPE.rst
@@ -0,0 +1,30 @@
+XPath Query Return Type
+=======================
+
+.. currentmodule:: pugixml.pugi
+
+.. seealso::
+
+ :class:`XPathValueType`
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.XPATH_TYPE_BOOLEAN
+
+ Boolean.
+
+.. autoattribute:: pugixml.pugi.XPATH_TYPE_NODE_SET
+
+ Node set (:class:`XPathNodeSet`).
+
+.. autoattribute:: pugixml.pugi.XPATH_TYPE_NONE
+
+ Unknown type (query failed to compile).
+
+.. autoattribute:: pugixml.pugi.XPATH_TYPE_NUMBER
+
+ Number.
+
+.. autoattribute:: pugixml.pugi.XPATH_TYPE_STRING
+
+ String.
diff --git a/docs/pugi.limits.rst b/docs/pugi.limits.rst
new file mode 100644
index 0000000..35d3082
--- /dev/null
+++ b/docs/pugi.limits.rst
@@ -0,0 +1,44 @@
+Numeric Limits
+==============
+
+.. rubric:: Attributes
+
+.. autoattribute:: pugixml.pugi.limits.DBL_MAX
+
+ Maximum value of ``double`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.DBL_MIN
+
+ Minimum value of ``double`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.FLT_MAX
+
+ Maximum value of ``float`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.FLT_MIN
+
+ Minimum value of ``float`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.INT_MAX
+
+ Maximum value of ``int`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.INT_MIN
+
+ Minimum value of ``int`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.LLONG_MAX
+
+ Maximum value of ``long long`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.LLONG_MIN
+
+ Minimum value of ``long long`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.UINT_MAX
+
+ Maximum value of ``unsigned int`` type in C/C++.
+
+.. autoattribute:: pugixml.pugi.limits.ULLONG_MAX
+
+ Maximum value of ``unsigned long long`` type in C/C++.
diff --git a/docs/pugi.rst b/docs/pugi.rst
new file mode 100644
index 0000000..3248406
--- /dev/null
+++ b/docs/pugi.rst
@@ -0,0 +1,36 @@
+pugixml.pugi
+============
+
+.. currentmodule:: pugixml
+
+.. rubric:: Classes
+
+.. autosummary::
+ :toctree: generated
+
+ pugi.BytesWriter
+ pugi.FileWriter
+ pugi.PrintWriter
+ pugi.StringWriter
+ pugi.XMLAttribute
+ pugi.XMLAttributeIterator
+ pugi.XMLAttributeStruct
+ pugi.XMLDocument
+ pugi.XMLEncoding
+ pugi.XMLNamedNodeIterator
+ pugi.XMLNode
+ pugi.XMLNodeIterator
+ pugi.XMLNodeStruct
+ pugi.XMLNodeType
+ pugi.XMLParseResult
+ pugi.XMLParseStatus
+ pugi.XMLText
+ pugi.XMLTreeWalker
+ pugi.XMLWriter
+ pugi.XPathNode
+ pugi.XPathNodeSet
+ pugi.XPathParseResult
+ pugi.XPathQuery
+ pugi.XPathValueType
+ pugi.XPathVariable
+ pugi.XPathVariableSet
diff --git a/docs/reference.rst b/docs/reference.rst
index 82176ef..c6a90ff 100644
--- a/docs/reference.rst
+++ b/docs/reference.rst
@@ -1,93 +1,15 @@
-pugixml.pugi
-============
-
-.. rubric:: Classes
-
-.. autoclass:: pugixml.pugi.BytesWriter
- :members:
-
-.. autoclass:: pugixml.pugi.FileWriter
- :members:
-
-.. autoclass:: pugixml.pugi.PrintWriter
- :members:
-
-.. autoclass:: pugixml.pugi.StringWriter
- :members:
-
-.. autoclass:: pugixml.pugi.XMLAttribute
- :members:
-
-.. autoclass:: pugixml.pugi.XMLAttributeIterator
- :members:
- :exclude-members: +__init__
-
-.. autoclass:: pugixml.pugi.XMLAttributeStruct
- :members:
- :exclude-members: +__hash__, __init__
-
-.. autoclass:: pugixml.pugi.XMLDocument
- :members:
-
-.. autoclass:: pugixml.pugi.XMLEncoding
- :no-members:
-
-.. autoclass:: pugixml.pugi.XMLNamedNodeIterator
- :members:
- :exclude-members: +__init__
-
-.. autoclass:: pugixml.pugi.XMLNode
- :members:
-
-.. autoclass:: pugixml.pugi.XMLNodeIterator
- :members:
- :exclude-members: +__init__
-
-.. autoclass:: pugixml.pugi.XMLNodeStruct
- :members:
- :exclude-members: +__hash__, __init__
-
-.. autoclass:: pugixml.pugi.XMLNodeType
- :no-members:
-
-.. autoclass:: pugixml.pugi.XMLParseResult
- :members:
-
-.. autoclass:: pugixml.pugi.XMLParseStatus
- :no-members:
-
-.. autoclass:: pugixml.pugi.XMLText
- :members:
-
-.. autoclass:: pugixml.pugi.XMLTreeWalker
- :members:
-
-.. autoclass:: pugixml.pugi.XMLWriter
- :members:
-
-.. autoclass:: pugixml.pugi.XPathNode
- :members:
- :exclude-members: +__hash__
-
-.. autoclass:: pugixml.pugi.XPathNodeSet
- :members:
- :exclude-members: +Type
-
-.. autoclass:: pugixml.pugi.XPathNodeSet.Type
- :no-members:
-
-.. autoclass:: pugixml.pugi.XPathParseResult
- :members:
-
-.. autoclass:: pugixml.pugi.XPathQuery
- :members:
-
-.. autoclass:: pugixml.pugi.XPathValueType
- :no-members:
-
-.. autoclass:: pugixml.pugi.XPathVariable
- :members:
- :exclude-members: +__init__
-
-.. autoclass:: pugixml.pugi.XPathVariableSet
- :members:
+API Reference
+=============
+
+.. toctree::
+ :maxdepth: 2
+
+ pugi
+ pugi.limits
+ pugi.ENCODING
+ pugi.FORMAT
+ pugi.NODE
+ pugi.PARSE
+ pugi.STATUS
+ pugi.XPATH_TYPE
+ pugi.MISC
diff --git a/docs/summary.rst b/docs/summary.rst
deleted file mode 100644
index 43fe3b4..0000000
--- a/docs/summary.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-API Reference
-=============
-
-Attributes
-----------
-
-.. toctree::
- attributes
-
-Classes
--------
-
-.. autosummary::
- :toctree: generated/
- :template: class.rst
-
- pugixml.pugi.BytesWriter
- pugixml.pugi.FileWriter
- pugixml.pugi.PrintWriter
- pugixml.pugi.StringWriter
- pugixml.pugi.XMLAttribute
- pugixml.pugi.XMLAttributeIterator
- pugixml.pugi.XMLAttributeStruct
- pugixml.pugi.XMLDocument
-
- :template: enum.rst
-
- pugixml.pugi.XMLEncoding
-
- :template: class.rst
-
- pugixml.pugi.XMLNamedNodeIterator
- pugixml.pugi.XMLNode
- pugixml.pugi.XMLNodeIterator
- pugixml.pugi.XMLNodeStruct
-
- :template: enum.rst
-
- pugixml.pugi.XMLNodeType
-
- :template: class.rst
-
- pugixml.pugi.XMLParseResult
-
- :template: enum.rst
-
- pugixml.pugi.XMLParseStatus
-
- :template: class.rst
-
- pugixml.pugi.XMLText
- pugixml.pugi.XMLTreeWalker
- pugixml.pugi.XMLWriter
- pugixml.pugi.XPathNode
- pugixml.pugi.XPathNodeSet
-
- :template: inner-enum.rst
-
- pugixml.pugi.XPathNodeSet.Type
-
- :template: class.rst
-
- pugixml.pugi.XPathParseResult
- pugixml.pugi.XPathQuery
-
- :template: enum.rst
-
- pugixml.pugi.XPathValueType
-
- :template: class.rst
-
- pugixml.pugi.XPathVariable
- pugixml.pugi.XPathVariableSet
diff --git a/pyproject.toml b/pyproject.toml
index 43db985..a81652d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,16 +1,12 @@
-[build-system]
-requires = ["scikit-build-core>=0.10"]
-build-backend = "scikit_build_core.build"
-
[project]
name = "pugixml"
version = "0.8.0.dev2"
-requires-python = ">=3.10"
description = "Light-weight, simple and fast XML parser with XPath support"
-authors = [{ name = "Tetsuya Miura", email = "miute.dev@gmail.com" }]
readme = { file = "README.md", content-type = "text/markdown" }
+requires-python = ">=3.10"
license = "MIT"
-keywords = ["dom", "xml", "xpath", "xml-parser"]
+authors = [{ name = "Tetsuya Miura", email = "miute.dev@gmail.com" }]
+keywords = ["dom", "xml", "xml-parser", "xpath"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
@@ -30,48 +26,29 @@ classifiers = [
dependencies = []
[project.urls]
-pugixml = "https://pugixml.org/docs/quickstart.html"
-Documentation = "https://miute.github.io/pugixml-python/"
Changelog = "https://miute.github.io/pugixml-python/changelog.html"
+Documentation = "https://miute.github.io/pugixml-python/"
Source = "https://github.com/miute/pugixml-python"
+pugixml = "https://pugixml.org/docs/quickstart.html"
[dependency-groups]
dev = ["pytest>=8.3.5"]
docs = [
- "furo>=2024.8.6",
"myst-parser>=3.0.1",
"sphinx>=7.4.7",
"sphinx-copybutton>=0.5.2",
+ "sphinx-rtd-theme>=3.1.0",
]
-[tool.scikit-build]
-wheel.expand-macos-universal-tags = true
-wheel.license-files = ["LICENSE"]
-minimum-version = "build-system.requires"
-sdist.exclude = ["*"]
-sdist.include = [
- "/CHANGELOG*",
- "/CMakeLists.txt",
- "/LICENSE*",
- "/pyproject.toml",
- "/README*",
- "/src/pugixml/**/*.py",
- "/src/*.cpp",
- "/src/third_party/pugixml/scripts/",
- "/src/third_party/pugixml/src/",
- "/src/third_party/pugixml/CMakeLists.txt",
- "/src/third_party/pugixml/LICEN[CS]E*",
- "/src/third_party/pugixml/README*",
- "/src/third_party/pugixml/readme*",
- "/src/third_party/pybind11/include/",
- "/src/third_party/pybind11/tools/",
- "/src/third_party/pybind11/CMakeLists.txt",
- "/src/third_party/pybind11/LICEN[CS]E*",
- "/src/third_party/pybind11/README*",
-]
+[build-system]
+requires = ["scikit-build-core>=0.10"]
+build-backend = "scikit_build_core.build"
-[tool.uv]
-package = false
+[tool.mypy]
+warn_unused_configs = true
+warn_return_any = true
+check_untyped_defs = true
+exclude = ["^src/third_party"]
[tool.pytest.ini_options]
addopts = ["--tb=short", "-ra", "--color=yes"]
@@ -111,7 +88,7 @@ extend-select = [
"UP", # pyupgrade (UP)
"YTT", # flake8-2020 (YTT)
]
-extend-ignore = [
+ignore = [
"PLR0915", # Too many statements ({statements} > {max_statements})
]
@@ -126,8 +103,31 @@ allow-magic-value-types = ["str", "bytes", "float", "int"]
[tool.ruff.format]
line-ending = "lf"
-[tool.mypy]
-warn_unused_configs = true
-warn_return_any = true
-check_untyped_defs = true
-exclude = ["^src/third_party"]
+[tool.scikit-build]
+wheel.expand-macos-universal-tags = true
+wheel.license-files = ["LICENSE"]
+minimum-version = "build-system.requires"
+sdist.exclude = ["*"]
+sdist.include = [
+ "/CHANGELOG*",
+ "/CMakeLists.txt",
+ "/LICENSE*",
+ "/pyproject.toml",
+ "/README*",
+ "/src/pugixml/**/*.py",
+ "/src/*.cpp",
+ "/src/third_party/pugixml/scripts/",
+ "/src/third_party/pugixml/src/",
+ "/src/third_party/pugixml/CMakeLists.txt",
+ "/src/third_party/pugixml/LICEN[CS]E*",
+ "/src/third_party/pugixml/README*",
+ "/src/third_party/pugixml/readme*",
+ "/src/third_party/pybind11/include/",
+ "/src/third_party/pybind11/tools/",
+ "/src/third_party/pybind11/CMakeLists.txt",
+ "/src/third_party/pybind11/LICEN[CS]E*",
+ "/src/third_party/pybind11/README*",
+]
+
+[tool.uv]
+package = false
diff --git a/tox.ini b/tox.ini
index 9f694ef..f45ae6d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -44,13 +44,9 @@ skip_install = true
pass_env =
*
deps =
- sphinx
- sphinx-copybutton
- myst-parser
- furo
change_dir = {tox_root}/docs
commands =
- sphinx-build -M {posargs:html} . _build
+ uv run --group=docs --active --link-mode=copy sphinx-build -M {posargs:html} . _build
[testenv:install]
skip_install = true
diff --git a/uv.lock b/uv.lock
index 39535a8..98b3fbb 100644
--- a/uv.lock
+++ b/uv.lock
@@ -7,18 +7,6 @@ resolution-markers = [
"python_full_version < '3.11'",
]
-[[package]]
-name = "accessible-pygments"
-version = "0.0.5"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "pygments" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" },
-]
-
[[package]]
name = "alabaster"
version = "1.0.0"
@@ -37,19 +25,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" },
]
-[[package]]
-name = "beautifulsoup4"
-version = "4.15.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "soupsieve" },
- { name = "typing-extensions" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/88/c6/92fcd42f1ba33e1184263f25bfabf3d27c383410470f169e4b8163bf9c17/beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9", size = 109924, upload-time = "2026-06-07T16:44:21.566Z" },
-]
-
[[package]]
name = "certifi"
version = "2026.6.17"
@@ -203,31 +178,13 @@ name = "exceptiongroup"
version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", marker = "python_full_version < '3.13'" },
+ { name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" },
]
-[[package]]
-name = "furo"
-version = "2025.12.19"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "accessible-pygments" },
- { name = "beautifulsoup4" },
- { name = "pygments" },
- { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
- { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
- { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
- { name = "sphinx-basic-ng" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/ec/20/5f5ad4da6a5a27c80f2ed2ee9aee3f9e36c66e56e21c00fde467b2f8f88f/furo-2025.12.19.tar.gz", hash = "sha256:188d1f942037d8b37cd3985b955839fea62baa1730087dc29d157677c857e2a7", size = 1661473, upload-time = "2025-12-19T17:34:40.889Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/f4/b2/50e9b292b5cac13e9e81272c7171301abc753a60460d21505b606e15cf21/furo-2025.12.19-py3-none-any.whl", hash = "sha256:bb0ead5309f9500130665a26bee87693c41ce4dbdff864dbfb6b0dae4673d24f", size = 339262, upload-time = "2025-12-19T17:34:38.905Z" },
-]
-
[[package]]
name = "idna"
version = "3.18"
@@ -275,7 +232,7 @@ resolution-markers = [
"python_full_version < '3.11'",
]
dependencies = [
- { name = "mdurl", marker = "python_full_version < '3.11'" },
+ { name = "mdurl" },
]
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" }
wheels = [
@@ -291,7 +248,7 @@ resolution-markers = [
"python_full_version == '3.11.*'",
]
dependencies = [
- { name = "mdurl", marker = "python_full_version >= '3.11'" },
+ { name = "mdurl" },
]
sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" }
wheels = [
@@ -413,12 +370,12 @@ resolution-markers = [
"python_full_version < '3.11'",
]
dependencies = [
- { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
- { name = "jinja2", marker = "python_full_version < '3.11'" },
- { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
- { name = "mdit-py-plugins", marker = "python_full_version < '3.11'" },
- { name = "pyyaml", marker = "python_full_version < '3.11'" },
- { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
+ { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "jinja2" },
+ { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "mdit-py-plugins" },
+ { name = "pyyaml" },
+ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" } },
]
sdist = { url = "https://files.pythonhosted.org/packages/66/a5/9626ba4f73555b3735ad86247a8077d4603aa8628537687c839ab08bfe44/myst_parser-4.0.1.tar.gz", hash = "sha256:5cfea715e4f3574138aecbf7d54132296bfd72bb614d31168f48c477a830a7c4", size = 93985, upload-time = "2025-02-12T10:53:03.833Z" }
wheels = [
@@ -434,12 +391,12 @@ resolution-markers = [
"python_full_version == '3.11.*'",
]
dependencies = [
- { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
- { name = "jinja2", marker = "python_full_version >= '3.11'" },
- { name = "markdown-it-py", version = "4.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
- { name = "mdit-py-plugins", marker = "python_full_version >= '3.11'" },
- { name = "pyyaml", marker = "python_full_version >= '3.11'" },
- { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
+ { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" } },
+ { name = "jinja2" },
+ { name = "markdown-it-py", version = "4.2.0", source = { registry = "https://pypi.org/simple" } },
+ { name = "mdit-py-plugins" },
+ { name = "pyyaml" },
+ { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
{ name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/21/dc/603751677fff302f34396e206b610f556a59d7fe58b9a2145f54e96b48e8/myst_parser-5.1.0.tar.gz", hash = "sha256:ab69322dc6719dcc7f296479dbb70181b66df6ed315064f92dbc85c0e1bf2f02", size = 101182, upload-time = "2026-05-13T09:38:19.361Z" }
@@ -475,13 +432,13 @@ dev = [
{ name = "pytest" },
]
docs = [
- { name = "furo" },
{ name = "myst-parser", version = "4.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
{ name = "myst-parser", version = "5.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
{ name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
{ name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
{ name = "sphinx-copybutton" },
+ { name = "sphinx-rtd-theme" },
]
[package.metadata]
@@ -489,10 +446,10 @@ docs = [
[package.metadata.requires-dev]
dev = [{ name = "pytest", specifier = ">=8.3.5" }]
docs = [
- { name = "furo", specifier = ">=2024.8.6" },
{ name = "myst-parser", specifier = ">=3.0.1" },
{ name = "sphinx", specifier = ">=7.4.7" },
{ name = "sphinx-copybutton", specifier = ">=0.5.2" },
+ { name = "sphinx-rtd-theme", specifier = ">=3.1.0" },
]
[[package]]
@@ -619,15 +576,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl", hash = "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752", size = 104164, upload-time = "2026-06-03T00:56:38.614Z" },
]
-[[package]]
-name = "soupsieve"
-version = "2.8.4"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/47/2c/0a5f6f8ee0d5589e48c7640213ed5175d52cf540a06725b628cc1a45d6ce/soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e", size = 121110, upload-time = "2026-05-24T13:55:57.154Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size = 37304, upload-time = "2026-05-24T13:55:55.406Z" },
-]
-
[[package]]
name = "sphinx"
version = "8.1.3"
@@ -636,23 +584,23 @@ resolution-markers = [
"python_full_version < '3.11'",
]
dependencies = [
- { name = "alabaster", marker = "python_full_version < '3.11'" },
- { name = "babel", marker = "python_full_version < '3.11'" },
- { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" },
- { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
- { name = "imagesize", marker = "python_full_version < '3.11'" },
- { name = "jinja2", marker = "python_full_version < '3.11'" },
- { name = "packaging", marker = "python_full_version < '3.11'" },
- { name = "pygments", marker = "python_full_version < '3.11'" },
- { name = "requests", marker = "python_full_version < '3.11'" },
- { name = "snowballstemmer", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.11'" },
- { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.11'" },
- { name = "tomli", marker = "python_full_version < '3.11'" },
+ { name = "alabaster" },
+ { name = "babel" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" } },
+ { name = "imagesize" },
+ { name = "jinja2" },
+ { name = "packaging" },
+ { name = "pygments" },
+ { name = "requests" },
+ { name = "snowballstemmer" },
+ { name = "sphinxcontrib-applehelp" },
+ { name = "sphinxcontrib-devhelp" },
+ { name = "sphinxcontrib-htmlhelp" },
+ { name = "sphinxcontrib-jsmath" },
+ { name = "sphinxcontrib-qthelp" },
+ { name = "sphinxcontrib-serializinghtml" },
+ { name = "tomli" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" }
wheels = [
@@ -667,23 +615,23 @@ resolution-markers = [
"python_full_version == '3.11.*'",
]
dependencies = [
- { name = "alabaster", marker = "python_full_version == '3.11.*'" },
- { name = "babel", marker = "python_full_version == '3.11.*'" },
- { name = "colorama", marker = "python_full_version == '3.11.*' and sys_platform == 'win32'" },
- { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
- { name = "imagesize", marker = "python_full_version == '3.11.*'" },
- { name = "jinja2", marker = "python_full_version == '3.11.*'" },
- { name = "packaging", marker = "python_full_version == '3.11.*'" },
- { name = "pygments", marker = "python_full_version == '3.11.*'" },
- { name = "requests", marker = "python_full_version == '3.11.*'" },
- { name = "roman-numerals", marker = "python_full_version == '3.11.*'" },
- { name = "snowballstemmer", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.11.*'" },
- { name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.11.*'" },
+ { name = "alabaster" },
+ { name = "babel" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" } },
+ { name = "imagesize" },
+ { name = "jinja2" },
+ { name = "packaging" },
+ { name = "pygments" },
+ { name = "requests" },
+ { name = "roman-numerals" },
+ { name = "snowballstemmer" },
+ { name = "sphinxcontrib-applehelp" },
+ { name = "sphinxcontrib-devhelp" },
+ { name = "sphinxcontrib-htmlhelp" },
+ { name = "sphinxcontrib-jsmath" },
+ { name = "sphinxcontrib-qthelp" },
+ { name = "sphinxcontrib-serializinghtml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" }
wheels = [
@@ -698,23 +646,23 @@ resolution-markers = [
"python_full_version >= '3.12'",
]
dependencies = [
- { name = "alabaster", marker = "python_full_version >= '3.12'" },
- { name = "babel", marker = "python_full_version >= '3.12'" },
- { name = "colorama", marker = "python_full_version >= '3.12' and sys_platform == 'win32'" },
- { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
- { name = "imagesize", marker = "python_full_version >= '3.12'" },
- { name = "jinja2", marker = "python_full_version >= '3.12'" },
- { name = "packaging", marker = "python_full_version >= '3.12'" },
- { name = "pygments", marker = "python_full_version >= '3.12'" },
- { name = "requests", marker = "python_full_version >= '3.12'" },
- { name = "roman-numerals", marker = "python_full_version >= '3.12'" },
- { name = "snowballstemmer", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.12'" },
- { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.12'" },
+ { name = "alabaster" },
+ { name = "babel" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" } },
+ { name = "imagesize" },
+ { name = "jinja2" },
+ { name = "packaging" },
+ { name = "pygments" },
+ { name = "requests" },
+ { name = "roman-numerals" },
+ { name = "snowballstemmer" },
+ { name = "sphinxcontrib-applehelp" },
+ { name = "sphinxcontrib-devhelp" },
+ { name = "sphinxcontrib-htmlhelp" },
+ { name = "sphinxcontrib-jsmath" },
+ { name = "sphinxcontrib-qthelp" },
+ { name = "sphinxcontrib-serializinghtml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/cd/bd/f08eb0f4eed5c83f1ba2a3bd18f7745a2b1525fad70660a1c00224ec468a/sphinx-9.1.0.tar.gz", hash = "sha256:7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb", size = 8718324, upload-time = "2025-12-31T15:09:27.646Z" }
wheels = [
@@ -722,31 +670,34 @@ wheels = [
]
[[package]]
-name = "sphinx-basic-ng"
-version = "1.0.0b2"
+name = "sphinx-copybutton"
+version = "0.5.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
{ name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
{ name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/98/0b/a866924ded68efec7a1759587a4e478aec7559d8165fac8b2ad1c0e774d6/sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9", size = 20736, upload-time = "2023-07-08T18:40:54.166Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/fc/2b/a964715e7f5295f77509e59309959f4125122d648f86b4fe7d70ca1d882c/sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd", size = 23039, upload-time = "2023-04-14T08:10:22.998Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/3c/dd/018ce05c532a22007ac58d4f45232514cd9d6dd0ee1dc374e309db830983/sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b", size = 22496, upload-time = "2023-07-08T18:40:52.659Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e", size = 13343, upload-time = "2023-04-14T08:10:20.844Z" },
]
[[package]]
-name = "sphinx-copybutton"
-version = "0.5.2"
+name = "sphinx-rtd-theme"
+version = "3.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
+ { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
+ { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
{ name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
{ name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
+ { name = "sphinxcontrib-jquery" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/fc/2b/a964715e7f5295f77509e59309959f4125122d648f86b4fe7d70ca1d882c/sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd", size = 23039, upload-time = "2023-04-14T08:10:22.998Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/84/68/a1bfbf38c0f7bccc9b10bbf76b94606f64acb1552ae394f0b8285bfaea25/sphinx_rtd_theme-3.1.0.tar.gz", hash = "sha256:b44276f2c276e909239a4f6c955aa667aaafeb78597923b1c60babc76db78e4c", size = 7620915, upload-time = "2026-01-12T16:03:31.17Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e", size = 13343, upload-time = "2023-04-14T08:10:20.844Z" },
+ { url = "https://files.pythonhosted.org/packages/87/c7/b5c8015d823bfda1a346adb2c634a2101d50bb75d421eb6dcb31acd25ebc/sphinx_rtd_theme-3.1.0-py2.py3-none-any.whl", hash = "sha256:1785824ae8e6632060490f67cf3a72d404a85d2d9fc26bce3619944de5682b89", size = 7655617, upload-time = "2026-01-12T16:03:28.101Z" },
]
[[package]]
@@ -776,6 +727,20 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" },
]
+[[package]]
+name = "sphinxcontrib-jquery"
+version = "4.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
+ { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" },
+ { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104, upload-time = "2023-03-14T15:01:00.356Z" },
+]
+
[[package]]
name = "sphinxcontrib-jsmath"
version = "1.0.1"