{"id":24995337,"url":"https://github.com/launchplatform/beanhub-extract","last_synced_at":"2025-04-12T04:10:57.089Z","repository":{"id":238183385,"uuid":"796045082","full_name":"LaunchPlatform/beanhub-extract","owner":"LaunchPlatform","description":"The simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions","archived":false,"fork":false,"pushed_at":"2024-05-11T07:50:33.000Z","size":44,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-16T17:01:37.806Z","etag":null,"topics":["beancount","csv","export"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LaunchPlatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-04T19:11:35.000Z","updated_at":"2024-06-18T13:24:50.552Z","dependencies_parsed_at":"2024-06-18T13:24:49.461Z","dependency_job_id":"c1546475-fed4-4ed7-9b97-1b3d426fc1f7","html_url":"https://github.com/LaunchPlatform/beanhub-extract","commit_stats":null,"previous_names":["launchplatform/beanhub-extract"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fbeanhub-extract","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fbeanhub-extract/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fbeanhub-extract/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fbeanhub-extract/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LaunchPlatform","download_url":"https://codeload.github.com/LaunchPlatform/beanhub-extract/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247761141,"owners_count":20991545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beancount","csv","export"],"created_at":"2025-02-04T15:35:16.856Z","updated_at":"2025-04-12T04:10:57.056Z","avatar_url":"https://github.com/LaunchPlatform.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# beanhub-extract [![CircleCI](https://dl.circleci.com/status-badge/img/gh/LaunchPlatform/beanhub-extract/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/LaunchPlatform/beanhub-extract/tree/master)\nThe simple library for extracting all kind of bank account transaction export files, mostly for [beanhub-import](https://github.com/LaunchPlatform/beanhub-import) to ingest and generate transactions\n\n**Note**: This project is still in early stage, still subject to rapid major changes\n\n## Why?\n\nHave you ever wondered why each of us has to write our own different Beancount importers for the same bank again and again?\nWhy we cannot use the same exporter for the same bank CSV file?\nOne of the biggest problems of the original Beancount importer design is that the transaction generation logic is coupled with the extract logic, making it hard to reuse.\nWe are addressing the problem by creating a library only for extracting bank-exported CSV files into standardized transaction structures to be processed later.\nIdeally, you should be able to import this library and use it to import standardized transactions from CSV files exported from any bank in the world.\n\n## Install\n\n```bash\npip install beanhub-extract\n```\n\n## Example\n\nExtracting transactions from the CSV file is easy.\nSimply create the extractor class and make a function call on the instance object, which will return a transaction object generator.\nLike this:\n\n```python\nfrom beanhub_extract.extractors.mercury import MercuryExtractor\n\nwith open(\"/path/to/my-mercury.csv\", \"rt\") as fo:\n    extractor = MercuryExtractor(fo)\n    for txn in extractor():\n        print(txn)\n        # process your transaction here\n\n```\n\n## Sponsor\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://beanhub.io\"\u003e\u003cimg src=\"https://github.com/LaunchPlatform/beanhub-extract/raw/master/assets/beanhub.svg?raw=true\" alt=\"BeanHub logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nA modern accounting book service based on the most popular open source version control system [Git](https://git-scm.com/) and text-based double entry accounting book software [Beancount](https://beancount.github.io/docs/index.html).\n\n## Transaction data object\n\nWe defined a standardized transaction data object to accommodate a transaction statement's most commonly used columns.\nThe data object type is a simple immutable Python `dataclasses.dataclass` class.\nIt's defined in the [beanhub_extract/data_types.py](beanhub_extract/data_types.py) file.\n\n## Supported Formats\n\nCurrently, we only support a few banks for our own benefit.\nIf you find any particular bank CSV file or format missing and want this library to support it, please feel free to open a PR.\n\n### [Mercury](https://mercury.com/) - `mercury`\n\nTo export the CSV file, please visit the [Transactions](https://app.mercury.com/transactions) page and click \"Add Filter\" to limit the time range of your export, then click the \"Export All\" button on the right-hand side.\n\n### [Chase](chase.com)\n\n#### Chase Credit Card - `chase_credit_card`\n\nTo export the Chase Credit Card CSV file, please visit and login the Chase website.\nExpand the credit card details by clicking on the card you would like to export.\nClick the \"Download account activity\" button on the right hand side of the Account activity section.\nClick the \"Download\" button after you select the activity time range to \"Year to date\".","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchplatform%2Fbeanhub-extract","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchplatform%2Fbeanhub-extract","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchplatform%2Fbeanhub-extract/lists"}