'Read `data` from the secure temporary file. This method may
be called any number of times following instance initialization
and once :meth:`write has been called at least once, but not
before.
Before the first read operation, `seek(0, 0)` is called. So
while you can call this method any number of times, the full
contents of the file can only be read once. Additional calls to
read will return an empty str, which is desired behavior in that
it matches :class:`file` and because other modules depend on
this behavior to let them know they\'ve reached the end of the
file.
Args:
count (int): the number of bytes to try to read from the
file from the current position.'

def read(self, count=None):

    assert (self.last_action != 'init'), 'You    must    write    before    reading!'
    if (self.last_action == 'write'):
        self.seek(0, 0)
        self.last_action = 'read'
    if count:
        return self.decryptor.decrypt(self.file.read(count))
    else:
        return self.decryptor.decrypt(self.file.read())
