{ "info": { "author": "Jonas Grimfelt", "author_email": "grimen@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries" ], "description": "\n# `mybase` [![Build Status](https://travis-ci.com/grimen/python-mybase.svg?branch=master)](https://travis-ci.com/grimen/python-mybase) [![PyPI version](https://badge.fury.io/py/mybase.svg)](https://badge.fury.io/py/mybase) [![Coverage Status](https://codecov.io/gh/grimen/python-mybase/branch/master/graph/badge.svg)](https://codecov.io/gh/grimen/python-mybase)\n\n*My friendly library base class - for Python.*\n\n## Introduction\n\nOne in general tend to need a library specific base class, but creating one for every new library with some common logger customization means redundant work every time. This library base class right now don't do much now beside setting up a default logger, but keeps library code a bit cleaner.\n\n**NOTE:** Possibly should support being used as a mixin (e.g. `@mybase.mixin`) optionally, but not yet implemented.\n\n\n## Install\n\nInstall using **pip**:\n\n```sh\n$ pip install mybase\n```\n\n\n## Use\n\nVery basic **[example](https://github.com/grimen/python-mybase/tree/master/examples/basic.py)**:\n\n```python\nfrom mybase import Base\n\nclass Foo(Base):\n\n def hello():\n self.logger.log('hello from instance: `{0}`'.format(self))\n\nfoo = Foo()\n\n# logs using default logger - with colors unless disabled via `COLORS` / `LOGGER_COLORS` env variables\nfoo.hello()\nfoo.logger.log('hello world 1')\n\nprint(foo.name)\nprint(repr(foo))\nprint(str(foo))\n\nimport logging\n\nfoo2 = Foo(logger = logging.get_logger('custom'))\n\n# logs using custom logger\nfoo.hello()\nfoo.logger.log('hello world 2')\n\nfoo3 = Foo(logger = False)\n\n# logs nothing\nfoo.hello()\nfoo.logger.log('hello world 3')\n\n```\n\n\n## Test\n\nClone down source code:\n\n```sh\n$ make install\n```\n\nRun **colorful tests**, with only native environment (dependency sandboxing up to you):\n\n```sh\n$ make test\n```\n\nRun **less colorful tests**, with **multi-environment** (using **tox**):\n\n```sh\n$ make test-tox\n```\n\n\n## Related\n\n- [**`mybad`**](https://github.com/grimen/python-mybad) - *\"My error base class - for Python\"*\n\n\n## About\n\nThis project was mainly initiated - in lack of solid existing alternatives - to be used at our work at **[Markable.ai](https://markable.ai)** to have common code conventions between various programming environments where **Python** (research, CV, AI) is heavily used.\n\n\n## License\n\nReleased under the MIT license.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/grimen/python-mybase", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/grimen/python-mybase", "keywords": "library,base,baseclass,logger,loggable", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "mybase", "package_url": "https://pypi.org/project/mybase/", "platform": "", "project_url": "https://pypi.org/project/mybase/", "project_urls": { "Download": "https://github.com/grimen/python-mybase", "Homepage": "https://github.com/grimen/python-mybase", "bugs": "https://github.com/grimen/python-mybase/issues", "repository": "https://github.com/grimen/python-mybase" }, "release_url": "https://pypi.org/project/mybase/0.1.1/", "requires_dist": [ "rootpath (>=0.1.0)", "mybad (>=0.1.0)", "inspecta (>=0.1.0)", "coloredlogs (>=10.0)", "colour-runner (>=0.0.5)", "deepdiff (>=3.3.0)", "tox (>=3.0.0)", "coverage (>=4.5.2)", "codecov (>=2.0.15)" ], "requires_python": "", "summary": "My friendly library base class - for Python.", "version": "0.1.1" }, "last_serial": 4921062, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cbc4b3673ddfefa80c29643fe0cbd889", "sha256": "c684136d7a79e22f47f8d5b077611933677ca79dfe64909e9f08197b062e672a" }, "downloads": -1, "filename": "mybase-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cbc4b3673ddfefa80c29643fe0cbd889", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8862, "upload_time": "2019-01-28T07:20:08", "url": "https://files.pythonhosted.org/packages/8b/cb/03ab05ed9fcb1724c8e1d631de70fb2947ac9b67b44926036abd3a2ac9a0/mybase-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4604e393a48f3a6579be5dbb0ba08175", "sha256": "eae51e872d81d309f3bf8f27189b6d51adec42769f63c588b18ba5fce76a481f" }, "downloads": -1, "filename": "mybase-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4604e393a48f3a6579be5dbb0ba08175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9744, "upload_time": "2019-01-28T07:20:10", "url": "https://files.pythonhosted.org/packages/50/b6/0af17bcec240264257ddd8873d3f616f8f10537be203ac835302bd5c3b58/mybase-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6a0ea8c5c7785fd9fb85542a75f447fe", "sha256": "49983c79fbabffcb4b1a4905ad6832a0b03313abb653ffd3ad125b1498a0ef48" }, "downloads": -1, "filename": "mybase-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6a0ea8c5c7785fd9fb85542a75f447fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8978, "upload_time": "2019-03-10T11:16:42", "url": "https://files.pythonhosted.org/packages/50/75/8a5726df672fe34f4e8e65db8b84e8df528005b949be4585e39525af8c82/mybase-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78d475a6ecc2aaed8a3913e13454d5fb", "sha256": "06d3fb155a5e4be50bfb56c9de1efce6c1785aa2bf15f1fb2b28a144e3fd9ca3" }, "downloads": -1, "filename": "mybase-0.1.1.tar.gz", "has_sig": false, "md5_digest": "78d475a6ecc2aaed8a3913e13454d5fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10093, "upload_time": "2019-03-10T11:16:44", "url": "https://files.pythonhosted.org/packages/bc/9a/dde83f4604d1e3922348c4f3d3b6553fc996f6107a70e0365cddcf477318/mybase-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6a0ea8c5c7785fd9fb85542a75f447fe", "sha256": "49983c79fbabffcb4b1a4905ad6832a0b03313abb653ffd3ad125b1498a0ef48" }, "downloads": -1, "filename": "mybase-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6a0ea8c5c7785fd9fb85542a75f447fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8978, "upload_time": "2019-03-10T11:16:42", "url": "https://files.pythonhosted.org/packages/50/75/8a5726df672fe34f4e8e65db8b84e8df528005b949be4585e39525af8c82/mybase-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78d475a6ecc2aaed8a3913e13454d5fb", "sha256": "06d3fb155a5e4be50bfb56c9de1efce6c1785aa2bf15f1fb2b28a144e3fd9ca3" }, "downloads": -1, "filename": "mybase-0.1.1.tar.gz", "has_sig": false, "md5_digest": "78d475a6ecc2aaed8a3913e13454d5fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10093, "upload_time": "2019-03-10T11:16:44", "url": "https://files.pythonhosted.org/packages/bc/9a/dde83f4604d1e3922348c4f3d3b6553fc996f6107a70e0365cddcf477318/mybase-0.1.1.tar.gz" } ] }