This commit is contained in:
Yaojia Wang
2026-01-13 00:10:27 +01:00
parent 1b7c61cdd8
commit b26fd61852
43 changed files with 7751 additions and 578 deletions

View File

@@ -173,12 +173,29 @@ class FieldNormalizer:
# Integer if no decimals
if num == int(num):
variants.append(str(int(num)))
variants.append(f"{int(num)},00")
variants.append(f"{int(num)}.00")
int_val = int(num)
variants.append(str(int_val))
variants.append(f"{int_val},00")
variants.append(f"{int_val}.00")
# European format with dot as thousand separator (e.g., 20.485,00)
if int_val >= 1000:
# Format: XX.XXX,XX
formatted = f"{int_val:,}".replace(',', '.')
variants.append(formatted) # 20.485
variants.append(f"{formatted},00") # 20.485,00
else:
variants.append(f"{num:.2f}")
variants.append(f"{num:.2f}".replace('.', ','))
# European format with dot as thousand separator
if num >= 1000:
# Split integer and decimal parts
int_part = int(num)
dec_part = num - int_part
formatted_int = f"{int_part:,}".replace(',', '.')
formatted = f"{formatted_int},{dec_part:.2f}"[2:] # Remove "0."
variants.append(f"{formatted_int},{int(dec_part * 100):02d}") # 20.485,00
except ValueError:
pass
@@ -247,9 +264,35 @@ class FieldNormalizer:
iso = parsed_date.strftime('%Y-%m-%d')
eu_slash = parsed_date.strftime('%d/%m/%Y')
eu_dot = parsed_date.strftime('%d.%m.%Y')
compact = parsed_date.strftime('%Y%m%d')
compact = parsed_date.strftime('%Y%m%d') # YYYYMMDD
compact_short = parsed_date.strftime('%y%m%d') # YYMMDD (e.g., 260108)
variants.extend([iso, eu_slash, eu_dot, compact])
# Short year with dot separator (e.g., 02.01.26)
eu_dot_short = parsed_date.strftime('%d.%m.%y')
# Spaced formats (e.g., "2026 01 12", "26 01 12")
spaced_full = parsed_date.strftime('%Y %m %d')
spaced_short = parsed_date.strftime('%y %m %d')
# Swedish month name formats (e.g., "9 januari 2026", "9 jan 2026")
swedish_months_full = [
'januari', 'februari', 'mars', 'april', 'maj', 'juni',
'juli', 'augusti', 'september', 'oktober', 'november', 'december'
]
swedish_months_abbrev = [
'jan', 'feb', 'mar', 'apr', 'maj', 'jun',
'jul', 'aug', 'sep', 'okt', 'nov', 'dec'
]
month_full = swedish_months_full[parsed_date.month - 1]
month_abbrev = swedish_months_abbrev[parsed_date.month - 1]
swedish_format_full = f"{parsed_date.day} {month_full} {parsed_date.year}"
swedish_format_abbrev = f"{parsed_date.day} {month_abbrev} {parsed_date.year}"
variants.extend([
iso, eu_slash, eu_dot, compact, compact_short,
eu_dot_short, spaced_full, spaced_short,
swedish_format_full, swedish_format_abbrev
])
return list(set(v for v in variants if v))