Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoSign in
Socket

pypresto

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pypresto - pypi Package Compare versions

Comparing version
0.1.6
to
1.0.0
+1
-1
PKG-INFO
Metadata-Version: 1.1
Name: pypresto
Version: 0.1.6
Version: 1.0.0
Summary: Python wrapper for running queries on Presto server

@@ -5,0 +5,0 @@ Home-page: https://github.com/NonWhite/pyprestowrapper

Metadata-Version: 1.1
Name: pypresto
Version: 0.1.6
Version: 1.0.0
Summary: Python wrapper for running queries on Presto server

@@ -5,0 +5,0 @@ Home-page: https://github.com/NonWhite/pyprestowrapper

@@ -1,2 +0,2 @@

pandas==0.19.2
requests==2.13.0
pandas==0.20.3
requests==2.18.4

@@ -5,4 +5,4 @@ import os

import requests
from base64 import b64encode
from copy import deepcopy as copy
from base64 import b64encode
from requests.auth import HTTPBasicAuth

@@ -12,9 +12,10 @@

def __init__(self, host, user, catalog, port=8080, schema='default', password=None):
def __init(self,host,user,catalog,port=8080,schema='default',password=None) :
self.presto_server = '%s:%s' % (host,port)
self.user = user
self.password = password
self.set_headers(catalog, schema)
self.set_headers(catalog,schema)
self.set_auth(user,password)
def set_headers(self, catalog, schema) :
def set_headers(self,catalog,schema) :
self.__headers = {

@@ -28,27 +29,45 @@ 'X-Presto-Catalog': catalog,

def send_query(self, sql_query, auth=False):
def set_auth(self,user,pasword) :
if pasword is None :
self.__auth = None
self.__auth = HTTPBasicAuth(user,pasword)
def send_query(self,sql_query) :
req_url = os.path.join(self.presto_server,'v1/statement')
if auth:
authentication = HTTPBasicAuth(self.user, self.password)
response = requests.post(req_url, headers=self.__headers, data=sql_query, auth=authentication)
else:
response = requests.post(req_url, headers=self.__headers, data=sql_query)
if response.status_code != 200:
args = {
'req_url': req_url,
'data': sql_query
}
return self.make_request(**args)
def make_request(self,req_url,method='GET',data=None) :
if method == 'GET' :
req_func = requests.get
elif method == 'POST' :
req_func = requests.post
else :
raise Exception('Method %s not supported' % method)
args = {
'url': req_url,
'headers': self.__headers
}
if self.__auth :
args['auth'] = self.__auth
if data :
args['data'] = data
response = req_func(**args)
if response.status_code != 200 :
response.raise_for_status()
return response.json()
response = response.json()
if response.get('error',None) :
raise Exception(response['error'])
return response
def run_query(self, sql_query, auth=False):
response = self.send_query(sql_query, auth)
def run_query(self,sql_query) :
response = self.send_query(sql_query)
series = []
columns = []
while 'nextUri' in response:
if auth:
authentication = HTTPBasicAuth(self.user, self.password)
response = requests.get(response['nextUri'], auth=authentication)
else:
response = requests.get(response['nextUri'])
if response.status_code != 200:
response.raise_for_status()
response = response.json()
if 'data' in response:
while 'nextUri' in response :
response = self.make_request(response['nextUri'])
if 'data' in response :
columns = columns or [col['name'] for col in response['columns']]

@@ -61,10 +80,10 @@ lst_rows = response['data']

series.append(copy(serie))
print 'Getting data (rows: %s)' % len(series)
#print 'Getting data (rows: %s)' % len(series)
time.sleep(1)
else:
print 'Running query'
#print 'Running query'
time.sleep(5)
df = pandas.DataFrame(series)
if df.empty:
if df.empty :
raise Exception('No data returned')
return df

@@ -1,2 +0,2 @@

pandas==0.19.2
requests==2.13.0
pandas==0.20.3
requests==2.18.4

@@ -30,3 +30,3 @@ import os

name='pypresto',
version='0.1.6',
version='1.0.0',
author='NonWhite',

@@ -33,0 +33,0 @@ author_email='wperezurcia@gmail.com',