BI2语法分析器

bai2的Python项目详细描述


用于解析和写入BAI2文件的python模块。

由于我们没有足够的数据进行测试,因此库目前尚未准备就绪,请帮助我们改进它。

要求

仅支持Python2.7和Python3.3+。

安装

pip install bai2

用法

在项目中使用bai2

>>>frombai2importbai2>>># parse from a file>>>withopen(<file-path>)asf:>>>bai2_file=bai2.parse_from_file(f)>>># parse from a string>>>bai2_file=bai2.parse_from_string(<bai2_as_string>)>>># parse from lines>>>bai2_file=bai2.parse_from_lines(<bai2_as_lines>)

parse_from_*方法返回一个bai2.models.Bai2File对象,该对象可用于检查已分析的数据。

编写bai2文件:

>>>frombai2importbai2>>>frombai2importmodels>>>bai2_file=models.Bai2File()>>>bai2_file.header.sender_id='EGBANK'>>>bai2_file.children.append(models.Group())>>>transactions=[models.TransactionDetail(amount=100)]>>>bai2_file.children[0].children.append(models.Account(children=transactions))>>># write to string>>>output=bai2.write(bai2_file)

型号

模型结构:

Bai2File
    Bai2FileHeader
    Group
        GroupHeader
        Account
            AccountIdentifier
            TransactionDetail
            AccountTrailer
        GroupTrailer
    Bai2FileTrailer

节模型定义一个header、一个trailer和一个children列表,而单个模型定义与bai2字段匹配的属性。

每个模型都有一个rows属性,其中包含来自bai2文件的原始行。

例外情况

parse方法可能引发3个异常:

  1. ParsingException:当文件包含错误且库无法解释数据时
  2. NotSupportedYetException:当库还不支持该功能时
  3. IntegrityException:当预告片中报告的控件总数或对象数与文件中的不匹配时。

不一致

我们注意到不同的银行以稍微不同的方式实现规范,因此parse方法可能会引发parsingexception。 预计它可以正确地处理natwest、rbs和jp-morgan生成的文件。

我们还不知道如何处理这些案件,因为我们无法访问许多bai2文件,所以我们无法按照自己的意愿进行测试。

如果你遇到这种情况,请告诉我。

开发

https://travis-ci.org/ministryofjustice/bai2.svg?branch=master

请在GitHub上报告错误并打开拉取请求。

使用python setup.py testtox运行所有测试。

通过更新bai2中的__version__字符串并运行python setup.py sdist bdist_wheel upload,将新版本分发给PyPi

历史记录

0.1.0(2015-08-06)

  • 在制品

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用prepared语句在oracle中插入日期   对点具有双重值的java   使用多个通配符的java请求映射   java Springboot为什么要设置springbootstartertomcat   除了对JavaBean的请求之外,还使用servletContext的servlet   java如何清除OCSID。返回到池的连接时的CLIENTID JDBC客户端信息属性   将整型数组转换为光栅Java   java使用对象引用作为互斥锁   java为什么在编程语言中使用sin函数返回奇怪的sin值不像计算器   java如何将JButton链接到对象并调用相关方法   php用Java发送POST数据   导航属性的java模拟加载   java多个活动错误Android试图对空对象引用调用虚拟方法“”   java Android更改ActionBar文本颜色   如何使用带有java反射且不带开关的parant引用创建子类