From 63dc4e05da4e9c38efc38dd32b07ddd44ed5a038 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Fri, 8 Feb 2013 14:45:44 +0100 Subject: [PATCH] support empty dates for transactions --- weboob/applications/boobank/boobank.py | 2 +- weboob/tools/capabilities/bank/transactions.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/weboob/applications/boobank/boobank.py b/weboob/applications/boobank/boobank.py index d10f1f03..b290d970 100644 --- a/weboob/applications/boobank/boobank.py +++ b/weboob/applications/boobank/boobank.py @@ -91,7 +91,7 @@ class TransactionsFormatter(IFormatter): label = obj.label if not label and hasattr(obj, 'raw'): label = obj.raw - return ' %-10s %-12s %-50s %10.2f' % (obj.date.strftime('%Y-%m-%d'), _type[:12], label[:50], obj.amount) + return ' %-10s %-12s %-50s %10.2f' % (obj.date.strftime('%Y-%m-%d') if not empty(obj.date) else '', _type[:12], label[:50], obj.amount) class TransferFormatter(IFormatter): diff --git a/weboob/tools/capabilities/bank/transactions.py b/weboob/tools/capabilities/bank/transactions.py index ae4f3f45..57f2543e 100644 --- a/weboob/tools/capabilities/bank/transactions.py +++ b/weboob/tools/capabilities/bank/transactions.py @@ -25,6 +25,7 @@ import re from weboob.capabilities.bank import Transaction from weboob.capabilities import NotAvailable from weboob.tools.misc import to_unicode +from weboob.tools.log import getLogger __all__ = ['FrenchTransaction'] @@ -36,6 +37,10 @@ class FrenchTransaction(Transaction): """ PATTERNS = [] + def __init__(self, *args, **kwargs): + Transaction.__init__(self, *args, **kwargs) + self.logger = getLogger('FrenchTransaction') + @classmethod def clean_amount(klass, text): """ @@ -87,8 +92,11 @@ class FrenchTransaction(Transaction): date = datetime.date(int(date[4:8]), int(date[2:4]), int(date[0:2])) elif '/' in date: date = datetime.date(*reversed([int(x) for x in date.split('/')])) - if date.year < 100: - date = date.replace(year=2000 + date.year) + if not isinstance(date, (datetime.date, datetime.datetime)): + self.logger.warning('Unable to parse date %r' % date) + date = NotAvailable + elif date.year < 100: + date = date.replace(year=2000 + date.year) self.date = date self.rdate = date