You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.9 KiB
Python

import pandas as pd
import numpy as np
import transport
import datetime
import io
import json
import requests
def subscribe (self,**args) :
"""
This function will subscribe an email to a given service (report,notification). If already susbcribed no further action will be performed
:email provide a valid email for the free plan. Upgrades will be done via the website
:id service identifier accepted values are GOOGLE_DRIVE,DROPBOX,BOX,ONE_DRIVE
"""
url = "https://the-phi.com/store/smart-top/subscribe"
SERVICES=['GOOGLE','DROPBOX','BOX','ONE_DRIVE']
if args['id'].upper() in SERVICES :
data = {"email":args['email']}
requests.post(url,data=data)
pass
def log(**args) :
"""
This function will write to a designated location provided a set of inputs
:store mongo,file,couch,api
"""
#
# @TODO: Provide facility to write to a given cloud store (google,one-drive ...)
# This will have to be supported by some sort of subscription service
#
STORE_MAP = {"mongo":"MongoWriter","disk":"DiskWriter","couch":"CouchWriter",'sqlite':'SQLiteWriter'}
if 'store' not in args :
_id = 'console'
else:
_id = 'disk' if args['store'] == 'file' else args['store']
_id = 'disk' if _id == 'sqlite' else _id
if _id == 'console' :
"""
We are going to print whatever we have to the console ... using the tool in cli mode
"""
print()
print (args['data'])
print ()
# stream = args['memory']
# stream.write(json.dumps(args['row']) if isinstance(args['row'],dict) else args['row'])
# stream.write("\n")
else:
store_type = ".".join([args['store'],STORE_MAP[_id]])
store_args = args['params']
store = transport.factory.instance(type=store_type,args=store_args)
store.write( args['row'])