From ee482afbd2068c316cdbd7c7f67ab7dcc1a2f159 Mon Sep 17 00:00:00 2001 From: Michael Genson Date: Sun, 22 Feb 2026 17:32:51 +0000 Subject: [PATCH] fix oz -> fl oz conversion in merge --- .../parser_services/parser_utils/unit_utils.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mealie/services/parser_services/parser_utils/unit_utils.py b/mealie/services/parser_services/parser_utils/unit_utils.py index b6167bb98..30fa1d85d 100644 --- a/mealie/services/parser_services/parser_utils/unit_utils.py +++ b/mealie/services/parser_services/parser_utils/unit_utils.py @@ -120,8 +120,15 @@ def merge_quantity_and_unit[T: CreateIngredientUnit]( PINT_UNIT_2_TXT = "_mealie_unit_2" uc = UnitConverter() - uc.ureg.define(f"{PINT_UNIT_1_TXT} = {unit_1.standard_quantity} * {unit_1.standard_unit}") - uc.ureg.define(f"{PINT_UNIT_2_TXT} = {unit_2.standard_quantity} * {unit_2.standard_unit}") + + # pre-process units to account for ounce -> fluid ounce conversion + unit_1_standard = uc.parse(unit_1.standard_unit, strict=True) + unit_2_standard = uc.parse(unit_2.standard_unit, strict=True) + unit_1_standard, unit_2_standard = uc._resolve_ounce(unit_1_standard, unit_2_standard) + + # create custon unit definition so pint can handle them natively + uc.ureg.define(f"{PINT_UNIT_1_TXT} = {unit_1.standard_quantity} * {unit_1_standard}") + uc.ureg.define(f"{PINT_UNIT_2_TXT} = {unit_2.standard_quantity} * {unit_2_standard}") pint_unit_1 = uc.parse(PINT_UNIT_1_TXT) pint_unit_2 = uc.parse(PINT_UNIT_2_TXT)