# OCBC DBS Statement Parser
A Python tool to parse bank statements from PDF files, specifically designed for OCBC and DBS statements but potentially compatible with other banks.
## Requirements
- Python 3.7 or 3.8
# Installation
```
pip install ocbc-dbs-statement-parser
```
or if you're running it from source:
```
pip install -e .
```
# Usage
```
python -m ocbc-dbs-statement-parser <pdf_path> [--debug] [--verify] [--help]
```
Locally
```
python -m ocbc-dbs-statement-parser.cli <pdf_path> [--debug] [--verify][--help]
```
## Features
- Extracts transactions from bank account and credit card statements
- Supports various date formats
- Verifies transaction totals
- Debug mode for detailed output
## Development
### Setup
1. Clone the repository
2. Create a virtual environment: `python -m venv venv`
3. Activate the virtual environment:
- Windows: `venv\Scripts\activate`
- macOS/Linux: `source venv/bin/activate`
4. Install dependencies: `pip install -r requirements.txt`
### Testing
To run tests using pytest, execute the following command:
```
pytest tests/test_main.py
```
### Push releases
```
bumpversion patch|minor|major
git push && git push --tags
```
## Dependencies
The main dependencies for this project are:
- camelot-py==0.11.0
- pandas==2.0.3
- pycountry==24.6.1
- pypdf==4.3.1
For a complete list of dependencies, please refer to the `requirements.txt` file.
## License
This project is licensed under the MIT License.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Raw data
{
"_id": null,
"home_page": "https://github.com/seahyc/bank_statement_parser",
"name": "ocbc-dbs-statement-parser",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.9,>=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Seah Ying Cong",
"author_email": "seahyingcong@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/9b/64/195d833df31c6d2c176e07f7938b029579de02a915c9b2446f39e6d0cd80/ocbc_dbs_statement_parser-0.2.1.tar.gz",
"platform": null,
"description": "# OCBC DBS Statement Parser\n\nA Python tool to parse bank statements from PDF files, specifically designed for OCBC and DBS statements but potentially compatible with other banks.\n\n## Requirements\n\n- Python 3.7 or 3.8\n\n# Installation\n\n```\npip install ocbc-dbs-statement-parser\n```\n\nor if you're running it from source:\n\n```\npip install -e .\n```\n\n# Usage\n\n```\npython -m ocbc-dbs-statement-parser <pdf_path> [--debug] [--verify] [--help]\n```\n\nLocally\n```\npython -m ocbc-dbs-statement-parser.cli <pdf_path> [--debug] [--verify][--help]\n```\n\n## Features\n\n- Extracts transactions from bank account and credit card statements\n- Supports various date formats\n- Verifies transaction totals\n- Debug mode for detailed output\n\n## Development\n\n### Setup\n\n1. Clone the repository\n2. Create a virtual environment: `python -m venv venv`\n3. Activate the virtual environment:\n - Windows: `venv\\Scripts\\activate`\n - macOS/Linux: `source venv/bin/activate`\n4. Install dependencies: `pip install -r requirements.txt`\n\n### Testing\n\nTo run tests using pytest, execute the following command:\n\n```\npytest tests/test_main.py\n```\n\n### Push releases\n\n```\nbumpversion patch|minor|major\ngit push && git push --tags\n```\n\n## Dependencies\n\nThe main dependencies for this project are:\n\n- camelot-py==0.11.0\n- pandas==2.0.3\n- pycountry==24.6.1\n- pypdf==4.3.1\n\nFor a complete list of dependencies, please refer to the `requirements.txt` file.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool to parse OCBC and DBS bank and credit card statements from PDF files",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/seahyc/bank_statement_parser"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "be4fb3569344a2ef6850a6b1ab2a4bd996dfd75b775c7fcd79aa09906e36b294",
"md5": "d5c21124b4cf5b10c8735cb7cb58b3e6",
"sha256": "102b15ac9bfa138833961b24e6485055c1be46c711e24f38364c05f6c7ec9565"
},
"downloads": -1,
"filename": "ocbc_dbs_statement_parser-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d5c21124b4cf5b10c8735cb7cb58b3e6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.9,>=3.7",
"size": 11138,
"upload_time": "2024-10-10T06:06:03",
"upload_time_iso_8601": "2024-10-10T06:06:03.337474Z",
"url": "https://files.pythonhosted.org/packages/be/4f/b3569344a2ef6850a6b1ab2a4bd996dfd75b775c7fcd79aa09906e36b294/ocbc_dbs_statement_parser-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9b64195d833df31c6d2c176e07f7938b029579de02a915c9b2446f39e6d0cd80",
"md5": "1b00dbfb255dd69917af34f0495bd652",
"sha256": "3fa2820dd31ee89362ded4ddd6673a89bb9ef446ccdea3dcbd7ad4a894679569"
},
"downloads": -1,
"filename": "ocbc_dbs_statement_parser-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "1b00dbfb255dd69917af34f0495bd652",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.9,>=3.7",
"size": 28499,
"upload_time": "2024-10-10T06:06:04",
"upload_time_iso_8601": "2024-10-10T06:06:04.819370Z",
"url": "https://files.pythonhosted.org/packages/9b/64/195d833df31c6d2c176e07f7938b029579de02a915c9b2446f39e6d0cd80/ocbc_dbs_statement_parser-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-10 06:06:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "seahyc",
"github_project": "bank_statement_parser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "camelot-py",
"specs": [
[
"==",
"0.11.0"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "chardet",
"specs": [
[
"==",
"5.2.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.7"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"43.0.1"
]
]
},
{
"name": "et-xmlfile",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "ghostscript",
"specs": [
[
"==",
"0.7"
]
]
},
{
"name": "importlib_resources",
"specs": [
[
"==",
"6.4.5"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.24.4"
]
]
},
{
"name": "opencv-python",
"specs": [
[
"==",
"4.10.0.84"
]
]
},
{
"name": "openpyxl",
"specs": [
[
"==",
"3.1.5"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.1"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"2.0.3"
]
]
},
{
"name": "pandas-stubs",
"specs": [
[
"==",
"2.0.3.230814"
]
]
},
{
"name": "pdfminer.six",
"specs": [
[
"==",
"20240706"
]
]
},
{
"name": "pdftopng",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "pycountry",
"specs": [
[
"==",
"24.6.1"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pypdf",
"specs": [
[
"==",
"4.3.1"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.3.3"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "types-pytz",
"specs": [
[
"==",
"2024.1.0.20240417"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "tzdata",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.20.2"
]
]
}
],
"lcname": "ocbc-dbs-statement-parser"
}