From fafe09832389fb37500cba00451e7e01a255360c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Fri, 12 Apr 2024 02:43:08 +0200 Subject: [PATCH 1/2] Rewire generating Sphinx's settings to early `config-inited` event This allows other extensions to rely on the produced values to be present in the life-cycle events that happen later. --- jaraco/packaging/sphinx.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/jaraco/packaging/sphinx.py b/jaraco/packaging/sphinx.py index a1f2583..ccede00 100644 --- a/jaraco/packaging/sphinx.py +++ b/jaraco/packaging/sphinx.py @@ -23,8 +23,8 @@ def setup(app): app.add_config_value('package_url', '', '') - app.connect('builder-inited', load_config_from_setup) - app.connect('builder-inited', configure_substitutions) + app.connect('config-inited', load_config_from_setup) + app.connect('config-inited', configure_substitutions) app.connect('html-page-context', add_package_url) app.add_directive("sidebar-links", SidebarLinksDirective) return dict(version=metadata.version('jaraco.packaging'), parallel_read_safe=True) @@ -106,22 +106,22 @@ def _load_metadata_from_wheel(): return dist.metadata -def load_config_from_setup(app): +def load_config_from_setup(app, config): """ Replace values in app.config from package metadata """ # for now, assume project root is one level up root = os.path.join(app.confdir, '..') meta = _load_metadata_from_wheel() or load(root) - app.config.project = meta['Name'] - app.config.version = app.config.release = meta['Version'] - app.config.package_url = meta['Home-page'] - app.config.author = app.config.copyright = meta['Author'] + config.project = meta['Name'] + config.version = config.release = meta['Version'] + config.package_url = meta['Home-page'] + config.author = config.copyright = meta['Author'] -def configure_substitutions(app): - epilogs = app.config.rst_epilog, f'.. |project| replace:: {app.config.project}' - app.config.rst_epilog = '\n'.join(filter(None, epilogs)) +def configure_substitutions(app, config): + epilogs = config.rst_epilog, f'.. |project| replace:: {config.project}' + config.rst_epilog = '\n'.join(filter(None, epilogs)) def add_package_url(app, pagename, templatename, context, doctree): From 1f4985eb942261c217f1fa3ded13bdddbb2aae4a Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Tue, 16 Apr 2024 22:51:38 -0400 Subject: [PATCH 2/2] Add news fragment. --- newsfragments/16.feature.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 newsfragments/16.feature.rst diff --git a/newsfragments/16.feature.rst b/newsfragments/16.feature.rst new file mode 100644 index 0000000..6a1e415 --- /dev/null +++ b/newsfragments/16.feature.rst @@ -0,0 +1 @@ +Configure Sphinx earlier in 'config-inited', allowing other etxensions to rely on the produced values. \ No newline at end of file