Show More
@@ -75,6 +75,7 from IPython.utils.py3compat import cast_unicode | |||
|
75 | 75 | from IPython.core.inputtransformer import (leading_indent, |
|
76 | 76 | classic_prompt, |
|
77 | 77 | ipy_prompt, |
|
78 | strip_encoding_cookie, | |
|
78 | 79 | cellmagic, |
|
79 | 80 | assemble_logical_lines, |
|
80 | 81 | help_end, |
@@ -488,6 +489,7 class IPythonInputSplitter(InputSplitter): | |||
|
488 | 489 | self.physical_line_transforms = [leading_indent(), |
|
489 | 490 | classic_prompt(), |
|
490 | 491 | ipy_prompt(), |
|
492 | strip_encoding_cookie(), | |
|
491 | 493 | ] |
|
492 | 494 | |
|
493 | 495 | self.assemble_logical_lines = assemble_logical_lines() |
@@ -5,6 +5,7 from StringIO import StringIO | |||
|
5 | 5 | |
|
6 | 6 | from IPython.core.splitinput import LineInfo |
|
7 | 7 | from IPython.utils import tokenize2 |
|
8 | from IPython.utils.openpy import cookie_comment_re | |
|
8 | 9 | from IPython.utils.tokenize2 import generate_tokens, untokenize, TokenError |
|
9 | 10 | |
|
10 | 11 | #----------------------------------------------------------------------------- |
@@ -422,6 +423,30 def leading_indent(): | |||
|
422 | 423 | line = (yield line) |
|
423 | 424 | |
|
424 | 425 | |
|
426 | @CoroutineInputTransformer.wrap | |
|
427 | def strip_encoding_cookie(): | |
|
428 | """Remove encoding comment if found in first two lines | |
|
429 | ||
|
430 | If the first or second line has the `# coding: utf-8` comment, | |
|
431 | it will be removed. | |
|
432 | """ | |
|
433 | line = '' | |
|
434 | while True: | |
|
435 | line = (yield line) | |
|
436 | # check comment on first two lines | |
|
437 | for i in range(2): | |
|
438 | if line is None: | |
|
439 | break | |
|
440 | if cookie_comment_re.match(line): | |
|
441 | line = (yield "") | |
|
442 | else: | |
|
443 | line = (yield line) | |
|
444 | ||
|
445 | # no-op on the rest of the cell | |
|
446 | while line is not None: | |
|
447 | line = (yield line) | |
|
448 | ||
|
449 | ||
|
425 | 450 | assign_system_re = re.compile(r'(?P<lhs>(\s*)([\w\.]+)((\s*,\s*[\w\.]+)*))' |
|
426 | 451 | r'\s*=\s*!\s*(?P<cmd>.*)') |
|
427 | 452 | assign_system_template = '%s = get_ipython().getoutput(%r)' |
General Comments 0
You need to be logged in to leave comments.
Login now