Skip to content

isort inserts a trailing comma even if there's just a single name in parentheses #250

@mxr

Description

@mxr

Operating system: Mac OS 10.13.4
Python version: 3.6.5 (through pyenv)
Black version: 18.4a4
Does also happen on master: yes


Given this setup:

$ tail -n+1 foo.py .pre-commit-config.yaml setup.cfg
==> foo.py <==
from a_really.really.really.really.really.long.package.namespace import a_really_long_package
from really.really.really.really.really.long.package.namespace import really_long_package as pkg

==> .pre-commit-config.yaml <==
repos:
- repo: https://github.com/pre-commit/mirrors-isort
  rev: v4.3.4
  hooks:
  - id: isort
- repo: https://github.com/ambv/black
  rev: 18.5b0
  hooks:
  - id: black
    python_version: python3.6

==> setup.cfg <==
[isort]
# Using config from
# https://github.com/ambv/black/blame/c7bc22388d30f1ba503eefd574e4bb794749b782/README.md
force_grid_wrap = 0
include_trailing_comma = true
line_length = 88
multi_line_output = 3

Running isort changes the file to

from a_really.really.really.really.really.long.package.namespace import (
    a_really_long_package,
)
from really.really.really.really.really.long.package.namespace import \
    really_long_package as pkg

Running black changes the file to

from a_really.really.really.really.really.long.package.namespace import (
    a_really_long_package
)
from really.really.really.really.really.long.package.namespace import (
    really_long_package as pkg
)

The difference being the trailing comma and the \ line break

--- foo_isort.py	2018-05-22 15:46:53.000000000 -0400
+++ foo_black.py	2018-05-22 15:46:46.000000000 -0400
@@ -1,5 +1,6 @@
 from a_really.really.really.really.really.long.package.namespace import (
-    a_really_long_package,
+    a_really_long_package
 )
-from really.really.really.really.really.long.package.namespace import \
+from really.really.really.really.really.long.package.namespace import (
     really_long_package as pkg
+)

If I add this option to setup.cfg

--- setup.cfg	2018-05-22 15:39:19.000000000 -0400
+++ setup.cfg.new	2018-05-22 15:47:41.000000000 -0400
@@ -1,6 +1,5 @@
 [isort]
-# Using config from
-# https://github.com/ambv/black/blame/c7bc22388d30f1ba503eefd574e4bb794749b782/README.md
+combine_as_imports = true
 force_grid_wrap = 0
 include_trailing_comma = true
 line_length = 88

I get a slightly closer diff, but the trailing commas are inconsistent.

--- foo_isort.py	2018-05-22 15:48:59.000000000 -0400
+++ foo_black.py	2018-05-22 15:49:04.000000000 -0400
@@ -1,6 +1,6 @@
 from a_really.really.really.really.really.long.package.namespace import (
-    a_really_long_package,
+    a_really_long_package
 )
 from really.really.really.really.really.long.package.namespace import (
-    really_long_package as pkg,
+    really_long_package as pkg
 )

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions