{ "info": { "author": "murchik", "author_email": "murchik@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "####################\nDjango Smelly Tokens\n####################\n\nIt is sometimes possible to tell that code stinks even without looking at it.\nThis Django app tries to accomplish that.\n\n\nInstallation\n============\n\n.. code-block:: bash\n\n pip install django-smelly-tokens\n\n\nUsage\n=====\n\n\nIn your ``settings.py`` define ``SMELLY_TOKENS_APPLICATIONS`` list with\npackages you want to inspect.\n\n\nIn a package with code quality tests (e.g. test_tokens.py) import tests you\nwant to check your apps against:\n\n.. code-block:: python\n\n from smelly_tokens.test_smelly_tokens import (\n EvalTokenTestCase,\n PdbTokenTestCase,\n )\n\n\nRun ``django-admin.py test`` or ``./manage.py test`` or ``py.test`` or ``nose``\nor whatever runner you're using.\n\n\nExceptions\n==========\n\nTo silence known errors PEP8-style ``noqa`` comment can be used in the\nbeginning of a file:\n\n\n.. code-block:: python\n\n # smelly_tokens: noqa\n\n\nOr in-line:\n\n\n.. code-block:: python\n\n eval('print 123') # noqa\n\n\nTo exclude an entire directory add it's path to ``SMELLY_TOKENS_EXCLUDE_DIRS``\nlist in ``settings``.\n\n\nAdding your own tokens\n======================\n\nTo create a new type of smelly token test case, inherit\n``SmellyTokensTestCase`` and override ``_tokens`` list:\n\n.. code-block:: python\n\n from django.test import TestCase\n from smelly_tokens.test_smelly_tokens import SmellyTokensTestCase\n\n\n class OOPTokensTestCase(SmellyTokensTestCase, TestCase):\n \"\"\" OOP hater. \"\"\"\n _tokens = ['class', 'object', 'Object']\n\n\nReferences\n==========\n\n* `Full documentation `__;\n\n\nChangelog\n=========\n\n0.4.4 (2018-06-06)\n------------------\n\n- #movingtogitlab\n\n\n0.4 (2017-05-06)\n----------------\n\n- Introduced zest.releaser.\n- Released to PyPI.\n- Documentation.\n\n\n0.3 (2017-05-02)\n----------------\n\n- Python 2 / 3 compatibility.\n- Multiple tokens per class.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/murchik/django-smelly-tokens", "keywords": "django-smelly-tokens", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "django-smelly-tokens", "package_url": "https://pypi.org/project/django-smelly-tokens/", "platform": "", "project_url": "https://pypi.org/project/django-smelly-tokens/", "project_urls": { "Homepage": "https://gitlab.com/murchik/django-smelly-tokens" }, "release_url": "https://pypi.org/project/django-smelly-tokens/0.4.4/", "requires_dist": null, "requires_python": "", "summary": "Code quality tests", "version": "0.4.4" }, "last_serial": 3935401, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "ba03a2c46fd02d2c23a7076c8a467fa9", "sha256": "4e50774aea49d5f80ab505189193aa753d5d38e0eca5b13b1889b4180e12090d" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ba03a2c46fd02d2c23a7076c8a467fa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4107, "upload_time": "2017-05-06T03:59:21", "url": "https://files.pythonhosted.org/packages/cd/4d/fba5bf31f7d6796a9706f9072ca9c938e05f580c8ba4f11e038a0d97dddd/django-smelly-tokens-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "d7916fa7c9a94239505e3d457ebe284c", "sha256": "ad3620dca364c270a92dfc32080c443fb2485699a3b39cc0c2eeb12028699ea6" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d7916fa7c9a94239505e3d457ebe284c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6793, "upload_time": "2017-05-06T05:11:35", "url": "https://files.pythonhosted.org/packages/47/d6/2c487c9b59a4ef9482d3b034b826292326b99cc9c7c85ab487c076313b38/django-smelly-tokens-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "76a1cacb8e52f5c73083c1f9514a84dd", "sha256": "08b287cf59fbb0fccee098c5ae2fe3c9563713179ce581a510bb0c32d0ad2e63" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.2.tar.gz", "has_sig": false, "md5_digest": "76a1cacb8e52f5c73083c1f9514a84dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6860, "upload_time": "2017-05-06T05:41:10", "url": "https://files.pythonhosted.org/packages/0c/45/f54041d96175c29e11d0b03abf81d9f1d4adaab52f2a774c748aadd99860/django-smelly-tokens-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "c95cec1d7e4a3f8f25f6cc9685191a37", "sha256": "3859adcd7ce5cf80eb4e1f4e79d196188c6dc27bbf50c3d74ad7aea6522fc864" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.3.tar.gz", "has_sig": false, "md5_digest": "c95cec1d7e4a3f8f25f6cc9685191a37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6837, "upload_time": "2017-05-06T06:12:46", "url": "https://files.pythonhosted.org/packages/1a/5b/c4ad89bfc05347929a067b1cc7e6f4d6bd9c744fd275eb1d55dd48e45222/django-smelly-tokens-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "6988e54e1dc585d306554502efc1903a", "sha256": "92a1036f6ccddc3a962bf6676b88f0c879dfe440cccc608090eaca6a24b08946" }, "downloads": -1, "filename": "django_smelly_tokens-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6988e54e1dc585d306554502efc1903a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4019, "upload_time": "2018-06-06T10:12:30", "url": "https://files.pythonhosted.org/packages/d1/31/0e03c731e8ccf6a8960967f10e581d4f768320f6a0a30634e9511d760c2f/django_smelly_tokens-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4fb2a81d64d4c1648a04e0913fc0126", "sha256": "fe9718afc1ef283594eb51b3803b2f42fc3adbbb515d4f5467c55efb53a8ca4e" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.4.tar.gz", "has_sig": false, "md5_digest": "b4fb2a81d64d4c1648a04e0913fc0126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6861, "upload_time": "2018-06-06T10:12:27", "url": "https://files.pythonhosted.org/packages/1b/72/dd47a63c82ff719a5c38c24017f28a3871d272535d2250ed079d857bb5d5/django-smelly-tokens-0.4.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6988e54e1dc585d306554502efc1903a", "sha256": "92a1036f6ccddc3a962bf6676b88f0c879dfe440cccc608090eaca6a24b08946" }, "downloads": -1, "filename": "django_smelly_tokens-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6988e54e1dc585d306554502efc1903a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4019, "upload_time": "2018-06-06T10:12:30", "url": "https://files.pythonhosted.org/packages/d1/31/0e03c731e8ccf6a8960967f10e581d4f768320f6a0a30634e9511d760c2f/django_smelly_tokens-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4fb2a81d64d4c1648a04e0913fc0126", "sha256": "fe9718afc1ef283594eb51b3803b2f42fc3adbbb515d4f5467c55efb53a8ca4e" }, "downloads": -1, "filename": "django-smelly-tokens-0.4.4.tar.gz", "has_sig": false, "md5_digest": "b4fb2a81d64d4c1648a04e0913fc0126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6861, "upload_time": "2018-06-06T10:12:27", "url": "https://files.pythonhosted.org/packages/1b/72/dd47a63c82ff719a5c38c24017f28a3871d272535d2250ed079d857bb5d5/django-smelly-tokens-0.4.4.tar.gz" } ] }