Commit 9c502ce5d6673552084598f7af45d35cc03d0b2d

Authored by Sergio Oliveira
1 parent 540555ad

Fixed to only call tasks if fetch_data is not abstract

Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
colab/plugins/data/base_importer.py
@@ -11,4 +11,9 @@ class PluginDataImporter(object): @@ -11,4 +11,9 @@ class PluginDataImporter(object):
11 11
12 @abc.abstractmethod 12 @abc.abstractmethod
13 def fetch_data(self): 13 def fetch_data(self):
14 - raise NotImplementedError('fetchData not yet implemented') 14 + raise NotImplementedError
  15 + fetch_data.is_abstract = True
  16 +
  17 + @abc.abstractmethod
  18 + def app_label(self):
  19 + raise NotImplementedError
colab/plugins/data/tasks.py
@@ -27,10 +27,10 @@ def register_tasks(): @@ -27,10 +27,10 @@ def register_tasks():
27 27
28 for item_name in dir(module): 28 for item_name in dir(module):
29 item = getattr(module, item_name) 29 item = getattr(module, item_name)
30 - if item is PluginDataImporter:  
31 - continue  
32 30
33 if callable(getattr(item, 'fetch_data', None)): 31 if callable(getattr(item, 'fetch_data', None)):
  32 + if getattr(item.fetch_data, 'is_abstract', False):
  33 + continue
34 instance = item() 34 instance = item()
35 task_name = '{}.{}'.format(module.__name__, item_name) 35 task_name = '{}.{}'.format(module.__name__, item_name)
36 task = app.task(name=task_name, bind=True)(instance.fetch_data) 36 task = app.task(name=task_name, bind=True)(instance.fetch_data)