yet another static checker for Python code
Project description
Overview
pydiatra is yet another static checker for Python code.
Implemented checks
embedded code copies
except shadowing builtins (e.g. except IOError, OSError:, which overwrites OSError)
bare except (i.e. except:)
hardcoded errno values (e.g. exc.errno == 2 instead of exc.errno == errno.ENOENT)
inconsistent use of tabs and spaces in indentation
mkstemp() file descriptor leaks (e.g. path = tempfile.mkstemp()[1])
obsolete PIL imports (e.g. import Image instead of from PIL import Image)
regular expression syntax errors
misplaced flags arguments in re.split(), re.sub(), re.subn()
dubious or deprecated constructs in regular expressions:
duplicate range (e.g. re.compile("[aa]"))
overlapping ranges (e.g. re.compile("[a-zA-z]"))
bad escape sequences (e.g. re.compile(r"\eggs"))
misplaced inline flags (e.g. re.compile("eggs(?i)"); Python 3.6+ only)
combining incompatible flags
redundant flags
string exceptions (e.g. raise "eggs" or except "ham":)
string formatting errors
comparisons with sys.version or sys.hexversion
Python syntax errors
Python syntax warnings
assertions that are always true
syntactic constructs that are no longer supported in Python 3
ill-formed assignments to global variables
use of async and await as names
invalid escape sequences in strings (Python 3.6+ only)
See the manual page for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.