Metadata-Version: 2.1 Name: mt-940 Version: 4.30.0 Summary: A library to parse MT940 files and returns smart Python collections for statistics and manipulation. Home-page: https://github.com/WoLpH/mt940 Author: Rick van Hattem (wolph) Author-email: wolph@wol.ph License: BSD Keywords: MT940 Classifier: Development Status :: 6 - Mature Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Natural Language :: English Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: PyPy License-File: LICENSE License-File: AUTHORS.rst Provides-Extra: docs Requires-Dist: sphinx (>=1.7.2) ; extra == 'docs' Requires-Dist: GitPython (>=2.1.9) ; extra == 'docs' Requires-Dist: sphinx2rst ; extra == 'docs' Provides-Extra: tests Requires-Dist: pyyaml ; extra == 'tests' Requires-Dist: pytest ; extra == 'tests' Requires-Dist: pytest-cache ; extra == 'tests' Requires-Dist: pytest-cover ; extra == 'tests' Requires-Dist: pytest-flake8 ; extra == 'tests' Requires-Dist: flake8 ; extra == 'tests' ===== MT940 ===== .. image:: https://github.com/wolph/mt940/actions/workflows/main.yml/badge.svg?branch=master :alt: MT940 test status :target: https://github.com/wolph/mt940/actions/workflows/main.yml .. image:: https://badge.fury.io/py/mt-940.svg :alt: MT940 Pypi version :target: https://pypi.python.org/pypi/mt-940 .. image:: https://coveralls.io/repos/WoLpH/mt940/badge.svg?branch=master :alt: MT940 code coverage :target: https://coveralls.io/r/WoLpH/mt940?branch=master .. image:: 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. Links ----- * Documentation - http://mt940.readthedocs.org/en/latest/ * Source - https://github.com/WoLpH/mt940 * Bug reports - https://github.com/WoLpH/mt940/issues * Package homepage - https://pypi.python.org/pypi/mt-940 * My blog - http://wol.ph/ Install ------- To install the latest release: .. code-block:: bash pip install mt-940 Or if `pip` is not available: .. code-block:: bash easy_install mt-940 To install the latest development release: .. code-block:: bash 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: .. code-block:: python import mt940 import pprint transactions = mt940.parse('mt940_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: .. code-block:: python 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('mt940_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: .. code-block:: python import json import mt940 transactions = mt940.parse('mt940_tests/jejik/abnamro.sta') print(json.dumps(transactions, indent=4, cls=mt940.JSONEncoder)) Parsing statements from the Dutch bank ASN where tag 61 does not follow the Swift specifications: .. code-block:: python def ASNB_mt940_data(): with open('mt940_tests/ASNB/0708271685_09022020_164516.940.txt') as fh: return fh.read() def test_ASNB_tags(ASNB_mt940_data): tag_parser = mt940.tags.StatementASNB() trs = mt940.models.Transactions(tags={ tag_parser.id: tag_parser }) trs.parse(ASNB_mt940_data) trs_data = pprint.pformat(trs.data, sort_dicts=False) print(trs_data) 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: .. code-block:: shell pip install -r mt940_tests/requirements.txt py.test Or to run the tests on all available Python versions: .. code-block:: shell 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.python.org/pypi/mt-940 Ohloh https://www.ohloh.net/p/mt-940 License `BSD`_. git repo .. code-block:: bash $ git clone https://github.com/WoLpH/mt940.git install dev .. code-block:: bash $ git clone https://github.com/WoLpH/mt940.git mt940 $ cd ./mt940 $ virtualenv .env $ source .env/bin/activate $ pip install -e . tests .. code-block:: bash $ py.test ============== ========================================================== .. _BSD: http://opensource.org/licenses/BSD-3-Clause .. _Documentation: http://mt940.readthedocs.org/en/latest/ .. _API: http://mt940.readthedocs.org/en/latest/modules.html