Skip to content

Commit 2a7c40d

Browse files
committed
Undo parallel image changes
1 parent 7841d3d commit 2a7c40d

File tree

10 files changed

+30
-56
lines changed

10 files changed

+30
-56
lines changed

sphinx/builders/_epub_base.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -401,12 +401,9 @@ def copy_image_files_pil(self) -> None:
401401
the format and resizing the image if necessary/possible.
402402
"""
403403
ensuredir(path.join(self.outdir, self.imagedir))
404-
converted_images = {*self.env.original_image_uri.values()}
405-
for src in status_iterator(self.env.images, __('copying images... '), "brown",
406-
len(self.env.images), self.app.verbosity):
407-
if src in converted_images:
408-
continue
409-
_docnames, dest = self.env.images[src]
404+
for src in status_iterator(self.images, __('copying images... '), "brown",
405+
len(self.images), self.app.verbosity):
406+
dest = self.images[src]
410407
try:
411408
img = Image.open(path.join(self.srcdir, src))
412409
except OSError:
@@ -441,7 +438,7 @@ def copy_image_files(self) -> None:
441438
"""Copy image files to destination directory.
442439
This overwritten method can use Pillow to convert image files.
443440
"""
444-
if self.env.images:
441+
if self.images:
445442
if self.config.epub_fix_images or self.config.epub_max_image_width:
446443
if not Image:
447444
logger.warning(__('Pillow not found - copying image files'))

sphinx/builders/html/__init__.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -656,9 +656,6 @@ def get_doc_context(self, docname: str, body: str, metatags: str) -> dict[str, A
656656
}
657657

658658
def write_doc(self, docname: str, doctree: nodes.document) -> None:
659-
self.imgpath = relative_uri(self.get_target_uri(docname), self.imagedir)
660-
self.post_process_images(doctree)
661-
662659
title_node = self.env.longtitles.get(docname)
663660
title = self.render_partial(title_node)['title'] if title_node else ''
664661
self.index_page(docname, doctree, title)
@@ -668,6 +665,7 @@ def write_doc(self, docname: str, doctree: nodes.document) -> None:
668665

669666
self.secnumbers = self.env.toc_secnumbers.get(docname, {})
670667
self.fignumbers = self.env.toc_fignumbers.get(docname, {})
668+
self.imgpath = relative_uri(self.get_target_uri(docname), '_images')
671669
self.dlpath = relative_uri(self.get_target_uri(docname), '_downloads')
672670
self.current_docname = docname
673671
self.docwriter.write(doctree, destination)
@@ -678,6 +676,10 @@ def write_doc(self, docname: str, doctree: nodes.document) -> None:
678676
ctx = self.get_doc_context(docname, body, metatags)
679677
self.handle_page(docname, ctx, event_arg=doctree)
680678

679+
def write_doc_serialized(self, docname: str, doctree: nodes.document) -> None:
680+
self.imgpath = relative_uri(self.get_target_uri(docname), self.imagedir)
681+
self.post_process_images(doctree)
682+
681683
def finish(self) -> None:
682684
self.finish_tasks.add_task(self.gen_indices)
683685
self.finish_tasks.add_task(self.gen_pages_from_extensions)
@@ -764,16 +766,13 @@ def write_domain_indices(self) -> None:
764766
self.handle_page(indexname, indexcontext, 'domainindex.html')
765767

766768
def copy_image_files(self) -> None:
767-
if self.env.images:
768-
converted_images = {*self.env.original_image_uri.values()}
769+
if self.images:
769770
stringify_func = ImageAdapter(self.app.env).get_original_image_uri
770771
ensuredir(path.join(self.outdir, self.imagedir))
771-
for src in status_iterator(self.env.images, __('copying images... '), "brown",
772-
len(self.env.images), self.app.verbosity,
772+
for src in status_iterator(self.images, __('copying images... '), "brown",
773+
len(self.images), self.app.verbosity,
773774
stringify_func=stringify_func):
774-
if src in converted_images:
775-
continue
776-
_docnames, dest = self.env.images[src]
775+
dest = self.images[src]
777776
try:
778777
copyfile(path.join(self.srcdir, src),
779778
path.join(self.outdir, self.imagedir, dest))

sphinx/builders/latex/__init__.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -413,15 +413,12 @@ def copy_latex_additional_files(self) -> None:
413413
copy_asset_file(path.join(self.confdir, filename), self.outdir)
414414

415415
def copy_image_files(self) -> None:
416-
if self.env.images:
417-
converted_images = {*self.env.original_image_uri.values()}
416+
if self.images:
418417
stringify_func = ImageAdapter(self.app.env).get_original_image_uri
419-
for src in status_iterator(self.env.images, __('copying images... '), "brown",
420-
len(self.env.images), self.app.verbosity,
418+
for src in status_iterator(self.images, __('copying images... '), "brown",
419+
len(self.images), self.app.verbosity,
421420
stringify_func=stringify_func):
422-
if src in converted_images:
423-
continue
424-
_docnames, dest = self.env.images[src]
421+
dest = self.images[src]
425422
try:
426423
copy_asset_file(path.join(self.srcdir, src),
427424
path.join(self.outdir, dest))

sphinx/builders/texinfo.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,15 +173,12 @@ def finish(self) -> None:
173173
self.copy_support_files()
174174

175175
def copy_image_files(self, targetname: str) -> None:
176-
if self.env.images:
177-
converted_images = {*self.env.original_image_uri.values()}
176+
if self.images:
178177
stringify_func = ImageAdapter(self.app.env).get_original_image_uri
179-
for src in status_iterator(self.env.images, __('copying images... '), "brown",
180-
len(self.env.images), self.app.verbosity,
178+
for src in status_iterator(self.images, __('copying images... '), "brown",
179+
len(self.images), self.app.verbosity,
181180
stringify_func=stringify_func):
182-
if src in converted_images:
183-
continue
184-
_docnames, dest = self.env.images[src]
181+
dest = self.images[src]
185182
try:
186183
imagedir = path.join(self.outdir, targetname + '-figures')
187184
ensuredir(imagedir)

sphinx/writers/_html4.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,14 +287,14 @@ def append_fignumber(figtype: str, figure_id: str) -> None:
287287
else:
288288
key = figtype
289289

290-
if figure_id in self.builder.fignumbers.get(key, {}): # type: ignore[has-type]
290+
if figure_id in self.builder.fignumbers.get(key, {}):
291291
self.body.append('<span class="caption-number">')
292292
prefix = self.config.numfig_format.get(figtype)
293293
if prefix is None:
294294
msg = __('numfig_format is not defined for %s') % figtype
295295
logger.warning(msg)
296296
else:
297-
numbers = self.builder.fignumbers[key][figure_id] # type: ignore[has-type]
297+
numbers = self.builder.fignumbers[key][figure_id]
298298
self.body.append(prefix % '.'.join(map(str, numbers)) + ' ')
299299
self.body.append('</span>')
300300

@@ -569,7 +569,7 @@ def visit_download_reference(self, node: Element) -> None:
569569
self.context.append('</a>')
570570
elif 'filename' in node:
571571
atts['class'] += ' internal'
572-
atts['href'] = posixpath.join(self.builder.dlpath, # type: ignore[has-type]
572+
atts['href'] = posixpath.join(self.builder.dlpath,
573573
urllib.parse.quote(node['filename']))
574574
self.body.append(self.starttag(node, 'a', '', **atts))
575575
self.context.append('</a>')

sphinx/writers/html5.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,14 +293,14 @@ def append_fignumber(figtype: str, figure_id: str) -> None:
293293
else:
294294
key = figtype
295295

296-
if figure_id in self.builder.fignumbers.get(key, {}): # type: ignore[has-type]
296+
if figure_id in self.builder.fignumbers.get(key, {}):
297297
self.body.append('<span class="caption-number">')
298298
prefix = self.config.numfig_format.get(figtype)
299299
if prefix is None:
300300
msg = __('numfig_format is not defined for %s') % figtype
301301
logger.warning(msg)
302302
else:
303-
numbers = self.builder.fignumbers[key][figure_id] # type: ignore[has-type]
303+
numbers = self.builder.fignumbers[key][figure_id]
304304
self.body.append(prefix % '.'.join(map(str, numbers)) + ' ')
305305
self.body.append('</span>')
306306

@@ -544,7 +544,7 @@ def visit_download_reference(self, node: Element) -> None:
544544
self.context.append('</a>')
545545
elif 'filename' in node:
546546
atts['class'] += ' internal'
547-
atts['href'] = posixpath.join(self.builder.dlpath, # type: ignore[has-type]
547+
atts['href'] = posixpath.join(self.builder.dlpath,
548548
urllib.parse.quote(node['filename']))
549549
self.body.append(self.starttag(node, 'a', '', **atts))
550550
self.context.append('</a>')

tests/test_build_epub.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -399,14 +399,11 @@ def test_copy_images(app, status, warning):
399399

400400
images_dir = Path(app.outdir) / '_images'
401401
images = {image.name for image in images_dir.rglob('*')}
402+
images.discard('python-logo.png')
402403
assert images == {
403-
'img.gif',
404-
'img.pdf',
405404
'img.png',
406-
'python-logo.png',
407405
'rimg.png',
408406
'rimg1.png',
409-
'svgimg.pdf',
410407
'svgimg.svg',
411408
'testimäge.png',
412409
}

tests/test_build_html.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,12 +1780,9 @@ def test_copy_images(app, status, warning):
17801780
images_dir = Path(app.outdir) / '_images'
17811781
images = {image.name for image in images_dir.rglob('*')}
17821782
assert images == {
1783-
'img.gif',
1784-
'img.pdf',
17851783
'img.png',
17861784
'rimg.png',
17871785
'rimg1.png',
1788-
'svgimg.pdf',
17891786
'svgimg.svg',
17901787
'testimäge.png',
17911788
}

tests/test_build_latex.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,14 +1682,9 @@ def test_copy_images(app, status, warning):
16821682
image.name for image in test_dir.rglob('*')
16831683
if image.suffix in {'.gif', '.pdf', '.png', '.svg'}
16841684
}
1685+
images.discard('python-logo.png')
16851686
assert images == {
1686-
'img.gif',
16871687
'img.pdf',
1688-
'img.png',
1689-
'python-logo.png',
16901688
'rimg.png',
1691-
'rimg1.png',
1692-
'svgimg.pdf',
1693-
'svgimg.svg',
16941689
'testimäge.png',
16951690
}

tests/test_build_texinfo.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,9 @@ def test_copy_images(app, status, warning):
146146

147147
images_dir = Path(app.outdir) / 'python-figures'
148148
images = {image.name for image in images_dir.rglob('*')}
149+
images.discard('python-logo.png')
149150
assert images == {
150-
'img.gif',
151-
'img.pdf',
152151
'img.png',
153-
'python-logo.png',
154152
'rimg.png',
155-
'rimg1.png',
156-
'svgimg.pdf',
157-
'svgimg.svg',
158153
'testimäge.png',
159154
}

0 commit comments

Comments
 (0)