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个异常:
- ParsingException:当文件包含错误且库无法解释数据时
- NotSupportedYetException:当库还不支持该功能时
- IntegrityException:当预告片中报告的控件总数或对象数与文件中的不匹配时。
不一致
我们注意到不同的银行以稍微不同的方式实现规范,因此parse方法可能会引发parsingexception。 预计它可以正确地处理natwest、rbs和jp-morgan生成的文件。
我们还不知道如何处理这些案件,因为我们无法访问许多bai2文件,所以我们无法按照自己的意愿进行测试。
如果你遇到这种情况,请告诉我。
开发
请在GitHub上报告错误并打开拉取请求。
使用python setup.py test或tox运行所有测试。
通过更新bai2中的__version__字符串并运行python setup.py sdist bdist_wheel upload,将新版本分发给PyPi。
版权所有
版权所有(c)2018英国政府(司法部数字服务)。 有关详细信息,请参见license.txt。
历史记录
0.1.0(2015-08-06)
- 在制品