{ "info": { "author": "Siddhant Goel", "author_email": "me@sgoel.dev", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Plugins", "Intended Audience :: End Users/Desktop", "Intended Audience :: Financial and Insurance Industry", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Office/Business :: Financial", "Topic :: Office/Business :: Financial :: Accounting" ], "description": "# Beancount N26 Importer\n\n[![image](https://github.com/siddhantgoel/beancount-n26/workflows/beancount-n26/badge.svg)](https://github.com/siddhantgoel/beancount-n26/workflows/beancount-n26/badge.svg)\n\n[![image](https://img.shields.io/pypi/v/beancount-n26.svg)](https://pypi.python.org/pypi/beancount-n26)\n\n[![image](https://img.shields.io/pypi/pyversions/beancount-n26.svg)](https://pypi.python.org/pypi/beancount-n26)\n\n[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n`beancount-n26` provides a [Beancount] Importer for converting CSV exports of\n[N26] account summaries to the Beancount format.\n\n## Installation\n\n```sh\n$ pip install beancount-n26\n```\n\nIn case you prefer installing from the Github repository, please note that\n`main` is the development branch so `stable` is what you should be installing\nfrom.\n\n## Usage\n\n```python\nfrom beancount_n26 import N26Importer\n\nCONFIG = [\n N26Importer(\n IBAN_NUMBER,\n 'Assets:N26',\n language='en',\n file_encoding='utf-8',\n ),\n]\n```\n\n### Classification\n\nTo classify specific recurring transactions automatically, you can specify an `account_patterns` as follows:\n\n```python\nfrom beancount_n26 import N26Importer\n\nCONFIG = [\n N26Importer(\n IBAN_NUMBER,\n 'Assets:N26',\n language='en',\n file_encoding='utf-8',\n account_patterns={\n \"Expenses:Food:Restaurants\": [\n \"amorino\",\n \"five guys.*\",\n ]\n }\n ),\n]\n```\n\nThe keys should be `accounts` while the items in the list are regular expressions that should match a `payee`.\n\nSome helper functions in `beancount_n26/utils/patterns_generation.py` are here to help you generate this dictionnary.\n\n## Contributing\n\nPlease make sure you have Python 3.6+ and [Poetry] installed.\n\n1. Git clone the repository -\n `git clone https://github.com/siddhantgoel/beancount-n26`\n\n2. Install the packages required for development -\n `poetry install`\n\n3. That's basically it. You should now be able to run the test suite -\n `poetry run py.test`.\n\n[Beancount]: http://furius.ca/beancount/\n[N26]: https://n26.com/\n[Poetry]: https://poetry.eustace.io/\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/siddhantgoel/beancount-n26", "keywords": "banking,beancount,cli-accounting,finance", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "beancount-n26", "package_url": "https://pypi.org/project/beancount-n26/", "platform": null, "project_url": "https://pypi.org/project/beancount-n26/", "project_urls": { "Homepage": "https://github.com/siddhantgoel/beancount-n26", "Repository": "https://github.com/siddhantgoel/beancount-n26" }, "release_url": "https://pypi.org/project/beancount-n26/0.6.0/", "requires_dist": [ "beancount (>=2.2,<3.0)" ], "requires_python": ">=3.6.2,<4.0.0", "summary": "Beancount Importer for N26 CSV exports", "version": "0.6.0", "yanked": false, "yanked_reason": null }, "last_serial": 13748335, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "36183ce2a87297efc83f428d9039d6f6", "sha256": "0737d654c89f06cf0e598317fe7100b08f9dd9b08027adf7543c3e25d398bea4" }, "downloads": -1, "filename": "beancount_n26-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36183ce2a87297efc83f428d9039d6f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5555, "upload_time": "2019-10-21T20:05:53", "upload_time_iso_8601": "2019-10-21T20:05:53.160256Z", "url": "https://files.pythonhosted.org/packages/2b/0a/2be0183b63ab6aa0fdca8d8d310d557a7795f421ff1e911621710eab4083/beancount_n26-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "200ae4cd84052d52619b4bc12caad1be", "sha256": "299f1c96566aebd192b046f121146b877305619a650e66b43921e57c9d4b4bee" }, "downloads": -1, "filename": "beancount-n26-0.1.0.tar.gz", "has_sig": false, "md5_digest": "200ae4cd84052d52619b4bc12caad1be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4132, "upload_time": "2019-10-21T20:05:50", "upload_time_iso_8601": "2019-10-21T20:05:50.392125Z", "url": "https://files.pythonhosted.org/packages/8d/c5/3db50dad08893bca1ef9d56d562cfb28b61722fe7cbbb458c047d4f37d9b/beancount-n26-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d41b9c7f518fcc0f0049b0775049232e", "sha256": "93f23f7ce360b01464c963e521402c9a043b3ea107f28e3516293db0ce24ed99" }, "downloads": -1, "filename": "beancount_n26-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d41b9c7f518fcc0f0049b0775049232e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 5671, "upload_time": "2019-10-22T13:18:13", "upload_time_iso_8601": "2019-10-22T13:18:13.835825Z", "url": "https://files.pythonhosted.org/packages/97/e8/cbf4a41fb69c7deda9cc23c0559dc75bf848915bc5cb39a272e571857ace/beancount_n26-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "584a5ecf594df732e1af213df95ba066", "sha256": "637a4053d6e916abacdd4f1131a6e9fc63d8e5f765a29e19216c4e92bfc610fb" }, "downloads": -1, "filename": "beancount-n26-0.2.0.tar.gz", "has_sig": false, "md5_digest": "584a5ecf594df732e1af213df95ba066", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 4271, "upload_time": "2019-10-22T13:18:12", "upload_time_iso_8601": "2019-10-22T13:18:12.090457Z", "url": "https://files.pythonhosted.org/packages/fb/56/6da56f43fd92d3fe11174dff087df465016d6db980a2165fac0a7076e20f/beancount-n26-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e9aa55a242c7653c9ebe89e33fb7688a", "sha256": "b8a88bcdd1dc74c86ea35c04fadd196127a9c6c0faa37ba0019bdd391baab15c" }, "downloads": -1, "filename": "beancount_n26-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e9aa55a242c7653c9ebe89e33fb7688a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 5729, "upload_time": "2020-05-10T19:16:48", "upload_time_iso_8601": "2020-05-10T19:16:48.898037Z", "url": "https://files.pythonhosted.org/packages/f5/2d/5db1c14c70341e08abe97aebb669fedabd4ec21d0b0804e23dbe22156a53/beancount_n26-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "28b7bdcf6e6162505e09841a2ac18261", "sha256": "bda393d7726ce5a3d5d9612b44cbe6e63c1126ac7ae823a5fce8027ddf735436" }, "downloads": -1, "filename": "beancount-n26-0.3.0.tar.gz", "has_sig": false, "md5_digest": "28b7bdcf6e6162505e09841a2ac18261", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 4399, "upload_time": "2020-05-10T19:16:47", "upload_time_iso_8601": "2020-05-10T19:16:47.846842Z", "url": "https://files.pythonhosted.org/packages/75/36/d39514db2f9cce716645904d2f9b86558b6bffb256306114bb33580b676a/beancount-n26-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d20593794b255993e77d6436a98980a2", "sha256": "720e3f1fbe353055624ffd715d9065b926f5421bccd41d06b1ac71d17dbccb80" }, "downloads": -1, "filename": "beancount_n26-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d20593794b255993e77d6436a98980a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 5742, "upload_time": "2020-05-12T18:07:35", "upload_time_iso_8601": "2020-05-12T18:07:35.545601Z", "url": "https://files.pythonhosted.org/packages/9d/53/92d810f3e2b5f616ec7aa23bb9244d2a9209bef251713b40aabe94f09950/beancount_n26-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "387e3b9720150b84845490173e842188", "sha256": "80faaedf587754ff78c4b6749edc68fcb7ee4984f2550896c503078a1da8219d" }, "downloads": -1, "filename": "beancount-n26-0.3.1.tar.gz", "has_sig": false, "md5_digest": "387e3b9720150b84845490173e842188", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 4415, "upload_time": "2020-05-12T18:07:33", "upload_time_iso_8601": "2020-05-12T18:07:33.978714Z", "url": "https://files.pythonhosted.org/packages/82/08/f91c4b2d90f5d4e934c75b46e1a560cd98bf7cd1106921fddcc4a3792176/beancount-n26-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "be97ad2d3e84eaa27bca6c1d671ce4d5", "sha256": "d2ee9626b9f19ea861605eec113edff00e9b6226ea6b31b75146f3976614c83b" }, "downloads": -1, "filename": "beancount_n26-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "be97ad2d3e84eaa27bca6c1d671ce4d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 5941, "upload_time": "2020-09-13T07:55:34", "upload_time_iso_8601": "2020-09-13T07:55:34.334318Z", "url": "https://files.pythonhosted.org/packages/45/e8/4b5df9320dc8f27053f53f6c488ff4d1d86124ccd92bd95cfefc1b1068fb/beancount_n26-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4608a8a4b2df1611dd8163b26425d633", "sha256": "8720587783e518c4c0cd6ea23adeb3d4d6739b4ce78a1d49f463d1155f60ffc8" }, "downloads": -1, "filename": "beancount-n26-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4608a8a4b2df1611dd8163b26425d633", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 4612, "upload_time": "2020-09-13T07:55:33", "upload_time_iso_8601": "2020-09-13T07:55:33.103483Z", "url": "https://files.pythonhosted.org/packages/30/69/b34fe4e8982b59c6d5e6fc95c890e7f08063b8ea1c12eb7100f1097e606b/beancount-n26-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "2155dc30f59c56f9d565587d6cb780bf", "sha256": "71db3c049ef68f453a984d599b76bba18be15277fc6fa1ad3eeef0ec13f35814" }, "downloads": -1, "filename": "beancount_n26-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2155dc30f59c56f9d565587d6cb780bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 5994, "upload_time": "2020-12-06T15:51:44", "upload_time_iso_8601": "2020-12-06T15:51:44.358386Z", "url": "https://files.pythonhosted.org/packages/35/20/e6e00bb001d7c0c776a3aba3782ea6e93910f9ba2a77a2c299e3dac6c7e0/beancount_n26-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bf5f2220d794e2cdd45420ae77c59122", "sha256": "6929c06f2718d94b6f48b0685e3ad2a38c3c848942b8c7965716a561dedd6981" }, "downloads": -1, "filename": "beancount-n26-0.4.1.tar.gz", "has_sig": false, "md5_digest": "bf5f2220d794e2cdd45420ae77c59122", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 4598, "upload_time": "2020-12-06T15:51:42", "upload_time_iso_8601": "2020-12-06T15:51:42.741243Z", "url": "https://files.pythonhosted.org/packages/39/98/49f08874e0681fc3015884bd7daa930448c74422ecf7917c9e7dc53f134b/beancount-n26-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "35c91ed113232049bb34f70ab06a5de2", "sha256": "b8114191e43ed5d02504e11812471e316b25d250b8a1d274401d84fc982bd818" }, "downloads": -1, "filename": "beancount_n26-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "35c91ed113232049bb34f70ab06a5de2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.2,<4.0.0", "size": 6085, "upload_time": "2021-12-13T09:03:03", "upload_time_iso_8601": "2021-12-13T09:03:03.286754Z", "url": "https://files.pythonhosted.org/packages/f4/02/c5570aea2e3ea63fe0d6b5cb27e8cfee19cddbd25038f72e58d65347de58/beancount_n26-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "492c3e2f4321146cff500d404eef1730", "sha256": "12770b3f890ce13ccbb09f5ec13e658b0fcb4699d01666abefd95dddb6befe0b" }, "downloads": -1, "filename": "beancount-n26-0.5.0.tar.gz", "has_sig": false, "md5_digest": "492c3e2f4321146cff500d404eef1730", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.2,<4.0.0", "size": 4692, "upload_time": "2021-12-13T09:03:01", "upload_time_iso_8601": "2021-12-13T09:03:01.851773Z", "url": "https://files.pythonhosted.org/packages/42/26/e7d338f9f70741c0aa7d6c5f55112430d59d1b2c36dcce7dd83c32acfda6/beancount-n26-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "8c7d81e60ec96d1f0548484ac9317388", "sha256": "9ce4bb32db446455d7c22d63ab7d8fa8b86ff53e3476d9807072997c73f69bc3" }, "downloads": -1, "filename": "beancount_n26-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8c7d81e60ec96d1f0548484ac9317388", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.2,<4.0.0", "size": 7839, "upload_time": "2022-05-08T09:51:53", "upload_time_iso_8601": "2022-05-08T09:51:53.980903Z", "url": "https://files.pythonhosted.org/packages/a7/89/374fbba2a8ecc8e4309d5a1a5a1c0c96a5dff4eeb9026d3fe1bd4eb0aa77/beancount_n26-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "db44c42e47a9bc2d80da0f0e0947f222", "sha256": "c835828692b72fd1d4113415ea889d0b543ae8c1e75e8b297097cf0c1d835945" }, "downloads": -1, "filename": "beancount-n26-0.6.0.tar.gz", "has_sig": false, "md5_digest": "db44c42e47a9bc2d80da0f0e0947f222", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.2,<4.0.0", "size": 5839, "upload_time": "2022-05-08T09:51:52", "upload_time_iso_8601": "2022-05-08T09:51:52.343119Z", "url": "https://files.pythonhosted.org/packages/be/67/d3c890051bef53718fb462e863207858e556a5ced9341f1e8e880abc9af3/beancount-n26-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c7d81e60ec96d1f0548484ac9317388", "sha256": "9ce4bb32db446455d7c22d63ab7d8fa8b86ff53e3476d9807072997c73f69bc3" }, "downloads": -1, "filename": "beancount_n26-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8c7d81e60ec96d1f0548484ac9317388", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.2,<4.0.0", "size": 7839, "upload_time": "2022-05-08T09:51:53", "upload_time_iso_8601": "2022-05-08T09:51:53.980903Z", "url": "https://files.pythonhosted.org/packages/a7/89/374fbba2a8ecc8e4309d5a1a5a1c0c96a5dff4eeb9026d3fe1bd4eb0aa77/beancount_n26-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "db44c42e47a9bc2d80da0f0e0947f222", "sha256": "c835828692b72fd1d4113415ea889d0b543ae8c1e75e8b297097cf0c1d835945" }, "downloads": -1, "filename": "beancount-n26-0.6.0.tar.gz", "has_sig": false, "md5_digest": "db44c42e47a9bc2d80da0f0e0947f222", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.2,<4.0.0", "size": 5839, "upload_time": "2022-05-08T09:51:52", "upload_time_iso_8601": "2022-05-08T09:51:52.343119Z", "url": "https://files.pythonhosted.org/packages/be/67/d3c890051bef53718fb462e863207858e556a5ced9341f1e8e880abc9af3/beancount-n26-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }