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 | 9 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 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 #5
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 #6
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 #7
Source File: serializer.py From incubator-spot with Apache License 2.0 | 6 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 #8
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 #9
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 #10
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 #11
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 #12
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 #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: 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 #15
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 #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: 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 #18
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 #19
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 #20
Source File: __init__.py From facebook-wda with MIT License | 5 votes |
def screenshot(self, png_filename=None, format='pillow'): """ Screenshot with PNG format Args: png_filename(string): optional, save file name format(string): return format, "raw" or "pillowā€¯ (default) Returns: PIL.Image or raw png data Raises: WDARequestError """ value = self.http.get('screenshot').value raw_value = base64.b64decode(value) png_header = b"\x89PNG\r\n\x1a\n" if not raw_value.startswith(png_header) and png_filename: raise WDARequestError(-1, "screenshot png format error") if png_filename: with open(png_filename, 'wb') as f: f.write(raw_value) if format == 'raw': return raw_value elif format == 'pillow': from PIL import Image buff = io.BytesIO(raw_value) return Image.open(buff) else: raise ValueError("unknown format")
Example #21
Source File: findingformatterfactory.py From securityheaders with Apache License 2.0 | 5 votes |
def format(self, findings): f = io.BytesIO() writer = csv.writer(f) writer.writerow(["URL","SEVERITY","HEADER","FINDINGTYPE","DIRECTIVE","DIRECTIVEVALUE","DESCRIPTION"]) for finding in findings: url = str(finding.url) if finding.url else '' severity = str(finding.severity.name) if finding.severity.name else '' header = str(finding.header) if finding.header else "" ftype = str(finding.ftype.name.lower()) if finding.ftype.name else "" directive = str(finding.directive) if finding.directive else "" value = str(finding.value) if finding.value else "" msg = [url, severity ,header, ftype ,directive, value, str(base64.b64encode(finding.description))] writer.writerow(msg) return f.getvalue()
Example #22
Source File: google_robot_pushing.py From fine-lm with MIT License | 5 votes |
def parse_frames(self, filename): image_key = "move/{}/image/encoded" action_key = "move/{}/commanded_pose/vec_pitch_yaw" state_key = "move/{}/endeffector/vec_pitch_yaw" for serialized_example in tf.python_io.tf_record_iterator(filename): x = tf.train.Example() x.ParseFromString(serialized_example) # there are 6 features per frame nf = len(x.features.feature.keys()) // 6 # it seems features after 60 don't have any image nf = min(nf, self.max_number_of_frames_per_video) for i in range(nf): image_name = image_key.format(i) action_name = action_key.format(i) state_name = state_key.format(i) byte_str = x.features.feature[image_name].bytes_list.value[0] img = PIL_Image().open(io.BytesIO(byte_str)) # The original images are much bigger than 64x64 img = img.resize((self.frame_width, self.frame_height), resample=PIL_Image().BILINEAR) arr = np.array(img.getdata()) frame = arr.reshape( self.frame_width, self.frame_height, self.num_channels) state = x.features.feature[state_name].float_list.value action = x.features.feature[action_name].float_list.value yield i, frame, state, action
Example #23
Source File: image_lsun.py From fine-lm with MIT License | 5 votes |
def read_and_convert_to_png(self, tmp_dir, split_name): """Downloads the datasets, extracts from zip and yields in PNG format.""" category = "bedroom" _get_lsun(tmp_dir, category, split_name) filename = _LSUN_DATA_FILENAME % (category, split_name) data_path = os.path.join(tmp_dir, filename) print("Extracting zip file.") zip_ref = zipfile.ZipFile(data_path, "r") zip_ref.extractall(tmp_dir) zip_ref.close() print("Opening database.") data_file = os.path.join(tmp_dir, "%s_%s_lmdb/data.mdb" % (category, split_name)) filename_queue = tf.train.string_input_producer([data_file], num_epochs=1) reader = tf.LMDBReader() _, webp_image_tensor = reader.read(filename_queue) object_count = 0 with tf.train.MonitoredTrainingSession() as session: while True: webp_image = session.run(webp_image_tensor) object_count += 1 if object_count % 1000 == 0: print("Extracted %d objects." % object_count) # Unfortunately Tensorflow doesn't support reading or parsing # WebP images, so we have to do it via Image PIL library. image = pil_image().open(io.BytesIO(webp_image)) buf = io.BytesIO() width, height = image.size image.save(buf, "PNG") yield { "image/encoded": [buf.getvalue()], "image/format": ["png"], "image/class/label": [0], "image/height": [height], "image/width": [width] }
Example #24
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 #25
Source File: dockerfile.py From Paradrop with Apache License 2.0 | 5 votes |
def getBytesIO(self): """ Geterate a Dockerfile and return as a BytesIO object. """ data = self.getString() return BytesIO(data.encode("utf-8"))
Example #26
Source File: helpers.py From fishroom with GNU General Public License v3.0 | 5 votes |
def webp2png(webp_data): with BytesIO(webp_data) as fd: im = Image.open(fd) with BytesIO() as out: im.save(out, "PNG") out.seek(0) return out.read()
Example #27
Source File: dataloader.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 5 votes |
def send(self, obj): """Send object""" buf = io.BytesIO() ForkingPickler(buf, pickle.HIGHEST_PROTOCOL).dump(obj) self.send_bytes(buf.getvalue())
Example #28
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 #29
Source File: gen_synthetic_single.py From DOTA_models with Apache License 2.0 | 5 votes |
def GenerateSample(filename, code_shape, layer_depth): # {0, +1} binary codes. # No conversion since the output file is expected to store # codes using {0, +1} codes (and not {-1, +1}). code = synthetic_model.GenerateSingleCode(code_shape) code = np.round(code) # Reformat the code so as to be compatible with what is generated # by the image encoder. # The image encoder generates a tensor of size: # iteration_count x batch_size x height x width x iteration_depth. # Here: batch_size = 1 if code_shape[-1] % layer_depth != 0: raise ValueError('Number of layers is not an integer') height = code_shape[0] width = code_shape[1] code = code.reshape([1, height, width, -1, layer_depth]) code = np.transpose(code, [3, 0, 1, 2, 4]) int_codes = code.astype(np.int8) exported_codes = np.packbits(int_codes.reshape(-1)) output = io.BytesIO() np.savez_compressed(output, shape=int_codes.shape, codes=exported_codes) with tf.gfile.FastGFile(filename, 'wb') as code_file: code_file.write(output.getvalue())
Example #30
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