def _read_url_as_StringIO(self, url, params=None): """ Open url (and retry) """ response = self._get_response(url, params=params) text = self._sanitize_response(response) out = StringIO() if len(text) == 0: service = self.__class__.__name__ raise IOError("{} request returned no data; check URL for invalid " "inputs: {}".format(service, self.url)) if isinstance(text, binary_type): out.write(bytes_to_str(text)) else: out.write(text) out.seek(0) return out
def safeGetDF(url): httpsession = requests_cache.CachedSession(cache_name='bmm-uciml-cache', backend='sqlite') response = httpsession.get(url) if response.status_code != requests.codes.ok: return None text = response.content out = StringIO() if len(text) == 0: #service = self.__class__.__name__ raise IOError("{} request returned no data; check URL for invalid ") if ".xls" in url: httpsession.close() return xlrd.open_workbook(file_contents=text) #out.write(text) #out.write(bytes_to_str(text,encoding="ISO-8859-1")) elif response.headers["content-type"] != "text/html": out.write(bytes_to_str(text,encoding="ISO-8859-1")) else: out.write(text) out.seek(0) httpsession.close() #decoded_data = out.decode("utf-8") return out