开发

TABLIB正在积极发展中,欢迎投稿。

如果您有功能请求、建议或错误报告,请在上打开一个新问题 GitHub. 若要提交修补程序,请发送请求 GitHub.

设计注意事项

TabLIB是用少量开发的 PEP 20 心中的成语。

  1. 美胜于丑。

  2. 显式优于隐式。

  3. 简单胜于复杂。

  4. 复杂总比复杂好。

  5. 可读性计数。

还有几件事要记住:

  1. 保持代码干燥。

  2. 尽量简单(使用)。

源代码管理

tablib源由 Git, 精益,平均,分布式源代码控制机器。

存储库是可公开访问的。

git clone git://github.com/jazzband/tablib.git

项目托管于 GitHub .

Git分支结构

功能/修补程序/发布分支遵循 Successful Git Branching Model . Git-flow 是管理存储库的好工具。我强烈推荐。

master

当前生产版本( 3.5 )关于PyPi。

每个版本都有标签。

提交修补程序时,请在打开请求之前将您的功能/更改放在其自己的分支中 GitHub.

添加新格式

tablib欢迎新的格式添加!格式建议包括:

  • MySQL转储

按惯例编码

tablib提供了一个用于添加格式支持的微框架。最简单的理解方法就是使用它。所以,让我们定义自己的格式,命名为 xxx .

从版本1.0开始,Tablib格式是基于类的,可以动态注册。

  1. 编写自定义格式类:

    class MyXXXFormatClass:
        title = 'xxx'
    
        @classmethod
        def export_set(cls, dset):
            ....
            # returns string representation of given dataset
    
        @classmethod
        def export_book(cls, dbook):
            ....
            # returns string representation of given databook
    
        @classmethod
        def import_set(cls, dset, in_stream):
            ...
            # populates given Dataset with given datastream
    
        @classmethod
        def import_book(cls, dbook, in_stream):
            ...
            # returns Databook instance
    
        @classmethod
        def detect(cls, stream):
            ...
            # returns True if given stream is parsable as xxx
    

    不包括支架

    如果格式不支持导入/导出机制( e.g. csv 排除 Databook 支持),只是不要定义各自的类方法。将引发适当的错误。

  2. 注册你的班级:

    from tablib.formats import registry
    
    registry.register('xxx', MyXXXFormatClass())
    

三。从那时起,你应该可以像使用内置的Tablib格式一样使用新的自定义格式,例如使用 dataset.export('xxx') 将使用 MyXXXFormatClass.export_set 方法。

测试tablib

测试对tablib的稳定性至关重要。这个稳定的项目被许多公司和开发人员用于生产中,因此必须确保发布的每个版本都是完全可操作的。在为tablib开发新功能时,也要确保为它编写适当的测试。

在为tablib开发特性时,测试更改是否存在潜在问题的最简单方法是直接运行测试套件。

$ tox

持续集成

每个拉入请求在收到后都会自动进行测试和检查 GitHub Actions 。如果您破坏了构建,您将收到相应的电子邮件。

任何人都可以随时查看生成状态和历史记录。

今后还将在这里列入其他报告,包括 PEP 8 检查并报告超大数据集的压力。

建立文档

文档是用强大、灵活和标准的python文档格式编写的, reStructured Text . 文档构建由强大的pocoo项目提供支持, Sphinx. 这个 API Documentation 主要是在整个模块内联记录的。

医生们住在 tablib/docs . 为了构建它们,首先需要安装sphinx。

$ pip install sphinx

然后,要构建文档的HTML版本,只需从 docs 目录:

$ make html

你的 docs/_build/html 然后,目录将包含文档的html表示,可以在大多数web服务器上发布。

也可以生成文档 epub , ** Latex ** , json&c 类似地。


确保查看 API Documentation .