American amount to decimal conversion; PDF decompression function; regexp-based tokenizer. Part of #1641
This commit is contained in:
parent
c79dcc22df
commit
d7acf211bd
5 changed files with 216 additions and 1 deletions
|
|
@ -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')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue