In [1]:
from pprint import pprint
In [2]:
from accern import HistoricalClient

token = 'YOUR TOKEN'
Client = HistoricalClient(token)

schema = {
    'name': 'Daily',
    'description': 'Daily Sentiment data',
    'filters': [
        {
            'harvested_at': [
                ['2017-11-01 00:00:00', '2017-11-30 00:00:00']
            ],
            'entity_sentiment': [
                [-100, 50]
            ],
            'entity_ticker': [
                'AAPL',
                'AMZN'
            ]
        }
    ],
    'select': [
        {
            'field': 'entity_sentiment',
            'function': 'sum'
        },
        {
            'field': 'entity_ticker',
            'function': 'group'
        },
        {
            'field': 'harvested_at',
            'alias': 'day',
            'function': 'day'
        }
    ]
}

job = Client.create_job(schema)
In [3]:
pprint(job)
{u'description': u'Daily Sentiment data',
 u'error': None,
 u'id': u'3ab87543-ef36-4b68-8bc4-f4d4fe3c0bf1',
 u'link': None,
 u'name': u'Daily',
 u'query': {u'filters': [{u'entity_sentiment': [[-100, 50]],
                          u'entity_ticker': [u'AAPL', u'AMZN'],
                          u'harvested_at': [[u'2017-11-01 00:00:00',
                                             u'2017-11-30 00:00:00']]}],
            u'select': [{u'field': u'entity_sentiment', u'function': u'sum'},
                        {u'field': u'entity_ticker', u'function': u'group'},
                        {u'alias': u'day',
                         u'field': u'harvested_at',
                         u'function': u'day'}]},
 u'sql': u"SELECT SUM(entity_sentiment) AS sum_entity_sentiment, entity_ticker, DATE_TRUNC('day', harvested_at) AS day FROM (SELECT * FROM archive WHERE (((entity_sentiment >= -100 AND entity_sentiment <= 50)) AND ((entity_ticker = 'AAPL') OR (entity_ticker = 'AMZN')) AND ((harvested_at >= '2017-11-01 00:00:00'::TIMESTAMP AND harvested_at <= '2017-11-30 00:00:00'::TIMESTAMP)))) AS filters GROUP BY entity_ticker, day;",
 u'status': u'queued'}
In [4]:
resp = Client.get_jobs(job['id'])
    
pprint(resp)
{u'job': {u'description': u'Daily Sentiment data',
          u'error': None,
          u'id': u'3ab87543-ef36-4b68-8bc4-f4d4fe3c0bf1',
          u'link': u'https://nyc3.digitaloceanspaces.com/accern-internal/io/3ab87543-ef36-4b68-8bc4-f4d4fe3c0bf1.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=SY7O6O265QVX3DJOD5H3%2F20171222%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20171222T201403Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=545681ec0ed1f66ce824bd426f6589867a26c7417bdcf29e0c68449a13598054',
          u'name': u'Daily',
          u'query': {u'filters': [{u'entity_sentiment': [[-100, 50]],
                                   u'entity_ticker': [u'AAPL', u'AMZN'],
                                   u'harvested_at': [[u'2017-11-01 00:00:00',
                                                      u'2017-11-30 00:00:00']]}],
                     u'select': [{u'field': u'entity_sentiment',
                                  u'function': u'sum'},
                                 {u'field': u'entity_ticker',
                                  u'function': u'group'},
                                 {u'alias': u'day',
                                  u'field': u'harvested_at',
                                  u'function': u'day'}]},
          u'sql': u"SELECT SUM(entity_sentiment) AS sum_entity_sentiment, entity_ticker, DATE_TRUNC('day', harvested_at) AS day FROM (SELECT * FROM archive WHERE (((entity_sentiment >= -100 AND entity_sentiment <= 50)) AND ((entity_ticker = 'AAPL') OR (entity_ticker = 'AMZN')) AND ((harvested_at >= '2017-11-01 00:00:00'::TIMESTAMP AND harvested_at <= '2017-11-30 00:00:00'::TIMESTAMP)))) AS filters GROUP BY entity_ticker, day;",
          u'status': u'done'}}
In [5]:
import io
import requests
import pandas as pd
In [6]:
link = resp['job']['link']
raw_data = requests.get(link).content
data = pd.read_csv(io.StringIO(raw_data.decode('utf-8')))
print data.head(10)
   sum_entity_sentiment entity_ticker                  day
0                  16.6          AMZN  2017-11-12 00:00:00
1                 238.3          AMZN  2017-11-21 00:00:00
2                 119.8          AMZN  2017-11-24 00:00:00
3                  25.7          AMZN  2017-11-11 00:00:00
4                -230.6          AAPL  2017-11-03 00:00:00
5                 162.6          AAPL  2017-11-09 00:00:00
6                  -0.5          AMZN  2017-11-19 00:00:00
7                 -64.2          AMZN  2017-11-15 00:00:00
8                 -25.2          AMZN  2017-11-16 00:00:00
9                -217.9          AAPL  2017-11-01 00:00:00