def seekable(fileobj): """Attempt to use file.seek on given file, with fallbacks.""" try: fileobj.seek(fileobj.tell()) except Exception: return CStringIO(fileobj.read()) else: return fileobj
def format(tokens, formatter, outfile=None): """ Format a tokenlist ``tokens`` with the formatter ``formatter``. If ``outfile`` is given and a valid file object (an object with a ``write`` method), the result will be written to it, otherwise it is returned as a string. """ try: if not outfile: # if we want Unicode output, we have to use Python StringIO realoutfile = formatter.encoding and CStringIO() or StringIO() formatter.format(tokens, realoutfile) return realoutfile.getvalue() else: formatter.format(tokens, outfile) except TypeError, err: if isinstance(err.args[0], str) and \ 'unbound method format' in err.args[0]: raise TypeError('format() argument must be a formatter instance, ' 'not a class') raise
def get_tar(url, dest): resp = requests.get(url, stream=True) resp.raise_for_status() with tarfile.open(fileobj=CStringIO(resp.raw.read())) as f: f.extractall(path=dest)