In [1]:
import requests
import numpy as np
from scipy.stats import norm
import timeseries as ts

In [2]:
# get
requests.get("http://localhost:5000/api/timeseries").json()


Out[2]:
{'Payload': [], 'Status': 'OK'}

In [3]:
# taken from go_client.py
# insert via rest api
def tsmaker(m, s, j):
    "returns metadata and a time series in the shape of a jittered normal"
    meta={}
    meta['order'] = int(np.random.choice([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]))
    meta['blarg'] = int(np.random.choice([1, 2]))
    t = np.arange(0.0, 1.0, 0.01)
    v = norm.pdf(t, m, s) + j*np.random.randn(100)
    return meta, ts.TimeSeries(t, v)

mus = np.random.uniform(low=0.0, high=1.0, size=50)
sigs = np.random.uniform(low=0.05, high=0.4, size=50)
jits = np.random.uniform(low=0.05, high=0.2, size=50)
for i, m, s, j in zip(range(50), mus, sigs, jits):
    meta, tsrs = tsmaker(m, s, j)
    # the primary key format is ts-1, ts-2, etc
    pk = "ts-{}".format(i)
    meta['vp'] = False # augment metadata with a boolean asking if this is a  VP.
    meta['pk'] = pk
    requests.post("http://localhost:5000/api/timeseries", json={"pk":pk, "t":list(tsrs.times()), "v":list(tsrs.values())})
    requests.post("http://localhost:5000/api/timeseries/upsert", json=meta)

In [4]:
# get ts-0
requests.get("http://localhost:5000/api/timeseries?field1=pk&value1=ts-0").json()


Out[4]:
{'Payload': [['ts-0', {'blarg': 1, 'order': 4, 'pk': 'ts-0', 'vp': False}]],
 'Status': 'OK'}

In [5]:
# commit to disk
requests.post("http://localhost:5000/api/commit").json()


Out[5]:
{'Payload': None, 'Status': 'OK'}

In [6]:
# delete ts
requests.delete("http://localhost:5000/api/timeseries?pk=ts-0").json()


Out[6]:
{'Payload': None, 'Status': 'OK'}

In [7]:
# see that it's gone
requests.get("http://localhost:5000/api/timeseries?field1=pk&value1=ts-0").json()


Out[7]:
{'Payload': [], 'Status': 'OK'}

In [8]:
# oops, want to rollback
requests.post("http://localhost:5000/api/rollback").json()


Out[8]:
{'Payload': None, 'Status': 'OK'}

In [9]:
# get back ts
requests.get("http://localhost:5000/api/timeseries?field1=pk&value1=ts-0").json()


Out[9]:
{'Payload': [['ts-0', {'blarg': 1, 'order': 4, 'pk': 'ts-0', 'vp': False}]],
 'Status': 'OK'}

In [10]:
# get mean of timeseries in decreasing order
requests.get("http://localhost:5000/api/timeseries/augmented?proc=stats&target=mean&target=std&sort_by=mean&sort_by_increasing=false").json()


