def read_metadata (filename): filetype = identify_file(filename) if filetype is None: return None parser = find_parser(filetype) return parser.reader(filename)
def read_processed_metadata (filename, filetype=None): if filetype is None: filetype = identify_file(filename) if filetype is None: return None parser = find_parser(filetype) return parser.processor(parser.reader(filename))
def write_metadata (filename, metadata): filetype = identify_file(filename) if filetype is None: raise ParserException('Unknown file type: %s' % filename) if filetype != metadata.filetype: raise ParserException('Metadata is not for this file type: %s' % filename) parser = find_parser(filetype) if parser.writer is None: raise ParserException('Cannot write metadata for this file type: %s' % filename) return parser.writer(filename, metadata)
def ebook_metadata (filename): filetype = identify_file(filename) if not is_ebook(filetype): return None return read_processed_metadata(filename, filetype=filetype)