Пример #1
0
def read_metadata (filename):
    filetype = identify_file(filename)
    if filetype is None:
        return None

    parser = find_parser(filetype)
    return parser.reader(filename)
Пример #2
0
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))
Пример #3
0
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)
Пример #4
0
def ebook_metadata (filename):
    filetype = identify_file(filename)
    if not is_ebook(filetype):
        return None

    return read_processed_metadata(filename, filetype=filetype)