[![pipeline status](https://gitlab.com/DrTexx/csv-transaction-history-detective/badges/main/pipeline.svg)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/commits/main)
[![coverage report](https://gitlab.com/DrTexx/csv-transaction-history-detective/badges/main/coverage.svg)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/commits/main)
[![GitLab issues](https://img.shields.io/gitlab/issues/open/drtexx/csv-transaction-history-detective?logo=gitlab)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/issues)
[![GitLab merge requests](https://img.shields.io/gitlab/merge-requests/open/drtexx/csv-transaction-history-detective?logo=gitlab)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/merge_requests)
# CSV Transaction History Detective
[![PyPI Release](https://img.shields.io/pypi/v/csvthd?logo=python)](https://pypi.org/project/csvthd)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/csvthd?logo=Python)](https://pypi.org/project/csvthd)
[![PyPI - License](https://img.shields.io/pypi/l/csvthd?color=orange&logo=Python)](https://pypi.org/project/csvthd)
## Getting started
<!-- TODO: add an example `config.json` file called `config.json.example.json` -->
<!-- TODO: add an example csv file to give more context to why `config.json.example.md` is laid out how it is -->
<!-- TODO: mention in `config.json.template.md` to look at `config.json.example.md` for an example config. -->
1. [Install](https://gitlab.com/DrTexx/csv-transaction-history-detective/#installation) `csvthd`
2. Create your `config.json` file (see [`config.json.template.md`](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/blob/main/config.json.template.md) for a template)
3. See [usage](https://gitlab.com/DrTexx/csv-transaction-history-detective/#usage)
## Installation
```bash
pip install csvthd
```
<!-- TODO: add a "features" section that highlights the capabilities of csvthd in a non-technical way. i.e. filtering/sorting/reporting/etc. options -->
## Usage
### Show help
```bash
csvthd --help
```
### Filter
#### Transaction details
`-i/--include`
Only show transactions that include **all** of the specified strings in their details
- Case insensitive
- Multiple strings supported (each transaction's details must include **all** of the strings specified)
```bash
# only show transactions with details including the word "paypal"
csvthd -i paypal
# only show transactions with details including "paypal" and "steam"
csvthd -i paypal -i steam
```
`-E/--exclude`
Only show transactions that **don't** include **any** of the specified strings in their details
- Case insensitive
- Multiple strings supported (each transaction's details mustn't include **any** of the strings specified)
```bash
# only show transactions without details containing the word "paypal"
csvthd -E paypal
# only show transactions without details containing "paypal" or "chemist warehouse"
csvthd -E paypal -E "chemist warehouse"
# only show transactions with details containing "paypal", but not "steam"
csvthd -i paypal -E steam
```
#### Amount
`-a/--amount`
Only show transactions with amounts under/over/equal to a given value
- Multiple numbers supported (each transaction amount must satisfy **all** conditions specified)
```bash
# only show transactions over $20.00
csvthd -a over 20
# only show transactions under $10.00
csvthd -a under 10
# only show transactions between $20.00 to $30.00
csvthd -a over 20 -a under 30
# only show transactions of exactly $25.00
csvthd -a equal 25
```
#### Date
`-d/--date`
Only show transactions before/after/on a given date.
```bash
# only show transactions after 1 Jan 2022
csvthd -d after 01/01/2022
# only show transactions before 21 Feb 2022
csvthd -d before 21/02/2022
# only show transactions on 10 Apr 2022
csvthd -d on 10/04/2022
# only show transactions from 1 Jan 2022 - 1 Feb 2022
csvthd -d after 01/01/2022 -d before 01/02/2022
```
#### Type
`-t/--transaction-type`
Only show transactions where money is sent/received
```bash
# only show transactions where money is sent
csvthd -t out
# only show transactions where money is received
csvthd -t in
# only show transactions with details containing "paypal" where money received
csvthd -i paypal -t in
# get the sum of all money received with "paypal" in details but not "return"
csvthd -i paypal -t in -E return -S
```
#### Account Name
`-A/--account-name`
Only show transactions from account names that include the provided text.
```bash
# only show transactions where the account name includes "commbank"
csvthd -A commbank
# get the sum of all transactions where the account name includes "paypal"
csvthd -A paypal -S
```
### Sorting
#### Sort by
`-s/--sort-by`
```bash
# list transactions from latest to oldest (default)
csvthd -s date
# list transactions from lowest to highest
csvthd -s amount
```
#### Reverse sorting order
`-r/--reverse-sort`
```bash
# list latest transactions first
csvthd
# list oldest transactions first
csvthd -r
# list smallest transactions first
csvthd -s amount
# list largest transactions first
csvthd -s amount -r
```
### Reports
#### Sum amount
`-S/--sum`
Show the sum of the transaction amounts (after filtering)
```bash
# print the sum of all transactions
csvthd -S
# get the sum of transactions with "paypal" in their details
csvthd -S -i paypal
```
## Development
### Build
```bash
./development-scripts/build.sh
```
## Links
<!-- TODO: add website link -->
- 📖 [Documentation](https://gitlab.com/DrTexx/csv-transaction-history-detective)
- 🐍 [Latest Release](https://pypi.org/project/csvthd)
- 🧰 [Source Code](https://gitlab.com/DrTexx/csv-transaction-history-detective)
- 🐞 [Issue Tracker](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/issues)
- `🐦 Twitter` [@DrTexx](https://twitter.com/DrTexx)
- `📨 Email` [denver.opensource@tutanota.com](mailto:denver.opensource@tutanota.com)
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/DrTexx/csv-transaction-history-detective/",
"name": "csvthd",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "finance,csv,transactions,tax,accounting",
"author": "DrTexx",
"author_email": "denver.opensource@tutanota.com",
"download_url": "https://files.pythonhosted.org/packages/a0/86/67860b6f7e141354162fa7d89f5dd58d3f873f91875a527895c5a06d03e6/csvthd-0.5.0b0.tar.gz",
"platform": null,
"description": "[![pipeline status](https://gitlab.com/DrTexx/csv-transaction-history-detective/badges/main/pipeline.svg)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/commits/main)\n[![coverage report](https://gitlab.com/DrTexx/csv-transaction-history-detective/badges/main/coverage.svg)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/commits/main)\n[![GitLab issues](https://img.shields.io/gitlab/issues/open/drtexx/csv-transaction-history-detective?logo=gitlab)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/issues)\n[![GitLab merge requests](https://img.shields.io/gitlab/merge-requests/open/drtexx/csv-transaction-history-detective?logo=gitlab)](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/merge_requests)\n\n# CSV Transaction History Detective\n\n[![PyPI Release](https://img.shields.io/pypi/v/csvthd?logo=python)](https://pypi.org/project/csvthd)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/csvthd?logo=Python)](https://pypi.org/project/csvthd)\n[![PyPI - License](https://img.shields.io/pypi/l/csvthd?color=orange&logo=Python)](https://pypi.org/project/csvthd)\n\n## Getting started\n\n<!-- TODO: add an example `config.json` file called `config.json.example.json` -->\n\n<!-- TODO: add an example csv file to give more context to why `config.json.example.md` is laid out how it is -->\n\n<!-- TODO: mention in `config.json.template.md` to look at `config.json.example.md` for an example config. -->\n\n1. [Install](https://gitlab.com/DrTexx/csv-transaction-history-detective/#installation) `csvthd`\n2. Create your `config.json` file (see [`config.json.template.md`](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/blob/main/config.json.template.md) for a template)\n3. See [usage](https://gitlab.com/DrTexx/csv-transaction-history-detective/#usage)\n\n## Installation\n\n```bash\npip install csvthd\n```\n\n<!-- TODO: add a \"features\" section that highlights the capabilities of csvthd in a non-technical way. i.e. filtering/sorting/reporting/etc. options -->\n\n## Usage\n\n### Show help\n\n```bash\ncsvthd --help\n```\n\n### Filter\n\n#### Transaction details\n\n`-i/--include`\n\nOnly show transactions that include **all** of the specified strings in their details\n\n- Case insensitive\n- Multiple strings supported (each transaction's details must include **all** of the strings specified)\n\n```bash\n# only show transactions with details including the word \"paypal\"\ncsvthd -i paypal\n\n# only show transactions with details including \"paypal\" and \"steam\"\ncsvthd -i paypal -i steam\n```\n\n`-E/--exclude`\n\nOnly show transactions that **don't** include **any** of the specified strings in their details\n\n- Case insensitive\n- Multiple strings supported (each transaction's details mustn't include **any** of the strings specified)\n\n```bash\n# only show transactions without details containing the word \"paypal\"\ncsvthd -E paypal\n\n# only show transactions without details containing \"paypal\" or \"chemist warehouse\"\ncsvthd -E paypal -E \"chemist warehouse\"\n\n# only show transactions with details containing \"paypal\", but not \"steam\"\ncsvthd -i paypal -E steam\n```\n\n#### Amount\n\n`-a/--amount`\n\nOnly show transactions with amounts under/over/equal to a given value\n\n- Multiple numbers supported (each transaction amount must satisfy **all** conditions specified)\n\n```bash\n# only show transactions over $20.00\ncsvthd -a over 20\n\n# only show transactions under $10.00\ncsvthd -a under 10\n\n# only show transactions between $20.00 to $30.00\ncsvthd -a over 20 -a under 30\n\n# only show transactions of exactly $25.00\ncsvthd -a equal 25\n```\n\n#### Date\n\n`-d/--date`\n\nOnly show transactions before/after/on a given date.\n\n```bash\n# only show transactions after 1 Jan 2022\ncsvthd -d after 01/01/2022\n\n# only show transactions before 21 Feb 2022\ncsvthd -d before 21/02/2022\n\n# only show transactions on 10 Apr 2022\ncsvthd -d on 10/04/2022\n\n# only show transactions from 1 Jan 2022 - 1 Feb 2022\ncsvthd -d after 01/01/2022 -d before 01/02/2022\n```\n\n#### Type\n\n`-t/--transaction-type`\n\nOnly show transactions where money is sent/received\n\n```bash\n# only show transactions where money is sent\ncsvthd -t out\n\n# only show transactions where money is received\ncsvthd -t in\n\n# only show transactions with details containing \"paypal\" where money received\ncsvthd -i paypal -t in\n\n# get the sum of all money received with \"paypal\" in details but not \"return\"\ncsvthd -i paypal -t in -E return -S\n```\n\n#### Account Name\n\n`-A/--account-name`\n\nOnly show transactions from account names that include the provided text.\n\n```bash\n# only show transactions where the account name includes \"commbank\"\ncsvthd -A commbank\n\n# get the sum of all transactions where the account name includes \"paypal\"\ncsvthd -A paypal -S\n```\n\n### Sorting\n\n#### Sort by\n\n`-s/--sort-by`\n\n```bash\n# list transactions from latest to oldest (default)\ncsvthd -s date\n\n# list transactions from lowest to highest\ncsvthd -s amount\n```\n\n#### Reverse sorting order\n\n`-r/--reverse-sort`\n\n```bash\n# list latest transactions first\ncsvthd\n\n# list oldest transactions first\ncsvthd -r\n\n# list smallest transactions first\ncsvthd -s amount\n\n# list largest transactions first\ncsvthd -s amount -r\n```\n\n### Reports\n\n#### Sum amount\n\n`-S/--sum`\n\nShow the sum of the transaction amounts (after filtering)\n\n```bash\n# print the sum of all transactions\ncsvthd -S\n\n# get the sum of transactions with \"paypal\" in their details\ncsvthd -S -i paypal\n```\n\n## Development\n\n### Build\n\n```bash\n./development-scripts/build.sh\n```\n\n## Links\n\n<!-- TODO: add website link -->\n- \ud83d\udcd6 [Documentation](https://gitlab.com/DrTexx/csv-transaction-history-detective)\n- \ud83d\udc0d [Latest Release](https://pypi.org/project/csvthd)\n- \ud83e\uddf0 [Source Code](https://gitlab.com/DrTexx/csv-transaction-history-detective)\n- \ud83d\udc1e [Issue Tracker](https://gitlab.com/DrTexx/csv-transaction-history-detective/-/issues)\n- `\ud83d\udc26 Twitter` [@DrTexx](https://twitter.com/DrTexx)\n- `\ud83d\udce8 Email` [denver.opensource@tutanota.com](mailto:denver.opensource@tutanota.com)\n\n",
"bugtrack_url": null,
"license": "AGPL-3.0-only",
"summary": "CSV Transaction History Detective",
"version": "0.5.0b0",
"split_keywords": [
"finance",
"csv",
"transactions",
"tax",
"accounting"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "553a89ae7113584bee5463430d7bd42ed3e4847ad32ebe03cbeeef1a925a7358",
"md5": "144188987612676a0e5d4eb82a24af9c",
"sha256": "7207747697caaa85fb967f0390870bef94cac72aeb6627576a8dd8f988041067"
},
"downloads": -1,
"filename": "csvthd-0.5.0b0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "144188987612676a0e5d4eb82a24af9c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 9325,
"upload_time": "2023-04-28T12:44:36",
"upload_time_iso_8601": "2023-04-28T12:44:36.722270Z",
"url": "https://files.pythonhosted.org/packages/55/3a/89ae7113584bee5463430d7bd42ed3e4847ad32ebe03cbeeef1a925a7358/csvthd-0.5.0b0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a08667860b6f7e141354162fa7d89f5dd58d3f873f91875a527895c5a06d03e6",
"md5": "556d2d0eda52f7869c99ab1e3a75fb20",
"sha256": "f34cb455dfa67b7d52aba5bb5bdf7088efa7b3f36c4f4221b039a59683810b56"
},
"downloads": -1,
"filename": "csvthd-0.5.0b0.tar.gz",
"has_sig": false,
"md5_digest": "556d2d0eda52f7869c99ab1e3a75fb20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 8517,
"upload_time": "2023-04-28T12:44:39",
"upload_time_iso_8601": "2023-04-28T12:44:39.742426Z",
"url": "https://files.pythonhosted.org/packages/a0/86/67860b6f7e141354162fa7d89f5dd58d3f873f91875a527895c5a06d03e6/csvthd-0.5.0b0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-28 12:44:39",
"github": false,
"gitlab": true,
"bitbucket": false,
"gitlab_user": "DrTexx",
"gitlab_project": "csv-transaction-history-detective",
"lcname": "csvthd"
}