Source code for pyrocko.io.io_common

# http://pyrocko.org - GPLv3
#
# The Pyrocko Developers, 21st Century
# ---|P------/S----------~Lg----------

'''
IO related exception definitions and utilities.
'''

import os


[docs]class FileError(Exception): ''' Base class for errors occurring when loading or saving data. ''' def __init__(self, *args, **kwargs): Exception.__init__(self, *args, **kwargs) self.context = {} def set_context(self, k, v): self.context[k] = v def __str__(self): s = Exception.__str__(self) if not self.context: return s lines = [] for k in sorted(self.context.keys()): lines.append('%s: %s\n' % (k, self.context[k])) return '%s\n%s' % (s, '\n'.join(lines))
[docs]class FileLoadError(FileError): ''' Raised when a problem occurred while loading of a file. '''
[docs]class FileSaveError(FileError): ''' Raised when a problem occurred while saving of a file. '''
def get_stats(path): try: s = os.stat(path) return float(s.st_mtime), s.st_size except OSError as e: raise FileLoadError(e) def touch(path): try: with open(path, 'a'): os.utime(path) except OSError as e: raise FileLoadError(e)