From 745b5fbd1b2b09f75a37c927794ee2ae900e0c53 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 27 Jul 2013 14:25:58 +0200 Subject: [PATCH] add method to convert currency value to text --- weboob/capabilities/bank.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/weboob/capabilities/bank.py b/weboob/capabilities/bank.py index 8f802c3c..6f8bec57 100644 --- a/weboob/capabilities/bank.py +++ b/weboob/capabilities/bank.py @@ -22,6 +22,8 @@ import re from datetime import date, datetime from binascii import crc32 +from weboob.tools.ordereddict import OrderedDict + from .base import CapBaseObject, Field, StringField, DateField, DecimalField, IntField, UserError from .collection import ICapCollection @@ -50,12 +52,12 @@ class Currency(object): CUR_CHF = 2 CUR_USD = 3 - TXT2CUR = {u'€': CUR_EUR, - u'EUR': CUR_EUR, - u'CHF': CUR_CHF, - u'$': CUR_USD, - u'USD': CUR_USD, - } + TXT2CUR = OrderedDict(((u'€', CUR_EUR), + (u'EUR', CUR_EUR), + (u'CHF', CUR_CHF), + (u'$', CUR_USD), + (u'USD', CUR_USD), + )) EXTRACTOR = re.compile(r'[\d\s,\.\-]', re.UNICODE) @@ -84,6 +86,13 @@ class Currency(object): return cur return klass.CUR_UNKNOWN + @classmethod + def currency2txt(klass, currency): + for txt, value in klass.TXT2CUR.iteritems(): + if value == currency: + return txt + return u'' + class Recipient(CapBaseObject): """ @@ -119,6 +128,10 @@ class Account(Recipient, Currency): def __repr__(self): return u"" % (self.id, self.label) + @property + def currency_text(self): + return Currency.currency2txt(self.currency) + class Transaction(CapBaseObject): """