summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commit254b457cf20d21aa80ed2761f88909ca4c83f67f (patch)
treef4a385c06640e43f4f49933777529d9b452a636f /ishtar_common
parent0f9d54990a618c3c2908ff235299df7a64d29dd2 (diff)
downloadIshtar-254b457cf20d21aa80ed2761f88909ca4c83f67f.tar.bz2
Ishtar-254b457cf20d21aa80ed2761f88909ca4c83f67f.zip
Import: close opened files
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/data_importer.py11
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: