Skip to main content

A flake8 plugin to help you write better list/set/dict comprehensions.

Project description

Flake8 Comprehensions

https://img.shields.io/pypi/v/flake8-comprehensions.svg https://img.shields.io/travis/adamchainz/flake8-comprehensions.svg

A flake8 plugin that helps you write better list/set/dict comprehensions.

  • Free software: ISC license

Installation

Install from pip with:

pip install flake8-comprehensions

It will then automatically be run as part of flake8; you can check it has been picked up with:

$ flake8 --version
2.4.1 (pep8: 1.7.0, pyflakes: 0.8.1, flake8-comprehensions: 1.0.0, mccabe: 0.3.1) CPython 2.7.11 on Darwin

Rules

C400: Unnecessary generator

Complains about unnecessary use of a generator inside a call to list()/set()/dict() when an equivalent comprehension would do. For example:

  • list(f(x) for x in foo) -> [f(x) for x in foo]

  • set(f(x) for x in foo) -> {f(x) for x in foo}

  • dict((x, f(x)) for x in foo) -> {x: f(x) for x in foo}

This rule triggers a message like:

$ flake8 file.py
file.py:1:1: C400 Unnecessary generator - rewrite as a list comprehension.

C401: Unnecessary list comprehension

Complains about unnecessary use of a list comprehension, for example when inside a set() call. For example:

  • set([f(x) for x in foo]) -> {f(x) for x in foo}

  • dict([(x, f(x)) for x in foo]) -> {x: f(x) for x in foo}

This triggers a message like:

$ flake8 file.py
file.py:1:1: C401 Unnecessary list comprehension - rewrite as a set comprehension.

C402: Unnecessary list literal

Complains about unnecessary list literals, for example when inside a set() call. For example:

  • set([1, 2]) -> {1, 2}

  • set([]) -> set()

  • dict([]) -> {}

  • dict([(1, 2)]) -> {1: 2}

This triggers a message like:

$ flake8 file.py
file.py:1:1: C402 Unnecessary list literal - rewrite as a set literal.

History

Pending Release

  • New release notes here

1.1.0 (2016-04-06)

  • C401 rule that complains about unnecessary list comprehensions inside calls to set() or dict().

  • C402 rule that complains about unnecessary list literals inside calls to set() or dict().

1.0.0 (2016-04-05)

  • C400 rule that complains about an unnecessary usage of a generator when a list/set/dict comprehension would do.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8-comprehensions-1.1.0.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

flake8_comprehensions-1.1.0-py2.py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page