diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5335a51..0d7043d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
- python-version: ['3.12', '3.13']
+ python-version: ['3.12', '3.13', '3.14']
platform: [ubuntu-latest, windows-latest]
lint-stage: [pre-commit, pre-push, manual]
diff --git a/pyproject.toml b/pyproject.toml
index 6982bd1..298d365 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -26,6 +26,7 @@ classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
]
dynamic = [
"version",
@@ -122,6 +123,10 @@ universal = true
# Code to match this is in ``conf.py``.
version_scheme = "post-release"
+[tool.uv.sources]
+# See https://github.com/PyCQA/docformatter/pull/325.
+docformatter = { "git" = "https://github.com/tdenewiler/docformatter.git", branch = "untokenize-std-lib" }
+
[tool.ruff]
line-length = 79
@@ -333,7 +338,7 @@ pep621_dev_dependency_groups = [
[tool.pyproject-fmt]
indent = 4
keep_full_version = true
-max_supported_python = "3.13"
+max_supported_python = "3.14"
[tool.pytest.ini_options]
diff --git a/src/sphinx_notion/__init__.py b/src/sphinx_notion/__init__.py
index b19657a..42e6ec5 100644
--- a/src/sphinx_notion/__init__.py
+++ b/src/sphinx_notion/__init__.py
@@ -213,8 +213,8 @@ class _TableStructure:
def _process_rich_text_node(node: nodes.Node) -> Text:
"""Create Notion rich text from a single ``docutils`` node.
- This is the base function for ``singledispatch``. Specific node types
- are handled by registered functions.
+ This is the base function for ``singledispatch``. Specific node
+ types are handled by registered functions.
"""
unsupported_child_type_msg = (
f"Unsupported node type within text: {type(node).__name__} on line "
@@ -268,8 +268,8 @@ def _(node: nodes.target) -> Text:
def _(node: nodes.title_reference) -> Text:
"""Process title reference nodes by creating italic text.
- We match the behavior of the HTML builder here.
- If you render ``A `B``` in HTML, it will render as ``A B``.
+ We match the behavior of the HTML builder here. If you render ``A
+ `B``` in HTML, it will render as ``A B``.
"""
return text(text=node.astext(), italic=True)
diff --git a/tests/test_upload.py b/tests/test_upload.py
index afdbe35..7650253 100644
--- a/tests/test_upload.py
+++ b/tests/test_upload.py
@@ -11,8 +11,8 @@
def test_help(file_regression: FileRegressionFixture) -> None:
"""Expected help text is shown.
- This help text is defined in files.
- To update these files, run ``pytest`` with the ``--regen-all`` flag.
+ This help text is defined in files. To update these files, run
+ ``pytest`` with the ``--regen-all`` flag.
"""
runner = CliRunner()
arguments = ["--help"]