def _set_content(self, data, filename=None): extension = None if filename: extension = os.path.splitext(filename)[1] if not extension: extension = extension_for_image_data(BytesIO(data)) self.path = generate_path(extension) file = create_file(self.filesystem_path, 'wb') if hasattr(file, 'fileno'): # pragma: no cover (for testing only) try: os.fchmod(file.fileno(), 0o644) except io.UnsupportedOperation: # BytesIO for testing pass file.write(data) file.close()
def download(self, timeout=0.5): # pragma: no cover """Download a remote image so we have a local copy. """ if self.path is not None: raise TypeError('Image already has local data.') r = requests.get(self.url, timeout=timeout) extension = extension_for_image_data(BytesIO(r.content)) self.path = generate_path(extension) file = create_file(self.filesystem_path, 'wb') if hasattr(file, 'fileno'): # pragma: no cover (for testing only) try: os.fchmod(file.fileno(), 0o644) except io.UnsupportedOperation: # BytesIO for testing pass file.write(r.content) file.close()
def extension_for_image_data(self, *a, **kw): from s4u.image.util import extension_for_image_data return extension_for_image_data(*a, **kw)