screw up ingredient parser
This commit is contained in:
parent
1a21659b5e
commit
9b132e71f2
@ -124,7 +124,7 @@ class IngredientParser:
|
|||||||
|
|
||||||
def parse_amount(self, x):
|
def parse_amount(self, x):
|
||||||
amount = 0
|
amount = 0
|
||||||
unit = ''
|
unit = None
|
||||||
note = ''
|
note = ''
|
||||||
|
|
||||||
did_check_frac = False
|
did_check_frac = False
|
||||||
@ -155,7 +155,7 @@ class IngredientParser:
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
unit = x[end:]
|
unit = x[end:]
|
||||||
|
|
||||||
if unit.startswith('(') or unit.startswith('-'): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
|
if unit is not None and (unit.startswith('(') or unit.startswith('-')): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
|
||||||
unit = ''
|
unit = ''
|
||||||
note = x
|
note = x
|
||||||
return amount, unit, note
|
return amount, unit, note
|
||||||
@ -230,7 +230,7 @@ class IngredientParser:
|
|||||||
# a fraction for the amount
|
# a fraction for the amount
|
||||||
if len(tokens) > 2:
|
if len(tokens) > 2:
|
||||||
try:
|
try:
|
||||||
if not unit == '':
|
if unit is not None:
|
||||||
# a unit is already found, no need to try the second argument for a fraction
|
# a unit is already found, no need to try the second argument for a fraction
|
||||||
# probably not the best method to do it, but I didn't want to make an if check and paste the exact same thing in the else as already is in the except # noqa: E501
|
# probably not the best method to do it, but I didn't want to make an if check and paste the exact same thing in the else as already is in the except # noqa: E501
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@ -252,7 +252,7 @@ class IngredientParser:
|
|||||||
# try to use second argument as unit and everything else as ingredient, use everything as ingredient if it fails # noqa: E501
|
# try to use second argument as unit and everything else as ingredient, use everything as ingredient if it fails # noqa: E501
|
||||||
try:
|
try:
|
||||||
ingredient, note = self.parse_ingredient(tokens[2:])
|
ingredient, note = self.parse_ingredient(tokens[2:])
|
||||||
if unit == '':
|
if unit is None:
|
||||||
unit = tokens[1]
|
unit = tokens[1]
|
||||||
else:
|
else:
|
||||||
note = tokens[1]
|
note = tokens[1]
|
||||||
|
@ -10,33 +10,33 @@ def test_ingredient_parser():
|
|||||||
"4 l Wasser": (4, "l", "Wasser", ""),
|
"4 l Wasser": (4, "l", "Wasser", ""),
|
||||||
"½l Wasser": (0.5, "l", "Wasser", ""),
|
"½l Wasser": (0.5, "l", "Wasser", ""),
|
||||||
"⅛ Liter Sauerrahm": (0.125, "Liter", "Sauerrahm", ""),
|
"⅛ Liter Sauerrahm": (0.125, "Liter", "Sauerrahm", ""),
|
||||||
"5 Zwiebeln": (5, "", "Zwiebeln", ""),
|
"5 Zwiebeln": (5, None, "Zwiebeln", ""),
|
||||||
"3 Zwiebeln, gehackt": (3, "", "Zwiebeln", "gehackt"),
|
"3 Zwiebeln, gehackt": (3, None, "Zwiebeln", "gehackt"),
|
||||||
"5 Zwiebeln (gehackt)": (5, "", "Zwiebeln", "gehackt"),
|
"5 Zwiebeln (gehackt)": (5, None, "Zwiebeln", "gehackt"),
|
||||||
"1 Zwiebel(n)": (1, "", "Zwiebel(n)", ""),
|
"1 Zwiebel(n)": (1, None, "Zwiebel(n)", ""),
|
||||||
"4 1/2 Zwiebeln": (4.5, "", "Zwiebeln", ""),
|
"4 1/2 Zwiebeln": (4.5, None, "Zwiebeln", ""),
|
||||||
"4 ½ Zwiebeln": (4.5, "", "Zwiebeln", ""),
|
"4 ½ Zwiebeln": (4.5, None, "Zwiebeln", ""),
|
||||||
"1/2 EL Mehl": (0.5, "EL", "Mehl", ""),
|
"1/2 EL Mehl": (0.5, "EL", "Mehl", ""),
|
||||||
"1/2 Zwiebel": (0.5, "", "Zwiebel", ""),
|
"1/2 Zwiebel": (0.5, None, "Zwiebel", ""),
|
||||||
"1/5g Mehl, gesiebt": (0.2, "g", "Mehl", "gesiebt"),
|
"1/5g Mehl, gesiebt": (0.2, "g", "Mehl", "gesiebt"),
|
||||||
"1/2 Zitrone, ausgepresst": (0.5, "", "Zitrone", "ausgepresst"),
|
"1/2 Zitrone, ausgepresst": (0.5, None, "Zitrone", "ausgepresst"),
|
||||||
"etwas Mehl": (0, "", "etwas Mehl", ""),
|
"etwas Mehl": (0, None, "etwas Mehl", ""),
|
||||||
"Öl zum Anbraten": (0, "", "Öl zum Anbraten", ""),
|
"Öl zum Anbraten": (0, None, "Öl zum Anbraten", ""),
|
||||||
"n. B. Knoblauch, zerdrückt": (0, "", "n. B. Knoblauch", "zerdrückt"),
|
"n. B. Knoblauch, zerdrückt": (0, None, "n. B. Knoblauch", "zerdrückt"),
|
||||||
"Kräuter, mediterrane (Oregano, Rosmarin, Basilikum)": (
|
"Kräuter, mediterrane (Oregano, Rosmarin, Basilikum)": (
|
||||||
0, "", "Kräuter, mediterrane", "Oregano, Rosmarin, Basilikum"),
|
0, None, "Kräuter, mediterrane", "Oregano, Rosmarin, Basilikum"),
|
||||||
"600 g Kürbisfleisch (Hokkaido), geschält, entkernt und geraspelt": (
|
"600 g Kürbisfleisch (Hokkaido), geschält, entkernt und geraspelt": (
|
||||||
600, "g", "Kürbisfleisch (Hokkaido)", "geschält, entkernt und geraspelt"),
|
600, "g", "Kürbisfleisch (Hokkaido)", "geschält, entkernt und geraspelt"),
|
||||||
"Muskat": (0, "", "Muskat", ""),
|
"Muskat": (0, None, "Muskat", ""),
|
||||||
"200 g Mehl, glattes": (200, "g", "Mehl", "glattes"),
|
"200 g Mehl, glattes": (200, "g", "Mehl", "glattes"),
|
||||||
"1 Ei(er)": (1, "", "Ei(er)", ""),
|
"1 Ei(er)": (1, None, "Ei(er)", ""),
|
||||||
"1 Prise(n) Salz": (1, "Prise(n)", "Salz", ""),
|
"1 Prise(n) Salz": (1, "Prise(n)", "Salz", ""),
|
||||||
"etwas Wasser, lauwarmes": (0, "", "etwas Wasser", "lauwarmes"),
|
"etwas Wasser, lauwarmes": (0, None, "etwas Wasser", "lauwarmes"),
|
||||||
"Strudelblätter, fertige, für zwei Strudel": (0, "", "Strudelblätter", "fertige, für zwei Strudel"),
|
"Strudelblätter, fertige, für zwei Strudel": (0,None, "Strudelblätter", "fertige, für zwei Strudel"),
|
||||||
"barrel-aged Bourbon": (0, "", "barrel-aged Bourbon", ""),
|
"barrel-aged Bourbon": (0, None, "barrel-aged Bourbon", ""),
|
||||||
"golden syrup": (0, "", "golden syrup", ""),
|
"golden syrup": (0, None, "golden syrup", ""),
|
||||||
"unsalted butter, for greasing": (0, "", "unsalted butter", "for greasing"),
|
"unsalted butter, for greasing": (0, None, "unsalted butter", "for greasing"),
|
||||||
"unsalted butter , for greasing": (0, "", "unsalted butter", "for greasing"), # trim
|
"unsalted butter , for greasing": (0, None, "unsalted butter", "for greasing"), # trim
|
||||||
"1 small sprig of fresh rosemary": (1, "small", "sprig of fresh rosemary", ""),
|
"1 small sprig of fresh rosemary": (1, "small", "sprig of fresh rosemary", ""),
|
||||||
# does not always work perfectly!
|
# does not always work perfectly!
|
||||||
"75 g fresh breadcrumbs": (75, "g", "fresh breadcrumbs", ""),
|
"75 g fresh breadcrumbs": (75, "g", "fresh breadcrumbs", ""),
|
||||||
@ -49,7 +49,7 @@ def test_ingredient_parser():
|
|||||||
"1 Zwiebel gehackt": (1, "Zwiebel", "gehackt", ""),
|
"1 Zwiebel gehackt": (1, "Zwiebel", "gehackt", ""),
|
||||||
"1 EL Kokosöl": (1, "EL", "Kokosöl", ""),
|
"1 EL Kokosöl": (1, "EL", "Kokosöl", ""),
|
||||||
"0.5 paket jäst (à 50 g)": (0.5, "paket", "jäst", "à 50 g"),
|
"0.5 paket jäst (à 50 g)": (0.5, "paket", "jäst", "à 50 g"),
|
||||||
"ägg": (0, "", "ägg", ""),
|
"ägg": (0, None, "ägg", ""),
|
||||||
"50 g smör eller margarin": (50, "g", "smör eller margarin", ""),
|
"50 g smör eller margarin": (50, "g", "smör eller margarin", ""),
|
||||||
"3,5 l Wasser": (3.5, "l", "Wasser", ""),
|
"3,5 l Wasser": (3.5, "l", "Wasser", ""),
|
||||||
"3.5 l Wasser": (3.5, "l", "Wasser", ""),
|
"3.5 l Wasser": (3.5, "l", "Wasser", ""),
|
||||||
@ -70,4 +70,4 @@ def test_ingredient_parser():
|
|||||||
for key, val in expectations.items():
|
for key, val in expectations.items():
|
||||||
count += 1
|
count += 1
|
||||||
parsed = ingredient_parser.parse(key)
|
parsed = ingredient_parser.parse(key)
|
||||||
assert val == parsed
|
assert parsed == val
|
||||||
|
@ -1190,6 +1190,11 @@ def recipe_from_source(request):
|
|||||||
'error': True,
|
'error': True,
|
||||||
'msg': _('Connection Refused.')
|
'msg': _('Connection Refused.')
|
||||||
}, status=400)
|
}, status=400)
|
||||||
|
except requests.exceptions.MissingSchema:
|
||||||
|
return JsonResponse({
|
||||||
|
'error': True,
|
||||||
|
'msg': _('Bad URL Schema.')
|
||||||
|
}, status=400)
|
||||||
recipe_json, recipe_tree, recipe_html, recipe_images = get_recipe_from_source(data, url, request)
|
recipe_json, recipe_tree, recipe_html, recipe_images = get_recipe_from_source(data, url, request)
|
||||||
if len(recipe_tree) == 0 and len(recipe_json) == 0:
|
if len(recipe_tree) == 0 and len(recipe_json) == 0:
|
||||||
return JsonResponse({
|
return JsonResponse({
|
||||||
|
Loading…
Reference in New Issue
Block a user