Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Jendrik Seipp Newsgroups: comp.lang.python.announce Subject: Vulture 0.28 Date: Thu, 5 Jul 2018 13:56:25 +0200 Lines: 43 Approved: python-announce-list@python.org Message-ID: References: <12e4d8d7-ed9f-aaac-b064-9485c46aac4e@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de KlJJ0pEx7HiNDN5HawCHKwsCGKZ42oTNct/KfJUZkxbw== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.008 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'url:pypi': 0.03; 'programs.': 0.03; 'patterns.': 0.07; 'received:192.168.178': 0.07; 'static': 0.07; 'setup.py': 0.09; 'library': 0.11; 'tests': 0.12; '(thanks': 0.16; '``unittest``': 0.16; 'message-id:@web.de': 0.16; 'nature,': 0.16; 'python': 0.16; 'code.': 0.16; "python's": 0.17; 'recognized': 0.18; '2.7': 0.19; 'ignore': 0.20; 'skip:` 10': 0.21; 'actual': 0.22; 'helpful': 0.22; 'modules': 0.24; 'syntax': 0.24; 'header:User-Agent:1': 0.24; 'arguments': 0.25; 'url-ip:151.101.0.223/32': 0.25; 'url-ip:151.101.128.223/32': 0.25; 'url-ip:151.101.192.223/32': 0.25; 'url- ip:151.101.64.223/32': 0.25; 'errors': 0.26; 'url- ip:151.101.192/24': 0.26; 'url-ip:151.101.0/24': 0.27; 'url- ip:151.101.128/24': 0.27; 'url-ip:151.101.64/24': 0.27; 'import': 0.27; 'cheers': 0.28; 'output': 0.31; 'url-ip:192.30/16': 0.31; 'dead': 0.32; 'skip:` 20': 0.32; 'useful': 0.32; 'finds': 0.33; 'implicitly': 0.33; 'skip:= 20': 0.33; 'test': 0.33; 'run': 0.33; 'url-ip:151.101/16': 0.34; 'url-ip:151/8': 0.34; 'code': 0.34; 'tool': 0.35; 'received:192.168': 0.36; 'received:192': 0.37; 'cleaning': 0.38; 'to:addr:python-announce-list': 0.38; 'unused': 0.38; 'url-ip:192.30.253.112/32': 0.38; 'url- ip:192.30.253.113/32': 0.38; 'url-ip:192.30.253/24': 0.38; 'url:github': 0.38; 'supports': 0.38; 'file': 0.38; 'large': 0.39; 'reporting': 0.39; 'rather': 0.39; 'url:org': 0.40; 'received:ch': 0.60; 'your': 0.60; 'their': 0.60; 'received:unknown': 0.62; 'news': 0.62; 'from:addr:web.de': 0.63; 'charset:windows-1252': 0.63; 'refer': 0.63; 'complete': 0.66; 'analysis': 0.78; 'miss': 0.81; '3.4': 0.84; 'whitelist': 0.84; 'whitelist.': 0.84; 'quality.': 0.91 IronPort-PHdr: =?us-ascii?q?9a23=3AoRKuehaAw+uyBaP6rzXnlvH/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZr826bnLW6fgltlLVR4KTs6sC17KI9fu8EjBbqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjWwba9zIRmsowjcucYajIRsJ60s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?EKPCM7/m7KkMx9lKJVrg+/qRJ8zYDbbo6aO+ZxcK7GYdMXR3BMUtpNWyFPAo6x?= =?us-ascii?q?aZYEAeobPeZfqonwv18AogW4BQaxHuPvyzxIjWLr06Ik0uQhCRnG1xEnEtIMrn?= =?us-ascii?q?vUqsj6NL0TUeC216nH0zTDb+tO2Trm5onHbAsureuRUr1uaMfcz1QkGQ3CjlWV?= =?us-ascii?q?s4PlPjWV2/wCs2ia8+pgVf+vhHU9pw5tpTivw98gipHJh4IJylDE8iN5zJwyJd?= =?us-ascii?q?2iR052Z8OvHphItyyCKod7RswvT3t2tCs01rEKo4O3cSgKxZg92hLSZfyKfo6V?= =?us-ascii?q?6Rz5TumROy13hHd9dbK6gBa97Favx/XnVsmxzFZKti1FksTQtnwV1xzc9MyHSv?= =?us-ascii?q?xl80ilxDqC0x7f5vtZLU01lqfXMYMtz7wzm5YJr0jPAyn5lF33jK+QaEok5vCl?= =?us-ascii?q?5/njb7jpvJOQKYF5hh3kPqgzmsGyAf40PhUAUmWb4ei80afs/Uz9QLVElP02la?= =?us-ascii?q?zZvYjYJcsFoK62HhVV0ocg6xakETim0cwYnWEcIVNLZh2IlJLlNEzQL/zgF/ew?= =?us-ascii?q?n0yskCt3x/DBJrDhGpXMLmTDkLfme7Zx8lRTyAw1zdBY+pJUDK0OL+zqVk/1td?= =?us-ascii?q?zYFQM5Phesw+fnFNV91oQeWWSVDq+eKqPSvgzA2uV6O/iQZIgT/T/7Lf844fXj?= =?us-ascii?q?yHs4gkM1Zbi13ZwRLneiEadIOUKcNFjhhNsbEGRChQc/VPSi3F+PVzJJZnWpUq?= =?us-ascii?q?Mk/hkkBYjgAYqVFdPlu6CIwCruRs4eXWtBEF3ZSXo=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2EhBQBjBj5b/4eb5sINTh4BBgyEK4Enh?= =?us-ascii?q?2eSJyyFCYgpiTs7Cx8PgQKGDTgUAQIBAQIBAQIBAQKBBYJBIg0ESzovAQEBAQE?= =?us-ascii?q?BAQEBAQEBAQEBARoCDSZ8aYEjCAEBFoMGAYFmASenEBEzgwoahEGBah+BZYE6i?= =?us-ascii?q?kM/gTaFdQsCgi2FCQKNDYw/CXmFDYkUggmGIgOFL4o1hEcBgwyBWIF0Mxokgzg?= =?us-ascii?q?JCYVuhRRRhG9tkQ8BAQ?= X-IPAS-Result: =?us-ascii?q?A2EhBQBjBj5b/4eb5sINTh4BBgyEK4Enh2eSJyyFCYgpiTs?= =?us-ascii?q?7Cx8PgQKGDTgUAQIBAQIBAQIBAQKBBYJBIg0ESzovAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?RoCDSZ8aYEjCAEBFoMGAYFmASenEBEzgwoahEGBah+BZYE6ikM/gTaFdQsCgi2?= =?us-ascii?q?FCQKNDYw/CXmFDYkUggmGIgOFL4o1hEcBgwyBWIF0MxokgzgJCYVuhRRRhG9tk?= =?us-ascii?q?Q8BAQ?= X-IronPort-AV: E=Sophos;i="5.51,312,1526335200"; d="scan'208";a="41392168" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 Content-Language: de-CH X-Mailman-Approved-At: Thu, 05 Jul 2018 08:20:00 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <12e4d8d7-ed9f-aaac-b064-9485c46aac4e@web.de> Xref: csiph.com comp.lang.python.announce:2907 Vulture - Find dead code ======================== Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code bases. If you run Vulture on both your library and test suite you can find untested code. Due to Python's dynamic nature, static code analyzers like Vulture are likely to miss some dead code. Also, code that is only called implicitly may be reported as unused. Nonetheless, Vulture can be a very helpful tool for higher code quality. Download ======== https://github.com/jendrikseipp/vulture http://pypi.python.org/pypi/vulture Features ======== * fast: uses static code analysis * tested: tests itself and has complete test coverage * complements pyflakes and has the same output syntax * sorts unused classes and functions by size with ``--sort-by-size`` * supports Python 2.7 and Python >= 3.4 News ==== * Add ``--make-whitelist`` flag for reporting output in whitelist format (thanks @RJ722). * Ignore case of ``--exclude`` arguments on Windows. * Add ``*-test.py`` to recognized test file patterns. * Add ``failureException``, ``longMessage`` and ``maxDiff`` to ``unittest`` whitelist. * Refer to actual objects rather than their mocks in default whitelists (thanks @RJ722). * Don't import any Vulture modules in setup.py (thanks @RJ722). Cheers Jendrik