區域設定感知的數字、貨幣與日期解析
從在地化 UI 或 OCR 擷取的文字,鮮少能直接通過 Python 的 float():"1.234,56"
在 de_DE 是一千二百多,但對 float 卻是格式錯誤。這些輔助函式以 Babel 的
CLDR 資料解析這類字串(並可反向格式化值),讓流程能跨區域設定讀取並斷言數字、貨幣與日
期。
babel 為**選用**相依(pip install je_auto_control[locale]),採延遲匯入,因此套
件在沒有它時仍可匯入;函式僅在未安裝 Babel 而被呼叫時才拋出明確錯誤。不匯入
PySide6。
無頭 API
from je_auto_control import (
parse_decimal, parse_number, format_decimal, format_currency,
format_date)
parse_decimal("1.234,56", locale="de_DE") # -> 1234.56
parse_number("1,234", locale="en_US") # -> 1234
format_decimal(1234.5, locale="en_US") # -> "1,234.5"
format_currency(1234.5, "USD", locale="en_US") # -> "$1,234.50"
format_date("2026-06-20", locale="de_DE", fmt="short") # -> "20.06.26"
format_date 接受 ISO YYYY-MM-DD 字串或 date 物件,``fmt`` 可為 short /
medium / long / full。同一區域設定內解析 + 格式化可往返一致。
Note
功能路徑需要 Babel;CI 以 importorskip 執行這些測試,因此在有安裝 Babel 處執
行、否則跳過。wiring/facade 則一律驗證。
執行器指令
指令 |
效果 |
|---|---|
|
由區域設定小數字串得到 |
|
由區域設定整數字串得到 |
|
依區域設定格式化數字的 |
|
依區域設定的貨幣(ISO 4217)``{text}``。 |
|
依區域設定格式化 ISO 日期的 |
相同操作亦提供為 MCP 工具(ac_parse_decimal / ac_parse_number /
ac_format_decimal / ac_format_currency / ac_format_date),以及 Script
Builder 中 Data 分類下的指令。