diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-05-05 10:23:24 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-05-05 10:23:24 +0200 |
commit | 9f4eb84a516178eb48c4d381dac0f3eb1c9d9548 (patch) | |
tree | 253c674f650317de30dde9dc85beae7722c8b299 /ishtar_common/data_importer.py | |
parent | 05415db1c4297ecbbcce470e3bea4154e626feab (diff) | |
download | Ishtar-9f4eb84a516178eb48c4d381dac0f3eb1c9d9548.tar.bz2 Ishtar-9f4eb84a516178eb48c4d381dac0f3eb1c9d9548.zip |
Import: multiple target for column not for regex split anymore
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r-- | ishtar_common/data_importer.py | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 8ce613755..b500baa3f 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1259,7 +1259,6 @@ class Importer(object): c_row.append(_('Not imported')) return - # regex management if formater.regexp: # multiline regexp is a mess... val = val.replace('\n', NEW_LINE_BREAK) @@ -1286,18 +1285,21 @@ class Importer(object): val_group.append( g.replace(NEW_LINE_BREAK, '\n') if g else '' ) - else: - val_group = [val] + val = "".join(val_group) + + field_names = formater.field_name + if not isinstance(field_names, (list, tuple)): + field_names = [field_names] c_values = [] - for idx_v, v in enumerate(val_group): + for idx_fields, field_name in enumerate(field_names): func = formater.formater if type(func) in (list, tuple): - func = func[idx_v] + func = func[idx_fields] if not callable(func) and type(func) == str: func = getattr(self, func) - values = [v] + values = [val] many_values = getattr(func, 'many_split', None) if many_values: values = re.split(func.many_split, values[0]) @@ -1311,14 +1313,14 @@ class Importer(object): field_name = formater.field_name force_new = formater.force_new if type(field_name) in (list, tuple): - field_name = field_name[idx_v] + field_name = field_name[idx_fields] if type(force_new) in (list, tuple): - force_new = force_new[idx_v] + force_new = force_new[idx_fields] if formater.concat: self.concats.add(field_name) concat_str = formater.concat_str if type(formater.concat_str) in (list, tuple): - concat_str = concat_str[idx_v] + concat_str = concat_str[idx_fields] if concat_str: self.concat_str[field_name] = concat_str @@ -1326,19 +1328,22 @@ class Importer(object): formater.import_instance = self.import_instance formater.reinit_db_target( self.DB_TARGETS["{}-{}".format(idx_col + 1, field_name)], - idx_v) + idx_fields) for idx, v in enumerate(values): try: + """ + # disable regex cut if formater.regexp_formater_args: args = [] - for idx in formater.regexp_formater_args[idx_v]: + for idx in formater.regexp_formater_args[idx_fields]: args.append(val_group[idx]) value = func.format(*args) else: - if getattr(func, 'need_archive', False): - value = func.format(v, archive=self.archive) - else: - value = func.format(v) + """ + if getattr(func, 'need_archive', False): + value = func.format(v, archive=self.archive) + else: + value = func.format(v) except ValueError as e: if formater.required: self.c_errors = True |