Skip to main content

A library to parse MT940 files and returns smart Python collections for statistics and manipulation.

Project description

MT940 test status MT940 Pypi version MT940 code coverage https://img.shields.io/pypi/pyversions/mt-940.svg

mt940 - A library to parse MT940 files and returns smart Python collections for statistics and manipulation.

Install

To install the latest release:

pip install mt-940

Or if pip is not available:

easy_install mt-940

To install the latest development release:

git clone --branch develop https://github.com/WoLpH/mt940.git mt940
cd ./mt940
virtualenv .env
source .env/bin/activate
pip install -e .

To run the tests you can use the py.test command or just run tox to test everything in all supported python versions.

Usage

Basic parsing:

import mt940
import pprint

transactions = mt940.parse('tests/jejik/abnamro.sta')

print 'Transactions:'
print transactions
pprint.pprint(transactions.data)

print
for transaction in transactions:
    print 'Transaction: ', transaction
    pprint.pprint(transaction.data)

Set opening / closing balance information on each transaction:

import mt940
import pprint

mt940.tags.BalanceBase.scope = mt940.models.Transaction

# The currency has to be set manually when setting the BalanceBase scope to Transaction.
transactions = mt940.models.Transactions(processors=dict(
    pre_statement=[
        mt940.processors.add_currency_pre_processor('EUR'),
    ],
))

with open('tests/jejik/abnamro.sta') as f:
    data = f.read()

transactions.parse(data)

for transaction in transactions:
    print 'Transaction: ', transaction
    pprint.pprint(transaction.data)

Simple json encoding:

import json
import mt940

transactions = mt940.parse('tests/jejik/abnamro.sta')

def default(value):
    if isinstance(value, mt940.models.Transactions):
        data = value.data.copy()
        data['transactions'] = value.transactions
        return data

    elif hasattr(value, 'data'):
        return value.data

print(json.dumps(transactions, default=default, indent=4))

Contributing

Help is greatly appreciated, just please remember to clone the development branch and to run tox before creating pull requests.

Travis tests for flake8 support and test coverage so it’s always good to check those before creating a pull request.

Development branch: https://github.com/WoLpH/mt940/tree/develop

To run the tests:

pip install -r tests/requirements.txt
py.test

Or to run the tests on all available Python versions:

pip install tox
tox

Info

Python support

Python 2.7, >= 3.3

Blog

http://wol.ph/

Source

https://github.com/WoLpH/mt940

Documentation

http://mt940.rtfd.org

Changelog

http://mt940.readthedocs.org/en/latest/history.html

API

http://mt940.readthedocs.org/en/latest/modules.html

Issues/roadmap

https://github.com/WoLpH/mt940/issues

Travis

http://travis-ci.org/WoLpH/mt940

Test coverage

https://coveralls.io/r/WoLpH/mt940

Pypi

https://pypi-hypernode.com/pypi/mt-940

Ohloh

https://www.ohloh.net/p/mt-940

License

BSD.

git repo

$ git clone https://github.com/WoLpH/mt940.git

install dev

$ git clone https://github.com/WoLpH/mt940.git mt940
$ cd ./mt940
$ virtualenv .env
$ source .env/bin/activate
$ pip install -e .

tests

$ py.test

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

mt-940-4.13.2.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

mt_940-4.13.2-py2.py3-none-any.whl (22.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mt-940-4.13.2.tar.gz.

File metadata

  • Download URL: mt-940-4.13.2.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for mt-940-4.13.2.tar.gz
Algorithm Hash digest
SHA256 e72c005804045c880f21fd0b7619343414d044f7aef7689df193f92853752584
MD5 4e63e1d19937a89b1d45ce391261649c
BLAKE2b-256 abadbb8f6409359616dc322bae85e142505821a6d22d395e58de78c14ffb6835

See more details on using hashes here.

File details

Details for the file mt_940-4.13.2-py2.py3-none-any.whl.

File metadata

  • Download URL: mt_940-4.13.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for mt_940-4.13.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 14a9cb523854e64f0c1c9a64c56ac0d00a7050b3b5f65cfe1f2e511efadfa52d
MD5 0027c9ca4b3b8aa0fd746409dfeeea1d
BLAKE2b-256 dcf6453f27dfe0c7f4f5c05f7bacda2fce5909341229511615d0f53d4ce365a9

See more details on using hashes here.

Supported by

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