Remove old compatibility code for Pillow 3.0

This commit is contained in:
Simon Conseil
2018-03-05 00:57:49 +01:00
parent 4bab96fdde
commit 2d9a2e735e
2 changed files with 10 additions and 33 deletions

View File

@@ -30,8 +30,8 @@ setup(
include_package_data=True,
platforms='any',
keywords=['gallery', 'static', 'generator', 'image', 'video', 'galleria'],
install_requires=['blinker', 'click', 'Jinja2', 'Markdown', 'Pillow',
'pilkit'],
install_requires=['blinker', 'click', 'Jinja2', 'Markdown',
'Pillow>=4.0.0', 'pilkit'],
test_requires=['pytest'],
extras_require={
'S3': ['boto']

View File

@@ -33,7 +33,6 @@
import logging
import os
import PIL
import pilkit.processors
import sys
import warnings
@@ -42,9 +41,7 @@ import fractions
from copy import deepcopy
from datetime import datetime
from PIL.ExifTags import TAGS, GPSTAGS
from PIL import Image as PILImage
from PIL import ImageOps
from PIL import IptcImagePlugin
from PIL import Image as PILImage, ImageOps, IptcImagePlugin
from pilkit.processors import Transpose
from pilkit.utils import save_image
@@ -179,9 +176,10 @@ def process_image(filepath, outpath, settings):
if settings['make_thumbs']:
thumb_name = os.path.join(outpath, get_thumb(settings, filename))
generate_thumbnail(outname, thumb_name, settings['thumb_size'],
fit=settings['thumb_fit'], options=options,
thumb_fit_centering=settings["thumb_fit_centering"])
generate_thumbnail(
outname, thumb_name, settings['thumb_size'],
fit=settings['thumb_fit'], options=options,
thumb_fit_centering=settings["thumb_fit_centering"])
except Exception as e:
logger.info('Failed to process: %r', e)
if logger.getEffectiveLevel() == logging.DEBUG:
@@ -212,10 +210,6 @@ def get_exif_data(filename):
logger = logging.getLogger(__name__)
if PIL.PILLOW_VERSION == '3.0.0':
warnings.warn('Pillow 3.0.0 is broken with EXIF data, consider using '
'another version if you want to use EXIF data.')
img = _read_image(filename)
try:
@@ -282,9 +276,6 @@ def get_exif_tags(data, datetime_format='%c'):
fnumber = data['FNumber']
try:
simple['fstop'] = float(fnumber[0]) / fnumber[1]
except IndexError:
# Pillow == 3.0
simple['fstop'] = float(fnumber[0])
except Exception:
logger.debug('Skipped invalid FNumber: %r', fnumber, exc_info=True)
@@ -292,9 +283,6 @@ def get_exif_tags(data, datetime_format='%c'):
focal = data['FocalLength']
try:
simple['focal'] = round(float(focal[0]) / focal[1])
except IndexError:
# Pillow == 3.0
simple['focal'] = round(focal[0])
except Exception:
logger.debug('Skipped invalid FocalLength: %r', focal,
exc_info=True)
@@ -305,9 +293,6 @@ def get_exif_tags(data, datetime_format='%c'):
try:
simple['exposure'] = str(fractions.Fraction(exptime[0],
exptime[1]))
except IndexError:
# Pillow == 3.0
simple['exposure'] = exptime[0]
except ZeroDivisionError:
logger.info('Invalid ExposureTime: %r', exptime)
elif isinstance(exptime, int):
@@ -316,19 +301,11 @@ def get_exif_tags(data, datetime_format='%c'):
logger.info('Unknown format for ExposureTime: %r', exptime)
if data.get('ISOSpeedRatings'):
if isinstance(data['ISOSpeedRatings'], tuple):
# Pillow == 3.0
simple['iso'] = data['ISOSpeedRatings'][0]
else:
simple['iso'] = data['ISOSpeedRatings']
simple['iso'] = data['ISOSpeedRatings']
if 'DateTimeOriginal' in data:
try:
# Remove null bytes at the end if necessary
date = data['DateTimeOriginal'].rsplit('\x00')[0]
except AttributeError:
# Pillow == 3.0
date = data['DateTimeOriginal'][0]
# Remove null bytes at the end if necessary
date = data['DateTimeOriginal'].rsplit('\x00')[0]
try:
simple['dateobj'] = datetime.strptime(date, '%Y:%m:%d %H:%M:%S')