Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

print(…, sep=…) raises SyntaxError #777

Closed
lebigot opened this Issue · 3 comments

2 participants

@lebigot

With IPython 0.11 (Mac OS X Lion, installed via Fink) and Python 2.7, the print() function raises a strange SyntaxError:

In [2]: from __future__ import print_function
In [3]: print("Helloe", "lkj", sep="lkj")
  File "<ipython-input-3-ff000ce1a53b>", line 1
    print("Helloe", "lkj", sep="lkj")
                          ^
SyntaxError: invalid syntax

The name print seems to be correctly defined:

In [6]: print?
Type:       builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form:<built-in function print>
Namespace:  Python builtin
Docstring:
print(value, ..., sep=' ', end='\n', file=sys.stdout)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:  string inserted between values, default a space.
end:  string appended after the last value, default a newline.

I'm not sure whether this matters, but the failure happens with both autocall on and off.

@takluyver
Owner

Hmm, I think I can see where this is coming from. We parse the code with ast.parse before we compile it. __future__ imports from previous cells are stored as flags to pass to the compiler, but they're not passed to ast.parse, so it is still parsing print as a statement.

I think I can see a way round it - I'll hopefully have a go later today.

@takluyver takluyver was assigned
@takluyver takluyver referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
@takluyver
Owner

See PR #784. Sorry I didn't get round to it on Thursday - it's been a busy few days.

@takluyver takluyver closed this in e783b1c
@lebigot

Thanks, that's great!

@ellisonbg ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
@mattvonrocketstein mattvonrocketstein referenced this issue from a commit in mattvonrocketstein/ipython
@takluyver takluyver Parse user code to AST using compiler flags.
Closes gh-777.
f82e69a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.