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: | 