Out[10]:
{'Payload': [['ts-0', {'mean': 1.0126144909822037, 'std': 1.1121798459260237}],
  ['ts-1', {'mean': 1.009356191928828, 'std': 1.820963904271178}],
  ['ts-10', {'mean': 1.0067317047470374, 'std': 1.5831466334251727}],
  ['ts-11', {'mean': 1.0006644988977624, 'std': 1.2758834081658386}],
  ['ts-12', {'mean': 0.993129876641768, 'std': 1.9511960338676577}],
  ['ts-13', {'mean': 0.9892923408907304, 'std': 0.9289356857562812}],
  ['ts-14', {'mean': 0.9887912674789371, 'std': 0.8900866532200021}],
  ['ts-15', {'mean': 0.9835486015632569, 'std': 1.0931256747941671}],
  ['ts-16', {'mean': 0.9792311626020498, 'std': 1.5670267047496198}],
  ['ts-17', {'mean': 0.9760702178357612, 'std': 0.9769949230005534}],
  ['ts-18', {'mean': 0.9646987868749026, 'std': 1.3547280455620658}],
  ['ts-19', {'mean': 0.9632287919664444, 'std': 0.5088563357523552}],
  ['ts-2', {'mean': 0.9527951983960402, 'std': 0.8516322894133211}],
  ['ts-20', {'mean': 0.9487062916186098, 'std': 0.669304568104767}],
  ['ts-21', {'mean': 0.945383746526704, 'std': 0.4889119246682293}],
  ['ts-22', {'mean': 0.9425327770664107, 'std': 0.8737927162411502}],
  ['ts-23', {'mean': 0.9402055417902104, 'std': 0.7376561386531686}],
  ['ts-24', {'mean': 0.9344844759553952, 'std': 1.9847469673474065}],
  ['ts-25', {'mean': 0.9311761156750265, 'std': 0.551510189952781}],
  ['ts-26', {'mean': 0.9233900476185856, 'std': 0.7192906260418461}],
  ['ts-27', {'mean': 0.9193852892478442, 'std': 0.38522228197884284}],
  ['ts-28', {'mean': 0.9147152803040396, 'std': 0.6517582770072212}],
  ['ts-29', {'mean': 0.9124269320462283, 'std': 0.8463382452538615}],
  ['ts-3', {'mean': 0.9029107580970891, 'std': 0.48928167577644865}],
  ['ts-30', {'mean': 0.882789521797704, 'std': 0.4619074516890052}],
  ['ts-31', {'mean': 0.8690559660073984, 'std': 0.3653365229589871}],
  ['ts-32', {'mean': 0.8510310464035419, 'std': 0.45353085572000296}],
  ['ts-33', {'mean': 0.8324412688541232, 'std': 2.0159625484630674}],
  ['ts-34', {'mean': 0.8200633642934634, 'std': 0.7050859449161296}],
  ['ts-35', {'mean': 0.7991901538850132, 'std': 0.9539664580385375}],
  ['ts-36', {'mean': 0.7813826859327548, 'std': 0.19581555736248854}],
  ['ts-37', {'mean': 0.7795557102749696, 'std': 0.829147370623045}],
  ['ts-38', {'mean': 0.7747384648988627, 'std': 0.24465838528786302}],
  ['ts-39', {'mean': 0.7633794512165842, 'std': 0.27329412943320097}],
  ['ts-4', {'mean': 0.7257494667128418, 'std': 0.3163411076662767}],
  ['ts-40', {'mean': 0.6978392909394955, 'std': 0.45707088895936937}],
  ['ts-41', {'mean': 0.6929041601713821, 'std': 0.8864990303784628}],
  ['ts-42', {'mean': 0.6853356231926173, 'std': 0.5123486762718585}],
  ['ts-43', {'mean': 0.6817396149911107, 'std': 1.0592722555676826}],
  ['ts-44', {'mean': 0.6720900164307473, 'std': 0.3397506847799751}],
  ['ts-45', {'mean': 0.6406541071165208, 'std': 0.3638895594932268}],
  ['ts-46', {'mean': 0.6113532948184189, 'std': 0.5928876871491358}],
  ['ts-47', {'mean': 0.5968838231654395, 'std': 0.6900014583839934}],
  ['ts-48', {'mean': 0.5966995386270563, 'std': 0.42135538400129263}],
  ['ts-49', {'mean': 0.583256598503874, 'std': 0.38101560988126265}],
  ['ts-5', {'mean': 0.5550622674639224, 'std': 0.659740909749514}],
  ['ts-6', {'mean': 0.5483562007864183, 'std': 0.5235873598005889}],
  ['ts-7', {'mean': 0.5467322344807274, 'std': 0.3557092825090436}],
  ['ts-8', {'mean': 0.5202254364943812, 'std': 0.481653830877021}],
  ['ts-9', {'mean': 0.5041775635635086, 'std': 0.5618242743519191}]],
 'Status': 'OK'}

