{ "info": { "author": "Andrey Bogoyavlensky", "author_email": "abogoyavlensky@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "drf-common-exceptions\n===\n\n| Release | CI | Coverage |\n|---------|----|----------|\n|[![pypi](https://img.shields.io/pypi/v/drf-common-exceptions.svg)](https://pypi.python.org/pypi/drf-common-exceptions)|[![build](https://img.shields.io/travis/com/abogoyavlensky/drf-common-exceptions.svg)](https://travis-ci.com/abogoyavlensky/drf-common-exceptions)|[![codecov](https://img.shields.io/codecov/c/github/abogoyavlensky/drf-common-exceptions.svg)](https://codecov.io/gh/abogoyavlensky/drf-common-exceptions)|\n\nCommon exception for Django REST framework. Provides single generic interface of\nreturning data structure for any kind of exceptions which are handled by\nDjango REST framework. Includes error name, path to service with line\nwhere the error occurs and a list of actual error messages\nwith extended fields info.\n\n## Requirements\n\n- Python (3.6+)\n- Django (1.11.x, 2.0+)\n- Django REST Framework (3.7+)\n\n## Installation\n\n```bash\n$ pip install drf-common-exceptions\n```\n\n## Usage examples\n\nYou can define common exception handler for whole project. Just put the\nfollowing line to your django settings inside drf section:\n\n```\nREST_FRAMEWORK = {\n ...\n \"EXCEPTION_HANDLER\": \"drf_common_exceptions.common_exception_handler\",\n ...\n}\n```\n\nOr use it just for particular view or viewset:\n\n```python\nfrom drf_common_exceptions import CommonExceptionHandlerMixin\n\nclass MyView(CommonExceptionHandlerMixin, APIView):\n pass\n```\n\nThe output will looks like for example validation error:\n```json\n{\n \"service\": \"path.to.views.MyView:20\",\n \"error\": \"ValidationError\",\n \"detail\": [\n {\n \"label\": \"Name\",\n \"field\": \"name\",\n \"messages\": [\n \"This is required field.\"\n ]\n }\n ]\n}\n```\n\nThe data structure will be the same for any other errors.\n\n## Development\n\nInstall poetry and requirements:\n\n```bash\n$ curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python\n$ python3 -m venv path/to/venv\n$ source path/to/venv/bin/activate\n$ poetry install\n```\n\nRun main commands:\n\n```bash\n$ make test\n$ make watch\n$ make clean\n$ make lint\n```\n\nPublish to pypi be default patch version:\n```bash\n$ make publish\n```\n\nor any level you want:\n```bash\n$ make publish minor\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/abogoyavlensky/drf-common-exceptions", "keywords": "exceptions,django,djangorestframework,drf", "license": "MIT", "maintainer": "Andrey Bogoyavlensky", "maintainer_email": "abogoyavlensky@gmail.com", "name": "drf-common-exceptions", "package_url": "https://pypi.org/project/drf-common-exceptions/", "platform": "", "project_url": "https://pypi.org/project/drf-common-exceptions/", "project_urls": { "Documentation": "https://github.com/abogoyavlensky/drf-common-exceptions/blob/master/README.md", "Homepage": "https://github.com/abogoyavlensky/drf-common-exceptions", "Repository": "https://github.com/abogoyavlensky/drf-common-exceptions" }, "release_url": "https://pypi.org/project/drf-common-exceptions/0.1.1/", "requires_dist": [ "djangorestframework (>=3.7,<4.0)", "django (>=1.11)" ], "requires_python": ">=3.6,<4.0", "summary": "Common exception for Django REST framework", "version": "0.1.1" }, "last_serial": 4889072, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "73f2faa641fe753f7c1712d2e2968ea5", "sha256": "c89ce44837db81b975fc90a5fcea400a468733d333f97295ddf0e2ac5ccb3d42" }, "downloads": -1, "filename": "drf_common_exceptions-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "73f2faa641fe753f7c1712d2e2968ea5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6949, "upload_time": "2019-02-21T21:17:04", "url": "https://files.pythonhosted.org/packages/ec/f3/ac717f1f8d3d7b55f98f4c3b448debce9773241a69d4a5276a57c4ffe0d5/drf_common_exceptions-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a6c2ed85c76fb0419312e40f055c82c", "sha256": "f7051b1b24e465ae798f645743bdbcd9c35466cf0170ccf3fa2c0fc75b140de2" }, "downloads": -1, "filename": "drf-common-exceptions-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3a6c2ed85c76fb0419312e40f055c82c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2890, "upload_time": "2019-02-21T21:17:02", "url": "https://files.pythonhosted.org/packages/65/ae/3e4901527628d990cdde222d9e886fad0404762c23125e1b82434d3c8176/drf-common-exceptions-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d85ed195cd8f10d4e34851a995438d58", "sha256": "7b7ce27f54a58188c24992645465a98d8a5cbb4c7afe8c3b7615b76cecd2c6b8" }, "downloads": -1, "filename": "drf_common_exceptions-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d85ed195cd8f10d4e34851a995438d58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7987, "upload_time": "2019-03-02T20:18:07", "url": "https://files.pythonhosted.org/packages/fa/7b/da4ec6464bd5e52c841db81f2727888f16e5c168ff878b96217003267340/drf_common_exceptions-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "784709eb27c3eda3c73d7757ef24df06", "sha256": "c9224deb7b5bd1558828effd06bc0dee81434bae4fa08a10b49c57c02dc1911b" }, "downloads": -1, "filename": "drf-common-exceptions-0.1.1.tar.gz", "has_sig": false, "md5_digest": "784709eb27c3eda3c73d7757ef24df06", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4269, "upload_time": "2019-03-02T20:18:06", "url": "https://files.pythonhosted.org/packages/29/08/c66c1ee0b2a71898a8e99a820308e1008dc1c60ccabcc4148997e5ae2ef5/drf-common-exceptions-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d85ed195cd8f10d4e34851a995438d58", "sha256": "7b7ce27f54a58188c24992645465a98d8a5cbb4c7afe8c3b7615b76cecd2c6b8" }, "downloads": -1, "filename": "drf_common_exceptions-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d85ed195cd8f10d4e34851a995438d58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7987, "upload_time": "2019-03-02T20:18:07", "url": "https://files.pythonhosted.org/packages/fa/7b/da4ec6464bd5e52c841db81f2727888f16e5c168ff878b96217003267340/drf_common_exceptions-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "784709eb27c3eda3c73d7757ef24df06", "sha256": "c9224deb7b5bd1558828effd06bc0dee81434bae4fa08a10b49c57c02dc1911b" }, "downloads": -1, "filename": "drf-common-exceptions-0.1.1.tar.gz", "has_sig": false, "md5_digest": "784709eb27c3eda3c73d7757ef24df06", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4269, "upload_time": "2019-03-02T20:18:06", "url": "https://files.pythonhosted.org/packages/29/08/c66c1ee0b2a71898a8e99a820308e1008dc1c60ccabcc4148997e5ae2ef5/drf-common-exceptions-0.1.1.tar.gz" } ] }