Skip to main content

flake8-return

pypi Python: 3.6+ Downloads Build Status Code coverage License: MIT Code style: black

Flake8 plugin that checks return values.

Installation

pip install flake8-return

Errors

  • R501 do not explicitly return None in function if it is the only possible return value.
def x(y):
    if not y:
        return
    return None  # error!
  • R502 do not implicitly return None in function able to return non-None value.
def x(y):
    if not y:
        return  # error!
    return 1
  • R503 missing explicit return at the end of function able to return non-None value.
def x(y):
    if not y:
        return 1
    # error!
  • R504 unnecessary variable assignment before return statement.
def x():
    a = 1
    # some code that not using `a`
    print('test')
    return a  # error!
  • R505 unnecessary else after return statement.
def x(y, z):
    if y:  # error!
        return 1
    else:
        return z
  • R506 unnecessary else after raise statement.
def x(y, z):
    if y:  # error!
        raise Exception(y)
    else:
        raise Exception(z)
  • R507 unnecessary else after continue statement.
def x(y, z):
    for i in y:
        if i < z:  # error!
            continue
        else:
            a = 0
  • R508 unnecessary else after break statement.
def x(y, z):
    for i in y:
        if i > z:  # error!
            break
        else:
            a = 0

Returns in asyncio coroutines also supported.

For developers

Show help

make help

Create venv and install deps

make init

Install git precommit hook

make precommit

Run linters, autoformat, tests etc

make pretty lint test

Bump new version

make bump_major
make bump_minor
make bump_patch

Change Log

Unreleased

  • ...

1.2.0 - 2022-10-28

  • Port no-else-break, no-else-continue, no-else-raise, no-else-return from pylint (#122) Calum Young
  • PEP 621: Migrate more config to pyproject.toml (#123) Christian Clauss
  • Fix/116/R504-try-except (#120) Calum Young
  • Update ci (#119) Calum Young
  • Fix/47/Update-R504-for-assignment-value (#117) Calum Young
  • Upgrade GitHub Actions (#113) Christian Clauss
  • Add a space to avoid a typo in R503 (#98) Christian Clauss
  • GitHub Action to lint Python code (#97) Christian Clauss
  • Typo fixes (#92) Aarni Koskela
  • Create codeql-analysis.yml Afonasev Evgeniy
  • Bump flake8-plugin-utils from 1.1.1 to 1.3.2 (#87) dependabot
  • Bump mypy from 0.812 to 0.971 (#114) dependabot
  • Bump pytest-cov from 3.0.0 to 4.0.0 (#124) dependabot
  • Bump pytest-cov from 2.11.1 to 3.0.0 (#102) dependabot
  • Bump pytest-mock from 3.6.0 to 3.6.1 (#91) dependabot
  • Bump pytest from 6.2.4 to 6.2.5 (#99) dependabot
  • Bump pylint from 2.8.2 to 2.10.2 (#100) dependabot
  • Bump pytest from 6.2.3 to 6.2.4 (#86) dependabot

1.1.3 - 2021-05-05

  • Error clarifications (#77) Clément Robert
  • fix linting (migrate to black 20.0b1) (#78) Clément Robert

1.1.2 - 2020-07-09

  • Make R504 visitors handle while loops (#56) Frank Tackitt
  • Rename allows-prereleases to allow-prereleases (#55) Frank Tackitt
  • Fix typo: → haven't (#24) Jon Dufresne

1.1.1 - 2019-09-21

  • fixed #3 The R504 doesn't detect that the variable is modified in loop
  • fixed #4 False positive with R503 inside async with clause

1.1.0 - 2019-05-23

  • update flask_plugin_utils version to 1.0

1.0.0 - 2019-05-13

  • skip assign after unpacking while unnecessary assign checking "(x, y = my_obj)"

0.3.2 - 2019-04-01

  • allow "assert False" as last function return

0.3.1 - 2019-03-11

  • add pypi deploy into travis config
  • add make bump_version command

0.3.0 - 2019-02-26

  • skip functions that consist only return None
  • fix false positive when last return inner with statement
  • add unnecessary assign error
  • add support tuple in assign or return expressions
  • add support asyncio coroutines

0.2.0 - 2019-02-21

  • fix explicit/implicit
  • add flake8-plugin-utils as dependency
  • allow raise as last function return
  • allow no return as last line in while block
  • fix if/elif/else cases

0.1.1 - 2019-02-10

  • fix error messages

0.1.0 - 2019-02-10

  • initial

Release files for flake8-return 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-return 1.2.0
File Size Uploaded
flake8-return-1.2.0.tar.gz 10.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flake8-return 1.2.0
File Interpreter ABI Platform
flake8_return-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.2 kB

Release files / flake8-return-1.2.0.tar.gz

Download URL flake8-return-1.2.0.tar.gz
Size 10.0 kB
Tags Source
SHA-256 checksum
How to use checksums
68dfa56582cd704febd02ad86dcf5df67e38e0836d62f1ceae7930d76d3dd955
BLAKE2b-256 checksum
How to use checksums
834943ee60c21b61fbec8e86858b2dac7d11a9bdd9958fd7f59077387b6a7197
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.14 CPython/3.10.8 Darwin/21.6.0

Release files / flake8_return-1.2.0-py3-none-any.whl

Download URL flake8_return-1.2.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f07af12954ed03ebe2c2aac2418f78b55374e9929d4956109664588f31582a1
BLAKE2b-256 checksum
How to use checksums
f08c6aece77ad2d0d68d8f6e8d5471fd06638de11df656db7d76de810815c437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.14 CPython/3.10.8 Darwin/21.6.0

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page