跳转到主要内容

BoursoBank库。

项目描述

Parseur de relevés BoursoBank

⚠ 该库是独立于BoursoBank开发的。

安装

pip install boursobank

安全

密码

此库不会连接到互联网(如有疑问,请阅读代码)它只读取已下载的PDF格式的账单,所有处理均在本地进行。

在疑问的情况下,应用程序应在firejail或类似环境中运行。

因此,无需担心密码:它不需要(这里不需要再次阅读代码:如果库不请求密码…它就没有)。

解析器错误

读取PDF 并不简单

为了确保不会在您的分析中引入错误,该库提供了一个validate()方法,该方法验证初始金额加上所有行是否确实等于最终金额,否则将引发一个ValueError

因此,此示例仅在分析错误(或银行,如垄断)的情况下引发异常。

for file in args.files:
    statement = Statement.from_pdf(file)
    statement.pretty_print()
    statement.validate()

命令行界面

此库可用于命令行

boursobank *.pdf

将显示您的账单(信用卡或账户),例如

$ boursobank 2024-01.pdf
            2024-01.pdf
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Date       ┃ RIB                        ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 2024-01-01 │ 12345 12345 00000000000 99 │
└────────────┴────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃                                    Label ┃ Value    ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│                            VIR SEPA Truc │ 42.42    │
│                     VIR SEPA Machin truc │ 99.00    │
│    Relevé différé Carte 4810********0000 │ -123.45  │
└──────────────────────────────────────────┴──────────┘

API

所有的好处是能够在Python中查看账单,例如导出到CSV格式

import argparse
import csv
import sys
from pathlib import Path

from boursobank import Statement


def main():
    args = parse_args()
    statement = Statement.from_pdf(args.ifile)
    writer = csv.writer(sys.stdout)
    for line in statement.lines:
        writer.writerow((line.label, line.value))


def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("ifile", type=Path, help="PDF file")
    return parser.parse_args()


if __name__ == "__main__":
    main()

该库仅提供一个入口点:类Statement

从此类可以解析PDF

relevé_bancaire = Statement.from_pdf("test.pdf")

或文本

relevé_bancaire = Statement.from_text("blah blah")

此类主要提供两个属性,一个包含以下内容的字典headers

  • date:本账单覆盖的月份的第一天。
  • emit_date:账单的编写日期。
  • RIB:账单的RIB/IBAN。
  • devise:可能是"EUR"
  • card_number : 如果是银行卡对账单,则为银行卡号。
  • card_owner : 如果是银行卡对账单,则为银行卡持有人姓名。

以及一个包含Line类实例的lines属性,其主要属性包括:

  • label : 线的简短描述。
  • description : 如果描述跨越多行,则为线的详细描述。
  • value : 线的金额(信用为正数,借记为负数)。

项目详情


下载文件

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

源分布

boursobank-0.5.tar.gz (7.7 kB 查看哈希值)

上传时间

构建分布

boursobank-0.5-py2.py3-none-any.whl (8.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由...

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面