{ "info": { "author": "Timofey Trukhanov", "author_email": "timofey.trukhanov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython" ], "description": "Django linter\n=============\n\n.. image:: https://travis-ci.org/geerk/django_linter.svg?branch=master\n :target: https://travis-ci.org/geerk/django_linter\n\nThis is a simple extension for pylint that aims to check some common mistakes in django projects.\n\nContributions are welcome.\n\nInstallation\n------------\n\n::\n\n pip install django_linter\n\nUsage\n-----\n\nIt can be used as a plugin or standalone script. To use it as a plugin it should be installed first, then run with pylint:\n\n::\n\n pylint --load-plugins=django_linter TARGET\n\nTo use it as a standalone script:\n\n\n::\n\n usage: django-linter [-h] TARGET [TARGET ...]\n\n Simple extension for pylint to check django projects for common mistakes.\n\n positional arguments:\n TARGET python package or module\n\n optional arguments:\n -h, --help show this help message and exit\n\nImplemented checks\n------------------\n\n**Settings:**\n\n- E5221 (required-setting-missed): Used when required setting missed in settings file.\n- E5222 (empty-setting): Used when setting is empty value.\n- W5221 (improper-settings-import): Used when settings is not imported from django.conf\n\n**Models:**\n\n- W5241 (nullable-text-field): Used when text field has null=True.\n- W5242 (float-money-field): Used when money related field uses FloatField.\n- W5243 (naive-datetime-used): Used when there is datetime.now is used.\n- W5244 (related-field-named-with-id): Used when related field is named with _id suffix\n- W5245 (unicode-method-absent): Used when model has no unicode method.\n- W5246 (unicode-method-return): Used when unicode method does not return unicode.\n- W5247 (model-field-redefinition): Used when there are more than one model field with the same name.\n- W5248 (get-absolute-url-without-reverse): Used when get_absolute_url method is defined without using reverse function.\n\n**Forms:**\n\n- W5211 (form-field-redefinition): Used when there are more than one form field with the same name.\n\n**Views:**\n\n- W5231 (is-authenticated-not-called): Used when is_authenticated method is not called\n- W5232 (objects-get-without-doesnotexist): Used when Model.objects.get is used without enclosing it in try-except block to catch DoesNotExist exception.\n- W5233 (fetching-db-objects-len): Used when there is db query that fetches objects from database only to check the number of returned objects.\n- W5234 (raw-get-post-access): Used when request.GET or request.POST dicts is accessed directly, it is better to use forms.\n\n**Layout:**\n\n- W5201 (forms-layout): Used when form class definition is not in forms module.\n- W5202 (admin-layout): Used when admin class definition is not in admin module.\n\n**Misc:**\n\n- W5251 (print-used): Used when there is print statement or function\n\nImplemented suppressers\n-----------------------\n\n- \"Meta\" classes\n- urlpatterns\n- logger\n\nImplemented transformers\n------------------------\n\n**Models**\n\n- \"id\" field\n- \"objects\" manager\n- \"DoesNotExist\" exception\n- \"MultipleObjectsReturned\" exception\n\n**Testing**\n\n- test responses (django and DRF)\n\n**Factories**\n\n- factory-boy's factories (factory should return django model, but not always possible to infer model class)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/geerk/django_linter", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django_linter", "package_url": "https://pypi.org/project/django_linter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django_linter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/geerk/django_linter" }, "release_url": "https://pypi.org/project/django_linter/0.7/", "requires_dist": null, "requires_python": null, "summary": "Linter for django projects", "version": "0.7" }, "last_serial": 1859695, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d5ab140500a6087a2161a2a0af6816c7", "sha256": "3d6793da4388bde7c34dc8a0e5a83e09d92446c46581666ec3cf0466c626f315" }, "downloads": -1, "filename": "django_linter-0.1.tar.gz", "has_sig": false, "md5_digest": "d5ab140500a6087a2161a2a0af6816c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4712, "upload_time": "2015-07-23T04:07:17", "url": "https://files.pythonhosted.org/packages/75/ba/71ca0611701306d87e971555356fce98732cba4efcd9939927e5591ca722/django_linter-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "a68d08c2787fe714c6ecca02c6eac4b0", "sha256": "66abdfe5ac87f8dba6a8585c167149047c4d38a37cf645d892f0aa41ffdd6517" }, "downloads": -1, "filename": "django_linter-0.2.tar.gz", "has_sig": false, "md5_digest": "a68d08c2787fe714c6ecca02c6eac4b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6305, "upload_time": "2015-07-25T18:51:41", "url": "https://files.pythonhosted.org/packages/57/e3/af60548083194857b3429d0bfb012d7395b74de51be02e8b5056ab516235/django_linter-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "7f07b9f280b85e2ce963fa4be3e7c596", "sha256": "4f62f9663b54f24b581525ae9fd286ed5f5419293ba04035696cdd5c7fdac595" }, "downloads": -1, "filename": "django_linter-0.3.tar.gz", "has_sig": false, "md5_digest": "7f07b9f280b85e2ce963fa4be3e7c596", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6668, "upload_time": "2015-07-29T04:33:08", "url": "https://files.pythonhosted.org/packages/e8/5e/025ba5a9c65e7cc8509d55c4c091798fec5d00a43f8d459322aac5e79707/django_linter-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "481e3b8c199ae3a6fa0b549f811ea084", "sha256": "aa363cf4e6f563929dc5e15eb5a1cb8ebec8e74d420d52c9970cd6d86e1d1c74" }, "downloads": -1, "filename": "django_linter-0.4.tar.gz", "has_sig": false, "md5_digest": "481e3b8c199ae3a6fa0b549f811ea084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6775, "upload_time": "2015-08-08T14:54:12", "url": "https://files.pythonhosted.org/packages/39/26/d3ff3959d8b4b1279d74414fd87606f941de5639502bf77411e3df2fda65/django_linter-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "7e2fbc6f772c2a963778c1730506564d", "sha256": "e956a25d7e5fa53f8e044fe48cf3a0f3ce5cf74bfcee715e9b1a138b0a4fbf3b" }, "downloads": -1, "filename": "django_linter-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e2fbc6f772c2a963778c1730506564d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15860, "upload_time": "2015-08-16T14:24:50", "url": "https://files.pythonhosted.org/packages/d8/81/87df42cd8eece5135f9117720881e2a7ae6cf5b6e7784182e590e60db555/django_linter-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d74a03a4a0e28f1de05e445ca6c72f1", "sha256": "c3fc82eb683472cb676bb6636131c61d9def68933b81386e9bf31ef14cabb84b" }, "downloads": -1, "filename": "django_linter-0.5.tar.gz", "has_sig": false, "md5_digest": "2d74a03a4a0e28f1de05e445ca6c72f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8741, "upload_time": "2015-08-16T14:24:46", "url": "https://files.pythonhosted.org/packages/d7/68/7157e251ed40f9dc24c89c156a37c741a835bf5e38b401d08f4a5ffc6c9b/django_linter-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "f01937da29962925ed9da74a66d7fdb4", "sha256": "6a609482acef49202dfbde06595c37f9e10d095c834916d0557f8c842f0ed4fd" }, "downloads": -1, "filename": "django_linter-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f01937da29962925ed9da74a66d7fdb4", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 16755, "upload_time": "2015-09-08T16:26:04", "url": "https://files.pythonhosted.org/packages/42/03/4ea1784a31d18c447ef9ee19628cf708b7ee521a82b0c0f42dbd1cf6d21f/django_linter-0.6-py2.py3-none-any.whl" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "cd45d4b102d55ccc913780dcd1ce5d76", "sha256": "60b7b31ac84a806744607751cb925504060b6b211c42bd9e35bd7047505e70e4" }, "downloads": -1, "filename": "django_linter-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd45d4b102d55ccc913780dcd1ce5d76", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 16783, "upload_time": "2015-12-13T08:05:57", "url": "https://files.pythonhosted.org/packages/db/ed/53eff23664ea5cec20d24e5419f342cc81486ecf6d4133106c61c03030ed/django_linter-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f2e488184a0010a0fa5d12cba0fcc61", "sha256": "543bfe9f8eb11d3ff56fc6575864dd7dad8af60cd4eab0ecf6b1def220d52c87" }, "downloads": -1, "filename": "django_linter-0.7.tar.gz", "has_sig": false, "md5_digest": "3f2e488184a0010a0fa5d12cba0fcc61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9246, "upload_time": "2015-12-13T08:05:52", "url": "https://files.pythonhosted.org/packages/8a/df/f41bfa5f636db0ce9cfe9d3ddbbb06b224ceffe9162e6ccc6fbe9793964d/django_linter-0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd45d4b102d55ccc913780dcd1ce5d76", "sha256": "60b7b31ac84a806744607751cb925504060b6b211c42bd9e35bd7047505e70e4" }, "downloads": -1, "filename": "django_linter-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd45d4b102d55ccc913780dcd1ce5d76", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 16783, "upload_time": "2015-12-13T08:05:57", "url": "https://files.pythonhosted.org/packages/db/ed/53eff23664ea5cec20d24e5419f342cc81486ecf6d4133106c61c03030ed/django_linter-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f2e488184a0010a0fa5d12cba0fcc61", "sha256": "543bfe9f8eb11d3ff56fc6575864dd7dad8af60cd4eab0ecf6b1def220d52c87" }, "downloads": -1, "filename": "django_linter-0.7.tar.gz", "has_sig": false, "md5_digest": "3f2e488184a0010a0fa5d12cba0fcc61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9246, "upload_time": "2015-12-13T08:05:52", "url": "https://files.pythonhosted.org/packages/8a/df/f41bfa5f636db0ce9cfe9d3ddbbb06b224ceffe9162e6ccc6fbe9793964d/django_linter-0.7.tar.gz" } ] }