American amount to decimal conversion; PDF decompression function; regexp-based tokenizer. Part of #1641

This commit is contained in:
Oleg Plakhotniuk 2014-10-13 04:23:05 -05:00
commit d7acf211bd
5 changed files with 216 additions and 1 deletions

View file

@ -335,6 +335,14 @@ class AmericanTransaction(Transaction):
text = text.replace(',', ' ').replace('.', ',')
return FrenchTransaction.clean_amount(text)
@classmethod
def decimal_amount(klass, text):
"""
Convert a string containing an amount to Decimal.
"""
amnt = AmericanTransaction.clean_amount(text)
return Decimal(amnt) if amnt else Decimal('0')
def test():
clean_amount = AmericanTransaction.clean_amount
@ -344,3 +352,7 @@ def test():
assert clean_amount('$42.12 USD') == '42.12'
assert clean_amount('$12.442,12 USD') == '12442.12'
assert clean_amount('$12,442.12 USD') == '12442.12'
decimal_amount = AmericanTransaction.decimal_amount
assert decimal_amount('$12,442.12 USD') == Decimal('12442.12')
assert decimal_amount('') == Decimal('0')