|
|
|
@ -19,12 +19,14 @@ class Reader:
|
|
|
|
def __init__(self,**_args):
|
|
|
|
def __init__(self,**_args):
|
|
|
|
self._url = _args['url']
|
|
|
|
self._url = _args['url']
|
|
|
|
self._headers = None if 'headers' not in _args else _args['headers']
|
|
|
|
self._headers = None if 'headers' not in _args else _args['headers']
|
|
|
|
|
|
|
|
self._data = None if 'data' not in _args else _args['data']
|
|
|
|
|
|
|
|
self._method = 'get' if 'method' not in _args else _args['method'].lower()
|
|
|
|
|
|
|
|
|
|
|
|
# def isready(self):
|
|
|
|
# def isready(self):
|
|
|
|
# return self.file_length > 0
|
|
|
|
# return self.file_length > 0
|
|
|
|
def format(self,_response):
|
|
|
|
def format(self,_response):
|
|
|
|
_mimetype= _response.headers['Content-Type']
|
|
|
|
_mimetype= _response.headers['Content-Type']
|
|
|
|
if _mimetype == 'text/csv' or 'text/csv':
|
|
|
|
if 'text/plain' in _mimetype or 'text/csv' in _mimetype:
|
|
|
|
_content = _response.text
|
|
|
|
_content = _response.text
|
|
|
|
return pd.read_csv(StringIO(_content))
|
|
|
|
return pd.read_csv(StringIO(_content))
|
|
|
|
#
|
|
|
|
#
|
|
|
|
@ -32,12 +34,28 @@ class Reader:
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
return _response.text
|
|
|
|
return _response.text
|
|
|
|
|
|
|
|
def get (self,key,_args):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
This function inspects an argument and tries to determine if the corresponding attribute is set
|
|
|
|
|
|
|
|
i.e the attribute will be prefixed by underscore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_attr = f'_{key}'
|
|
|
|
|
|
|
|
return _args[key] if key in _args else (getattr(self,_attr) if hasattr(self,_attr) else None)
|
|
|
|
def read(self,**_args):
|
|
|
|
def read(self,**_args):
|
|
|
|
if self._headers :
|
|
|
|
_method = self.get('method',_args)
|
|
|
|
r = requests.get(self._url,headers = self._headers)
|
|
|
|
_headers = self.get('headers',_args)
|
|
|
|
else:
|
|
|
|
_data = self.get('data',_args)
|
|
|
|
r = requests.get(self._url,headers = self._headers)
|
|
|
|
_url = self.get('url',_args)
|
|
|
|
return self.format(r)
|
|
|
|
_requestPpointer = getattr(requests,_method)
|
|
|
|
|
|
|
|
_resp = _requestPpointer(_url,headers=_headers,data=_data)
|
|
|
|
|
|
|
|
return self.format(_resp)
|
|
|
|
|
|
|
|
# if self._headers :
|
|
|
|
|
|
|
|
# r = requests.get(self._url,headers = self._headers)
|
|
|
|
|
|
|
|
# else:
|
|
|
|
|
|
|
|
# r = requests.get(self._url,headers = self._headers)
|
|
|
|
|
|
|
|
# return self.format(r)
|
|
|
|
|
|
|
|
|
|
|
|
class Writer:
|
|
|
|
class Writer:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|