diff --git a/tom_dataproducts/data_processor.py b/tom_dataproducts/data_processor.py index 71dde5bd..1bf7eaac 100644 --- a/tom_dataproducts/data_processor.py +++ b/tom_dataproducts/data_processor.py @@ -14,7 +14,7 @@ DEFAULT_DATA_PROCESSOR_CLASS = 'tom_dataproducts.data_processor.DataProcessor' -def run_data_processor(dp): +def run_data_processor(dp, dp_type_override=None): """ Reads the `data_product_type` from the dp parameter and imports the corresponding `DATA_PROCESSORS` specified in `settings.py`, then runs `process_data` and inserts the returned values into the database. @@ -22,12 +22,16 @@ def run_data_processor(dp): :param dp: DataProduct which will be processed into a list :type dp: DataProduct + :param dp_type_override: Optional. DataProduct type to override with. If None, the + type from the `dp` object is used. + :type dp_type_override: str, optional + :returns: QuerySet of `ReducedDatum` objects created by the `run_data_processor` call :rtype: `QuerySet` of `ReducedDatum` """ - + data_type = dp_type_override or dp.data_product_type try: - processor_class = settings.DATA_PROCESSORS[dp.data_product_type] + processor_class = settings.DATA_PROCESSORS[data_type] except Exception: processor_class = DEFAULT_DATA_PROCESSOR_CLASS @@ -41,7 +45,7 @@ def run_data_processor(dp): data_processor = clazz() # data returned by process_data is a list of 3-tuples: (timestamp, datum, source) data = data_processor.process_data(dp) - data_type = data_processor.data_type_override() or dp.data_product_type + data_type = data_processor.data_type_override() or data_type # Add only the new (non-duplicate) ReducedDatum objects to the database