essentials


Nameessentials JSON
Version 1.1.5 PyPI version JSON
download
home_pagehttps://github.com/Neoteroi/essentials
SummaryGeneral purpose classes and functions, reusable in any kind of Python application
upload_time2022-03-14 16:58:28
maintainer
docs_urlNone
authorRoberto Prevato
requires_python
licenseMIT
keywords core utilities
VCS
bugtrack_url
requirements pytest pytest-cov pytest-asyncio flake8 dataclasses isort black
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Build](https://github.com/Neoteroi/essentials/workflows/Build/badge.svg)
[![pypi](https://img.shields.io/pypi/v/essentials.svg)](https://pypi.python.org/pypi/essentials)
[![versions](https://img.shields.io/pypi/pyversions/essentials.svg)](https://github.com/Neoteroi/essentials)
[![license](https://img.shields.io/github/license/Neoteroi/essentials.svg)](https://github.com/Neoteroi/essentials/blob/master/LICENSE)
[![codecov](https://codecov.io/gh/Neoteroi/essentials/branch/master/graph/badge.svg?token=sBKZG2D1bZ)](https://codecov.io/gh/Neoteroi/essentials)

# Essentials
Core classes and functions, reusable in any kind of Python application.

```bash
$ pip install essentials
```

**Features:**
* [exception classes to express common scenarios](https://github.com/Neoteroi/essentials/wiki/Common-exceptions)
* [friendly JSON encoder](https://github.com/Neoteroi/essentials/wiki/User-friendly-JSON-dumps), handling `datetime`, `date`, `time`, `UUID`, `bytes`, built-in enums, and instances of classes implementing a `dict()` method, like [pydantic BaseModel](https://pydantic-docs.helpmanual.io)
* utilities to work with `folders` and paths
* [`StopWatch` implementation](https://github.com/Neoteroi/essentials/wiki/StopWatch-implementation)
* [a base class to handle classes that can be instantiated from configuration dictionaries](https://github.com/Neoteroi/essentials/wiki/Registry)
* [common decorator to support retries](https://github.com/Neoteroi/essentials/wiki/Retry-decorator)
* [common decorator to support logging function calls](https://github.com/Neoteroi/essentials/wiki/Logs-decorator)
* [common decorator to control raised exceptions](https://github.com/Neoteroi/essentials/wiki/Exception-handle-decorator)
* [caching functions](https://github.com/Neoteroi/essentials/wiki/Caching)

## Documentation
Please refer to documentation in the project wiki: [https://github.com/Neoteroi/essentials/wiki](https://github.com/Neoteroi/essentials/wiki).

## Develop and run tests locally
```bash
pip install -r requirements.txt

# run tests using automatic discovery:
pytest

# with code coverage:
make testcov
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Neoteroi/essentials",
    "name": "essentials",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "core utilities",
    "author": "Roberto Prevato",
    "author_email": "roberto.prevato@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b1/58/bad62d22fcdd933fb6a0bacb1195198e618c2062d7ad1e6a42c2724ca15d/essentials-1.1.5.tar.gz",
    "platform": null,
    "description": "![Build](https://github.com/Neoteroi/essentials/workflows/Build/badge.svg)\n[![pypi](https://img.shields.io/pypi/v/essentials.svg)](https://pypi.python.org/pypi/essentials)\n[![versions](https://img.shields.io/pypi/pyversions/essentials.svg)](https://github.com/Neoteroi/essentials)\n[![license](https://img.shields.io/github/license/Neoteroi/essentials.svg)](https://github.com/Neoteroi/essentials/blob/master/LICENSE)\n[![codecov](https://codecov.io/gh/Neoteroi/essentials/branch/master/graph/badge.svg?token=sBKZG2D1bZ)](https://codecov.io/gh/Neoteroi/essentials)\n\n# Essentials\nCore classes and functions, reusable in any kind of Python application.\n\n```bash\n$ pip install essentials\n```\n\n**Features:**\n* [exception classes to express common scenarios](https://github.com/Neoteroi/essentials/wiki/Common-exceptions)\n* [friendly JSON encoder](https://github.com/Neoteroi/essentials/wiki/User-friendly-JSON-dumps), handling `datetime`, `date`, `time`, `UUID`, `bytes`, built-in enums, and instances of classes implementing a `dict()` method, like [pydantic BaseModel](https://pydantic-docs.helpmanual.io)\n* utilities to work with `folders` and paths\n* [`StopWatch` implementation](https://github.com/Neoteroi/essentials/wiki/StopWatch-implementation)\n* [a base class to handle classes that can be instantiated from configuration dictionaries](https://github.com/Neoteroi/essentials/wiki/Registry)\n* [common decorator to support retries](https://github.com/Neoteroi/essentials/wiki/Retry-decorator)\n* [common decorator to support logging function calls](https://github.com/Neoteroi/essentials/wiki/Logs-decorator)\n* [common decorator to control raised exceptions](https://github.com/Neoteroi/essentials/wiki/Exception-handle-decorator)\n* [caching functions](https://github.com/Neoteroi/essentials/wiki/Caching)\n\n## Documentation\nPlease refer to documentation in the project wiki: [https://github.com/Neoteroi/essentials/wiki](https://github.com/Neoteroi/essentials/wiki).\n\n## Develop and run tests locally\n```bash\npip install -r requirements.txt\n\n# run tests using automatic discovery:\npytest\n\n# with code coverage:\nmake testcov\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "General purpose classes and functions, reusable in any kind of Python application",
    "version": "1.1.5",
    "split_keywords": [
        "core",
        "utilities"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "2f6e967846fa18f3e4d85a4e8e304678",
                "sha256": "905fa4a69fcd2b2cf41ecc6cc65827e30c87ef91f3f5c71540bcc5e984fa8360"
            },
            "downloads": -1,
            "filename": "essentials-1.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2f6e967846fa18f3e4d85a4e8e304678",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 13006,
            "upload_time": "2022-03-14T16:58:27",
            "upload_time_iso_8601": "2022-03-14T16:58:27.529921Z",
            "url": "https://files.pythonhosted.org/packages/c4/aa/194b6b99b4689ac69998585d8d70aa5e0dab7c5dbf1d8e948fa9cd54dfb4/essentials-1.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "606c7df988778c9b1e6350e0701ceb28",
                "sha256": "8736f738bb2c51d5069b2de2cf9146f7d402f25f9f95636781e59a422c908c46"
            },
            "downloads": -1,
            "filename": "essentials-1.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "606c7df988778c9b1e6350e0701ceb28",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 10863,
            "upload_time": "2022-03-14T16:58:28",
            "upload_time_iso_8601": "2022-03-14T16:58:28.566446Z",
            "url": "https://files.pythonhosted.org/packages/b1/58/bad62d22fcdd933fb6a0bacb1195198e618c2062d7ad1e6a42c2724ca15d/essentials-1.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-03-14 16:58:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "Neoteroi",
    "github_project": "essentials",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-cov",
            "specs": []
        },
        {
            "name": "pytest-asyncio",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "dataclasses",
            "specs": [
                [
                    "==",
                    "0.7"
                ]
            ]
        },
        {
            "name": "isort",
            "specs": []
        },
        {
            "name": "black",
            "specs": []
        }
    ],
    "lcname": "essentials"
}
        
Elapsed time: 0.05742s