Python io.BytesIO() Examples
The following are 30
code examples of io.BytesIO().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
io
, or try the search function
.

Example #1
Source File: cache.py From vergeml with MIT License | 10 votes |
def _deserialize(self, data, type_): if self.compress: # decompress the data if needed data = lz4.frame.decompress(data) if type_ == _NUMPY: # deserialize numpy arrays buf = io.BytesIO(data) data = np.load(buf) elif type_ == _PICKLE: # deserialize other python objects data = pickle.loads(data) else: # Otherwise we just return data as it is (bytes) pass return data
Example #2
Source File: screenshot.py From AboveTustin with MIT License | 8 votes |
def screenshot(self, name): ''' screenshot() Takes a screenshot of the browser ''' if do_crop: print('cropping screenshot') # Grab screenshot rather than saving im = self.browser.get_screenshot_as_png() im = Image.open(BytesIO(im)) # Crop to specifications im = im.crop((crop_x, crop_y, crop_width, crop_height)) im.save(name) else: self.browser.save_screenshot(name) print("success saving screenshot: %s" % name) return name
Example #3
Source File: io.py From vergeml with MIT License | 8 votes |
def hash(self, state: str) -> str: """Generate a hash representing the current sample state. :param state: string capturing the current system configuration state This function must be overridden to generate a meaningful hash for the current set of input samples.""" newstate = io.BytesIO(state.encode('utf-8')) for k in ('input_patterns', 'samples_dir', 'val_dir', 'val_num', 'val_perc', 'test_dir', 'test_num', 'test_perc', 'random_seed'): newstate.write(str(getattr(self, k)).encode('utf-8')) md5 = hashlib.md5() md5.update(newstate.getvalue()) return md5.hexdigest()
Example #4
Source File: serializer.py From incubator-spot with Apache License 2.0 | 7 votes |
def deserialize(rawbytes): ''' Deserialize given bytes according to the supported Avro schema. :param rawbytes: A buffered I/O implementation using an in-memory bytes buffer. :returns : List of ``str`` objects, extracted from the binary stream. :rtype : ``list`` ''' decoder = avro.io.BinaryDecoder(io.BytesIO(rawbytes)) reader = avro.io.DatumReader(avro.schema.parse(AVSC)) try: return reader.read(decoder)[list.__name__] except Exception as exc: logging.getLogger('SPOT.INGEST.COMMON.SERIALIZER')\ .error('[{0}] {1}'.format(exc.__class__.__name__, exc.message)) return []
Example #5
Source File: serializer.py From incubator-spot with Apache License 2.0 | 7 votes |
def serialize(value): ''' Convert a ``list`` object to an avro-encoded format. :param value: List of ``str`` objects. :returns : A buffered I/O implementation using an in-memory bytes buffer. :rtype : ``str`` ''' writer = avro.io.DatumWriter(avro.schema.parse(AVSC)) rawbytes = io.BytesIO() try: writer.write({ list.__name__: value }, avro.io.BinaryEncoder(rawbytes)) return rawbytes except avro.io.AvroTypeException: logging.getLogger('SPOT.INGEST.COMMON.SERIALIZER')\ .error('The type of ``{0}`` is not supported by the Avro schema.' .format(type(value).__name__)) return None
Example #6
Source File: download_images.py From neural-fingerprinting with BSD 3-Clause "New" or "Revised" License | 7 votes |
def download_image(image_id, url, x1, y1, x2, y2, output_dir): """Downloads one image, crops it, resizes it and saves it locally.""" output_filename = os.path.join(output_dir, image_id + '.png') if os.path.exists(output_filename): # Don't download image if it's already there return True try: # Download image url_file = urlopen(url) if url_file.getcode() != 200: return False image_buffer = url_file.read() # Crop, resize and save image image = Image.open(BytesIO(image_buffer)).convert('RGB') w = image.size[0] h = image.size[1] image = image.crop((int(x1 * w), int(y1 * h), int(x2 * w), int(y2 * h))) image = image.resize((299, 299), resample=Image.ANTIALIAS) image.save(output_filename) except IOError: return False return True
Example #7
Source File: spatial_env.py From indras_net with GNU General Public License v3.0 | 6 votes |
def __init__(self, name, width, height, preact=True, postact=False, model_nm=None, props=None): super().__init__(name, preact=preact, postact=postact, model_nm=model_nm, props=props) self.disp_census = True self.width = width self.height = height self.max_dist = self.width * self.height self.scatter_plot = None self.plot_title = "Agent Positions" # it only makes sense to plot agents in a spatial env, so add this here: self.menu.view.add_menu_item("s", menu.MenuLeaf("(s)catter plot", self.plot)) self.image_bytes = io.BytesIO()
Example #8
Source File: cache.py From vergeml with MIT License | 6 votes |
def _serialize_data(self, data): # Default to raw bytes type_ = _BYTES if isinstance(data, np.ndarray): # When the data is a numpy array, use the more compact native # numpy format. buf = io.BytesIO() np.save(buf, data) data = buf.getvalue() type_ = _NUMPY elif not isinstance(data, (bytearray, bytes)): # Everything else except byte data is serialized in pickle format. data = pickle.dumps(data) type_ = _PICKLE if self.compress: # Optional compression data = lz4.frame.compress(data) return type_, data
Example #9
Source File: billing.py From aegea with Apache License 2.0 | 6 votes |
def ls(args): bucket = resources.s3.Bucket(args.billing_reports_bucket.format(account_id=ARN.get_account_id())) now = datetime.utcnow() year = args.year or now.year month = str(args.month or now.month).zfill(2) next_year = year + ((args.month or now.month) + 1) // 12 next_month = str(((args.month or now.month) + 1) % 12).zfill(2) manifest_name = "aegea/{report}/{yr}{mo}01-{next_yr}{next_mo}01/{report}-Manifest.json" manifest_name = manifest_name.format(report=__name__, yr=year, mo=month, next_yr=next_year, next_mo=next_month) try: manifest = json.loads(bucket.Object(manifest_name).get().get("Body").read()) for report_key in manifest["reportKeys"]: report = BytesIO(bucket.Object(report_key).get().get("Body").read()) with gzip.GzipFile(fileobj=report) as fh: reader = csv.DictReader(fh) for line in reader: page_output(tabulate(filter_line_items(reader, args), args)) except ClientError as e: msg = 'Unable to get report {} from {}: {}. Run "aegea billing configure" to enable reports.' raise AegeaException(msg.format(manifest_name, bucket, e))
Example #10
Source File: conftest.py From django-click with MIT License | 6 votes |
def call_command(): from django.core.management import call_command class CallCommand(object): def __init__(self): self.io = BytesIO() def __call__(self, *args, **kwargs): self.io = BytesIO() stdout = sys.stdout try: sys.stdout = self.io call_command(*args, **kwargs) finally: sys.stdout = stdout return self @property def stdout(self): return self.io.getvalue() return CallCommand()
Example #11
Source File: json_serializers.py From dustmaps with GNU General Public License v2.0 | 6 votes |
def serialize_ndarray_npy(o): """ Serializes a :obj:`numpy.ndarray` using numpy's built-in :obj:`save` function. This produces totally unreadable (and very un-JSON-like) results (in "npy" format), but it's basically guaranteed to work in 100% of cases. Args: o (:obj:`numpy.ndarray`): :obj:`ndarray` to be serialized. Returns: A dictionary that can be passed to :obj:`json.dumps`. """ with io.BytesIO() as f: np.save(f, o) f.seek(0) serialized = json.dumps(f.read().decode('latin-1')) return dict( _type='np.ndarray', npy=serialized)
Example #12
Source File: json_serializers.py From dustmaps with GNU General Public License v2.0 | 6 votes |
def deserialize_ndarray_npy(d): """ Deserializes a JSONified :obj:`numpy.ndarray` that was created using numpy's :obj:`save` function. Args: d (:obj:`dict`): A dictionary representation of an :obj:`ndarray` object, created using :obj:`numpy.save`. Returns: An :obj:`ndarray` object. """ with io.BytesIO() as f: f.write(json.loads(d['npy']).encode('latin-1')) f.seek(0) return np.load(f)
Example #13
Source File: test.py From friendly-telegram with GNU Affero General Public License v3.0 | 6 votes |
def logscmd(self, message): """.logs <level> Dumps logs. Loglevels below WARNING may contain personal info.""" args = utils.get_args(message) if not len(args) == 1: await message.edit(self.strings["set_loglevel"]) return try: lvl = int(args[0]) except ValueError: # It's not an int. Maybe it's a loglevel lvl = getattr(logging, args[0].upper(), None) if lvl is None: await message.edit(self.strings["bad_loglevel"]) return await message.edit(self.strings["uploading_logs"]) [handler] = logging.getLogger().handlers logs = ("\n".join(handler.dumps(lvl))).encode("utf-8") if not len(logs) > 0: await message.edit(self.strings["no_logs"].format(lvl)) return logs = BytesIO(logs) logs.name = self.strings["logs_filename"] await message.client.send_file(message.to_id, logs, caption=self.strings["logs_caption"].format(lvl)) await message.delete()
Example #14
Source File: filestore.py From fishroom with GNU General Public License v3.0 | 6 votes |
def upload_image(self, filename=None, filedata=None, tag=None): token = self.auth.upload_token(self.bucket) if filedata is None: with open(filename, 'rb') as f: filedata = f.read() with BytesIO(filedata) as f: ext = imghdr.what(f) prefix = tag or "img" name = "%s/%02x.%s" % (prefix, self.counter.incr(), ext) ret, info = self.qiniu.put_data(token, name, filedata) if ret is None: return return self.base_url + name
Example #15
Source File: camera.py From Paradrop with Apache License 2.0 | 6 votes |
def get_image(self): """ Get an image from the camera. Returns image data as a BytesIO object. """ url = "http://{}/image.jpg".format(self.host) encoded = base64.b64encode('admin:'.encode('utf-8')).decode('ascii') headers = { 'Authorization': 'Basic ' + encoded } result = requests.get(url, headers=headers) if result.ok: return BytesIO(result.content) else: return None
Example #16
Source File: http2_push.py From quart with MIT License | 6 votes |
def tile(tile_number): """ Handles GET requests for a tile number. :param int tile_number: Number of the tile between 0 and `max_tiles`^2. :raises HTTPError: 404 if tile exceeds `max_tiles`^2. """ try: tile = get_tile(tile_number) except TileOutOfBoundsError: abort(404) buf = BytesIO(tile.tobytes()) tile.save(buf, 'JPEG') content = buf.getvalue() response = await make_response(content) response.headers['Content-Type'] = 'image/jpg' response.headers['Accept-Ranges'] = 'bytes' response.headers['Content-Length'] = str(len(content)) return response
Example #17
Source File: datastructures.py From quart with MIT License | 6 votes |
def __init__( self, stream: BinaryIO = None, filename: str = None, name: str = None, content_type: str = None, headers: Dict = None, ) -> None: self.name = name self.stream = stream or io.BytesIO() self.filename = filename if headers is None: headers = {} self.headers = headers if content_type is not None: headers["Content-Type"] = content_type
Example #18
Source File: flask_telemetry_middleware.py From botbuilder-python with MIT License | 6 votes |
def process_request(self, environ) -> bool: """Process the incoming Flask request.""" # Bot Service doesn't handle anything over 256k length = int(environ.get("CONTENT_LENGTH", "0")) if length > 256 * 1024: print(f"request too long - rejected") else: body_bytes = environ["wsgi.input"].read(length) environ["wsgi.input"] = BytesIO(body_bytes) body_unicode = body_bytes.decode("utf-8") # Sanity check JSON if body_unicode is not None: # Integration layer expecting just the json text. _REQUEST_BODIES[current_thread().ident] = body_unicode return True
Example #19
Source File: ptpimg_uploader.py From ptpimg-uploader with BSD 2-Clause "Simplified" License | 6 votes |
def upload_urls(self, *urls): """ Upload image URLs by downloading them before """ with contextlib.ExitStack() as stack: files = {} for i, url in enumerate(urls): resp = requests.get(url, timeout=self.timeout) if resp.status_code != requests.codes.ok: raise ValueError( 'Cannot fetch url {} with error {}'.format(url, resp.status_code)) mime_type = resp.headers['content-type'] if not mime_type or mime_type.split('/')[0] != 'image': raise ValueError( 'Unknown image file type {}'.format(mime_type)) open_file = stack.enter_context(BytesIO(resp.content)) files['file-upload[{}]'.format(i)] = ( 'file-{}'.format(i), open_file, mime_type) return self._perform(files=files)
Example #20
Source File: display_methods.py From indras_net with GNU General Public License v3.0 | 5 votes |
def show(self): """ Display the plot. """ if not self.headless: plt.show() else: file = io.BytesIO() plt.savefig(file, format="png") return file
Example #21
Source File: display_methods.py From indras_net with GNU General Public License v3.0 | 5 votes |
def show(self): """ Display the plot. """ if not self.headless: plt.show() else: file = io.BytesIO() plt.savefig(file, format="png") return file
Example #22
Source File: display_methods.py From indras_net with GNU General Public License v3.0 | 5 votes |
def show(self): """ Display the plot. """ if not self.headless: plt.show() else: file = io.BytesIO() plt.savefig(file, format="png") return file
Example #23
Source File: display_methods.py From indras_net with GNU General Public License v3.0 | 5 votes |
def show(self): """ Display the plot. """ if not self.headless: plt.show() else: file = io.BytesIO() plt.savefig(file, format="png") return file
Example #24
Source File: string_input_stream.py From clikit with MIT License | 5 votes |
def __init__(self, string=""): # type: (str) -> None self._stream = BytesIO() super(StringInputStream, self).__init__(self._stream) self.set(string)
Example #25
Source File: io.py From vergeml with MIT License | 5 votes |
def hash_files(self, files): """A default implementation for hash based on files """ if not self._cached_file_state: self._cached_file_state = io.BytesIO() for (split, files) in files.items(): for path, _ in files: fstate = "{}{}{}{}".format(split, path, os.path.getmtime(path), os.path.getsize(path)) self._cached_file_state.write(fstate.encode('utf-8')) return self._cached_file_state.getvalue().decode("utf-8")
Example #26
Source File: labeled_image.py From vergeml with MIT License | 5 votes |
def hash(self, state) -> str: state = io.BytesIO(state.encode('utf8')) state.write(str(self.oversample).encode('utf8')) return super().hash(state.getvalue().decode('utf8') + self.hash_files(self.files))
Example #27
Source File: cache.py From vergeml with MIT License | 5 votes |
def read(self, index, n_samples): # get the entries as raw bytes from the superclass implementation entries = super().read(index, n_samples) res = [] for i, entry in enumerate(entries): data, meta = entry type_ = self.cnt.info[index+i] if isinstance(type_, tuple): # If the type is a pair (x,y), deserialize independently buf = io.BytesIO(data) # First, get the position of the second item from the header pos, = struct.unpack('<Q', buf.read(8)) # Read the first and second item data1 = buf.read(pos) data2 = buf.read() # Then deserialize the independently. data1 = self._deserialize(data1, type_[0]) data2 = self._deserialize(data2, type_[1]) res.append(((data1, data2), meta)) else: data = self._deserialize(data, type_) res.append((data, meta)) return res
Example #28
Source File: fun.py From cyberdisc-bot with MIT License | 5 votes |
def create_text_image(self, ctx: Context, person: str, text: str): """ Creates an image of a given person with the specified text. """ if len(text) > 100: return await ctx.send( ":no_entry_sign: Your text must be shorter than 100 characters." ) drawing_text = textwrap.fill(text, 20) font = ImageFont.truetype("cdbot/resources/Dosis-SemiBold.ttf", 150) text_layer = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0)) text_layer_drawing = ImageDraw.Draw(text_layer) text_layer_drawing.text( (0, 0), drawing_text, fill=(0, 0, 0), align="center", font=font ) cropped_text_layer = text_layer.crop(text_layer.getbbox()) cropped_text_layer.thumbnail((170, 110)) image = Image.open(f"cdbot/resources/{person}SaysBlank.png") x = int((image.width / 5 + 20) - (cropped_text_layer.width / 2)) y = int((image.height / 5 + 50 / 2) - (cropped_text_layer.height / 2)) image.paste(cropped_text_layer, (x, y), cropped_text_layer) image_bytes = BytesIO() image.save(image_bytes, format="PNG") image_bytes.seek(0) await ctx.send(file=File(image_bytes, filename=f"{person}.png"))
Example #29
Source File: bootaction.py From drydock with Apache License 2.0 | 5 votes |
def tarbuilder(asset_list=None): """Create a tar file from rendered assets. Add each asset in ``asset_list`` to a tar file with the defined path and permission. The assets need to have the rendered_bytes field populated. Return a tarfile.TarFile. :param hostname: the hostname the tar is destined for :param balltype: the type of assets being included :param asset_list: list of objects.BootActionAsset instances """ tarbytes = io.BytesIO() tarball = tarfile.open( mode='w:gz', fileobj=tarbytes, format=tarfile.GNU_FORMAT) asset_list = [ a for a in asset_list if a.type != BootactionAssetType.PackageList ] for a in asset_list: fileobj = io.BytesIO(a.rendered_bytes) tarasset = tarfile.TarInfo(name=a.path) tarasset.size = len(a.rendered_bytes) tarasset.mode = a.permissions if a.permissions else 0o600 tarasset.uid = 0 tarasset.gid = 0 tarball.addfile(tarasset, fileobj=fileobj) tarball.close() return tarbytes.getvalue()
Example #30
Source File: test_bootaction_context.py From drydock with Apache License 2.0 | 5 votes |
def test_bootaction_context(self, falcontest, seed_bootaction_multinode): """Test that the API will return a boot action context""" for n, c in seed_bootaction_multinode.items(): url = "/api/v1.0/bootactions/nodes/%s/units" % n auth_hdr = {'X-Bootaction-Key': "%s" % c['identity_key']} result = falcontest.simulate_get(url, headers=auth_hdr) assert result.status == falcon.HTTP_200 fileobj = io.BytesIO(result.content) t = tarfile.open(mode='r:gz', fileobj=fileobj) t.close()