{ "info": { "author": "RobertoPrevato", "author_email": "roberto.prevato@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![Build Status](https://dev.azure.com/robertoprevato/Nest/_apis/build/status/RobertoPrevato.essentials?branchName=master)](https://dev.azure.com/robertoprevato/Nest/_build/latest?definitionId=28&branchName=master) [![pypi](https://img.shields.io/pypi/v/essentials.svg?color=blue)](https://pypi.org/project/essentials/) [![Test coverage](https://img.shields.io/azure-devops/coverage/robertoprevato/Nest/28.svg)](https://dev.azure.com/robertoprevato/Nest/_build?definitionId=28)\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/RobertoPrevato/essentials/wiki/Common-exceptions)\n* [friendly JSON encoder](https://github.com/RobertoPrevato/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/RobertoPrevato/essentials/wiki/StopWatch-implementation)\n* [a base class to handle classes that can be instantiated from configuration dictionaries](https://github.com/RobertoPrevato/essentials/wiki/Registry)\n* [common decorator to support retries](https://github.com/RobertoPrevato/essentials/wiki/Retry-decorator)\n* [common decorator to support logging function calls](https://github.com/RobertoPrevato/essentials/wiki/Logs-decorator)\n* [common decorator to control raised exceptions](https://github.com/RobertoPrevato/essentials/wiki/Exception-handle-decorator)\n\n## Documentation\nPlease refer to documentation in the project wiki: [https://github.com/RobertoPrevato/essentials/wiki](https://github.com/RobertoPrevato/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", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/RobertoPrevato/essentials", "keywords": "core utilities", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "essentials", "package_url": "https://pypi.org/project/essentials/", "platform": "", "project_url": "https://pypi.org/project/essentials/", "project_urls": { "Homepage": "https://github.com/RobertoPrevato/essentials" }, "release_url": "https://pypi.org/project/essentials/1.1.2/", "requires_dist": null, "requires_python": "", "summary": "Core classes and functions, reusable in any kind of Python application", "version": "1.1.2" }, "last_serial": 5888465, "releases": { "1.0.8": [ { "comment_text": "", "digests": { "md5": "fe8a2385f8d1eb9d1e9f80732d7df964", "sha256": "01cf57dba26d126645eb5b7308086adb5315b8e27b13a81ca19d9cd18f6f94df" }, "downloads": -1, "filename": "essentials-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "fe8a2385f8d1eb9d1e9f80732d7df964", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14157, "upload_time": "2019-09-21T11:35:13", "url": "https://files.pythonhosted.org/packages/fe/67/da289bb7a4acb1b8cf95d329b9d37877598b4bc4007570a50736b22d045e/essentials-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d898f5a2796487de62104ab20eda2401", "sha256": "c3d7d5aa6aa9b1ad187f2dea4699e2294f83dbcfb59e1ac74ee1dab3428d2af9" }, "downloads": -1, "filename": "essentials-1.0.8.tar.gz", "has_sig": false, "md5_digest": "d898f5a2796487de62104ab20eda2401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11328, "upload_time": "2019-09-21T11:35:16", "url": "https://files.pythonhosted.org/packages/59/48/9e270ba61c09c089c48118f6c09a365954c92fe94009f228b7023b5580d7/essentials-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "a24b31e30022ecd2e254901345495c38", "sha256": "a21558796e5999f61fb3ae57e9b25633824974d4264d06d1bd9a30098b5b35d0" }, "downloads": -1, "filename": "essentials-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a24b31e30022ecd2e254901345495c38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14295, "upload_time": "2019-09-21T20:32:51", "url": "https://files.pythonhosted.org/packages/53/8b/14c393c6f04fbe6d7908106a8ce758dab5af28a252f0d4ffc22efe01214a/essentials-1.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "444133a2c67521ec0892de4794627bbe", "sha256": "a46041f471cdc37063cfc5596703fd70bbea14c3098d0099f0a7871b0edcc830" }, "downloads": -1, "filename": "essentials-1.0.9.tar.gz", "has_sig": false, "md5_digest": "444133a2c67521ec0892de4794627bbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11570, "upload_time": "2019-09-21T20:32:52", "url": "https://files.pythonhosted.org/packages/79/3f/4c76297a86e7f714d4640336bdfaa7545e3c44fc1b46366c3b9bf1d9dbf0/essentials-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e36c38fbe9666144fdf41a0ac40dff96", "sha256": "30d47d8108471f779bbb76c9bb9dbe99a07b10e44f387a0932401101ed9883cb" }, "downloads": -1, "filename": "essentials-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e36c38fbe9666144fdf41a0ac40dff96", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10776, "upload_time": "2019-09-24T15:25:57", "url": "https://files.pythonhosted.org/packages/07/76/518d844d1cfea54e37d7d74ccc2a8abb19c035f5bf7f47739d1fe66f79a6/essentials-1.1.0-py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ee99bf15da68c8b3fcb00a523472317d", "sha256": "4cb9aba010fbe31360ff0a996700484b711188c742f4f49cede861160cfd0085" }, "downloads": -1, "filename": "essentials-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ee99bf15da68c8b3fcb00a523472317d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10818, "upload_time": "2019-09-24T16:57:16", "url": "https://files.pythonhosted.org/packages/29/9d/8555fe22dc406769fe461a7027fe19efd6c3d0aaeac493d809ac771a829d/essentials-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8e66e5e00aba4b976883c6389225ee8", "sha256": "451c884e2d373d208bb6451d565595d9e5b78d70085e824c925ce399aeeb8dab" }, "downloads": -1, "filename": "essentials-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d8e66e5e00aba4b976883c6389225ee8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8491, "upload_time": "2019-09-24T16:57:17", "url": "https://files.pythonhosted.org/packages/36/de/c79327a39486d173ba451cdb07316c0a159e17dbbbb1e78a794b41e92773/essentials-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "26e4b8ade2b14b9e833258a165d88d2c", "sha256": "591c7b798452ba370898703bf214a713a7c3b6e6b618675eeebce8b76acfc5d8" }, "downloads": -1, "filename": "essentials-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26e4b8ade2b14b9e833258a165d88d2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10876, "upload_time": "2019-09-26T04:44:32", "url": "https://files.pythonhosted.org/packages/db/02/96b03acd7540d1027d1a6737a1f364538a8e7021be1b36de7b5d06f4c283/essentials-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c32cdd554206cc7aee9ea598c985abda", "sha256": "28114f597d7297198ec73ee687dc43ea312d6d76125ffe24961825880989404a" }, "downloads": -1, "filename": "essentials-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c32cdd554206cc7aee9ea598c985abda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8526, "upload_time": "2019-09-26T04:44:37", "url": "https://files.pythonhosted.org/packages/6b/00/f113a3b209b8f1ceaa9735bc40cd73c05124e332ff9f3216b4b2bb83ddcb/essentials-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26e4b8ade2b14b9e833258a165d88d2c", "sha256": "591c7b798452ba370898703bf214a713a7c3b6e6b618675eeebce8b76acfc5d8" }, "downloads": -1, "filename": "essentials-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26e4b8ade2b14b9e833258a165d88d2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10876, "upload_time": "2019-09-26T04:44:32", "url": "https://files.pythonhosted.org/packages/db/02/96b03acd7540d1027d1a6737a1f364538a8e7021be1b36de7b5d06f4c283/essentials-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c32cdd554206cc7aee9ea598c985abda", "sha256": "28114f597d7297198ec73ee687dc43ea312d6d76125ffe24961825880989404a" }, "downloads": -1, "filename": "essentials-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c32cdd554206cc7aee9ea598c985abda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8526, "upload_time": "2019-09-26T04:44:37", "url": "https://files.pythonhosted.org/packages/6b/00/f113a3b209b8f1ceaa9735bc40cd73c05124e332ff9f3216b4b2bb83ddcb/essentials-1.1.2.tar.gz" } ] }