Giter VIP home page Giter VIP logo

creditcoop_extract's Introduction

Introduction

Le but des programmes python de ce dépôt est de pouvoir extraire les informations de mouvements bancaire issues du Relevé PDF fourni par le Crédit Coopératif.

Malheureusement le Crédit Coopératif ne fourni pas d'extrait des opérations bancaires autrement que sous le format PDF, très dommage pour une banque qui est quasi une banque en ligne.

Il est donc impossible d'intégrer ces données dans un logiciel de comptabilité ou de les traiter de façon informatique.

Le programme extract-cc-pdf.py permet d'extraire les données (au format JSON pour le moment).

Ce programme utilise la librairie camelot pour extraire les informations sous forme de tableaux.

Le programme plot_cc_operations.py utilise matplotlib et le fichier issu de extract-cc-pdf.py pour tracer une courbe des opérations bancaires.

Il est possible de fournir une liste de fichiers PDF à extract-cc-pdf.py qui créera des fichiers JSON correspondant puis de donner à plot_cc_operations.py un fichier contenant la liste des fichiers JSON. Ainsi on peut avoir la courbe d'évolution du compte bancaire sur plusieurs mois.

Les relevés du Crédit Coopératif semblent suivre 2 formats différents, le changement a eu lieu au mois de Juin 2018. Les données ne sont pas présentées de la même façon dans les 2 formats.

Installation

Packages requis :

  • camelot-py
  • matplotlib
  • pandas

# Usage

$ extract-cc-pdf -i  <inputfile.pdf>/ -f <files> -t <type> -o <outputfile.json>
Extract data from inputfile.pdf and write them in type (json) format
in outputfile.json

Files is a file containing path to several PDF file to treat in batch.
In this case output name are input file name + a json suffix.
-i/--ifile
-o/--ofile
-f/--files
-h/--help prints this message
-d/--debug add debug prints"

$ plot-cc-operations -i <inputfile>
     where inputfile is a JSON file or
$ plot-cc-operations -f <files>
     where files contains paths of input files in JSON
     -d/--debug : print debug info
     -h/--help : print this message

Exemples :

./extract-cc-pdf.py -i data/RELEVES_20191001.pdf -o data/RELEVES_20191001.json

suivi de :

./plot_cc_operations.py -i data/RELEVES_20191001.json

ou alors

cat filesPDF
data/RELEVES_20191001.pdf
data/RELEVES_20191101.pdf
data/RELEVES_20191202.pdf
data/RELEVES_20200102.pdf
data/RELEVES_20200201.pdf
./extract-cc-pdf.py -f filesPDF
cat filesPDF_extractJSON
data/RELEVES_0902258281_20191001.pdf.json
data/RELEVES_0902258281_20191101.pdf.json
data/RELEVES_0902258281_20191202.pdf.json
data/RELEVES_0902258281_20200102.pdf.json
data/RELEVES_0902258281_20200201.pdf.json

suivi de

./plot_cc_operations.py -f filesPDF_extractJSON

cette dernière opération tracera l'évolution du compte pour les mois de Octobre 2019 à Février 2020.

Architecture

Le programme d'extraction utilise camelot-py pour trouver les tables dans le PDF.

Pour avoir un meilleur résultat il a fallu paramétrer l'appel à camelot pour lui donner une région où chercher les tables (éviter des Header de page) et lui donner les coordonnées des séparateurs de colonnes.

Les coordonnées passées pour les table_regions et les columns sont exprimés en coordonnées PDF, relevées en utilisant l'outils GhostView (gv).

Camelot-py renvoie des tables que l'on traitent ensuite grâce à la connaissance du format. Si la table est une table contenant des données sur les opérations bancaires on les extrait. On extrait également le solde au début de relevé et le solde en fin de relevé.

TODO

  • Faire l'extraction vers du CSV
  • Faire l'extraction pour le format PDF d'avant Juin 2018

creditcoop_extract's People

Contributors

bellefab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.