Show More
@@ -1,7 +1,7 b'' | |||||
1 | # -*- coding: utf-8 -*- |
|
1 | # -*- coding: utf-8 -*- | |
2 | """Magic functions for InteractiveShell. |
|
2 | """Magic functions for InteractiveShell. | |
3 |
|
3 | |||
4 |
$Id: Magic.py 222 |
|
4 | $Id: Magic.py 2225 2007-04-08 02:48:16Z jdh2358 $""" | |
5 |
|
5 | |||
6 | #***************************************************************************** |
|
6 | #***************************************************************************** | |
7 | # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and |
|
7 | # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and | |
@@ -1673,8 +1673,7 b' Currently the magic system has the following functions:\\n"""' | |||||
1673 | sys.argv = save_argv |
|
1673 | sys.argv = save_argv | |
1674 | if restore_main: |
|
1674 | if restore_main: | |
1675 | sys.modules['__main__'] = restore_main |
|
1675 | sys.modules['__main__'] = restore_main | |
1676 |
|
|
1676 | self.shell.reloadhist() | |
1677 | self.shell.readline.read_history_file(self.shell.histfile) |
|
|||
1678 |
|
1677 | |||
1679 | return stats |
|
1678 | return stats | |
1680 |
|
1679 |
@@ -28,7 +28,7 b'' | |||||
28 | scan Python source code and re-emit it with no changes to its original |
|
28 | scan Python source code and re-emit it with no changes to its original | |
29 | formatting (which is the hard part). |
|
29 | formatting (which is the hard part). | |
30 |
|
30 | |||
31 |
$Id: PyColorize.py 22 |
|
31 | $Id: PyColorize.py 2225 2007-04-08 02:48:16Z jdh2358 $""" | |
32 |
|
32 | |||
33 | __all__ = ['ANSICodeColors','Parser'] |
|
33 | __all__ = ['ANSICodeColors','Parser'] | |
34 |
|
34 | |||
@@ -131,7 +131,7 b' class Parser:' | |||||
131 | out should be a file-type object. Optionally, out can be given as the |
|
131 | out should be a file-type object. Optionally, out can be given as the | |
132 | string 'str' and the parser will automatically return the output in a |
|
132 | string 'str' and the parser will automatically return the output in a | |
133 | string.""" |
|
133 | string.""" | |
134 |
|
134 | |||
135 | string_output = 0 |
|
135 | string_output = 0 | |
136 | if out == 'str' or self.out == 'str': |
|
136 | if out == 'str' or self.out == 'str': | |
137 | out_old = self.out |
|
137 | out_old = self.out | |
@@ -155,10 +155,11 b' class Parser:' | |||||
155 |
|
155 | |||
156 | # Remove trailing whitespace and normalize tabs |
|
156 | # Remove trailing whitespace and normalize tabs | |
157 | self.raw = raw.expandtabs().rstrip() |
|
157 | self.raw = raw.expandtabs().rstrip() | |
|
158 | ||||
158 | # store line offsets in self.lines |
|
159 | # store line offsets in self.lines | |
159 | self.lines = [0, 0] |
|
160 | self.lines = [0, 0] | |
160 | pos = 0 |
|
161 | pos = 0 | |
161 | raw_find = raw.find |
|
162 | raw_find = self.raw.find | |
162 | lines_append = self.lines.append |
|
163 | lines_append = self.lines.append | |
163 | while 1: |
|
164 | while 1: | |
164 | pos = raw_find('\n', pos) + 1 |
|
165 | pos = raw_find('\n', pos) + 1 |
@@ -6,7 +6,7 b' Requires Python 2.3 or newer.' | |||||
6 |
|
6 | |||
7 | This file contains all the classes and helper functions specific to IPython. |
|
7 | This file contains all the classes and helper functions specific to IPython. | |
8 |
|
8 | |||
9 |
$Id: iplib.py 222 |
|
9 | $Id: iplib.py 2225 2007-04-08 02:48:16Z jdh2358 $ | |
10 | """ |
|
10 | """ | |
11 |
|
11 | |||
12 | #***************************************************************************** |
|
12 | #***************************************************************************** | |
@@ -355,6 +355,11 b' class InteractiveShell(object,Magic):' | |||||
355 | # dict of output history |
|
355 | # dict of output history | |
356 | self.output_hist = {} |
|
356 | self.output_hist = {} | |
357 |
|
357 | |||
|
358 | # Get system encoding at startup time. Certain terminals (like Emacs | |||
|
359 | # under Win32 have it set to None, and we need to have a known valid | |||
|
360 | # encoding to use in the raw_input() method | |||
|
361 | self.stdin_encoding = sys.stdin.encoding or 'ascii' | |||
|
362 | ||||
358 | # dict of things NOT to alias (keywords, builtins and some magics) |
|
363 | # dict of things NOT to alias (keywords, builtins and some magics) | |
359 | no_alias = {} |
|
364 | no_alias = {} | |
360 | no_alias_magics = ['cd','popd','pushd','dhist','alias','unalias'] |
|
365 | no_alias_magics = ['cd','popd','pushd','dhist','alias','unalias'] | |
@@ -410,7 +415,8 b' class InteractiveShell(object,Magic):' | |||||
410 | # Set all default hooks, defined in the IPython.hooks module. |
|
415 | # Set all default hooks, defined in the IPython.hooks module. | |
411 | hooks = IPython.hooks |
|
416 | hooks = IPython.hooks | |
412 | for hook_name in hooks.__all__: |
|
417 | for hook_name in hooks.__all__: | |
413 |
# default hooks have priority 100, i.e. low; user hooks should have |
|
418 | # default hooks have priority 100, i.e. low; user hooks should have | |
|
419 | # 0-100 priority | |||
414 | self.set_hook(hook_name,getattr(hooks,hook_name), 100) |
|
420 | self.set_hook(hook_name,getattr(hooks,hook_name), 100) | |
415 | #print "bound hook",hook_name |
|
421 | #print "bound hook",hook_name | |
416 |
|
422 | |||
@@ -495,7 +501,6 b' class InteractiveShell(object,Magic):' | |||||
495 | r'(\S*\s*)' |
|
501 | r'(\S*\s*)' | |
496 | r'(\(?.*$)') |
|
502 | r'(\(?.*$)') | |
497 |
|
503 | |||
498 |
|
||||
499 | # A simpler regexp used as a fallback if the above doesn't work. This |
|
504 | # A simpler regexp used as a fallback if the above doesn't work. This | |
500 | # one is more conservative in how it partitions the input. This code |
|
505 | # one is more conservative in how it partitions the input. This code | |
501 | # can probably be cleaned up to do everything with just one regexp, but |
|
506 | # can probably be cleaned up to do everything with just one regexp, but | |
@@ -1245,6 +1250,13 b' want to merge them back into the new files.""" % locals()' | |||||
1245 | print 'Unable to save IPython command history to file: ' + \ |
|
1250 | print 'Unable to save IPython command history to file: ' + \ | |
1246 | `self.histfile` |
|
1251 | `self.histfile` | |
1247 |
|
1252 | |||
|
1253 | def reloadhist(self): | |||
|
1254 | """Reload the input history from disk file.""" | |||
|
1255 | ||||
|
1256 | if self.has_readline: | |||
|
1257 | self.readline.clear_history() | |||
|
1258 | self.readline.read_history_file(self.shell.histfile) | |||
|
1259 | ||||
1248 | def history_saving_wrapper(self, func): |
|
1260 | def history_saving_wrapper(self, func): | |
1249 | """ Wrap func for readline history saving |
|
1261 | """ Wrap func for readline history saving | |
1250 |
|
1262 | |||
@@ -1988,7 +2000,7 b' want to merge them back into the new files.""" % locals()' | |||||
1988 | self.set_completer() |
|
2000 | self.set_completer() | |
1989 |
|
2001 | |||
1990 | try: |
|
2002 | try: | |
1991 |
line = raw_input_original(prompt).decode(s |
|
2003 | line = raw_input_original(prompt).decode(self.stdin_encoding) | |
1992 | except ValueError: |
|
2004 | except ValueError: | |
1993 | warn("\n********\nYou or a %run:ed script called sys.stdin.close()" |
|
2005 | warn("\n********\nYou or a %run:ed script called sys.stdin.close()" | |
1994 | " or sys.stdout.close()!\nExiting IPython!") |
|
2006 | " or sys.stdout.close()!\nExiting IPython!") |
@@ -1,3 +1,15 b'' | |||||
|
1 | 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu> | |||
|
2 | ||||
|
3 | * Tag 0.8.0 for release. | |||
|
4 | ||||
|
5 | * IPython/iplib.py (reloadhist): add API function to cleanly | |||
|
6 | reload the readline history, which was growing inappropriately on | |||
|
7 | every %run call. | |||
|
8 | ||||
|
9 | * win32_manual_post_install.py (run): apply last part of Nicolas | |||
|
10 | Pernetty's patch (I'd accidentally applied it in a different | |||
|
11 | directory and this particular file didn't get patched). | |||
|
12 | ||||
1 | 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu> |
|
13 | 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu> | |
2 |
|
14 | |||
3 | * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to |
|
15 | * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to |
@@ -4430,28 +4430,47 b' In [6]: cd ipython # automagic can work again' | |||||
4430 |
|
4430 | |||
4431 | \begin_layout Standard |
|
4431 | \begin_layout Standard | |
4432 | You can define your own magic functions to extend the system. |
|
4432 | You can define your own magic functions to extend the system. | |
4433 | The following is a snippet of code which shows how to do it. |
|
4433 | The following example defines a new magic command, | |
4434 | It is provided as file |
|
|||
4435 | \family typewriter |
|
4434 | \family typewriter | |
4436 | example-magic.py |
|
4435 | %impall | |
4437 | \family default |
|
4436 | \family default | |
4438 | in the examples directory: |
|
4437 | : | |
4439 | \end_layout |
|
4438 | \end_layout | |
4440 |
|
4439 | |||
4441 |
\begin_layout |
|
4440 | \begin_layout LyX-Code | |
4442 | \begin_inset ERT |
|
4441 | import IPython.ipapi | |
4443 | status open |
|
4442 | \end_layout | |
4444 |
|
4443 | |||
4445 |
\begin_layout |
|
4444 | \begin_layout LyX-Code | |
|
4445 | ip = IPython.ipapi.get() | |||
|
4446 | \end_layout | |||
4446 |
|
4447 | |||
|
4448 | \begin_layout LyX-Code | |||
4447 |
|
4449 | |||
4448 | \backslash |
|
|||
4449 | codelist{examples/example-magic.py} |
|
|||
4450 | \end_layout |
|
4450 | \end_layout | |
4451 |
|
4451 | |||
4452 | \end_inset |
|
4452 | \begin_layout LyX-Code | |
|
4453 | def doimp(self, arg): | |||
|
4454 | \end_layout | |||
4453 |
|
4455 | |||
|
4456 | \begin_layout LyX-Code | |||
|
4457 | ip = self.api | |||
|
4458 | \end_layout | |||
4454 |
|
4459 | |||
|
4460 | \begin_layout LyX-Code | |||
|
4461 | ip.ex("import %s; reload(%s); from %s import *" % ( | |||
|
4462 | \end_layout | |||
|
4463 | ||||
|
4464 | \begin_layout LyX-Code | |||
|
4465 | arg,arg,arg) | |||
|
4466 | \end_layout | |||
|
4467 | ||||
|
4468 | \begin_layout LyX-Code | |||
|
4469 | ) | |||
|
4470 | \end_layout | |||
|
4471 | ||||
|
4472 | \begin_layout LyX-Code | |||
|
4473 | ip.expose_magic('impall', doimp) | |||
4455 | \end_layout |
|
4474 | \end_layout | |
4456 |
|
4475 | |||
4457 | \begin_layout Standard |
|
4476 | \begin_layout Standard |
@@ -55,7 +55,6 b" if len(sys.argv) >= 2 and sys.argv[1] in ('sdist','bdist_rpm'):" | |||||
55 | ['doc/manual.lyx', |
|
55 | ['doc/manual.lyx', | |
56 | 'doc/magic.tex', |
|
56 | 'doc/magic.tex', | |
57 | 'doc/examples/example-gnuplot.py', |
|
57 | 'doc/examples/example-gnuplot.py', | |
58 | 'doc/examples/example-magic.py', |
|
|||
59 | 'doc/examples/example-embed.py', |
|
58 | 'doc/examples/example-embed.py', | |
60 | 'doc/examples/example-embed-short.py', |
|
59 | 'doc/examples/example-embed-short.py', | |
61 | 'IPython/UserConfig/ipythonrc', |
|
60 | 'IPython/UserConfig/ipythonrc', |
@@ -94,6 +94,11 b' def run(wait=0):' | |||||
94 | sys.prefix + r'\Scripts\ipython" %*') |
|
94 | sys.prefix + r'\Scripts\ipython" %*') | |
95 | fic.close() |
|
95 | fic.close() | |
96 |
|
96 | |||
|
97 | # Create .bat file in \\Scripts | |||
|
98 | fic = open(sys.prefix + '\\Scripts\\ipython.bat','w') | |||
|
99 | fic.write('"' + sys.prefix + '\\python.exe' + '" -i ' + '"' + sys.prefix + '\\Scripts\ipython" %*') | |||
|
100 | fic.close() | |||
|
101 | ||||
97 | # Create shortcuts in Programs\IPython: |
|
102 | # Create shortcuts in Programs\IPython: | |
98 | if not os.path.isdir(ip_prog_dir): |
|
103 | if not os.path.isdir(ip_prog_dir): | |
99 | os.mkdir(ip_prog_dir) |
|
104 | os.mkdir(ip_prog_dir) |
General Comments 0
You need to be logged in to leave comments.
Login now