Skip to content

Latest commit

 

History

History
105 lines (78 loc) · 4.6 KB

File metadata and controls

105 lines (78 loc) · 4.6 KB

PyPI version PyPI - Python Version Downloads Github Actions Codecov Hatch project

flake8-no-implicit-str-concat-in-list

Flake8 plugin that forbids implicit str/bytes literal concatenations inside literals such as lists, sets and tuples.

# NG
a = ["aaa",
     "bbb"
     "ccc"]

# OK
print('foobar' 'baz')
a = ["aaa",
     "bbb"
     + "ccc"]
b = b'abcdef'
s = ('abc'
    'def')

Installation

Install via pip:

pip install flake8-no-implicit-str-concat-in-list

Violation Codes

The plugin uses the prefix ICL, short for no implicit string concatenation in lists. Unfortunately flake8 only allows three characters for the error code prefix.

Code Description
ICL122 Implicitly concatenated bytes literals in list literal over multiple lines.
ICL112 Implicitly concatenated bytes literals in list literal.
ICL121 Implicitly concatenated str literals in list literal over multiple lines.
ICL111 Implicitly concatenated str literals in list literal.
ICL222 Implicitly concatenated bytes literals in tuple literal over multiple lines.
ICL212 Implicitly concatenated bytes literals in tuple literal.
ICL221 Implicitly concatenated str literals in tuple literal over multiple lines.
ICL211 Implicitly concatenated str literals in tuple literal.
ICL322 Implicitly concatenated bytes literals in set literal over multiple lines.
ICL312 Implicitly concatenated bytes literals in set literal.
ICL321 Implicitly concatenated str literals in set literal over multiple lines.
ICL311 Implicitly concatenated str literals in set literal.

Other Plugins & Linters

  • flake8-implicit-str-concat Flake8 plugin to encourage correct string literal concatenation. This plugin is different from flake8-no-implicit-str-concat-in-list because this plugin prefers implicit concatenations over explicit + operators when concatenating literals even inside lists, tuples and set literals.
  • wemake-python-styleguide Set of strict flake8 rules with several plugins as dependencies. It implements WPS326 Found implicit string concatenation, which also checks implicit string concatenations, as one of the many rules it defines.
  • pylint This linter has implicit-str-concat rule. By default it only looks for occurrences of implicit concatenations on the same line, but it has --check-str-concat-over-line-jumps=y option to enable checking of concatenations over multiple lines.
  • flake8-no-implicit-concat This linter has no_implicit_concat rule. It also looks for implicit string concatenation but in all contexts, not just in lists.

Development

Use tools like Pipenv:

pipenv run python -m pip install -e .[dev]
pipenv run make check

License

This software is released under MIT license. See LICENSE for details.

The code was derived from flake8-no-implicit-concat, which is developed by 10sr and also released under MIT license.