def daily_download(dataset_id):
    end_date = datetime.datetime.utcnow().replace(hour=0,
                                                  minute=0,
                                                  second=0,
                                                  microsecond=0)
    start_date = end_date - datetime.timedelta(days=1)
    print("Date range: %s-%s" % (start_date, end_date))
    dataset = Dataset(api=api, id=dataset_id)
    job = dataset.request_datafile(start_date, end_date)
    print("Waiting for the job to complete")
    job.wait_for_completion()
    output_filename = "dailydata-%s.csv" % start_date.strftime("%Y-%m-%d")
    job.save_to_file(output_filename)
    print("Daily download saved on:", output_filename)
Beispiel #2
0
        "count": {
            "field": "RP_ENTITY_ID"
        }
    }
}, {
    "average_news_count_90d": {
        "avg": {
            "field": "news_count_1d",
            "lookback": 90
        }
    }
}]

custom_dataset = Dataset(api=api,
                         name="Us30 indicators",
                         filters=new_filters,
                         fields=new_fields,
                         frequency='daily')
custom_dataset.save()
print(custom_dataset)

# query the datafile and save it to file
job = custom_dataset.request_datafile(
    start_date='2017-01-01 19:30',
    end_date='2017-01-02 19:30',
    compressed=True,
    time_zone='Europe/London',
)

job.save_to_file('output.csv')
if dataset_id is None:
    dataset = Dataset(api=api,
                      filters={},
                      name='Average sentiment',
                      frequency='daily',
                      fields=[{
                          'average_ess': {
                              'avg': {
                                  'field': 'EVENT_SENTIMENT_SCORE'
                              }
                          }
                      }])
    dataset_id = dataset.save()
else:
    dataset = api.get_dataset(dataset_id)

# job = Job(api=api,
#           token='xxx')  # if you already have a job you can use this

# ... or request a new one
job = dataset.request_datafile(
    start_date='2018-01-01 00:00:00',
    end_date='2018-01-02 00:00:00',
)

# write only the ROLLUP rows
for line in job.iterate_results():
    timestamp, entity_id, entity_name, avg_sentiment = line
    if entity_id == 'ROLLUP':
        print(line)
dataset = Dataset(api,
                  name='My Indicator dataset',
                  filters={"relevance": {"$gt": 90}},
                  frequency='daily',
                  fields=[{"avg_1d": {"avg": {"field": "EVENT_SENTIMENT_SCORE", "lookback": 1,
                                              "mode": "granular"}}},
                          {"avg_7d": {
                              "avg": {"field": "avg_1d", "lookback": 1, "mode": "granular"}}},
                          {"buzz_365d": {"buzz": {"field": "RP_ENTITY_ID", "lookback": 365}}},
                          {"newsvolume_1d": {"count": {"field": "RP_ENTITY_ID", "lookback": 1}}},
                          {"newsvolume_365d": {"avg": {"field": "newsvolume_1d", "lookback": 365,
                                                       "mode": "granular"}}}]
                  )
dataset.save()

# you can also change the fields, (remember to save afterward)
dataset.fields = [
    {"avg": {"avg": {"field": "EVENT_SENTIMENT_SCORE", "lookback": 365}}},
]
dataset.save()

# Following this, you can then generate a datafile (for your desired date range)
job = dataset.request_datafile(
    start_date='2018-04-10', end_date='2018-04-11',
    output_format='csv'
)
job.save_to_file('output.csv')  # This will poll until the file is ready for download

# a convenience function to delete all the dataset given a name
# delete_all_datasets_by_name(api, 'My Indicator dataset')