コード例 #1
0
ファイル: __init__.py プロジェクト: mcrewson/biblio
def read_metadata (filename):
    filetype = identify_file(filename)
    if filetype is None:
        return None

    parser = find_parser(filetype)
    return parser.reader(filename)
コード例 #2
0
ファイル: __init__.py プロジェクト: mcrewson/biblio
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
ファイル: __init__.py プロジェクト: mcrewson/biblio
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
ファイル: ebook.py プロジェクト: mcrewson/biblio
def ebook_metadata (filename):
    filetype = identify_file(filename)
    if not is_ebook(filetype):
        return None

    return read_processed_metadata(filename, filetype=filetype)