flake8-return
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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| flake8-return-1.2.0.tar.gz | 10.0 kB | Without provenance | Details for flake8-return-1.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| flake8_return-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for flake8_return-1.2.0-py3-none-any.whl |
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
|
Security for flake8-return 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.