跳转到主要内容

一组bibtex实用工具(包括一个最小解析器)

项目描述

https://travis-ci.org/zerok/zs.bibtex.svg?branch=master

此包目前仅包括一个相当基础的BibTeX解析器,它将参考文献及其条目转换为类似字典的数据结构,并在使用时检查交叉引用。

用法

如何使用它的简单示例

from zs.bibtex.parser import parse_string

data = '''@article{mm09,
    author = {Max Mustermann},
    title = {The story of my life},
    year = {2009},
    journal = {Life Journale}
}'''

bibliography = parse_string(data)
article = bibliography['mm09']

参考文献以及其中的每个条目都提供了一个 validate() 方法,该方法检查参考文献上的交叉引用和条目上的字段。它还支持一个可选的 raise_unsupported 关键字参数,一旦在条目中使用可能不受支持的字段时,它会引发异常。

有关哪些字段是某种条目所需和可选的信息基于维基百科上的 BibTeX文章

如果您正在处理文件,您还可以使用一个名为 parse_file(file_or_path, encoding='utf-8', validate=False) 的小型辅助函数,它对给定的文件路径或类似文件对象进行处理,并返回该文件内容的参考文献对象。

自定义条目类型

zs.bibtex默认支持以下验证条目类型

  • article

  • book

  • booklet

  • incollection

  • inproceedings

  • conference

  • inbook

  • manual

  • masterthesis

  • misc

  • phdthesis

  • proceedings

  • techreport

  • unpublished

有关哪些条目需要哪些字段的具体信息,请查看 zs.bibtex.structures 模块。

但如果您处于需要不同条目类型的情况,您也可以轻松地注册自己的。

首先,您需要创建 zs.bibtex.structures.Entry 类的子类

from zs.bibtex import structures


class MyEntryType(structures.Entry):
    required_fields = ('required_field_1', ('either_this', 'or_that', ), )
    optional_fields = ('optional_field_1', )

然后简单地注册它

structures.TypeRegistry.register('mytype', MyEntryType')

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

zs.bibtex-1.0.0.tar.gz (9.0 kB 查看哈希值)

上传时间

由以下提供支持