[code-quality] Lint check for missing commas in list literal?

Razzi Abuissa razzi at abuissa.net
Mon Sep 11 23:26:45 EDT 2017


The trailing comma issue you linked is different, but it's good to know
that can be detected as well!

What I'd like to prevent is lists that look like

['A' 'B']

Which python interprets as

['AB']

In my experience ['A' 'B'] is a typo - ['A', 'B'] was intended.

I discovered that the python AST module discards this kind of information -
by the time the AST gets to flake8 it's impossible to tell there was ever
implicit string concatenation, so there's nothing flake8 can do about this
to my knowledge.

If anybody is interested, here's a rough implementation as a standalone
script that uses redbaron:
https://github.com/razzius/redbaron-missing-comma-string-collection

On Jul 24, 2017 4:07 AM, "Ian Stapleton Cordasco" <
graffatcolmingov at gmail.com> wrote:

On Sun, Jul 23, 2017 at 2:13 PM, Razzi Abuissa <razzi at abuissa.net> wrote:
> Hi PyCQA,
>
> I've done a little searching but have not found a lint check for the
> following:
>
> [
>     'a',
>     'b'
>     'c'
> ]
>
> evaluates to ['a', 'bc'] due to implicit string concatenation, but usually
> it's intended to be ['a', 'b', 'c']. If it is meant to be ['a', 'bc'] it's
> bad style.
>
> Guido recommends popular lint tools add a rule for this here:
> https://groups.google.com/forum/#!msg/python-ideas/jP1YtlyJq
xs/FacZu-WK_9AJ
>
> If this check does not exist, I would be willing to create a flake8 plugin
> and add it to PyCQA.
>
> Regards,
>
> Razzi

Hi Razzi,

This has been discussed here
https://github.com/PyCQA/pycodestyle/issues/308 and there are a few
plugins for Flake8 which do this:

- https://pypi.org/project/flake8-commas/
- https://pypi.org/project/flake8-trailing-commas/
- https://pypi.org/project/flake8_strict/

You can find Flake8 plugins using this search on PyPI:
https://pypi.org/search/?c=Framework+::+Flake8

Cheers,
Ian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/code-quality/attachments/20170912/0af9a4b6/attachment.html>


More information about the code-quality mailing list