From dd8bcdc939447d92965cedaa6e1a0e360fbe6be5 Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Wed, 2 Aug 2023 11:56:32 +0100 Subject: [PATCH 1/2] Fix template bug --- changelog/21.bugfix.rst | 1 + sphinx_changelog/towncrier.py | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 changelog/21.bugfix.rst diff --git a/changelog/21.bugfix.rst b/changelog/21.bugfix.rst new file mode 100644 index 0000000..7afdbf1 --- /dev/null +++ b/changelog/21.bugfix.rst @@ -0,0 +1 @@ +Fix opening towncrier templates. diff --git a/sphinx_changelog/towncrier.py b/sphinx_changelog/towncrier.py index 4e9dc96..6ad4b92 100644 --- a/sphinx_changelog/towncrier.py +++ b/sphinx_changelog/towncrier.py @@ -6,9 +6,14 @@ licenses/TOWNCRIER.rst """ import os +import sys from datetime import date -import pkg_resources +if sys.version_info < (3, 10): + import importlib_resources as resources +else: + from importlib import resources + from towncrier._builder import (find_fragments, render_fragments, split_fragments) from towncrier._project import get_project_name, get_version @@ -40,10 +45,10 @@ def generate_changelog_for_docs(directory, skip_if_empty=True, underline=1): os.chdir(base_directory) print("Loading template...") - if config.template is None: - template = pkg_resources.resource_string( - "towncrier", "templates/default.rst" - ).decode("utf8") + if isinstance(config.template, tuple): + template = ( + resources.files(config.template[0]).joinpath(config.template[1]).read_text() + ) else: with open(config.template, "rb") as tmpl: template = tmpl.read().decode("utf8") From b787886de1cec37ed6158d70dbf290abe9a084af Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Wed, 2 Aug 2023 11:59:24 +0100 Subject: [PATCH 2/2] Add importlib-resources backport --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index d773639..3d46f80 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,6 +16,7 @@ setup_requires = setuptools_scm install_requires = sphinx towncrier==23.6.0 + importlib-resources>=5; python_version<'3.10' [options.extras_require] all =