Skip to main content

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).

Metadata

Release files for boursobank 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boursobank 0.9
File Size Uploaded
boursobank-0.9.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for boursobank 0.9
File Interpreter ABI Platform
boursobank-0.9-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 18.3 kB

Release files / boursobank-0.9.tar.gz

Download URL boursobank-0.9.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
199262d32de63d2a9777877930fb8c867dfe86582a17104cb82e6a4d981360ba
BLAKE2b-256 checksum
How to use checksums
1d8a9ae7ba4385ed43fceb3644bcd7128fdf701d008ac4d169e8bcf56cb24f48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / boursobank-0.9-py2.py3-none-any.whl

Download URL boursobank-0.9-py2.py3-none-any.whl
Size 9.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
ece8459c240c086ecd9ac705a64d8ca0e502534e8c0ce79632d458858525d0c8
BLAKE2b-256 checksum
How to use checksums
2d18f630a3402a8f894ca06b36508345a2f06cb32692dc6540bd6e4dda95325c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.9 This release

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page