static analysis for bad or avoidable practices in python


Keywords
static, analysis, practices
License
Other
Install
pip install mastool==0.1.2

Documentation

Build Status

mastool

static analysis for bad and/or avoidable practices

Installation

mastool is available on pypi, you can install from source or simply:

pip install mastool

Usage

After installing mastool, flake8 would get equipped with mastool's checks.

$ flake8 [PATH]

Mastool also adds the following switch to flake8, which provides a quick suggestion about what to replace the reported code with.

$ flake8 --with-solutions

Checks

See here for more details or the summary below.

Code Message
M001 looping against dictionary keys
M002 simplifiable if condition
M003 joining path with plus
M004 assigning to built-in
M005 catching a generic exception
M006 catching a generic exception and passing it silently
M007 use of import star
M008 comparing to True or False
M009 use of list as a default arg
M010 use of "if" expression as statement
M011 use of a comprehension as statement
M012 use of a generator as statement

FAQ

  1. Some of these issues are not bad/erroneous!

    Yes, in various contexts sometimes it may be ok (and possibly unavoidable) to use these constructs, at which point you can ignore them using Flake8's config mechanism

  2. Why did this tool become as a Flake8 extension?

    Flake8 provides a magnificent base for static analysis, there's no point in reinventing the wheel.

  3. What are some other similar tools?

    You can find some informatin about the subject on my blog