Skip to content
This repository has been archived by the owner on Oct 1, 2019. It is now read-only.

Single-element tuples are printed incorrectly #12

Closed
taion opened this issue Dec 26, 2017 · 6 comments
Closed

Single-element tuples are printed incorrectly #12

taion opened this issue Dec 26, 2017 · 6 comments

Comments

@taion
Copy link
Contributor

taion commented Dec 26, 2017

In:

a = 1,

Out:

a = 1

The trailing comma is necessary for single-element tuples in Python, with out without the parens (i.e. (1,), not (1)).

@taion
Copy link
Contributor Author

taion commented Dec 26, 2017

Tuple printing is somewhat questionable in general.

In:

a = (
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
)

Out:

a = "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf"

@taion
Copy link
Contributor Author

taion commented Dec 26, 2017

Lists too, actually:

# In:
a = [
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
    "asdfasdfasdfasdfasdfasdf",
]

# Out:
a = ["asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf", "asdfasdfasdfasdfasdfasdf"]

These are all with defaults, i.e. max width of 80 (other than enabling the Python plugin).

@azz
Copy link
Member

azz commented Dec 26, 2017

Might be missing a group()?

@taion
Copy link
Contributor Author

taion commented Dec 26, 2017

For the wrapping things, yeah.

The single-element tuple thing in the OP is actually a syntax issue, though. The printed code is not equivalent to the input code.

@taion
Copy link
Contributor Author

taion commented Dec 31, 2017

Empty tuples are broken as well:

# In:
a = ()

# Out:
a =

@azz azz closed this as completed in #17 Jan 4, 2018
@taion
Copy link
Contributor Author

taion commented Jan 4, 2018

This isn't fully resolved. Empty tuples I believe now will get printed like a = ,, which is still invalid syntax.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants