Fix caching of get_converters_by_datatype result

This commit is contained in:
mvdbeek
2017-09-03 17:17:49 +02:00
parent d1a2007275
commit 2d8b242e69
+4 -4
View File
@@ -75,7 +75,7 @@ class Registry(object):
self.xml_filename = None
self._edam_formats_mapping = None
self._edam_data_mapping = None
self._converters_by_datatype = None
self._converters_by_datatype = {}
# Build sites
self.build_sites = {}
self.display_sites = {}
@@ -798,7 +798,7 @@ class Registry(object):
def get_converters_by_datatype(self, ext):
"""Returns available converters by source type"""
if not self._converters_by_datatype:
if ext not in self._converters_by_datatype:
converters = odict()
source_datatype = type(self.get_datatype_by_extension(ext))
for ext2, converters_dict in self.datatype_converters.items():
@@ -808,8 +808,8 @@ class Registry(object):
# Ensure ext-level converters are present
if ext in self.datatype_converters.keys():
converters.update(self.datatype_converters[ext])
self._converters_by_datatype = converters
return self._converters_by_datatype
self._converters_by_datatype[ext] = converters
return self._converters_by_datatype[ext]
def get_converter_by_target_type(self, source_ext, target_ext):
"""Returns a converter based on source and target datatypes"""