Metadata-Version: 2.1
Name: flake8-no-implicit-concat
Version: 0.3.0
Summary: Flake8 plugin that forbids implicit str/bytes literal concatenations
Home-page: https://github.com/10sr/flake8-no-implicit-concat
Author: 10sr
Author-email: 8.slashes@gmail.com
License: MIT
Keywords: flake8
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Framework :: Flake8
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

[![Github Actions](https://github.com/10sr/flake8-no-implicit-concat/workflows/build/badge.svg?event=push)](https://github.com/10sr/flake8-no-implicit-concat/actions)
[![codecov](https://codecov.io/gh/10sr/flake8-no-implicit-concat/branch/master/graph/badge.svg)](https://codecov.io/gh/10sr/flake8-no-implicit-concat)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flake8-no-implicit-concat)
[![PyPI version](https://badge.fury.io/py/flake8-no-implicit-concat.svg)](https://badge.fury.io/py/flake8-no-implicit-concat)
[![Downloads](https://pepy.tech/badge/flake8-no-implicit-concat)](https://pepy.tech/project/flake8-no-implicit-concat)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)



flake8-no-implicit-concat
=========================

[Flake8][] plugin that forbids implicit str/bytes literal concatenations.

    # NG
    a = "abc" "def"
    b = ["aaa",
         "bbb"
         "ccc"]
    c = b"hoge" b"fuga"

    # OK
    a = "abcdef"
    b = ["aaa",
         "bbb" +
         "ccc"]
    c = b"hogefuga"


Installation
------------

Install via pip:

    pip install flake8-no-implicit-concat


Violation code
--------------

The plugin uses the prefix `NIC`, short for No Implicit Concatenation.

| Code   | Description                                                |
| ------ | ---------------------------------------------------------- |
| NIC001 | Implicitly concatenated str literals on one line           |
| NIC002 | Implicitly concatenated str literals over multiple lines   |
| NIC101 | Implicitly concatenated bytes literals on one line         |
| NIC102 | Implicitly concatenated bytes literals over multiple lines |


Other Plugins & Linters
-----------------------

- [**flake8-implicit-str-concat**][flake8-implicit-str-concat]
  Flake8 plugin to encourage correct string literal concatenation.
  This plugin is different from `flake8-no-implicit-concat`
  because this plugin prefers implicit concatenations over explicit `+`
  operators when concatenating literals over multiple lines.
- [**wemake-python-styleguide**][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**][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.


Development
-----------

Use tools like Pipenv:

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


License
-------

This software is licensed under MIT license. See `LICENSE` for details.

The code was derived from [flake8-implicit-str-concat][], which is developed by
Dylan Turner and also licensed under MIT license.



[Flake8]: https://flake8.pycqa.org/en/latest/
[flake8-implicit-str-concat]: https://github.com/keisheiled/flake8-implicit-str-concat
[wemake-python-styleguide]: https://github.com/wemake-services/wemake-python-styleguide
[pylint]: https://github.com/PyCQA/pylint


