Source code for vlermv.serializers._identity
import mmap
import os
class _identity:
'Dump and load things that are already serialized.'
@staticmethod
def dump(obj, fp):
fp.write(obj)
@staticmethod
def load(fp):
return fp.read()
cache_exceptions = False
[docs]class identity_str(_identity):
'Dump and load raw strings.'
binary_mode = False
[docs]class identity_bytes(_identity):
'Dump and load raw bytes.'
binary_mode = True
class identity_mmap_bytes(_identity):
'Dump and load raw bytes, loading with a memory-mapped file.'
binary_mode = True
@staticmethod
def load(fp):
if os.stat(fp.name).st_size > 0:
return mmap.mmap(fp.fileno(), 0, prot = mmap.PROT_READ).read()
else:
return b''
class identity_mmap_str(_identity):
'Dump and load raw strings, loading with a memory-mapped file.'
binary_mode = True
@staticmethod
def dump(obj, fp):
fp.write(obj.encode('utf-8'))
@staticmethod
def load(fp):
return identity_mmap_bytes.load(fp).decode('utf-8')