一个读写ofx文件的框架版本1。

inouk.edofx的Python项目详细描述


详细文档

edofx框架

edofx是一个python框架/dsl,用于操作x 版本1 文件。

除了python标准库之外,edofx没有其他依赖项。

Edofx已经用Python2.5到2.7进行了测试。

还不支持python 3。

此文件的内容

  • 许可证
  • 安装
  • < DL>
    用法
    > UL>
  • 分析ofx文件或字符串
  • < DL>
    检查和操作ofx文件 > UL>
  • 导航到X树
  • [[主页迭代器]]
  • 索引器
  • 删除节点
  • 修改节点
  • ofx树显示和导出
  • < DL>
    包装说明 > UL> < DL>
    edofx.py
    > UL>
  • ofx节点
  • ofxparser
  • Ofxobfuscator
  • edofx_integration.py
  • 测试目录说明
  • 许可证

    Edofx是根据麻省理工学院的许可证授权的。参见license.txt

    安装
    来自PYPI

    使用PIP或简易安装:

    $ pip install inouk.edofx
    or
    $ easy_install inouk.edofx
    
    来源于

    从正式存储库中复制git,然后使用以下命令安装:

    python setup.py install
    

    用法

    分析ofx文件或字符串

    要进行实验,请创建一个virtualenv,安装inouk.edofx,然后启动python并使用:

    >>> from inouk import edofx
    >>> f = open('test/fixtures/multi_account_file.ofx', 'U')  # Files must be opened using 'U' mode as the parser do not manage \r\n EOL
    >>> OFX = edofx.OFXParser(f.read()).parse()
    >>> OFX
    <OFX>...</OFX>
    

    ofx现在包含了ofxnode的test/fixtures/multi_account_file.ofx树表示。

    检查和操作ofx树

    要浏览OfX树,请使用:

    >>> OFX.children
    [<SIGNONMSGSRSV1>...</SIGNONMSGSRSV1>, <BANKMSGSRSV1>...</BANKMSGSRSV1>, <CREDITCARDMSGSRSV1>...</CREDITCARDMSGSRSV1>]
    >>> OFX.SIGNONMSGSRSV1.children
    [<SONRS>...</SONRS>]
    >>> OFX.SIGNONMSGSRSV1.SONRS.children
    [<STATUS>...</STATUS>, <DTSERVER>20100305094649, <LANGUAGE>FRA]
    >>> OFX.SIGNONMSGSRSV1.SONRS.DTSERVER
    <DTSERVER>20100305094649
    >>> OFX.SIGNONMSGSRSV1.SONRS.DTSERVER.value
    '20100305094649' # This is the raw value as a string
    >>> OFX.SIGNONMSGSRSV1.SONRS.DTSERVER.val # returns date or float when appropriate
    datetime.date(2010, 3, 5)
    

    迭代器正常:

    >>> # To list account numbers present in file
    >>> for account in OFX.BANKMSGSRSV1.STMTTRNRS:
    ...     print 'account #', account.TRNUID.val
    ...
    account # 34995678052
    account # 85576218690
    account # 44498008728
    account # 42025380697
    account # 62631064788
    

    索引器正常:

    >>> OFX.BANKMSGSRSV1.STMTTRNRS[2].TRNUID.val
    '44498008728'
    >>> len(OFX.BANKMSGSRSV1.STMTTRNRS)
    5
    

    修改节点

    删除节点:

    >>> OFX.children
    [<SIGNONMSGSRSV1>...</SIGNONMSGSRSV1>, <BANKMSGSRSV1>...</BANKMSGSRSV1>, <CREDITCARDMSGSRSV1>...</CREDITCARDMSGSRSV1>]
    >>> del OFX.CREDITCARDMSGSRSV1 # Warning does not work (yet) on indexed items
    >>> OFX.children
    [<SIGNONMSGSRSV1>...</SIGNONMSGSRSV1>, <BANKMSGSRSV1>...</BANKMSGSRSV1>]
    

    修改节点:

    为此,必须让".value"带有字符串。 请注意,.val'属性(尚未)可写。

    >>> OFX.SIGNONMSGSRSV1.SONRS.LANGUAGE
    <LANGUAGE>FRA
    >>> OFX.SIGNONMSGSRSV1.SONRS.LANGUAGE.value = 'Italian'
    >>> OFX.SIGNONMSGSRSV1.SONRS.LANGUAGE
    <LANGUAGE>Italian
    >>>
    

    要更改树结构:

    >>> OFX.SIGNONMSGSRSV1.SONRS.children.append(edofx.OFXNode(name='COLOR', value='blue')) # insert is ok too
    >>> OFX.SIGNONMSGSRSV1.SONRS.children
    [<STATUS>...</STATUS>, <DTSERVER>20100305094649, <LANGUAGE>Italian, <COLOR>blue]
    
    ofx树显示和导出

    ofxnode支持3种输出/转储格式:

    • ofx;在树/节点修改后作为ofx重新导出
    • xml;易于阅读
    • 模糊不清;从x重新导出,所有敏感信息都被干扰。

    重要信息 :节点"accttype"、"code"、"status"、"severity"、"language"、"curdef"、"trntype"未被混淆。

    示例
    $ pip install inouk.edofx
    or
    $ easy_install inouk.edofx
    
    0
    $ pip install inouk.edofx
    or
    $ easy_install inouk.edofx
    
    1
    $ pip install inouk.edofx
    or
    $ easy_install inouk.edofx
    
    2
    共x个标题

    OFX标题可用作dict。

    标题可以通过两种方式解析:

    • 如果已调用parse(),则可以使用parser对象的x_headers属性检索它们。
    • ofxparser可以使用parse_Headers()方法(例如test_01_Parser.py的测试7、8和9)仅解析头(而不是内容)。

    包装说明

    此软件包包含:

    • edofx/\u init.py;框架
    • < DL>
      测试;包含python单元测试类 > UL>
    • edofx_integration.py;演示如何将ofx源解析为特定类的示例。
    edofx/初始py

    框架本身分为三类:

    • ofx节点
    • ofxparser
    • Ofxobfuscator

    使用python帮助进行方法级描述。(即使我对python帮助的内容质量略感乐观……)

    xnode的

    ofxnode用于存储解析的ofx源。

    爆炸物

    ofxparser从包含一些ofx内容的字符串构建xnode树。

    xobfuscator的

    ofxobfuscator是一个基于词法分析的天真的混淆器。 ofxobfuscator能够混淆ofx源的xparser已经无法解析。 如果您想发送一些xparser无法处理的x文件,请使用此选项。

    测试

    在这里您将找到3个示例和一些单元测试:

    • edofx_integration.py(见下文)
    • edofx2csv.py;演示如何在中将andofx文件导出到csv
    • ofxplode.py;演示如何从多帐户文件生成单个帐户的ofx文件
    • 单元测试
    edofx_integration.py

    此文件显示如何将多帐户类型/多帐户ofx文件解析为语句和语句事务类,并将所有内容导出为一组每个帐户的csv文件。

    最有趣的部分是render_as_dot()函数。

    下面的render_as_dot()代码片段演示了ofxnode如何使将ofx内容轻松加载到任意python对象中:

    $ pip install inouk.edofx
    or
    $ easy_install inouk.edofx
    
    3
    edofx2csv.py

    演示如何将edofx文件导出为csv格式。

    xplode.py的

    采用多帐户ofx文件并生成:

    • X文件的单个帐户
    • 单个ofx文件的xml表示形式
    单元测试
    • 解析器测试(test_01_parser.py)
    • ofxtree导出测试(test_02_of xnode_export.py)
    • 混淆测试(test_03_obfusation.py)

    目录测试/fixtures包含一组ofx file.real_file.ofx和multi_account_file.ofx是使用ofxnode.obfuscated_of x_repr()从实际文件生成的


    免责声明:edofx是我的第一个python代码!!我今天不会写这么多东西。

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

    推荐PyPI第三方库


    热门话题
    java Saved ImageView保存为字节[]后不显示   单元测试中的java组织测试   java Netty解码器的正确用法   Java HashMap将一个新值附加到向量的优化方法,该向量是HashMap<String,vector<String>>中的值   让Android Studio使用Java而不是Kotlin?   用springdoc处理递归模型的java   java使用openapigeneratorgradleplugin仅为spring引导生成REST接口   java为什么多个nextInt()可以工作?   java在循环中创建Swing组件并访问它们   Java数学。随机闭双区间   java如何在mysql中避免重复而不使用唯一键   java Selenium CSS选择器语法,用于同时检查类和文本   java Tomcat 8.5识别新内容的时间太长   java Ho在响应对象中设置状态代码400   检查登录用户时发生java NullPointerException   列表在Java中按分隔符行拆分文件