1717import shutil
1818import subprocess
1919import sys
20+ from urllib .parse import unquote , urlparse
21+ from urllib .request import pathname2url , url2pathname
2022
2123from PIL import Image , ImageFilter , UnidentifiedImageError
2224from bs4 import BeautifulSoup
23- import six
24- from six .moves .urllib_parse import unquote , urlparse
25- from six .moves .urllib_request import pathname2url , url2pathname
2625
2726from pelican import __version__ as pelican_version
2827from pelican import signals
@@ -144,7 +143,7 @@ def convert_box(image, top, left, right, bottom):
144143 else :
145144 bottom = float (bottom )
146145
147- return ( top , left , right , bottom )
146+ return top , left , right , bottom
148147
149148
150149def crop (i , left , top , right , bottom ):
@@ -342,7 +341,7 @@ def harvest_images_in_fragment(fragment, settings):
342341 elif not isinstance (d , dict ):
343342 raise RuntimeError (
344343 "Derivative %s definition not handled"
345- "(must be list or dict)" % ( derivative )
344+ "(must be list or dict)" % derivative
346345 )
347346
348347 elif "type" not in d :
@@ -419,7 +418,7 @@ def compute_paths(img, settings, derivative):
419418def process_img_tag (img , settings , derivative ):
420419 path = compute_paths (img , settings , derivative )
421420 if not is_img_identifiable (path .source ):
422- logger .warn (
421+ logger .warning (
423422 "%s Skipping image %s that could not be identified by Pillow" ,
424423 LOG_PREFIX ,
425424 path .source ,
@@ -447,7 +446,7 @@ def is_img_identifiable(img_filepath):
447446def build_srcset (img , settings , derivative ):
448447 path = compute_paths (img , settings , derivative )
449448 if not is_img_identifiable (path .source ):
450- logger .warn (
449+ logger .warning (
451450 "%s Skipping image %s that could not be identified by Pillow" ,
452451 LOG_PREFIX ,
453452 path .source ,
@@ -456,7 +455,8 @@ def build_srcset(img, settings, derivative):
456455 process = settings ["IMAGE_PROCESS" ][derivative ]
457456
458457 default = process ["default" ]
459- if isinstance (default , six .string_types ):
458+ default_name = ""
459+ if isinstance (default , str ):
460460 breakpoints = {i for i , _ in process ["srcset" ]}
461461 if default not in breakpoints :
462462 logger .error (
@@ -530,24 +530,30 @@ def convert_div_to_picture_tag(soup, img, group, settings, derivative):
530530 (default_source_name ,),
531531 )
532532
533- if isinstance (default [1 ], six . string_types ):
533+ if isinstance (default [1 ], str ):
534534 default_item_name = default [1 ]
535535
536536 elif isinstance (default [1 ], list ):
537537 default_item_name = "default"
538538
539539 source = os .path .join (settings ["PATH" ], default_source ["url" ][1 :])
540540 destination = os .path .join (
541- s ["base_path" ],
541+ default_source ["base_path" ],
542542 default_source_name ,
543543 default_item_name ,
544544 default_source ["filename" ],
545545 )
546546 process_image ((source , destination , default [1 ]), settings )
547+ else :
548+ raise RuntimeError (
549+ "Unexpected type for the second value of tuple "
550+ 'IMAGE_PROCESS["%s"]["default"]; expected string or list.' ,
551+ (derivative ,),
552+ )
547553
548554 # Change img src to url of default processed image.
549555 img ["src" ] = os .path .join (
550- s ["base_url" ],
556+ default_source ["base_url" ],
551557 default_source_name ,
552558 default_item_name ,
553559 default_source ["filename" ],
@@ -643,24 +649,31 @@ def process_picture(soup, img, group, settings, derivative):
643649 (default_source_name ,),
644650 )
645651
646- if isinstance (default [1 ], six . string_types ):
652+ if isinstance (default [1 ], str ):
647653 default_item_name = default [1 ]
648654
649655 elif isinstance (default [1 ], list ):
650656 default_item_name = "default"
651657 source = os .path .join (settings ["PATH" ], default_source ["url" ][1 :])
652658 destination = os .path .join (
653- s ["base_path" ],
659+ default_source ["base_path" ],
654660 default_source_name ,
655661 default_item_name ,
656662 default_source ["filename" ],
657663 )
658664
659665 process_image ((source , destination , default [1 ]), settings )
660666
667+ else :
668+ raise RuntimeError (
669+ "Unexpected type for the second value of tuple "
670+ 'IMAGE_PROCESS["%s"]["default"]; expected string or list.' ,
671+ (derivative ,),
672+ )
673+
661674 # Change img src to url of default processed image.
662675 img ["src" ] = posixpath .join (
663- s ["base_url" ],
676+ default_source ["base_url" ],
664677 default_source_name ,
665678 default_item_name ,
666679 default_source ["filename" ],
0 commit comments