In [11]:
# get similarity specifying five timeseries as vantage points
requests.get("http://localhost:5000/api/timeseries/similarity?pk1=ts-18&pk2=ts-10&pk3=ts-23&pk4=ts-32&pk5=ts-15&sort_by=d_vp-1").json()


Out[11]:
{'Payload': [['ts-18',
   {'d_vp-1': 0.0,
    'd_vp-2': 1.4141665932765386,
    'd_vp-3': 1.4130253087403384,
    'd_vp-4': 1.4140495543154987}],
  ['ts-19',
   {'d_vp-1': 1.155479606144914,
    'd_vp-2': 1.4142124668453937,
    'd_vp-3': 1.4138972191867392,
    'd_vp-4': 1.414075539386752}],
  ['ts-41',
   {'d_vp-1': 1.2514583225641192,
    'd_vp-2': 1.4138895446973747,
    'd_vp-3': 1.411053102782802,
    'd_vp-4': 1.4134999777822574}],
  ['ts-43',
   {'d_vp-1': 1.3050622993922183,
    'd_vp-2': 1.4118524052958692,
    'd_vp-3': 1.4106486386507386,
    'd_vp-4': 1.4141721445381412}],
  ['ts-29',
   {'d_vp-1': 1.3726722855824858,
    'd_vp-2': 1.4134751430294623,
    'd_vp-3': 1.4110668858996902,
    'd_vp-4': 1.4141533894378098}],
  ['ts-1',
   {'d_vp-1': 1.3914232906770092,
    'd_vp-2': 1.4142127103646858,
    'd_vp-3': 1.4081425724479986,
    'd_vp-4': 1.4067319614715414}],
  ['ts-42',
   {'d_vp-1': 1.3935226998030505,
    'd_vp-2': 1.372898500773963,
    'd_vp-3': 1.414158024845793,
    'd_vp-4': 1.4142131600315049}],
  ['ts-36',
   {'d_vp-1': 1.394818327884094,
    'd_vp-2': 1.4142109898102782,
    'd_vp-3': 1.4008431274664948,
    'd_vp-4': 1.4133240936963996}],
  ['ts-38',
   {'d_vp-1': 1.3996335952595127,
    'd_vp-2': 1.4115120775771894,
    'd_vp-3': 1.4136642351875142,
    'd_vp-4': 1.4142083691038634}],
  ['ts-2',
   {'d_vp-1': 1.4062253552267858,
    'd_vp-2': 1.4139031589738544,
    'd_vp-3': 1.4141044389356554,
    'd_vp-4': 1.4142074592611096}],
  ['ts-16',
   {'d_vp-1': 1.4090052134644626,
    'd_vp-2': 1.3503589713602238,
    'd_vp-3': 1.4141731052340034,
    'd_vp-4': 1.4142134267407007}],
  ['ts-40',
   {'d_vp-1': 1.4094744062576237,
    'd_vp-2': 1.4142134236988078,
    'd_vp-3': 1.3712531129700662,
    'd_vp-4': 1.4083844529571563}],
  ['ts-5',
   {'d_vp-1': 1.4109968494373457,
    'd_vp-2': 1.4142117192428836,
    'd_vp-3': 1.409296488151324,
    'd_vp-4': 1.4141197339016685}],
  ['ts-13',
   {'d_vp-1': 1.411338113851077,
    'd_vp-2': 1.4142135337370407,
    'd_vp-3': 1.41335694185762,
    'd_vp-4': 1.4130258268371416}],
  ['ts-30',
   {'d_vp-1': 1.4119898628655434,
    'd_vp-2': 1.4142135592094849,
    'd_vp-3': 1.4142100763260554,
    'd_vp-4': 1.41420386734673}],
  ['ts-23',
   {'d_vp-1': 1.4130253087403384,
    'd_vp-2': 1.4142135408395853,
    'd_vp-3': 0.0,
    'd_vp-4': 1.4135079946568272}],
  ['ts-39',
   {'d_vp-1': 1.4134616471452524,
    'd_vp-2': 1.411813310652096,
    'd_vp-3': 1.4142133242883719,
    'd_vp-4': 1.4142135605033497}],
  ['ts-37',
   {'d_vp-1': 1.4135096871633634,
    'd_vp-2': 0.9591153734814895,
    'd_vp-3': 1.414212927045273,
    'd_vp-4': 1.4142135607966175}],
  ['ts-27',
   {'d_vp-1': 1.4135801003853115,
    'd_vp-2': 1.4142135593439822,
    'd_vp-3': 1.4142133546176554,
    'd_vp-4': 1.414212050102837}],
  ['ts-35',
   {'d_vp-1': 1.4139118991728195,
    'd_vp-2': 1.414213559034296,
    'd_vp-3': 1.4074328136874585,
    'd_vp-4': 1.4137331067846968}],
  ['ts-24',
   {'d_vp-1': 1.4139608849336212,
    'd_vp-2': 1.4142135589221492,
    'd_vp-3': 1.4098729573722308,
    'd_vp-4': 1.4139122298087896}],
  ['ts-22',
   {'d_vp-1': 1.4140182074422836,
    'd_vp-2': 1.4142135617808798,
    'd_vp-3': 1.4114204342221097,
    'd_vp-4': 1.414077824525181}],
  ['ts-32',
   {'d_vp-1': 1.4140495543154987,
    'd_vp-2': 1.4142135623218222,
    'd_vp-3': 1.4135079946568272,
    'd_vp-4': 0.0}],
  ['ts-44',
   {'d_vp-1': 1.4141655809057938,
    'd_vp-2': 1.414063669388794,
    'd_vp-3': 1.4142071915651333,
    'd_vp-4': 1.414213527215445}],
  ['ts-10',
   {'d_vp-1': 1.4141665932765386,
    'd_vp-2': 0.0,
    'd_vp-3': 1.4142135408395853,
    'd_vp-4': 1.4142135623218222}],
  ['ts-8',
   {'d_vp-1': 1.4141856604836407,
    'd_vp-2': 1.4140335532167292,
    'd_vp-3': 1.4142135475162154,
    'd_vp-4': 1.414213562234946}],
  ['ts-0',
   {'d_vp-1': 1.4142006155833475,
    'd_vp-2': 1.4142135620543634,
    'd_vp-3': 1.4140344669639595,
    'd_vp-4': 1.41420425594287}],
  ['ts-4',
   {'d_vp-1': 1.4142007479834227,
    'd_vp-2': 1.414207604458749,
    'd_vp-3': 1.4142135540953413,
    'd_vp-4': 1.4142135621731613}],
  ['ts-49',
   {'d_vp-1': 1.4142061763844245,
    'd_vp-2': 1.4142046026469979,
    'd_vp-3': 1.4142135587102578,
    'd_vp-4': 1.4142135623277308}],
  ['ts-34',
   {'d_vp-1': 1.4142067603466761,
    'd_vp-2': 1.4142135623676413,
    'd_vp-3': 1.4142135464757866,
    'd_vp-4': 1.4142132912473455}],
  ['ts-21',
   {'d_vp-1': 1.4142112727702358,
    'd_vp-2': 1.4142135623634393,
    'd_vp-3': 1.414213552582435,
    'd_vp-4': 1.4142135366749988}],
  ['ts-48',
   {'d_vp-1': 1.4142132369801688,
    'd_vp-2': 1.4141870800939036,
    'd_vp-3': 1.4142135451289173,
    'd_vp-4': 1.4142135622587022}],
  ['ts-46',
   {'d_vp-1': 1.4142132763209716,
    'd_vp-2': 1.2485030360167517,
    'd_vp-3': 1.4142135622701864,
    'd_vp-4': 1.4142135623730212}],
  ['ts-33',
   {'d_vp-1': 1.4142134035173641,
    'd_vp-2': 1.414213562372825,
    'd_vp-3': 1.4140607821626048,
    'd_vp-4': 1.4141769356970726}],
  ['ts-9',
   {'d_vp-1': 1.414213423475457,
    'd_vp-2': 1.284737942284406,
    'd_vp-3': 1.4142135623285215,
    'd_vp-4': 1.4142135623730585}],
  ['ts-12',
   {'d_vp-1': 1.4142134537817768,
    'd_vp-2': 1.4142129214513233,
    'd_vp-3': 1.4142134799034263,
    'd_vp-4': 1.4142135619972485}],
  ['ts-20',
   {'d_vp-1': 1.4142135479009317,
    'd_vp-2': 1.4142135582376893,
    'd_vp-3': 1.4142135023872737,
    'd_vp-4': 1.4142135621132397}],
  ['ts-17',
   {'d_vp-1': 1.41421355218923,
    'd_vp-2': 1.4132310685849425,
    'd_vp-3': 1.414213562369058,
    'd_vp-4': 1.4142135623730874}],
  ['ts-25',
   {'d_vp-1': 1.4142135562760483,
    'd_vp-2': 1.4142135623730945,
    'd_vp-3': 1.414213559876613,
    'd_vp-4': 1.414209036151134}],
  ['ts-6',
   {'d_vp-1': 1.4142135618904854,
    'd_vp-2': 1.4142135617380491,
    'd_vp-3': 1.4142135487064742,
    'd_vp-4': 1.414213562288862}],
  ['ts-28',
   {'d_vp-1': 1.4142135620744438,
    'd_vp-2': 1.414213562373095,
    'd_vp-3': 1.4142135194295482,
    'd_vp-4': 1.4142047610653186}],
  ['ts-7',
   {'d_vp-1': 1.4142135622311673,
    'd_vp-2': 1.4142135623727186,
    'd_vp-3': 1.4142135609056465,
    'd_vp-4': 1.414213562355629}],
  ['ts-45',
   {'d_vp-1': 1.4142135622888699,
    'd_vp-2': 1.4112079644471598,
    'd_vp-3': 1.4142135623730638,
    'd_vp-4': 1.4142135623730951}],
  ['ts-15',
   {'d_vp-1': 1.4142135623645589,
    'd_vp-2': 1.4142135623730951,
    'd_vp-3': 1.414213557806045,
    'd_vp-4': 1.4142135597140724}],
  ['ts-26',
   {'d_vp-1': 1.4142135623711078,
    'd_vp-2': 1.4139070551805986,
    'd_vp-3': 1.4142135623730936,
    'd_vp-4': 1.4142135623730951}],
  ['ts-3',
   {'d_vp-1': 1.4142135623719392,
    'd_vp-2': 1.4142135623730934,
    'd_vp-3': 1.4142135623575618,
    'd_vp-4': 1.414213562372658}],
  ['ts-14',
   {'d_vp-1': 1.4142135623721912,
    'd_vp-2': 1.4142135623730945,
    'd_vp-3': 1.4142135618221412,
    'd_vp-4': 1.4142135623469672}],
  ['ts-47',
   {'d_vp-1': 1.414213562373052,
    'd_vp-2': 1.4142135623730951,
    'd_vp-3': 1.414213562309689,
    'd_vp-4': 1.41421356235886}],
  ['ts-11',
   {'d_vp-1': 1.4142135623730911,
    'd_vp-2': 1.4142120757237093,
    'd_vp-3': 1.4142135623730951,
    'd_vp-4': 1.4142135623730951}],
  ['ts-31',
   {'d_vp-1': 1.414213562373095,
    'd_vp-2': 1.4142135469003527,
    'd_vp-3': 1.4142135623730951,
    'd_vp-4': 1.4142135623730951}]],
 'Status': 'OK'}

In [12]:
# delete all timeseries and commit
for i in range(50):
    pk = "ts-{}".format(i)
    requests.delete("http://localhost:5000/api/timeseries?pk={}".format(pk))
requests.post("http://localhost:5000/api/commit").json()


Out[12]:
{'Payload': None, 'Status': 'OK'}

In [13]:
# get all
requests.get("http://localhost:5000/api/timeseries").json()


Out[13]:
{'Payload': [], 'Status': 'OK'}

In [ ]: