diff --git a/metadata-ingestion/src/datahub/ingestion/source/demo_data.py b/metadata-ingestion/src/datahub/ingestion/source/demo_data.py index 27202bb008..ed63e0edc1 100644 --- a/metadata-ingestion/src/datahub/ingestion/source/demo_data.py +++ b/metadata-ingestion/src/datahub/ingestion/source/demo_data.py @@ -1,11 +1,14 @@ +from typing import Iterable + from datahub.configuration.common import ConfigModel -from datahub.ingestion.api.common import PipelineContext +from datahub.ingestion.api.common import PipelineContext, WorkUnit from datahub.ingestion.api.decorators import ( SupportStatus, config_class, platform_name, support_status, ) +from datahub.ingestion.api.source import Source, SourceReport from datahub.ingestion.source.file import FileSourceConfig, GenericFileSource from datahub.utilities.sample_data import download_sample_data @@ -16,18 +19,19 @@ class DemoDataConfig(ConfigModel): @platform_name("Demo Data") -@config_class(ConfigModel) +@config_class(DemoDataConfig) @support_status(SupportStatus.UNKNOWN) -class DemoDataSource(GenericFileSource): +class DemoDataSource(Source): """ This source loads sample data into DataHub. It is intended for demo and testing purposes only. """ def __init__(self, ctx: PipelineContext, config: DemoDataConfig): - file_config = FileSourceConfig(path=download_sample_data()) - super().__init__(ctx, file_config) + file_config = FileSourceConfig(path=str(download_sample_data())) + self.file_source = GenericFileSource(ctx, file_config) - @classmethod - def create(cls, config_dict, ctx): - config = DemoDataConfig.parse_obj(config_dict or {}) - return cls(ctx, config) + def get_workunits(self) -> Iterable[WorkUnit]: + yield from self.file_source.get_workunits() + + def get_report(self) -> SourceReport: + return self.file_source.get_report()