rechu


Namerechu JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryReceipt cataloging hub for detailed personal finance tracking
upload_time2025-08-02 15:12:44
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.9
licenseNone
keywords personal finance receipts cataloging
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # Receipt cataloging hub

[![Coverage](https://github.com/lhelwerd/rechu/actions/workflows/coverage.yml/badge.svg)](https://github.com/lhelwerd/rechu/actions/workflows/coverage.yml)
[![Coverage Status](https://coveralls.io/repos/github/lhelwerd/rechu/badge.svg?branch=main)](https://coveralls.io/github/lhelwerd/rechu?branch=main)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=lhelwerd_rechu&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=lhelwerd_rechu)

This repository contains a Python module that implements a database system for 
reading digitized receipts for detailed product purchases. Currently, the 
receipts and some product metadata have to be written first in YAML files.

The module is written for Python 3.9+ and supported database backends are 
SQLite and PostgreSQL. It is currently in alpha phase and is meant to be 
developed with more features for reporting, external data and so on. Detailed 
information on changes for each version is found in the 
[changelog](CHANGELOG.md) file.

## Installation

Source releases of versions are available from 
[GitHub](https://github.com/lhelwerd/rechu/tags).

When using the source release or if this repository is cloned, then 
installation of the module is possible with `pip install` followed by either 
the release zip/tarball or the current directory. `make install` installs from 
the current directory. We recommend using virtual environments to keep your 
dependencies separate from global installation.

To install a development version of the module as a dependency, you can use 
`rechu @ git+https://github.com/lhelwerd/rechu.git@main#egg=rechu` in 
a `pyproject.toml` project dependencies or similar file.

## Running

After installation, the `rechu` command should be available in your environment 
to run various subcommands, but it has not been configured and set up with any 
data sources and database connection.

In order to run the module, first place a `settings.toml` file in the directory 
from which you will use the module, which might be the current directory. 
Either use `rechu config > settings.toml` or (when using the source release or 
if this repository is cloned) copy the example `rechu/settings.toml` file with 
default values to another `settings.toml` file, then edit the new file to 
adjust values in it. If you plan to use this package as a dependency in your 
own module, then you can also override the values in a `pyproject.toml` file 
using `[tool.rechu...]` sections.

To create the database schema in the database path defined in the settings, use 
`rechu create`. Then, you can create receipts and products with `rechu new`; 
this command writes the new receipts and product metadata to YAML files in the 
defined path/filename format and imports them to the database, keeping both in 
sync. You can also bulk-import YAML files for receipts and product inventories 
from the defined path, receipt subdirectory pattern and product pattern with 
`rechu read`; you can later use the same command to synchronize changes in YAML 
files to the database.

When you install a new version of this package, there may be database schema 
changes which need to be applied to continue using the current model. After 
backing up your database, you should run `rechu alembic upgrade head` to 
migrate your database to the proper version. This command will use the database 
connection configured in your `settings.toml` file.

Some additional scripts that do not use the database are available in the 
`scripts` directory in the repository. These are mostly meant for experiments, 
simple reporting and validation.

## Development and testing

The module is tested with unit tests that are run on pytest. In the repository, 
first install dependencies with `make setup_test`, then run unit tests using 
`make test`. Additionally, obtain coverage information by using `make coverage` 
to perform the unit tests and receive output in the form of a textual report 
and XML report. Finally, an HTML report is obtainable with `coverage html`.

Typing and style checks are also possible by first installing dependencies 
using `make setup_analysis`. Then, use `make mypy` to run the type checker and 
receive HTML and XML reports. Style checks are done by using `make pylint` for 
an aggregate report output.

The unit test coverage, typing coverage, style checks and schema validation is 
combined in one [GitHub Actions](https://github.com/lhelwerd/rechu/actions) 
workflow which is run on commits to the main branch and pull request changes. 
Unit test coverage is then stored for comparative purposes via the interface at 
[Coveralls](https://coveralls.io/github/lhelwerd/rechu). The tests and coverage 
results are combined with analysis results (including typing coverage by Mypy, 
code style checks from Pylint and schema validation) as part of a quality gate 
on [SonarCloud](https://sonarcloud.io/project/overview?id=lhelwerd_rechu).

## License

The module is licensed under the MIT License. See the [license](LICENSE) file 
for more information.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rechu",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.9",
    "maintainer_email": null,
    "keywords": "personal finance, receipts, cataloging",
    "author": null,
    "author_email": "Leon Helwerda <leon.helwerda@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4f/a9/377ceba2486ba371b1fb82ac9210f342d4554a65d8f97f8f5cd772a41507/rechu-0.0.1.tar.gz",
    "platform": null,
    "description": "# Receipt cataloging hub\n\n[![Coverage](https://github.com/lhelwerd/rechu/actions/workflows/coverage.yml/badge.svg)](https://github.com/lhelwerd/rechu/actions/workflows/coverage.yml)\n[![Coverage Status](https://coveralls.io/repos/github/lhelwerd/rechu/badge.svg?branch=main)](https://coveralls.io/github/lhelwerd/rechu?branch=main)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=lhelwerd_rechu&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=lhelwerd_rechu)\n\nThis repository contains a Python module that implements a database system for \nreading digitized receipts for detailed product purchases. Currently, the \nreceipts and some product metadata have to be written first in YAML files.\n\nThe module is written for Python 3.9+ and supported database backends are \nSQLite and PostgreSQL. It is currently in alpha phase and is meant to be \ndeveloped with more features for reporting, external data and so on. Detailed \ninformation on changes for each version is found in the \n[changelog](CHANGELOG.md) file.\n\n## Installation\n\nSource releases of versions are available from \n[GitHub](https://github.com/lhelwerd/rechu/tags).\n\nWhen using the source release or if this repository is cloned, then \ninstallation of the module is possible with `pip install` followed by either \nthe release zip/tarball or the current directory. `make install` installs from \nthe current directory. We recommend using virtual environments to keep your \ndependencies separate from global installation.\n\nTo install a development version of the module as a dependency, you can use \n`rechu @ git+https://github.com/lhelwerd/rechu.git@main#egg=rechu` in \na `pyproject.toml` project dependencies or similar file.\n\n## Running\n\nAfter installation, the `rechu` command should be available in your environment \nto run various subcommands, but it has not been configured and set up with any \ndata sources and database connection.\n\nIn order to run the module, first place a `settings.toml` file in the directory \nfrom which you will use the module, which might be the current directory. \nEither use `rechu config > settings.toml` or (when using the source release or \nif this repository is cloned) copy the example `rechu/settings.toml` file with \ndefault values to another `settings.toml` file, then edit the new file to \nadjust values in it. If you plan to use this package as a dependency in your \nown module, then you can also override the values in a `pyproject.toml` file \nusing `[tool.rechu...]` sections.\n\nTo create the database schema in the database path defined in the settings, use \n`rechu create`. Then, you can create receipts and products with `rechu new`; \nthis command writes the new receipts and product metadata to YAML files in the \ndefined path/filename format and imports them to the database, keeping both in \nsync. You can also bulk-import YAML files for receipts and product inventories \nfrom the defined path, receipt subdirectory pattern and product pattern with \n`rechu read`; you can later use the same command to synchronize changes in YAML \nfiles to the database.\n\nWhen you install a new version of this package, there may be database schema \nchanges which need to be applied to continue using the current model. After \nbacking up your database, you should run `rechu alembic upgrade head` to \nmigrate your database to the proper version. This command will use the database \nconnection configured in your `settings.toml` file.\n\nSome additional scripts that do not use the database are available in the \n`scripts` directory in the repository. These are mostly meant for experiments, \nsimple reporting and validation.\n\n## Development and testing\n\nThe module is tested with unit tests that are run on pytest. In the repository, \nfirst install dependencies with `make setup_test`, then run unit tests using \n`make test`. Additionally, obtain coverage information by using `make coverage` \nto perform the unit tests and receive output in the form of a textual report \nand XML report. Finally, an HTML report is obtainable with `coverage html`.\n\nTyping and style checks are also possible by first installing dependencies \nusing `make setup_analysis`. Then, use `make mypy` to run the type checker and \nreceive HTML and XML reports. Style checks are done by using `make pylint` for \nan aggregate report output.\n\nThe unit test coverage, typing coverage, style checks and schema validation is \ncombined in one [GitHub Actions](https://github.com/lhelwerd/rechu/actions) \nworkflow which is run on commits to the main branch and pull request changes. \nUnit test coverage is then stored for comparative purposes via the interface at \n[Coveralls](https://coveralls.io/github/lhelwerd/rechu). The tests and coverage \nresults are combined with analysis results (including typing coverage by Mypy, \ncode style checks from Pylint and schema validation) as part of a quality gate \non [SonarCloud](https://sonarcloud.io/project/overview?id=lhelwerd_rechu).\n\n## License\n\nThe module is licensed under the MIT License. See the [license](LICENSE) file \nfor more information.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Receipt cataloging hub for detailed personal finance tracking",
    "version": "0.0.1",
    "project_urls": {
        "CI: Coveralls": "https://coveralls.io/github/lhelwerd/rechu?branch=main",
        "CI: GitHub Actions": "https://github.com/lhelwerd/rechu/actions",
        "Issues": "https://github.com/lhelwerd/rechu/issues",
        "Pull Requests": "https://github.com/lhelwerd/rechu/pulls",
        "Source Code": "https://github.com/lhelwerd/rechu"
    },
    "split_keywords": [
        "personal finance",
        " receipts",
        " cataloging"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f222a7eb5806af8f3bfcbc4b051a3102d69a34db5916e06df55d881bc051030f",
                "md5": "16e0ae9cbd2385fc9ff3615e91d7f2b2",
                "sha256": "7036ee54a050b0b1d2b8b8e809b780a66699c11b827464b92701971a16913348"
            },
            "downloads": -1,
            "filename": "rechu-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "16e0ae9cbd2385fc9ff3615e91d7f2b2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.9",
            "size": 67259,
            "upload_time": "2025-08-02T15:12:42",
            "upload_time_iso_8601": "2025-08-02T15:12:42.793153Z",
            "url": "https://files.pythonhosted.org/packages/f2/22/a7eb5806af8f3bfcbc4b051a3102d69a34db5916e06df55d881bc051030f/rechu-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4fa9377ceba2486ba371b1fb82ac9210f342d4554a65d8f97f8f5cd772a41507",
                "md5": "abcfcffb5382689662eb955d034bd35e",
                "sha256": "78c8d754353048beba13058128a0bc6a90e1ff9327cac17038f1dc407cab36b8"
            },
            "downloads": -1,
            "filename": "rechu-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "abcfcffb5382689662eb955d034bd35e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.9",
            "size": 52279,
            "upload_time": "2025-08-02T15:12:44",
            "upload_time_iso_8601": "2025-08-02T15:12:44.467522Z",
            "url": "https://files.pythonhosted.org/packages/4f/a9/377ceba2486ba371b1fb82ac9210f342d4554a65d8f97f8f5cd772a41507/rechu-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-02 15:12:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lhelwerd",
    "github_project": "rechu",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "rechu"
}
        
Elapsed time: 0.45109s