figure_node += nodes.legend('', *node[1:])
return [figure_node]
+# Adapter to accommodate breaking change in Pillow 7.2
+# https://pillow.readthedocs.io/en/stable/releasenotes/7.2.0.html#moved-to-imagefiledirectory-v2-in-image-exif
+def _to_numerator_denominator_tuple(ratio):
+ if isinstance(ratio, tuple):
+ return ratio
+ else:
+ return ratio.numerator, ratio.denominator
+
class ImageGrid(rst.Directive):
has_content = True
# Not all info might be present
caption = []
if 'FNumber' in exif:
- caption += ["F{}".format(float(float(exif['FNumber'][0])/float(exif['FNumber'][1])))]
+ numerator, denominator = _to_numerator_denominator_tuple(exif['FNumber'])
+ caption += ["F{}".format(float(numerator)/float(denominator))]
if 'ExposureTime' in exif:
- numerator, denominator = exif['ExposureTime']
+ numerator, denominator = _to_numerator_denominator_tuple(exif['ExposureTime'])
if int(numerator) > int(denominator):
caption += ["{} s".format(float(numerator)/float(denominator))]
else: