|
23 | 23 | from tortoise.transactions import get_connection |
24 | 24 |
|
25 | 25 | from dipdup.codegen import DipDupCodeGenerator |
26 | | -from dipdup.config import CoinbaseDatasourceConfig |
27 | 26 | from dipdup.config import ContractConfig |
28 | 27 | from dipdup.config import DatasourceConfigT |
29 | 28 | from dipdup.config import DipDupConfig |
30 | 29 | from dipdup.config import IndexTemplateConfig |
31 | | -from dipdup.config import IpfsDatasourceConfig |
32 | | -from dipdup.config import MetadataDatasourceConfig |
33 | 30 | from dipdup.config import OperationIndexConfig |
34 | 31 | from dipdup.config import PostgresDatabaseConfig |
35 | | -from dipdup.config import TzktDatasourceConfig |
36 | 32 | from dipdup.config import default_hooks |
37 | 33 | from dipdup.context import CallbackManager |
38 | 34 | from dipdup.context import DipDupContext |
39 | 35 | from dipdup.context import MetadataCursor |
40 | 36 | from dipdup.context import pending_indexes |
41 | | -from dipdup.datasources.coinbase.datasource import CoinbaseDatasource |
42 | 37 | from dipdup.datasources.datasource import Datasource |
43 | 38 | from dipdup.datasources.datasource import IndexDatasource |
44 | | -from dipdup.datasources.ipfs.datasource import IpfsDatasource |
45 | | -from dipdup.datasources.metadata.datasource import MetadataDatasource |
| 39 | +from dipdup.datasources.factory import DatasourceFactory |
46 | 40 | from dipdup.datasources.tzkt.datasource import TzktDatasource |
47 | 41 | from dipdup.enums import ReindexingReason |
48 | 42 | from dipdup.exceptions import ConfigInitializationException |
@@ -376,32 +370,8 @@ async def _create_datasources(self) -> None: |
376 | 370 | if name in self._datasources: |
377 | 371 | continue |
378 | 372 |
|
379 | | - if isinstance(datasource_config, TzktDatasourceConfig): |
380 | | - datasource = TzktDatasource( |
381 | | - url=datasource_config.url, |
382 | | - http_config=datasource_config.http, |
383 | | - merge_subscriptions=self._config.advanced.merge_subscriptions, |
384 | | - ) |
385 | | - elif isinstance(datasource_config, CoinbaseDatasourceConfig): |
386 | | - datasource = CoinbaseDatasource( |
387 | | - http_config=datasource_config.http, |
388 | | - ) |
389 | | - elif isinstance(datasource_config, MetadataDatasourceConfig): |
390 | | - datasource = MetadataDatasource( |
391 | | - url=datasource_config.url, |
392 | | - network=datasource_config.network, |
393 | | - http_config=datasource_config.http, |
394 | | - ) |
395 | | - elif isinstance(datasource_config, IpfsDatasourceConfig): |
396 | | - datasource = IpfsDatasource( |
397 | | - url=datasource_config.url, |
398 | | - http_config=datasource_config.http, |
399 | | - ) |
400 | | - else: |
401 | | - raise NotImplementedError |
| 373 | + datasource = DatasourceFactory.build(name, self._config) |
402 | 374 |
|
403 | | - datasource.set_logger(datasource_config.name) |
404 | | - datasource.set_user_agent(self._config.package) |
405 | 375 | self._datasources[name] = datasource |
406 | 376 | self._datasources_by_config[datasource_config] = datasource |
407 | 377 |
|
|
0 commit comments