diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-01-13 19:33:55 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-01-13 19:33:55 +0100 |
commit | 254b457cf20d21aa80ed2761f88909ca4c83f67f (patch) | |
tree | f4a385c06640e43f4f49933777529d9b452a636f | |
parent | 0f9d54990a618c3c2908ff235299df7a64d29dd2 (diff) | |
download | Ishtar-254b457cf20d21aa80ed2761f88909ca4c83f67f.tar.bz2 Ishtar-254b457cf20d21aa80ed2761f88909ca4c83f67f.zip |
Import: close opened files
-rw-r--r-- | ishtar_common/data_importer.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 85c5437d1..02a100325 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -890,6 +890,7 @@ class Importer(object): self.match_table = {} self.concats = set() self.concat_str = {} + self.to_be_close = [] if import_instance and import_instance.imported_images: self.archive = import_instance.imported_images self._defaults = self.DEFAULTS.copy() @@ -1104,9 +1105,14 @@ class Importer(object): results.append(self._line_processing(idx_line, line)) except ImporterError as msg: self.errors.append((idx_line, None, msg)) + for item in self.to_be_close: + item.close() return results def _line_processing(self, idx_line, line): + for item in self.to_be_close: + item.close() + self.to_be_close = [] self.idx_line = idx_line if self.skip_lines > idx_line: self.validity.append(line) @@ -1302,7 +1308,6 @@ class Importer(object): # keep an empty value if there is only empty values values = [values[0]] formated_values = [] - field_name = formater.field_name force_new = formater.force_new if type(field_name) in (list, tuple): @@ -1342,6 +1347,10 @@ class Importer(object): return if formater.value_format and value is not None and value != "": value = formater.value_format.format(value) + if hasattr(value, "close"): + # opened file are kept - they need to be listed and closed + # later + self.to_be_close.append(value) formated_values.append(value) if hasattr(func, 'match_table'): if field_name not in self.match_table: |