('pound', 'GBP'), ('renminbi', 'CNY'), ('yens', 'JPY'), ('yen', 'JPY'), ('yuans', 'CNY'), ('yuan', 'CNY') ]) CURRENCY_ABBR_LIST = set( list(CURRENCY_SYMBOL_MAP.values()) + list(CURRENCY_TOKEN_MAP.values()) + list(CURRENCY_PREFIX_MAP.values()) ) CURRENCY_PREFIXES = set( list(CURRENCY_PREFIX_MAP.keys()) + list(CURRENCY_SYMBOL_MAP.values()) ) CURR_NUM_PTN = NUM_PTN.replace('(?<=\\W|^)', '') CURRENCY_PTN = r""" (?P<text> (?P<prefix>{currency_prefixes}|[{currency_symbols}])\s* (?P<amount>{num_ptn_1}) | (?P<amount>{num_ptn_2})\s* (?P<postfix>{currency_tokens}|{currency_abbreviations})(?:\W|$)) """.format( num_ptn_1=CURR_NUM_PTN, num_ptn_2=CURR_NUM_PTN,
DEFAULT_CURRENCY = 'USD' CURRENCY_TOKEN_MAP = OrderedDict([('chinese yuans', 'CNY'), ('chinese yuan', 'CNY'), ('dollars', 'USD'), ('dollar', 'USD'), ('euros', 'EUR'), ('euro', 'EUR'), ('pounds', 'GBP'), ('pound', 'GBP'), ('renminbi', 'CNY'), ('yens', 'JPY'), ('yen', 'JPY'), ('yuans', 'CNY'), ('yuan', 'CNY')]) CURRENCY_ABBR_LIST = set( list(CURRENCY_SYMBOL_MAP.values()) + list(CURRENCY_TOKEN_MAP.values()) + list(CURRENCY_PREFIX_MAP.values())) CURRENCY_PREFIXES = set( list(CURRENCY_PREFIX_MAP.keys()) + list(CURRENCY_SYMBOL_MAP.values())) CURR_NUM_PTN = NUM_PTN.replace('(?<=\\W|^)', '') TRIGGER_WORDS = ['price', 'cost'] CURRENCY_PTN = r""" (?P<text> (?P<prefix>{currency_prefixes}|[{currency_symbols}])\s* (?P<amount>{num_ptn_1}) | (?P<amount>{num_ptn_2})\s* (?P<postfix>{currency_tokens}|{currency_abbreviations})(?:\W|$) | (?:\W|^)(?P<trigger_word>{trigger_words})\s[^\d]{{,100}}(?P<amount>\d+(?:\.\d{{1,2}})?) )