{ "info": { "author": "Tomer Keren", "author_email": "tomer.keren.dev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Framework :: Flake8", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "# Good Smell - it makes your code smell good! \nA linting/refactoring library for python best practices and lesser-known tricks \n---\n[![Build Status](https://travis-ci.com/Tadaboody/good_smell.svg?branch=master)](https://travis-ci.com/Tadaboody/good_smell) \n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![PyPi version](https://pypip.in/v/good_smell/badge.png)](https://pypi.org/project/good-smell/)\n[![codecov](https://codecov.io/gh/Tadaboody/good_smell/branch/master/graph/badge.svg)](https://codecov.io/gh/Tadaboody/good_smell)\n\n---\n\nThis Tool tries to find bits of code that are possible to make more pythonic, more beautiful by using the language features and standard library functions you might not know about\n\nFor example\nDirectly nested for loops (nested-for)\n```py\nfor i in seq_a:\n for j in seq_b:\n print(i, j)\n```\nwill be flattened using [itertools.product](https://docs.python.org/3/library/itertools.html#itertools.product)\n```py\nimport itertools\nfor i, j in itertools.product(seq_a, seq_b):\n print(i, j)\n```\nFor a full list - check the list of [implemented smells](docs/implemented_smells)\n## Installing:\n```sh\npip install good_smell \n```\n## Usage (Is likely to change when version 1.0 is released):\n``\ngood_smell warn - Print warnings about smells in the code\n``\n```sh\ngood_smell warn PATH\ngood_smell warn --path PATH\n```\nAlternativly you can run it through [flake8](http://flake8.pycqa.org/en/latest/). Smells will be with the code SMLxxx \n\n``good_smell fix - Print a fixed version of the code``\n```sh\ngood_smell fix PATH [STARTING_LINE] [END_LINE]\ngood_smell fix --path PATH [--starting-line STARTING_LINE] [--end-line END_LINE]\n```\n\n## Developing\nSee [contributing guide](CONTRIBUTING)", "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/Tadaboody/good_smell", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "good-smell", "package_url": "https://pypi.org/project/good-smell/", "platform": "", "project_url": "https://pypi.org/project/good-smell/", "project_urls": { "Homepage": "https://github.com/Tadaboody/good_smell" }, "release_url": "https://pypi.org/project/good-smell/0.13.0/", "requires_dist": null, "requires_python": "", "summary": "A linter/refactoring tool to make your code smell better!", "version": "0.13.0" }, "last_serial": 4704439, "releases": { "0.10": [ { "comment_text": "", "digests": { "md5": "96e04c9e33826ecd733618aef72f5569", "sha256": "1b02a9ae1fd8f91ff5d8182c9355d1ec72615d22bc49ae4a20119570dd515cac" }, "downloads": -1, "filename": "good_smell-0.10.tar.gz", "has_sig": false, "md5_digest": "96e04c9e33826ecd733618aef72f5569", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6303, "upload_time": "2018-12-31T22:16:33", "url": "https://files.pythonhosted.org/packages/c1/e9/3a151ae6653070c790237915e1f7bdefd904d43466df47ffe38c0ce18051/good_smell-0.10.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "b766222089fabfe202d4c1bbe2e0fee4", "sha256": "810c6f1b8387dd5b73b5a429d9f38143ccc5c10a553f1c9129f4e58f3bf47983" }, "downloads": -1, "filename": "good_smell-0.10.1.tar.gz", "has_sig": false, "md5_digest": "b766222089fabfe202d4c1bbe2e0fee4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6352, "upload_time": "2018-12-31T22:22:22", "url": "https://files.pythonhosted.org/packages/dd/d2/a5f292c1f565b00f862770d22792537d646587211c6df67211464481c4b1/good_smell-0.10.1.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "b0e6527ef6235446160c14b9b7ac362a", "sha256": "5e5ab4ec53a83185ede488be46690b571e61154af9d5d3b0fb6e7f4de629ef40" }, "downloads": -1, "filename": "good_smell-0.11.0.tar.gz", "has_sig": false, "md5_digest": "b0e6527ef6235446160c14b9b7ac362a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6731, "upload_time": "2018-12-31T23:05:51", "url": "https://files.pythonhosted.org/packages/06/a0/e0506aee74233ec7644fab8b94a695e043a96a6735cf10622cd356f7886e/good_smell-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "d1f1adf3c1ca5ad9919633f284f942ba", "sha256": "7e04739e48d2d4a5cc27b0809647757695c12e8f54d6309d8719eed4ad0be34f" }, "downloads": -1, "filename": "good_smell-0.12.0.tar.gz", "has_sig": false, "md5_digest": "d1f1adf3c1ca5ad9919633f284f942ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6868, "upload_time": "2019-01-02T00:06:18", "url": "https://files.pythonhosted.org/packages/58/5d/f248bf69d61f9a694afff167c984095437318a203803122e549617cf86a5/good_smell-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "bbf9b88b35151132f15002b4dbe255d5", "sha256": "c916075849ab749c6899f7a8b2ecd86e9574d0578eb2160ec9988c2d104fcbb8" }, "downloads": -1, "filename": "good_smell-0.13.0.tar.gz", "has_sig": false, "md5_digest": "bbf9b88b35151132f15002b4dbe255d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7080, "upload_time": "2019-01-16T17:54:54", "url": "https://files.pythonhosted.org/packages/4e/fc/a3a6f603197d292ad3b0932f51753b4dccaf04cd11cb7acc9cf41d533790/good_smell-0.13.0.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "ff94773b3f0a93b837c35213fe4df2ee", "sha256": "50c85424c45325a37e29a98219eab0652c466ba82a27ac89759c6350ba05f182" }, "downloads": -1, "filename": "good_smell-0.3.tar.gz", "has_sig": false, "md5_digest": "ff94773b3f0a93b837c35213fe4df2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5521, "upload_time": "2018-12-27T14:02:45", "url": "https://files.pythonhosted.org/packages/c6/d5/cd257fa86c23f0cb1c7515b90aacf3a212305722b8a21c2ec0eb9bf9c4df/good_smell-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "1fa2f9f0be19ea7e3598cae28cbcb91b", "sha256": "b10f5d9c49c42c6543241af31202c72062f648f7b0fa687414885e5dcfaba052" }, "downloads": -1, "filename": "good_smell-0.4.tar.gz", "has_sig": false, "md5_digest": "1fa2f9f0be19ea7e3598cae28cbcb91b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5551, "upload_time": "2018-12-27T14:21:22", "url": "https://files.pythonhosted.org/packages/1c/47/5d44a1cef29a6b4f0322bc7c91e31c3c3851121388676c97066b58968520/good_smell-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "0172e07a9d4067413522c5d00b61cb4d", "sha256": "0d133af8701a21a3055279eaf464d39960aa1703f8c16857dda9afd788975502" }, "downloads": -1, "filename": "good_smell-0.5.tar.gz", "has_sig": false, "md5_digest": "0172e07a9d4067413522c5d00b61cb4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5553, "upload_time": "2018-12-27T16:11:48", "url": "https://files.pythonhosted.org/packages/80/86/bae02a60d7fa8f373144ab58b88d2536abdf2839101f3d2fe1b701ec1f19/good_smell-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "a3ee9a0f76fbecd36f792ba1b88195fa", "sha256": "c99e314bff2fc3edef167d9989798c13af3eb800b16b83fc4c212aabb4fb3851" }, "downloads": -1, "filename": "good_smell-0.6.tar.gz", "has_sig": false, "md5_digest": "a3ee9a0f76fbecd36f792ba1b88195fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4120, "upload_time": "2018-12-28T17:19:23", "url": "https://files.pythonhosted.org/packages/d2/aa/5a68758a443dac1d1a6dc2a9f8be2e22a6b4d025bd8252a3424f6bf34887/good_smell-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "70b8cc105b566e587d9cd9bcb625af90", "sha256": "f0ccef255d1494faef97884e59ce48ea3d076a0bfc437a9bc35c4f65c453f97e" }, "downloads": -1, "filename": "good_smell-0.6.1.tar.gz", "has_sig": false, "md5_digest": "70b8cc105b566e587d9cd9bcb625af90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5588, "upload_time": "2018-12-28T21:21:40", "url": "https://files.pythonhosted.org/packages/c1/f7/7b17c5c9312fcca01a7eeb7f6deab17874ccd3a929de8fe9f4bf7b7c2e14/good_smell-0.6.1.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "802e5315e40c60744c09151f73289040", "sha256": "59609268e5c0d248ede3160b35900913a6ebd571c1d4025e290a0af2d35bcb53" }, "downloads": -1, "filename": "good_smell-0.7.tar.gz", "has_sig": false, "md5_digest": "802e5315e40c60744c09151f73289040", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5603, "upload_time": "2018-12-30T20:38:31", "url": "https://files.pythonhosted.org/packages/59/7d/7dc911dec447c6a10bc457f7ce0b5905c9d80a738d593181f31b12f01c60/good_smell-0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bbf9b88b35151132f15002b4dbe255d5", "sha256": "c916075849ab749c6899f7a8b2ecd86e9574d0578eb2160ec9988c2d104fcbb8" }, "downloads": -1, "filename": "good_smell-0.13.0.tar.gz", "has_sig": false, "md5_digest": "bbf9b88b35151132f15002b4dbe255d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7080, "upload_time": "2019-01-16T17:54:54", "url": "https://files.pythonhosted.org/packages/4e/fc/a3a6f603197d292ad3b0932f51753b4dccaf04cd11cb7acc9cf41d533790/good_smell-0.13.0.tar.gz" } ] }