diff --git a/fin_defs/parse_price.py b/fin_defs/parse_price.py index 1476369..69e7d35 100644 --- a/fin_defs/parse_price.py +++ b/fin_defs/parse_price.py @@ -70,13 +70,8 @@ RE_KR_AMOUNT = re.compile( flags=re.IGNORECASE, ) -RE_AMOUNT_KR = re.compile( - '(' + RE_PRODUCT_PRICE_AMOUNT + r')\s*kr\.?', - flags=re.IGNORECASE, -) - -RE_AMOUNT_SUFFIX = re.compile( - '(' + RE_PRODUCT_PRICE_AMOUNT + r')\s*(?:;-|,-|\.-)?', +RE_AMOUNT_SUFFIX_KR = re.compile( + '(' + RE_PRODUCT_PRICE_AMOUNT + r')\s*(?:;-|,-|\.-)?\s*(?:kr\.?)?', flags=re.IGNORECASE, ) @@ -104,7 +99,7 @@ def parse_price(text: str, default_currency: Asset) -> AssetAmount | None: code, sym, amount_text = m.group('code'), m.group('sym'), m.group('amount') elif m := RE_AMOUNT_CODE.fullmatch(text): code, amount_text = m.group('code'), m.group('amount') - elif m := (RE_KR_AMOUNT.fullmatch(text) or RE_AMOUNT_KR.fullmatch(text) or RE_AMOUNT_SUFFIX.fullmatch(text)): + elif m := (RE_KR_AMOUNT.fullmatch(text) or RE_AMOUNT_SUFFIX_KR.fullmatch(text)): code, amount_text = 'DKK', m.group('amount') else: logger.debug('Unknown format: %s', text) diff --git a/test/test_parse_price.py b/test/test_parse_price.py index 5e579c0..98219b6 100644 --- a/test/test_parse_price.py +++ b/test/test_parse_price.py @@ -16,6 +16,7 @@ PRICES_PARSABLE = [ ('100 kr', dkk(100)), (' 100 kr ', dkk(100)), ('349.-', dkk(349)), + ('90,- kr', dkk(90)), ('3.000 kr.', dkk(3000)), ('3.000.000 kr.', dkk(3_000_000)), ('3.000.000,25 kr.', dkk(3_000_000.25)),