diff --git a/catalyst/__main__.py b/catalyst/__main__.py index 5f8f9136..d86276ba 100644 --- a/catalyst/__main__.py +++ b/catalyst/__main__.py @@ -5,6 +5,7 @@ from functools import wraps import click import logbook import pandas as pd +from catalyst.alt_data.marketplace import Marketplace from six import text_type from catalyst.data import bundles as bundles_module @@ -573,6 +574,75 @@ def ingest_exchange(ctx, exchange_name, data_frequency, start, end, ) +@main.command(name='ls-data') +@click.pass_context +def ls_data(ctx): + click.echo( + 'Listing available alternative data sources' + ) + marketplace = Marketplace() + marketplace.list() + click.echo('Done') + + +@main.command(name='register-data') +@click.argument('data_source_name') +@click.pass_context +def register_data(ctx, data_source_name): + click.echo( + 'Registering to data source: {}'.format(data_source_name) + ) + marketplace = Marketplace() + marketplace.register(data_source_name) + click.echo('Done') + + +@main.command(name='ingest-data') +@click.argument('data_source_name') +@click.option( + '-f', + '--data-frequency', + type=click.Choice({'daily', 'minute', 'daily,minute', 'minute,daily'}), + default='daily', + show_default=True, + help='The data frequency of the desired OHLCV bars.', +) +@click.option( + '-s', + '--start', + default=None, + type=Date(tz='utc', as_timestamp=True), + help='The start date of the data range. (default: one year from end date)', +) +@click.option( + '-e', + '--end', + default=None, + type=Date(tz='utc', as_timestamp=True), + help='The end date of the data range. (default: today)', +) +@click.pass_context +def ingest_data(ctx, data_source_name, data_frequency, start, end): + click.echo( + 'Ingesting data: {}'.format(data_source_name) + ) + marketplace = Marketplace() + marketplace.ingest(data_source_name, data_frequency, start, end) + click.echo('Done') + + +@main.command(name='clean-data') +@click.argument('data_source_name') +@click.pass_context +def clean_data(ctx, data_source_name): + click.echo( + 'Cleaning data source: {}'.format(data_source_name) + ) + marketplace = Marketplace() + marketplace.clean(data_source_name) + click.echo('Done') + + @main.command(name='clean-algo') @click.option( '-n', diff --git a/catalyst/alt_data/__init__.py b/catalyst/alt_data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/catalyst/alt_data/marketplace.py b/catalyst/alt_data/marketplace.py new file mode 100644 index 00000000..8f4610cc --- /dev/null +++ b/catalyst/alt_data/marketplace.py @@ -0,0 +1,15 @@ +class Marketplace: + def __init__(self): + pass + + def list(self): + pass + + def register(self, data_source_name): + pass + + def ingest(self, data_source_name, data_frequency, start, end): + pass + + def clean(self, data_source_name): + pass \ No newline at end of file