From 88c5159f52d6d6948f02f917a272616475d48438 Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Wed, 23 Jul 2014 17:55:39 +0200 Subject: [PATCH 1/7] [FIX] conversion_dict is now created in the generic parser --- account_statement_base_import/parser/file_parser.py | 11 ++--------- .../parser/generic_file_parser.py | 9 ++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/account_statement_base_import/parser/file_parser.py b/account_statement_base_import/parser/file_parser.py index 125605f2..ad810169 100644 --- a/account_statement_base_import/parser/file_parser.py +++ b/account_statement_base_import/parser/file_parser.py @@ -42,7 +42,7 @@ class FileParser(BankStatementImportParser): """ :param char: parse_name: The name of the parser :param char: ftype: extension of the file (could be csv, xls or xlsx) - :param dict: extra_fields: extra fields to add to the conversion dict. In the format + :param dict: extra_fields: extra fields to put into the conversion dict. In the format {fieldname: fieldtype} :param list: header : specify header fields if the csv file has no header """ @@ -53,14 +53,7 @@ class FileParser(BankStatementImportParser): else: raise except_osv(_('User Error'), _('Invalid file type %s. Please use csv, xls or xlsx') % ftype) - self.conversion_dict = { - 'ref': unicode, - 'label': unicode, - 'date': datetime.datetime, - 'amount': float_or_zero, - } - if extra_fields: - self.conversion_dict.update(extra_fields) + self.conversion_dict = extra_fields self.keys_to_validate = self.conversion_dict.keys() self.fieldnames = header self._datemode = 0 # used only for xls documents, diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 81e51c8c..e60bedf9 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -24,6 +24,7 @@ import csv import tempfile import datetime from file_parser import FileParser ++from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero try: import xlrd except: @@ -38,7 +39,13 @@ class GenericFileParser(FileParser): """ def __init__(self, parse_name, ftype='csv', **kwargs): - super(GenericFileParser, self).__init__(parse_name, ftype=ftype, **kwargs) + conversion_dict = { + 'ref': unicode, + 'label': unicode, + 'date': datetime.datetime, + 'amount': float_or_zero, + } + super(GenericFileParser, self).__init__(parse_name, ftype=ftype, extra_fields=conversion_dict, **kwargs) @classmethod def parser_for(cls, parser_name): From 600fb4dd86b134ab55cd3d8e69df08f27be45445 Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Wed, 23 Jul 2014 20:03:03 +0200 Subject: [PATCH 2/7] replace unicode by ustr --- .../parser/generic_file_parser.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index e60bedf9..04149d1b 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -24,7 +24,8 @@ import csv import tempfile import datetime from file_parser import FileParser -+from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +from openerp.loglevels import ustr try: import xlrd except: @@ -40,8 +41,8 @@ class GenericFileParser(FileParser): def __init__(self, parse_name, ftype='csv', **kwargs): conversion_dict = { - 'ref': unicode, - 'label': unicode, + 'ref': ustr, + 'label': ustr, 'date': datetime.datetime, 'amount': float_or_zero, } From 92c523709d077befebd961196a583bcd8c24c94c Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Thu, 24 Jul 2014 10:56:31 +0200 Subject: [PATCH 3/7] import ustr from tools --- account_statement_base_import/parser/generic_file_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 04149d1b..c1da333b 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -25,7 +25,7 @@ import tempfile import datetime from file_parser import FileParser from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero -from openerp.loglevels import ustr +from openerp.tools import ustr try: import xlrd except: From 5db3d914d18f1476a722fa077eebf3e5033a4c00 Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Wed, 17 Sep 2014 10:32:23 +0200 Subject: [PATCH 4/7] fix pep8 col --- .../parser/generic_file_parser.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index c1da333b..14be05c9 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -24,7 +24,9 @@ import csv import tempfile import datetime from file_parser import FileParser -from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +from openerp.addons.account_statement_base_import.parser.file_parser import ( + float_or_zero +) from openerp.tools import ustr try: import xlrd @@ -46,7 +48,9 @@ class GenericFileParser(FileParser): 'date': datetime.datetime, 'amount': float_or_zero, } - super(GenericFileParser, self).__init__(parse_name, ftype=ftype, extra_fields=conversion_dict, **kwargs) + super(GenericFileParser, self).__init__(parse_name, ftype=ftype, + extra_fields=conversion_dict, + **kwargs) @classmethod def parser_for(cls, parser_name): From 5e8830fde86a8432e5dda4becbd638f4c3bc0276 Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Wed, 23 Jul 2014 17:55:39 +0200 Subject: [PATCH 5/7] [FIX] conversion_dict is now created in the generic parser --- .../parser/file_parser.py | 11 ++--------- .../parser/generic_file_parser.py | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/account_statement_base_import/parser/file_parser.py b/account_statement_base_import/parser/file_parser.py index 7eb107a6..ff8ee482 100644 --- a/account_statement_base_import/parser/file_parser.py +++ b/account_statement_base_import/parser/file_parser.py @@ -46,7 +46,7 @@ class FileParser(BankStatementImportParser): :param char: parse_name: The name of the parser :param char: ftype: extension of the file (could be csv, xls or xlsx) - :param dict: extra_fields: extra fields to add to the conversion + :param dict: extra_fields: extra fields to put into the conversion dict. In the format {fieldname: fieldtype} :param list: header : specify header fields if the csv file has no header @@ -58,14 +58,7 @@ class FileParser(BankStatementImportParser): raise except_orm( _('User Error'), _('Invalid file type %s. Please use csv, xls or xlsx') % ftype) - self.conversion_dict = { - 'ref': unicode, - 'label': unicode, - 'date': datetime.datetime, - 'amount': float_or_zero, - } - if extra_fields: - self.conversion_dict.update(extra_fields) + self.conversion_dict = extra_fields self.keys_to_validate = self.conversion_dict.keys() self.fieldnames = header self._datemode = 0 # used only for xls documents, diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 03f4dd13..69bc8725 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -20,6 +20,11 @@ import datetime from file_parser import FileParser +from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +try: + import xlrd +except: + raise Exception(_('Please install python lib xlrd')) class GenericFileParser(FileParser): @@ -30,8 +35,16 @@ class GenericFileParser(FileParser): """ def __init__(self, parse_name, ftype='csv', **kwargs): + conversion_dict = { + 'ref': unicode, + 'label': unicode, + 'date': datetime.datetime, + 'amount': float_or_zero, + } super(GenericFileParser, self).__init__( - parse_name, ftype=ftype, **kwargs) + parse_name, ftype=ftype, + extra_fields=conversion_dict, + **kwargs) @classmethod def parser_for(cls, parser_name): From 02ec16a6aa88d60a67260eccb17d06c4e0ed60f7 Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Wed, 23 Jul 2014 20:03:03 +0200 Subject: [PATCH 6/7] replace unicode by ustr --- account_statement_base_import/parser/generic_file_parser.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 69bc8725..5c792510 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -21,6 +21,7 @@ import datetime from file_parser import FileParser from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +from openerp.loglevels import ustr try: import xlrd except: @@ -36,8 +37,8 @@ class GenericFileParser(FileParser): def __init__(self, parse_name, ftype='csv', **kwargs): conversion_dict = { - 'ref': unicode, - 'label': unicode, + 'ref': ustr, + 'label': ustr, 'date': datetime.datetime, 'amount': float_or_zero, } From d4799cfbc37c2c7981d1029821669207f2a39d4e Mon Sep 17 00:00:00 2001 From: florian-dacosta Date: Thu, 25 Sep 2014 15:46:21 +0200 Subject: [PATCH 7/7] Fix pep8 issue --- account_statement_base_import/parser/generic_file_parser.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 39c1117f..9e5e1a96 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -24,10 +24,6 @@ from openerp.addons.account_statement_base_import.parser.file_parser import ( float_or_zero ) from openerp.tools import ustr -try: - import xlrd -except: - raise Exception(_('Please install python lib xlrd')) class GenericFileParser(FileParser): @@ -45,7 +41,7 @@ class GenericFileParser(FileParser): 'amount': float_or_zero, } super(GenericFileParser, self).__init__( - parse_name, ftype=ftype, + parse_name, ftype=ftype, extra_fields=conversion_dict, **kwargs)