diff --git a/papiez.jpg b/papiez.jpg deleted file mode 100644 index 7d9b380..0000000 Binary files a/papiez.jpg and /dev/null differ diff --git a/papiezator/pope_utils.py b/papiezator/pope_utils.py index 402cfa5..4744842 100644 --- a/papiezator/pope_utils.py +++ b/papiezator/pope_utils.py @@ -1,28 +1,31 @@ from papiezator.models import Pope, PerfectPope, decimal_places from PIL import Image -from os import path import decimal PREFIX = "popes" +class ENOPopeException(Exception): pass + def select_best_pope(aspect_ratio): + aspect_ratio = decimal.Decimal( + round(aspect_ratio, decimal_places) + ) pp = PerfectPope.objects.filter(aspect_ratio=aspect_ratio) if pp: return pp[0].pope.path - aspect_ratio = decimal.Decimal(aspect_ratio) lte = Pope.objects.filter(aspect_ratio__lte=aspect_ratio).order_by('-aspect_ratio') gte = Pope.objects.filter(aspect_ratio__gte=aspect_ratio).order_by('aspect_ratio') - if not gte: + if not gte and not lte: + raise ENOPopeException + elif not gte: return lte[0].path elif not lte: return gte[0].path - elif not gte and not lte: - return "papiez.jpg" else: - r_lte = abs(aspect_ratio/lte[0].aspect_ratio) - r_gte = abs(aspect_ratio/gte[0].aspect_ratio) + r_lte = abs(aspect_ratio - lte[0].aspect_ratio) + r_gte = abs(aspect_ratio - gte[0].aspect_ratio) if r_lte >= r_gte: pp = PerfectPope(aspect_ratio=aspect_ratio, pope=gte[0]).save() return gte[0].path @@ -30,11 +33,11 @@ def select_best_pope(aspect_ratio): pp = PerfectPope(aspect_ratio=aspect_ratio, pope=lte[0]).save() return lte[0].path + class PopeMaster: def __init__(self): pass - def parse_popes(self): self.parse_pope("papiez.jpg")