From bc4b10a3c8ddd01f39393aad468d4d0d778089ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20B?= <2589111+jfbu@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:02:53 +0200 Subject: [PATCH 1/2] Let LaTeX build always overwrite destination when copying assets --- sphinx/builders/latex/__init__.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py index 705a9cca8b3..08b16c26c76 100644 --- a/sphinx/builders/latex/__init__.py +++ b/sphinx/builders/latex/__init__.py @@ -412,7 +412,10 @@ def copy_support_files(self) -> None: for filename in os.listdir(staticdirname): if not filename.startswith('.'): copy_asset_file(path.join(staticdirname, filename), - self.outdir, context=context) + self.outdir, + context=context, + force=True + ) # use pre-1.6.x Makefile for make latexpdf on Windows if os.name == 'nt': @@ -424,7 +427,10 @@ def copy_support_files(self) -> None: def copy_latex_additional_files(self) -> None: for filename in self.config.latex_additional_files: logger.info(' ' + filename, nonl=True) - copy_asset_file(path.join(self.confdir, filename), self.outdir) + copy_asset_file(path.join(self.confdir, filename), + self.outdir, + force=True + ) def copy_image_files(self) -> None: if self.images: @@ -435,14 +441,19 @@ def copy_image_files(self) -> None: dest = self.images[src] try: copy_asset_file(path.join(self.srcdir, src), - path.join(self.outdir, dest)) + path.join(self.outdir, dest), + force=True + ) except Exception as err: logger.warning(__('cannot copy image file %r: %s'), path.join(self.srcdir, src), err) if self.config.latex_logo: if not path.isfile(path.join(self.confdir, self.config.latex_logo)): raise SphinxError(__('logo file %r does not exist') % self.config.latex_logo) - copy_asset_file(path.join(self.confdir, self.config.latex_logo), self.outdir) + copy_asset_file(path.join(self.confdir, self.config.latex_logo), + self.outdir, + force=True + ) def write_message_catalog(self) -> None: formats = self.config.numfig_format From efa2f70ef87cdbc4dd1a2826a2283c122504dedd Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Tue, 23 Jul 2024 22:05:32 +0100 Subject: [PATCH 2/2] formatting --- sphinx/builders/latex/__init__.py | 54 +++++++++++++++++++------------ 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py index 08b16c26c76..5ba28862137 100644 --- a/sphinx/builders/latex/__init__.py +++ b/sphinx/builders/latex/__init__.py @@ -411,26 +411,32 @@ def copy_support_files(self) -> None: staticdirname = path.join(package_dir, 'texinputs') for filename in os.listdir(staticdirname): if not filename.startswith('.'): - copy_asset_file(path.join(staticdirname, filename), - self.outdir, - context=context, - force=True - ) + copy_asset_file( + path.join(staticdirname, filename), + self.outdir, + context=context, + force=True, + ) # use pre-1.6.x Makefile for make latexpdf on Windows if os.name == 'nt': staticdirname = path.join(package_dir, 'texinputs_win') - copy_asset_file(path.join(staticdirname, 'Makefile.jinja'), - self.outdir, context=context) + copy_asset_file( + path.join(staticdirname, 'Makefile.jinja'), + self.outdir, + context=context, + force=True, + ) @progress_message(__('copying additional files')) def copy_latex_additional_files(self) -> None: for filename in self.config.latex_additional_files: logger.info(' ' + filename, nonl=True) - copy_asset_file(path.join(self.confdir, filename), - self.outdir, - force=True - ) + copy_asset_file( + self.confdir / filename, + self.outdir, + force=True, + ) def copy_image_files(self) -> None: if self.images: @@ -440,20 +446,22 @@ def copy_image_files(self) -> None: stringify_func=stringify_func): dest = self.images[src] try: - copy_asset_file(path.join(self.srcdir, src), - path.join(self.outdir, dest), - force=True - ) + copy_asset_file( + self.srcdir / src, + self.outdir / dest, + force=True, + ) except Exception as err: logger.warning(__('cannot copy image file %r: %s'), path.join(self.srcdir, src), err) if self.config.latex_logo: if not path.isfile(path.join(self.confdir, self.config.latex_logo)): raise SphinxError(__('logo file %r does not exist') % self.config.latex_logo) - copy_asset_file(path.join(self.confdir, self.config.latex_logo), - self.outdir, - force=True - ) + copy_asset_file( + self.confdir / self.config.latex_logo, + self.outdir, + force=True, + ) def write_message_catalog(self) -> None: formats = self.config.numfig_format @@ -468,7 +476,13 @@ def write_message_catalog(self) -> None: context['addtocaptions'] = r'\addto\captions%s' % self.babel.get_language() filename = path.join(package_dir, 'templates', 'latex', 'sphinxmessages.sty.jinja') - copy_asset_file(filename, self.outdir, context=context, renderer=LaTeXRenderer()) + copy_asset_file( + filename, + self.outdir, + context=context, + renderer=LaTeXRenderer(), + force=True, + ) def validate_config_values(app: Sphinx, config: Config) -> None: