def fp_reader(fp): memfile = MemoryFile(fp.read()) dataset = memfile.open() try: yield dataset finally: dataset.close() memfile.close()
def fp_writer(fp): memfile = MemoryFile() dataset = memfile.open( driver=driver, crs=crs, schema=this_schema, layer=layer, encoding=encoding, enabled_drivers=enabled_drivers, crs_wkt=crs_wkt, **kwargs) try: yield dataset finally: dataset.close() memfile.seek(0) fp.write(memfile.read()) memfile.close()
def fp_writer(fp): memfile = MemoryFile() dataset = memfile.open( driver=driver, crs=crs, schema=schema, layer=layer, encoding=encoding, enabled_drivers=enabled_drivers, **kwargs) try: yield dataset finally: dataset.close() memfile.seek(0) fp.write(memfile.read()) memfile.close()
def fp_reader(fp): memfile = MemoryFile(fp.read()) dataset = memfile.open(driver=driver, crs=crs, schema=schema, layer=layer, encoding=encoding, enabled_drivers=enabled_drivers, **kwargs) try: yield dataset finally: dataset.close() memfile.close()
class VectorWindowMemoryFile(): """Context manager around fiona.io.MemoryFile.""" def __init__(self, tile=None, features=None, schema=None, driver=None): """Prepare data & profile.""" self.tile = tile self.schema = schema self.driver = driver self.features = features def __enter__(self): """Open MemoryFile, write data and return.""" self.fio_memfile = MemoryFile() with self.fio_memfile.open(schema=self.schema, driver=self.driver, crs=self.tile.crs) as dst: dst.writerecords(self.features) return self.fio_memfile def __exit__(self, *args): """Make sure MemoryFile is closed.""" self.fio_memfile.close()
class VectorWindowMemoryFile(): """Context manager around fiona.io.MemoryFile.""" def __init__( self, tile=None, features=None, schema=None, driver=None ): """Prepare data & profile.""" self.tile = tile self.schema = schema self.driver = driver self.features = features def __enter__(self): """Open MemoryFile, write data and return.""" if self.driver.lower() == "geobuf": import geobuf return geobuf.encode( dict( type="FeatureCollection", features=[dict(f, type="Feature") for f in self.features] ) ) else: self.fio_memfile = MemoryFile() with self.fio_memfile.open( schema=self.schema, driver=self.driver, crs=self.tile.crs ) as dst: dst.writerecords(self.features) return self.fio_memfile.getbuffer() def __exit__(self, *args): """Make sure MemoryFile is closed.""" try: self.fio_memfile.close() except AttributeError: pass