Giter Club home page Giter Club logo

flake8-raise's Introduction

flake8-raise

A flake8 plugin that finds improvements for raise statements.

Installation

Install using pip:

$ pip install flake8-raise

When installed, the plugin will automatically be used by flake8. To check it is installed correctly, run flake8 --version and look in the list of installed plugins:

$ flake8 --version
3.7.9 (flake8-raise: 0.0.5, mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.8.1 on Linux

Rules

Code Rule
R100 raise in except handler without from
R101 use bare raise in except handler
R102 unnecessary parentheses on raised exception

Examples

R100 raise in except handler without from

try:
    foo["bar"]
except KeyError:
    raise MyException

Will result in the error:

R100 raise in except handler without from.

To fix, change to:

try:
    foo['bar']
except KeyError as e:
    raise MyException from e

R101 use bare raise in except handler

try:
    foo["bar"]
except KeyError as e:
    raise e

Will result in the error:

R101 Use bare raise in except handler.

To fix, change to:

try:
    foo['bar']
except KeyError:
    raise

R102 unnecessary parentheses on raised exception

raise TypeError()

Will result in the error:

R102 unnecessary parentheses on raised exception

To fix, change to:

raise TypeError

flake8-raise's People

Contributors

jdufresne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

theonlykingpin

flake8-raise's Issues

[feature request] Unnecessary parentheses in raise exception

@jdufresne Thanks for your plugin, I would like to offer one more check about exceptions

R102 Unnecessary parentheses in raise exception

if something:
    raise PermissionDenied()

Will result in the error:
R102 Unnecessary parentheses in raise exception

To fix, change to:

if something:
    raise PermissionDenied

If there is no difference then why write more?
However, there may be people who prefer the opposite so that the brackets are always there and you can do the reverse optional check.

[feature request] Missing parentheses on raised exception

I would like to propose another check.

R103 Missing parentheses on raised exception

It would be off by default, but could be activated for projects that want to follow convention with having always parentheses (see google style docs).

if something:
    raise PermissionDenied

Will result in the error:
R103 Missing parentheses on raised exception

To fix, change to:

if something:
    raise PermissionDenied()

By the way, thanks for the plugin :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.