Skip to main content

BoursoBank library.

Project description

Parseur de relevés BoursoBank

⚠ Cette bibliothèque a été développée indémendament de BoursoBank.

Installation

pip install boursobank

Sécurité

Mot de passe

Cette bibliothèque ne se connecte pas à internet (dans le doute, lis le code) elle ne fait que lire des relevés au format PDF déjà téléchargés, tous les traitements sont effectés en local.

Dans le doute il doit être possible de faire tourner l’application dans firejail ou similaire.

Il n’est donc pas nécessaire de s’inquiéter pour son mot de passe : il n’est pas demandé (là, pas besoin de relire le code : si la lib ne demande pas le mot de passe… elle ne l’a pas).

Erreurs du parseur

Lire des PDF n’est pas simple.

Pour s’assurer de ne pas introduire d’erreur dans vos analyses, cette bibliothèque fournit une méthode validate() qui valide que le montant initial + toutes les lignes donne bien le montant final, sans quoi une ValueError est levée.

Cet exemple ne lévera donc une exception qu’en cas d’erreur d’analyse (ou de la banque, comme au monopoly) :

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

Interface en ligne de commande

Cette lib est utilisable en ligne de commande :

boursobank *.pdf

vous affichera vos relevés (CB ou compte), exemple :

$ 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

Tout l’intérêt est de pouvoir consulter ses relevés en Python, par exemple un export en 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()

La bibliothèque ne fournit qu’un point d’entrée : la classe Statement

Depuis cette classe il est possible de parser des PDF :

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

ou du texte :

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

Cette classe fournit principalement deux attributs, un dictionnaire headers contenant :

  • date : le 1° jour du mois couvert par ce relevé.
  • emit_date : la date à laquelle le relevé a été rédigé.
  • RIB : le RIB/IBAN du relevé.
  • devise : probablement "EUR".
  • card_number : le numéro de carte bleu si c’est un relevé de carte.
  • card_owner : le nom du possesseur de la carte bleu si c’est un relevé de carte.

et un attribut lines contenant des instances de la classe Line dont les attributs principaux sont :

  • label : la description courte de la ligne.
  • description : la suite de la description de la ligne si elle est sur plusieurs lignes.
  • value : le montant de la ligne (positif pour un crédit, négatif pour un débit).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boursobank-0.6.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boursobank-0.6-py2.py3-none-any.whl (9.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file boursobank-0.6.tar.gz.

File metadata

  • Download URL: boursobank-0.6.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for boursobank-0.6.tar.gz
Algorithm Hash digest
SHA256 7a1da8cad55d596527b36f7ce12a38decee98f5eb19d09b09ac425a5c2a4e4c2
MD5 8bf14d04e35212f0bd8720b9597e2b9d
BLAKE2b-256 a4a6206c8cbf20744b3089af894247209428aa70437c42db9fa5cdeffbf8ce8e

See more details on using hashes here.

File details

Details for the file boursobank-0.6-py2.py3-none-any.whl.

File metadata

  • Download URL: boursobank-0.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for boursobank-0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0f5795688a859d5ab260a81485730f811aafd6892b3290e79c35556d6983f79e
MD5 f569dcb9f6fce6bd27576107047317fb
BLAKE2b-256 da2de1f17ceec993dfa1c64881363085721f05dfef86e7cc2c64ef775b2e2d5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page